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