Todo MCP Server

Um servidor de gerenciamento de tarefas e afazeres para criar, atualizar e gerenciar tarefas, utilizando um banco de dados SQLite.

Documentação

Todo MCP Server

Um pequeno servidor MCP (Model Context Protocol) para gerenciar tarefas, para que um assistente como o Claude possa criar, atualizar e consultar sua lista de tarefas através de uma conversa normal. Escrito em TypeScript, armazena tudo em um arquivo SQLite local.

Construí isso principalmente para aprender como o MCP funciona de ponta a ponta — ferramentas, recursos e prompts — e um gerenciador de tarefas era um domínio simples o suficiente para realmente terminar.

O que ele expõe

Ferramentas (as coisas que o Claude pode chamar): criar, atualizar, excluir, concluir, listar e pesquisar tarefas, além de uma ferramenta de estatísticas.

Recursos (dados somente leitura que o Claude pode acessar): todas / concluídas / pendentes / atrasadas tarefas, uma única tarefa por id, tarefas filtradas por prioridade ou tag, e estatísticas gerais. Alguns deles suportam autocomplete.

Prompts (fluxos pré-definidos): revisão diária, planejamento semanal, análise de produtividade e detalhamento de tarefas.

Configuração

npm install
npm run build

Executando

npm start        # run the server (talks over stdio)
npm run dev      # watch mode while developing
npm test         # run the test script against an in-memory db

Para experimentar sem o Claude, o inspetor MCP é útil:

npx @modelcontextprotocol/inspector node dist/index.js

Conectando ao Claude Desktop

Adicione isso à configuração do seu Claude Desktop (claude_desktop_config.json):

{
  "mcpServers": {
    "todo-manager": {
      "command": "node",
      "args": ["/path/to/todo-mcp-server/dist/index.js"],
      "env": {
        "TODO_DB_PATH": "/path/to/your/todos.db"
      }
    }
  }
}

TODO_DB_PATH é opcional — o padrão é todos.db no diretório de trabalho.

Como está estruturado

src/
├── database.ts       # sqlite layer (better-sqlite3)
├── todo-service.ts   # validation + business logic
├── mcp-server.ts     # wires the service up to MCP tools/resources/prompts
├── index.ts          # entry point
├── types.ts          # shared types
└── test.ts           # quick sanity test

A tabela todos mantém id, título, descrição, concluído, prioridade, data de vencimento, tags e timestamps, com alguns índices nas colunas que eu realmente filtro.

Licença

MIT