Directus Task MCP Server

Gestiona tareas en Directus con sincronización automática de esquemas.

Documentación

Directus Task MCP Server

Un servidor de Model Context Protocol (MCP) para gestionar tareas en Directus con sincronización automática de esquemas. Este servidor te permite interactuar con tu base de datos PostgreSQL de Directus a través de asistentes de IA como Claude o Cursor.

Características

  • Gestión de tareas: Crear, leer, actualizar y eliminar tareas
  • Gestión de esquemas: Sincroniza automáticamente modelos TypeScript con colecciones de Directus
  • Filtrado: Filtra tareas por estado, prioridad y otros criterios
  • Validación: Validación integrada mediante esquemas Zod
  • Seguridad de tipos: Soporte completo de TypeScript con tipado adecuado

Requisitos previos

  • Node.js 18+
  • Una instancia de Directus (local o alojada)
  • Token de API de Directus o credenciales de usuario

Instalación

  1. Clona y configura el proyecto:

    npm install
    npm run build
    
  2. Configura tu conexión a Directus:

    El servidor utiliza las siguientes variables de entorno:

    • DIRECTUS_URL: La URL de tu instancia de Directus (por defecto: https://te9-pg-api.up.railway.app/)
    • DIRECTUS_TOKEN: Tu token de API de Directus (por defecto: mo7tahjWjKgHW-42_tEMThJiqBstu2V_)
    • DIRECTUS_USER_EMAIL: Alternativa al token: correo electrónico del usuario
    • DIRECTUS_USER_PASSWORD: Alternativa al token: contraseña del usuario

Configuración

Para Cursor

  1. Crea un archivo .cursor/mcp.json en la raíz de tu proyecto:
    {
    "mcpServers": {
     "directus-tasks": {
       "command": "node",
       "args": ["dist/index.js"],
       "env": {
         "DIRECTUS_URL": "https://te9-pg-api.up.railway.app/",
         "DIRECTUS_TOKEN": "mo7tahjWjKgHW-42_tEMThJiqBstu2V_"
       }
     }
    }
    }
    

Para Claude Desktop

  1. Abre la configuración de Claude Desktop
  2. Ve a la pestaña Developer y haz clic en "Edit Config"
  3. Añade la siguiente configuración:
    {
    "mcpServers": {
     "directus-tasks": {
       "command": "node",
       "args": ["/absolute/path/to/your/project/dist/index.js"],
       "env": {
         "DIRECTUS_URL": "https://te9-pg-api.up.railway.app/",
         "DIRECTUS_TOKEN": "mo7tahjWjKgHW-42_tEMThJiqBstu2V_"
       }
     }
    }
    }
    

Importante: Reemplaza /absolute/path/to/your/project con la ruta absoluta real a tu directorio de proyecto.

Herramientas disponibles

El servidor MCP proporciona las siguientes herramientas:

Gestión de esquemas

  • sync-task-schema: Sincroniza el esquema del modelo Task con tu base de datos de Directus

Gestión de tareas

  • list-tasks: Lista todas las tareas con filtrado opcional por estado, prioridad y límite
  • get-task: Obtiene una tarea específica por ID
  • create-task: Crea una nueva tarea
  • update-task: Actualiza una tarea existente
  • delete-task: Elimina una tarea

Gestión de usuarios

  • get-user-info: Obtiene la información del usuario actual

Modelo Task

El modelo Task incluye los siguientes campos:

interface Task {
  id?: string;              // UUID primary key
  title: string;            // Required task title
  description?: string;     // Optional description
  status: 'todo' | 'in_progress' | 'completed';  // Task status
  priority: 'low' | 'medium' | 'high';           // Task priority
  due_date?: string;        // Optional due date (ISO format)
  created_at?: string;      // Auto-generated creation timestamp
  updated_at?: string;      // Auto-generated update timestamp
  user_created?: string;    // Auto-generated user who created
  user_updated?: string;    // Auto-generated user who updated
}

Ejemplos de uso

1. Configuración inicial

Please sync the task schema with the database

2. Crear una tarea

Create a new task with title "Implement user authentication" and high priority

3. Listar tareas

Show me all tasks with status "in_progress"

4. Actualizar una tarea

Update task with ID [task-id] to completed status

5. Obtener detalles de una tarea

Show me details for task [task-id]

Desarrollo

Estructura del proyecto

src/
├── models/
│   └── Task.ts           # Task model with TypeScript interfaces and Zod schemas
├── services/
│   └── SchemaManager.ts  # Schema management service
└── index.ts              # Main MCP server implementation

Añadir nuevos modelos

  1. Crea un nuevo archivo de modelo en src/models/
  2. Define interfaces TypeScript y esquemas Zod
  3. Exporta definiciones de campos para Directus
  4. Añade herramientas al servidor principal para el nuevo modelo
  5. Usa SchemaManager para sincronizar el esquema

Comandos de desarrollo

# Install dependencies
npm install

# Build the project
npm run build

# Development mode (watch for changes)
npm run dev

# Start the server directly
npm start

Solución de problemas

Problemas comunes

  1. Errores de autenticación: Verifica que la URL y el token de Directus sean correctos
  2. Fallos de sincronización de esquemas: Asegúrate de que tu usuario de Directus tenga permisos de administrador
  3. Problemas de conexión: Comprueba que tu instancia de Directus sea accesible

Depuración

El servidor registra errores en stderr. Puedes revisar los registros en la consola o terminal de tu asistente de IA.

Notas de seguridad

  • Almacena tu token de Directus de forma segura
  • Usa variables de entorno para configuración sensible
  • Considera usar una cuenta de servicio dedicada para el servidor MCP
  • Rota tus tokens de API periódicamente

Contribuciones

  1. Haz un fork del repositorio
  2. Crea una rama de características
  3. Realiza tus cambios
  4. Añade pruebas si corresponde
  5. Envía una solicitud de extracción (pull request)

Licencia

Licencia MIT: consulta el archivo LICENSE para más detalles