O que mcp-microsoft-todo faz?
Servidor MCP para Microsoft To Do via API Microsoft Graph. Gerencie listas de tarefas, crie, atualize, conclua e exclua tarefas a partir do Claude Code, Claude Desktop ou qualquer cliente compatível com MCP. Transporte stdio, autenticação MSAL por código de dispositivo e cache de token persistente.
Funcionalidades
- Listar todas as listas de tarefas – Obtenha todas as suas listas de tarefas do Microsoft To Do.
- Criar nova lista de tarefas – Crie uma nova lista de tarefas personalizada.
- Obter tarefas de uma lista – Recupere todas as tarefas de uma lista específica.
- Criar tarefa – Adicione uma nova tarefa a uma lista.
- Atualizar tarefa – Modifique o título, descrição, data de vencimento, importância ou status de conclusão de uma tarefa.
- Concluir tarefa – Marque uma tarefa como concluída.
- Excluir tarefa – Remova uma tarefa.
- Cache de token persistente – Autentique uma vez e use tokens armazenados localmente.
Ferramentas
| Ferramenta | Descrição |
|---|---|
list_todo_lists | Lista todas as listas de tarefas do Microsoft To Do |
create_todo_list | Cria uma nova lista de tarefas |
get_tasks | Obtém todas as tarefas de uma lista de tarefas especificada |
create_task | Cria uma nova tarefa em uma lista de tarefas |
update_task | Atualiza uma tarefa existente |
complete_task | Marca uma tarefa como concluída |
delete_task | Exclui uma tarefa |
Configuração
Pré-requisitos
- Node.js 18+ instalado
- Uma conta Microsoft com acesso ao Microsoft To Do
- Um registro de aplicativo no Portal do Azure com as seguintes permissões da API Microsoft Graph:
Tasks.ReadWrite(Delegada) – para ler e escrever tarefas
Registrar aplicativo no Azure
- Acesse o Portal do Azure > Registros de aplicativo
- Clique em Novo registro
- Nomeie-o (ex:
MCP Microsoft To Do) - Em Tipos de conta com suporte, selecione Contas em qualquer diretório organizacional (Qualquer locatário do Microsoft Entra ID – Multilocatário)
- Clique em Registrar
- Na página de visão geral, copie o ID do aplicativo (cliente)
- Em Certificados e segredos, crie um novo segredo de cliente e anote o valor
- Em Permissões de API, adicione a permissão delegada
Tasks.ReadWritepara Microsoft Graph - Conceda consentimento de administrador (se necessário)
Configurar variáveis de ambiente
Renomeie .env.example para .env e preencha:
AZURE_CLIENT_ID=seu-id-do-aplicativo-cliente
AZURE_TENANT_ID=comum
Nota: O servidor usa fluxo de código de dispositivo (
PublicClientApplication), entãoAZURE_TENANT_IDpermanece"comum"para contas da Microsoft. O segredo do cliente não é necessário para fluxo de código público, mas a permissãoTasks.ReadWritedelegada é obrigatória.
Executar
npm install
npm run build
node dist/index.js
O servidor iniciará usando transporte stdio. Siga o prompt de autenticação exibido no terminal – visite a URL fornecida e insira o código de dispositivo.
Usar com Claude Desktop
Adicione ao seu claude_desktop_config.json:
{
"mcpServers": {
"microsoft-todo": {
"command": "node",
"args": ["caminho/para/mcp-microsoft-todo/dist/index.js"],
"env": {
"AZURE_CLIENT_ID": "seu-id-do-aplicativo-cliente",
"AZURE_TENANT_ID": "comum"
}
}
}
}
Autenticação
No primeiro uso, o servidor solicitará login via fluxo de código de dispositivo:
- Uma URL e um código serão exibidos no terminal
- Acesse a URL em qualquer navegador (pode ser em outro dispositivo)
- Insira o código exibido
- Faça login na sua conta Microsoft e consinta as permissões
O token de acesso será armazenado em cache no disco (no diretório do servidor). Em execuções futuras, o token será renovado automaticamente, a menos que expire ou seja revogado.
Exemplos
Listar todas as listas de tarefas
Use a ferramenta list_todo_lists para ver todas as suas listas.
Criar uma tarefa
Use create_task com:
- todoTaskListId: "id-da-lista"
- title: "Comprar mantimentos"
- dueDateTime: "2025-01-15T10:00:00Z"
- importance: "normal"
Concluir uma tarefa
Use complete_task com:
- todoTaskListId: "id-da-lista"
- taskId: "id-da-tarefa"
Resolução de problemas
- Erro de autenticação: Certifique-se de que o ID do cliente está correto e o fluxo de código de dispositivo foi concluído. Você pode excluir o arquivo
.mcp-todo-token-cache.jsonpara forçar o re-login. - Permissão negada: Verifique se a permissão
Tasks.ReadWritedelegada foi concedida no registro do aplicativo. - Token expirado: O servidor renova automaticamente os tokens, mas se você desligar o servidor por um longo período, o refresh token pode expirar. Exclua o cache e faça login novamente.
Licença
MIT