Token导航 LogoToken导航TokenDH.com
Microsoft Todo MCP Server logo
安全风控stdio官方级别未说明来源级核验

Microsoft Todo MCP Server

MCP Server

microsoft-todo-mcp-server

一个通过Microsoft Graph API与Microsoft To Do交互的MCP服务器,提供全面的任务管理功能,支持安全OAuth 2.0认证流程。

工具数

0

提示词数

0

GitHub Stars

70

资源数

0
TypeScriptClaude任务管理Claude DesktopClaudeCursor

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

jordanburke

提供方

jordanburke

最后核验

2026/5/17 20:21

运行时

Node.js

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

npx microsoft-todo-mcp-server

详细介绍

微软做MCP

![CI](https://github.com/jordanburke/microsoft-todo-mcp-server/actions/workflows/ci.yml) ](https://www.npmjs.com/package/microsoft-todo-mcp-server)

模型上下文协议(MCP)服务器,使Claude和Cursor等人工智能助手能够通过Microsoft Graph API与Microsoft to Do交互。此服务通过安全的OAuth 2.0身份验证流程提供全面的任务管理功能。

特性

  • 15个MCP工具:完整的任务管理功能,包括列表、任务、检查表项和组织特征
  • 无缝身份验证:自动令牌刷新,无需手动干预
  • OAuth 2.0身份验证:通过自动令牌刷新进行安全身份验证
  • Microsoft Graph API集成:与微软官方API直接集成
  • 多租户支持:适用于个人、工作和学校Microsoft帐户
  • TypeScript:完全打字,可靠性和开发人员体验
  • ESM模块:现代JavaScript模块系统

先决条件

  • Node.js 16或更高版本(使用Node.js 18.x、20.x和22.x进行测试)
  • pnpm包管理器
  • Microsoft帐户(个人、工作或学校)
  • Azure应用程序注册(请参阅下面的设置)

安装

选项1:全局安装(推荐)

# Install globally using npm
npm install -g microsoft-todo-mcp-server

# Or using pnpm
pnpm install -g microsoft-todo-mcp-server

# Or run directly with npx (no installation)
npx microsoft-todo-mcp-server

该包提供了三个命令别名:

  • microsoft-todo-mcp-server -完整包名称
  • mstodo -MCP服务器的短别名
  • mstodo-config -配置辅助工具

选项2:克隆并在本地运行

git clone https://github.com/jordanburke/microsoft-todo-mcp-server.git
cd microsoft-todo-mcp-server
pnpm install
pnpm run build

Azure应用程序注册

  1. 转到 Azure门户
  2. 导航到“应用程序注册”并创建新注册
  3. 命名您的应用程序(例如,“待办事项MCP”)
  4. 对于“支持的帐户类型”,请根据您的需求选择以下选项之一:

- 仅此组织目录中的帐户(单租户) -用于单个组织内 - 任何组织目录中的帐户(任何Azure AD目录-多租户) -适用于多个组织 - 任何组织目录中的帐户和个人Microsoft帐户 -适用于工作账户和个人账户

  1. 将重定向URI设置为 http://localhost:3000/callback
  2. 创建应用程序后,转到“证书和机密”并创建新的客户端机密
  3. 转到“API权限”并添加以下权限:

- Microsoft Graph>委派权限: - 任务。阅读 - 任务。读写 - 用户。阅读

  1. 点击“授予管理员同意”以获取这些权限

配置

环境设置

创建一个 .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

令牌存储

服务器将身份验证令牌存储在 tokens.json 在到期前5分钟自动刷新。您可以覆盖令牌文件位置:

# Using environment variable
export MSTODO_TOKEN_FILE=/path/to/custom/tokens.json

# Or pass tokens directly
export MS_TODO_ACCESS_TOKEN=your_access_token
export MS_TODO_REFRESH_TOKEN=your_refresh_token

用法

完成安装工作流程

步骤1:使用Microsoft进行身份验证

# If installed globally
git clone https://github.com/jordanburke/microsoft-todo-mcp-server.git
cd microsoft-todo-mcp-server
pnpm install
pnpm run auth

# Or if running locally
pnpm run auth

这将打开一个用于Microsoft身份验证的浏览器窗口,并创建一个 tokens.json 文件。

步骤2:创建MCP配置

# Generate MCP configuration file
pnpm run create-config

# Or use the global helper (if installed globally)
mstodo-config

这创建了一个 mcp.json 使用您的身份验证令牌创建文件。

步骤3:配置您的AI助手

对于Claude Desktop:

添加到配置文件中:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • 视窗: %APPDATA%\Claude\claude_desktop_config.json
  • Linux: ~/.config/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "microsoftTodo": {
      "command": "npx",
      "args": ["--yes", "microsoft-todo-mcp-server"],
      "env": {
        "MS_TODO_ACCESS_TOKEN": "your_access_token",
        "MS_TODO_REFRESH_TOKEN": "your_refresh_token"
      }
    }
  }
}

对于光标:

# Copy to Cursor's global configuration
cp mcp.json ~/.cursor/mcp-servers.json

可用脚本

# Development & Building
pnpm run build        # Build TypeScript to JavaScript
pnpm run dev          # Build and run CLI in one command

# Running the Server
pnpm start            # Run MCP server directly
pnpm run cli          # Run MCP server via CLI wrapper
npx microsoft-todo-mcp-server  # Run globally installed version

# Authentication & Configuration
pnpm run auth         # Start OAuth authentication server
pnpm run create-config # Generate mcp.json from tokens.json

# Code Quality
pnpm run format       # Format code with Prettier
pnpm run format:check # Check code formatting
pnpm run lint         # Run linting checks
pnpm run typecheck    # TypeScript type checking

MCP工具

该服务器为全面的Microsoft待办事项管理提供了13个工具:

认证

  • auth-status -检查身份验证状态、令牌过期和帐户类型

任务列表(顶级容器)

  • get-task-lists -使用元数据检索所有任务列表(默认、共享等)
  • create-task-list -创建新任务列表
  • update-task-list -重命名现有任务列表
  • delete-task-list -删除任务列表及其所有内容

任务(主要待办事项)

  • get-tasks -通过筛选、排序和分页从列表中获取任务

- 支持OData查询参数: $filter, $select, $orderby, $top, $skip, $count

  • create-task -创建具有完整属性支持的新任务

- 标题、描述、截止日期、开始日期、重要性、提醒、状态、类别

  • update-task -更新任何任务属性
  • delete-task -删除任务及其所有清单项

检查表项目(子任务)

  • get-checklist-items -获取特定任务的子任务
  • create-checklist-item -向任务中添加新的子任务
  • update-checklist-item -更新子任务文本或完成状态
  • delete-checklist-item -删除特定子任务

建筑

项目结构

  • MCP服务器 (src/todo-index.ts)-实现MCP协议的核心服务器
  • CLI包装器 (src/cli.ts)-具有令牌管理的可执行入口点
  • 身份验证服务器 (src/auth-server.ts)-OAuth 2.0流的Express服务器
  • 配置生成器 (src/create-mcp-config.ts)-帮助创建MCP配置

技术细节

  • Microsoft Graph API:使用v1.0端点
  • 认证:带有PKCE流的SOAP(Microsoft身份验证库)
  • 许可证管理:过期前5分钟自动刷新
  • 构建系统:tsup用于快速编译TypeScript
  • 模块系统:ESM(ECMAScript模块)

限制和已知问题

个人Microsoft帐户

  • MailboxNotEnabledForRESTAPI错误:个人Microsoft帐户(outlook.com、hotmail.com、live.com)通过Microsoft Graph访问待办事项API的权限有限
  • 这是Microsoft的服务限制,不是此应用程序的问题
  • 工作/学校账户可完全访问API

API限制

  • 根据Microsoft的政策,适用费率限制
  • 某些功能可能不适用于个人帐户
  • 共享列表的功能有限

故障排除

身份验证问题

令牌获取失败

  • 验证 CLIENT_ID, CLIENT_SECRET,以及 TENANT_ID 在你的 .env 文件
  • 确保重定向URI完全匹配: http://localhost:3000/callback
  • 检查Azure应用程序权限是否已获得管理员同意

权限问题

  • 确保添加并同意所有必需的Graph API权限
  • 对于组织帐户,可能需要管理员同意

帐户类型配置

工作/学校账户

TENANT_ID=organizations  # Multi-tenant
# Or use your specific tenant ID

个人账户

TENANT_ID=consumers  # Personal only
# Or TENANT_ID=common for both types

调试

检查身份验证状态:

# Using the MCP tool
# In your AI assistant: "Check auth status"

# Or examine tokens directly
cat tokens.json | jq '.expiresAt'

# Convert timestamp to readable date
date -d @$(($(cat tokens.json | jq -r '.expiresAt') / 1000))

启用详细日志记录:

# The server logs to stderr for debugging
mstodo 2> debug.log

贡献

欢迎投稿!拜托:

  1. 分叉存储库
  2. 创建要素分支
  3. pnpm run lintpnpm run typecheck 提交前
  4. 提交拉取请求

许可证

MIT许可证-请参阅 许可证 详细信息文件

致谢

支持

-

目录标签

目录标签

TypeScriptClaude任务管理本地部署MicrosoftGraph集成OAuth认证多租户支持

支持客户端

Claude DesktopClaudeCursor

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

oauth

运行时(runtime,运行环境)

Node.js

来源包(packageName,安装包名)

microsoft-todo-mcp-server

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiooauth部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP