todo-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@todo-mcpQuais são minhas tarefas de hoje e o que está atrasado?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
todo-mcp
Conecte o Claude ao seu Microsoft To Do. Servidor MCP remoto, pronto para a Vercel, que permite ao Claude ler, criar e concluir tarefas do Microsoft To Do de uma conta pessoal (outlook.com, hotmail.com, live.com) através da Microsoft Graph API.
🇺🇸 English summary: a self-hosted remote MCP server (Vercel + Supabase) that gives Claude read/write access to your own Microsoft To Do via Microsoft Graph. Each person deploys their own copy with their own Microsoft app registration — no data is shared with anyone else. Tool names and messages are in Portuguese. See Quick start.
Por que existe
O Microsoft To Do já sincroniza entre celular, computador e web, mas não há um conector oficial para o Claude. Este projeto preenche essa lacuna sem trocar de app de tarefas: você continua usando o To Do normalmente e o Claude passa a enxergar e organizar as mesmas listas.
Exemplos do que dá para pedir ao Claude:
"Quais são minhas tarefas de hoje e o que está atrasado?"
"Crie uma tarefa 'Renovar seguro' na lista Pessoal para sexta, com lembrete às 9h."
"Marque como feita a etapa 'Revisar contrato' da tarefa X."
"Monte meu plano do dia a partir das tarefas vencendo hoje."
Related MCP server: mstodo
Como funciona
Claude ──(MCP / HTTPS)──▶ Vercel: /api/mcp/<segredo>
│
├─▶ Supabase: lê o refresh token da sua conta
├─▶ Microsoft identity: troca por um access token
└─▶ Microsoft Graph: /me/todo/lists/...Uma instância = uma pessoa. Cada usuário faz o próprio deploy, com o próprio app no Microsoft Entra e o próprio banco. Nada passa por servidores de terceiros além de Vercel, Supabase e Microsoft.
Permissões delegadas. Contas pessoais da Microsoft não aceitam permissões de aplicativo; o servidor age em seu nome usando o refresh token obtido no login único.
Stateless. Cada chamada MCP cria um servidor novo, o que combina com funções serverless.
Ferramentas
Ferramenta | O que faz | Altera dados? |
| Todas as listas (nome e id) | não |
| Tarefas de uma lista; aceita nome parcial, sem acento | não |
| Varre todas as listas: o que vence na data (padrão: hoje) + atrasadas | não |
| Detalhes, notas e etapas (checklist) com ids | não |
| Cria com vencimento, lembrete, importância, notas e etapas | sim |
| Concluir/reabrir, renomear, mudar vencimento, importância, notas | sim |
| Marca/desmarca uma etapa de uma tarefa | sim |
Concluir uma tarefa recorrente pelo Graph gera a próxima ocorrência, como no app.
Datas usam o formato AAAA-MM-DD e o fuso configurado em LOCAL_TZ / GRAPH_TIMEZONE.
Requisitos
Node.js 20+
Conta na Vercel (plano gratuito serve)
Projeto no Supabase (plano gratuito serve)
Conta pessoal da Microsoft com o To Do
Acesso ao portal do Azure para registrar o app (gratuito)
Passo a passo
1. Clonar e verificar
git clone https://github.com/<seu-usuario>/todo-mcp.git
cd todo-mcp
npm install
npm run typecheck
npm run test:tools # lista as ferramentas sem acessar a rede2. Criar a tabela no Supabase
Rode sql/001_ms_todo_tokens.sql no SQL Editor.
A tabela tem RLS ligado e nenhuma policy: só a service role (usada pelo backend) acessa.
Recomenda-se um projeto dedicado em vez de reaproveitar o banco de outra aplicação.
3. Registrar o app no Microsoft Entra
Microsoft Entra ID → Registros de aplicativo → Novo registro. Se o portal pedir um diretório, crie uma conta Azure gratuita com sua conta Microsoft.
Tipos de conta: Somente contas pessoais da Microsoft (corresponde a
MS_TENANT=consumers).URI de redirecionamento: plataforma Web,
https://<seu-dominio>/api/auth/callback.Certificados e segredos → Novo segredo do cliente. Copie o Valor (aparece uma única vez).
Permissões de API → Microsoft Graph → Delegadas:
Tasks.ReadWrite,User.Read,offline_access.
4. Configurar e publicar na Vercel
Copie .env.example e preencha as variáveis na Vercel (Settings → Environment Variables):
Variável | Descrição |
| URL pública do deploy, sem barra final |
| ID do aplicativo (cliente) do Entra |
| Valor do segredo do cliente |
|
|
| URL do projeto Supabase |
| Chave service role (nunca exponha no front-end) |
| Segredo longo e aleatório que protege o endpoint |
| Fuso IANA para calcular "hoje" (ex.: |
| Mesmo fuso no formato Windows (ex.: |
Gere o MCP_SECRET:
node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"Depois: vercel deploy --prod (ou conecte o repositório na Vercel).
5. Autorizar sua conta Microsoft (uma vez)
Abra no navegador https://<seu-dominio>/api/auth/login?key=<MCP_SECRET>, entre com sua conta e aceite as permissões. A página deve mostrar Conectado ✓.
6. Adicionar ao Claude
Em Conectores, adicione um conector personalizado com a URL:
https://<seu-dominio>/api/mcp/<MCP_SECRET>Teste com: "quais são minhas tarefas de hoje no To Do?"
Segurança
Nunca faça commit de
.env. Ele já está no.gitignore; use as variáveis de ambiente da Vercel.A URL do conector contém o segredo e funciona como uma senha. Se vazar, troque o
MCP_SECRETe atualize o conector. Requisições com segredo errado recebem404.O login OAuth também exige o segredo, impedindo que outra pessoa conecte a conta dela na sua instância. O parâmetro
stateé validado via cookie.Escopo mínimo: apenas tarefas (
Tasks.ReadWrite) e o perfil básico (User.Read). Sem acesso a e-mail, arquivos ou calendário.Revogar acesso: em account.live.com/consent/Manage remova o app, ou apague a linha em
ms_todo_tokens.O refresh token expira após longos períodos sem uso; as ferramentas avisam, e basta refazer o passo 5.
Encontrou uma falha? Abra uma issue sem incluir tokens, segredos ou dados pessoais.
Limitações conhecidas
Uma conta Microsoft por instância.
Autenticação do conector por segredo na URL; OAuth no próprio conector está no roteiro.
Recorrência de tarefas é exibida, mas ainda não pode ser criada ou editada pelas ferramentas.
Listas compartilhadas aparecem normalmente, mas não houve testes extensivos com elas.
Roteiro
OAuth no endpoint MCP (dispensa o segredo na URL)
Criar e editar recorrência
Mover tarefas entre listas
Busca por texto em todas as listas
Notificações de mudança via webhooks do Graph
Estrutura
api/mcp/[key].ts endpoint MCP (Streamable HTTP, stateless)
api/auth/login.ts inicia o OAuth da Microsoft
api/auth/callback.ts recebe o código e salva o refresh token
lib/env.ts variáveis de ambiente e comparação segura do segredo
lib/msauth.ts troca, renovação e cache de tokens
lib/tokens.ts leitura/gravação do refresh token no Supabase
lib/graph.ts cliente HTTP do Microsoft Graph (paginação, erros)
lib/todo.ts regras do To Do: listas, tarefas, datas, formatação
lib/server.ts definição das ferramentas MCP
scripts/list-tools.ts teste local sem rede
sql/ migrations do SupabaseContribuindo
Contribuições são bem-vindas. Antes de abrir um PR, rode npm run typecheck e npm run test:tools. O CI roda os mesmos comandos.
Licença
MIT. Projeto independente, sem afiliação com Microsoft ou Anthropic. "Microsoft To Do" é marca da Microsoft.
This server cannot be deployed
Maintenance
Related MCP Connectors
Lets Claude, ChatGPT, and Muse read and update your beckett tasks, notes, calendar, and lists.
Manage tasks, Focus Zone, notes, projects, and task history from compatible AI assistants.
Task management for people and AI agents, with scoped OAuth access to issues, projects, and docs.
Task management for people and AI agents, with scoped OAuth access to issues, projects, and docs.
Related MCP Servers
- FlicenseAqualityBmaintenanceEnables Claude to manage Outlook calendar events and Microsoft To Do tasks for a specific mailbox via Microsoft Graph API.7-
- AlicenseAqualityBmaintenanceConnects Microsoft To Do to Claude, enabling task fetching, planning, completion, note-taking, and checklist management through natural language.9MIT
- AlicenseAqualityAmaintenanceEnables AI agents to read and edit Microsoft To Do tasks, lists, and steps via Microsoft Graph, including due dates, reminders, and subtasks.121MIT
- AlicenseBqualityBmaintenanceEnables Claude to create, read, update and delete Microsoft To Do lists, tasks and checklist items, and Microsoft Planner plans, buckets and tasks, through Microsoft Graph as the signed-in user. Lists, plans and buckets can be referenced by ID or exact name, with destructive deletes requiring confirmation.31MIT