Planner MCP 服务

一个通过Microsoft Graph API使Claude能够与Microsoft Planner交互的模型上下文协议(MCP)服务器。

  • by Plong-Wasin
  • TypeScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 Plong-Wasin/planner-mcp

使用说明

规划器MCP服务器

模型上下文协议(MCP)服务器,使Claude能够通过Microsoft Graph API与Microsoft Planner进行交互。

特性

  • 认证:用于安全身份验证的OAuth 2.0设备代码流
  • 计划管理:列出并查看Planner计划
  • Buckets管理:列出、创建和管理计划中的存储桶
  • 任务管理:创建、更新、删除和查看任务
  • 令牌持久性:在服务器重新启动时存储访问令牌

先决条件

  • Node.js 18+或更新版本
  • npm或纱线
  • 具有Planner访问权限的Microsoft帐户

安装

  1. 克隆或下载此存储库
  2. 安装依赖项:
cd planner-mcp
npm install
  1. 构建项目:
npm run build

认证

在使用Planner工具之前,您需要进行身份验证:

  1. 通过调用以下命令启动身份验证流程 auth_start 工具
  2. 访问显示的验证URL
  3. 输入提供的代码
  4. 使用您的Microsoft帐户登录
  5. 使用 auth_poll 用于检查身份验证是否完成的工具

访问令牌将保存在本地,并在未来的会话中重复使用。

配置

选项1:使用CLI(推荐)

claude mcp add --transport stdio planner node /path/to/planner-mcp/build/index.js

选项2:手动配置

将此服务器添加到您的Claude Desktop配置文件中:

视窗: %APPDATA%\Claude\claude_desktop_config.json macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "planner": {
      "command": "node",
      "args": ["/path/to/planner-mcp/build/index.js"]
    }
  }
}

注: 替换 /path/to/planner-mcp/build/index.js 使用克隆存储库的实际路径。

可用工具

身份验证工具

  • auth_start:启动Planner身份验证流程(设备代码)
  • auth_poll:检查身份验证是否完成

计划工具

  • list_plans:列出当前用户的所有Microsoft Planner计划
  • get_plan:获取特定计划的详细信息

油漆桶工具

  • list_buckets:列出计划中的所有桶
  • create_bucket:在计划中创建一个新桶

任务工具

  • list_tasks:列出计划或存储桶中的任务,并带有筛选选项(优先级、截止日期、状态等)
  • get_task:获取特定任务的详细信息
  • create_task:在bucket中创建一个新任务,包括标题、描述、优先级和截止日期
  • update_task:更新现有任务(标题、描述、优先级、存储桶、截止日期等)
  • delete_task:删除任务

优先级:

  • 1 =紧急(最高优先级)
  • 3 =重要(高优先级)
  • 5 =中等(正常优先级)
  • 9 =低(最低优先级)

所需权限

Microsoft Graph API要求Planner具有以下权限:

  • Group.Read.All -列出计划和桶
  • Tasks.ReadWrite -读取、创建、更新和删除任务

示例工作流

创建新任务

  1. 列出计划: list_plans
  2. 列出计划中的桶: list_buckets 带有计划ID
  3. 创建任务: create_task 带有计划ID、存储桶ID、标题和优先级(1=紧急,3=重要,5=中等,9=低)

例子:

{
  "planId": "your-plan-id",
  "bucketId": "your-bucket-id",
  "title": "Complete project proposal",
  "description": "Write and submit the Q1 project proposal",
  "priority": 1,
  "dueDateTime": "2026-03-30T17:00:00Z"
}

将任务移动到另一个bucket

  1. 获取任务详细信息: get_task
  2. 更新任务: update_task 使用新的bucket ID

按优先级筛选任务

  1. 列出具有优先级筛选器的任务: list_tasks 带有计划ID和优先级参数

例子:

{
  "planId": "your-plan-id",
  "priority": 1
}

这将仅显示紧急任务(优先级1)。

更新任务到期日期

  1. 获取任务详细信息: get_task
  2. 更新任务: update_task 新的到期日采用ISO 8601格式(例如“2025-12-31T23:59:59Z”)

故障排除

身份验证问题

如果身份验证失败,请尝试以下步骤:

  1. 删除 .access-token.txt 文件
  2. 呼叫 auth_start 再次
  3. 确保您使用的Microsoft帐户有权访问Planner

“未通过身份验证”错误

如果您收到“未通过身份验证”错误:

  1. 确保您已完成身份验证流程
  2. 检查一下 .access-token.txt 文件存在并且包含有效令牌
  3. 如果令牌已过期,请运行 auth_start 再次

权限错误

如果您遇到权限错误:

  • 确保您的Microsoft帐户有权访问指定的计划
  • 检查是否在Azure AD应用程序中授予了所需的权限

发展

构建

npm run build

观看模式

npm run watch

启动服务器

npm start

许可证

国际学生委员会

贡献

欢迎投稿!请随时提交问题或拉取请求。