Microsoft Todo MCP Service

by jhirono
Verified

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

微软待办 MCP

此 MCP(模型上下文协议)服务允许您使用 AI 助手与 Microsoft To Do 任务进行交互。

设置说明

1. 先决条件

  • Node.js 16 或更高版本
  • npm
  • Microsoft 帐户
  • Azure 应用程序注册(请参阅下面的设置)

2.安装

安装此工具分为两个部分:

  1. 安装包
  2. 设置身份验证(需要克隆存储库)

步骤 1:安装软件包

npm install -g @jhirono/todomcp

第 2 步:设置身份验证

即使您全局安装该包,您也需要克隆存储库来完成身份验证过程:

git clone https://github.com/jhirono/todoMCP.git cd todoMCP npm install

3. Azure 应用注册

  1. 转到Azure 门户
  2. 导航至“应用程序注册”并创建新的注册
  3. 为您的应用程序命名(例如“To Do MCP”)
  4. 对于“支持的帐户类型”,请根据您的需要选择以下选项之一:
    • 仅限此组织目录中的帐户(单租户) - 供单个组织内部使用
    • 任何组织目录中的帐户(任何 Azure AD 目录 - 多租户) - 可供跨多个组织使用
    • 任何组织目录中的帐户和个人 Microsoft 帐户- 适用于工作帐户和个人帐户
  5. 将重定向 URI 设置为http://localhost:3000/callback
  6. 创建应用程序后,转到“证书和机密”并创建一个新的客户端机密
  7. 转到“API 权限”并添加以下权限:
    • Microsoft Graph > 委派权限:
      • 任务.阅读
      • 任务.读写
      • 用户.读取
  8. 单击“授予管理员同意”以获取这些权限

4.配置

在根目录中创建一个.env文件,其中包含以下信息:

CLIENT_ID=your_client_id CLIENT_SECRET=your_client_secret TENANT_ID=your_tenant_setting REDIRECT_URI=http://localhost:3000/callback

TENANT_ID 选项:

  • organizations - 适用于多租户组织帐户(如果未指定则为默认)
  • consumers - 仅适用于个人 Microsoft 帐户
  • common - 适用于组织帐户和个人帐户
  • your-specific-tenant-id - 用于单租户配置

例子:

# For multi-tenant organizational accounts (default) TENANT_ID=organizations # For personal Microsoft accounts TENANT_ID=consumers # For both organizational and personal accounts TENANT_ID=common # For a specific organization tenant TENANT_ID=00000000-0000-0000-0000-000000000000

用法

完整的工作流程

  1. 进行身份验证以获取令牌(必须从克隆的存储库完成)
    npm run auth
    这将打开一个浏览器窗口,供您向 Microsoft 进行身份验证并创建tokens.json文件。
  2. 创建 MCP 配置文件(必须从克隆的存储库完成)
    npm run create-config
    这将创建一个包含您的身份验证令牌的mcp.json文件。
  3. 设置全局 MCP 配置
    # Copy the mcp.json file to your global Cursor configuration directory cp mcp.json ~/.cursor/mcp-servers.json
    这使得 Microsoft To Do MCP 可在您的所有 Cursor 项目中使用。
  4. 开始使用您的 AI 助手
    • 在 Cursor 中,您现在可以在任何项目中直接使用 Microsoft To Do 命令
    • 尝试使用auth statuslist up todos等命令来开始

Claude Desktop 配置文件位于:

  • macOS~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows%APPDATA%\Claude\claude_desktop_config.json
  • Linux~/.config/Claude/claude_desktop_config.json

可用工具

  • auth-status :检查您的身份验证状态
  • get-task-lists :获取所有待办任务列表
  • create-task-list :创建新的任务列表
  • update-task-list :更新现有任务列表
  • delete-task-list :删除任务列表
  • get-tasks :获取列表中的所有任务
  • create-task :创建新任务
  • update-task :更新现有任务
  • delete-task :删除任务
  • get-checklist-items :获取任务的清单项目
  • create-checklist-item :创建清单项
  • update-checklist-item :更新清单项目
  • delete-checklist-item :删除清单项

限制

  • API 需要适当的身份验证和权限
  • 根据 Microsoft 的政策,可能会有速率限制

故障排除

身份验证问题

  • “MailboxNotEnabledForRESTAPI”错误:这通常意味着你使用的是个人 Microsoft 帐户。个人帐户通过 Graph API 访问 Microsoft To Do API 受到限制。
  • 令牌获取失败:确保您的.env文件中的CLIENT_IDCLIENT_SECRETTENANT_ID正确无误。
  • 权限问题:确保您已在 Azure 应用注册中授予管理员所需权限的同意。

账户类型问题

  • 工作/学校账户:这些账户通常与 To Do API 配合使用效果最佳。请使用TENANT_ID=organizations或您指定的租户 ID。
  • 个人账户:这些账户对 To Do API 的访问权限有限。如果您必须使用个人账户,请尝试TENANT_ID=consumersTENANT_ID=common

检查身份验证状态

您可以使用auth-status工具或通过检查令牌中的到期时间来检查您的身份验证状态:

cat tokens.json | grep expiresAt

将时间戳转换为可读的日期:

date -r $(echo "$(cat tokens.json | grep expiresAt | cut -d ":" -f2 | cut -d "," -f1) / 1000" | bc)

You must be authenticated.

A
security – no known vulnerabilities
F
license - not found
A
quality - confirmed to work

Claude 的模型上下文协议服务,可实现与 Microsoft Todo 任务的自然语言交互,包括查看任务列表、创建任务和管理清单项。

  1. Setup Instructions
    1. 1. Prerequisites
    2. 2. Installation
    3. 3. Azure App Registration
    4. 4. Configuration
  2. Usage
    1. Complete Workflow
  3. Available Tools
    1. Limitations
      1. Troubleshooting
        1. Authentication Issues
        2. Account Type Issues
        3. Checking Authentication Status
      ID: mzlsn1su89