Directus Task MCP Server

Gerencie tarefas no Directus com sincronização automática de esquema.

Documentação

Directus Task MCP Server

Um servidor Model Context Protocol (MCP) para gerenciar tarefas no Directus com sincronização automática de esquema. Este servidor permite que você interaja com seu banco de dados PostgreSQL do Directus por meio de assistentes de IA como Claude ou Cursor.

Recursos

  • Gerenciamento de Tarefas: Criar, ler, atualizar e excluir tarefas
  • Gerenciamento de Esquema: Sincroniza automaticamente modelos TypeScript para coleções do Directus
  • Filtragem: Filtrar tarefas por status, prioridade e outros critérios
  • Validação: Validação integrada usando esquemas Zod
  • Segurança de Tipos: Suporte completo a TypeScript com tipagem adequada

Pré-requisitos

  • Node.js 18+
  • Uma instância do Directus (local ou hospedada)
  • Token da API do Directus ou credenciais de usuário

Instalação

  1. Clone e configure o projeto:

    npm install
    npm run build
    
  2. Configure sua conexão com o Directus:

    O servidor usa as seguintes variáveis de ambiente:

    • DIRECTUS_URL: URL da sua instância do Directus (padrão: https://te9-pg-api.up.railway.app/)
    • DIRECTUS_TOKEN: Seu token da API do Directus (padrão: mo7tahjWjKgHW-42_tEMThJiqBstu2V_)
    • DIRECTUS_USER_EMAIL: Alternativa ao token - e-mail do usuário
    • DIRECTUS_USER_PASSWORD: Alternativa ao token - senha do usuário

Configuração

Para Cursor

  1. Crie um arquivo .cursor/mcp.json na raiz do seu projeto:
    {
      "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. Abra as configurações do Claude Desktop
  2. Navegue até a aba Desenvolvedor e clique em "Editar Configuração"
  3. Adicione a seguinte configuração:
    {
      "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: Substitua /absolute/path/to/your/project pelo caminho absoluto real do diretório do seu projeto.

Ferramentas Disponíveis

O servidor MCP fornece as seguintes ferramentas:

Gerenciamento de Esquema

  • sync-task-schema: Sincroniza o esquema do modelo Task com seu banco de dados do Directus

Gerenciamento de Tarefas

  • list-tasks: Lista todas as tarefas com filtragem opcional por status, prioridade e limite
  • get-task: Obtém uma tarefa específica por ID
  • create-task: Cria uma nova tarefa
  • update-task: Atualiza uma tarefa existente
  • delete-task: Exclui uma tarefa

Gerenciamento de Usuários

  • get-user-info: Obtém informações do usuário atual

Modelo de Tarefa

O modelo Task inclui os seguintes 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
}

Exemplos de Uso

1. Configuração Inicial

Please sync the task schema with the database

2. Criar uma Tarefa

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

3. Listar Tarefas

Show me all tasks with status "in_progress"

4. Atualizar uma Tarefa

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

5. Obter Detalhes da Tarefa

Show me details for task [task-id]

Desenvolvimento

Estrutura do Projeto

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

Adicionando Novos Modelos

  1. Crie um novo arquivo de modelo em src/models/
  2. Defina interfaces TypeScript e esquemas Zod
  3. Exporte definições de campos para o Directus
  4. Adicione ferramentas ao servidor principal para o novo modelo
  5. Use o SchemaManager para sincronizar o esquema

Comandos de Desenvolvimento

# Install dependencies
npm install

# Build the project
npm run build

# Development mode (watch for changes)
npm run dev

# Start the server directly
npm start

Solução de Problemas

Problemas Comuns

  1. Erros de Autenticação: Verifique se a URL e o token do Directus estão corretos
  2. Falhas na Sincronização de Esquema: Certifique-se de que seu usuário do Directus tenha permissões de administrador
  3. Problemas de Conexão: Verifique se sua instância do Directus está acessível

Depuração

O servidor registra erros no stderr. Você pode verificar os logs no console do seu assistente de IA ou no terminal.

Notas de Segurança

  • Armazene seu token do Directus com segurança
  • Use variáveis de ambiente para configurações sensíveis
  • Considere usar uma conta de serviço dedicada para o servidor MCP
  • Rotacione regularmente seus tokens de API

Contribuindo

  1. Faça um fork do repositório
  2. Crie um branch de funcionalidade
  3. Faça suas alterações
  4. Adicione testes, se aplicável
  5. Envie um pull request

Licença

Licença MIT - consulte o arquivo LICENSE para obter detalhes