使用说明
Microsoft计划器MCP
一个小型Node.js MCP服务器,使用Microsoft Graph API与Microsoft Planner集成。
特性
| 工具 | 说明 |
|---|---|
list_groups |
列出有Planner计划的Microsoft 365组(团队)。用它来发现 groupId 需要用于 list_plans. |
list_plans |
列出Microsoft 365组(团队)的所有Planner计划。 |
list_buckets |
列出Planner计划中的所有桶。 |
list_tasks |
列出Planner计划中的所有任务。 |
get_task |
通过特定Planner任务的ID获取其详细信息(包括任务详细信息/描述)。 |
create_task |
创建一个新的计划任务,包括标题、日期、优先级、工作分配和类别。 |
update_task |
更新现有的Planner任务(标题、日期、进度、优先级、存储桶、分配)及其详细信息。 |
complete_task |
将Planner任务标记为已完成(集 percentComplete 到100)。 |
list_categories |
列出Planner计划中定义的类别标签(彩色标签)。 |
delete_task |
永久删除Planner任务。 |
list_users |
列出Microsoft 365目录中的用户(有助于发现分配的用户ID)。 |
先决条件
- 一 Azure应用程序注册 在Microsoft Graph中具有以下应用程序权限:
Group.Read.AllTasks.ReadWrite.AllUser.Read.All
- A. 客户端密钥 为应用程序注册生成。
- Node.js 18或更新版本。
设置
- 安装依赖项:
npm install
- 复制和编辑环境文件:
cp .env.example .env
将这些环境变量填入 .env:
CLIENT_ID=<App Registration Client ID>
TENANT_ID=<Azure AD Tenant ID>
CLIENT_SECRET=<Client Secret>
# Optional defaults used by some tools
GROUP_ID=<optional default group id>
PLAN_ID=<optional default plan id>
- 构建项目:
npm run build
用法
将服务器作为MCP stdio服务器运行。示例 mcp.json 条目:
{
"servers": {
"planner": {
"command": "node",
"args": ["/absolute/path/to/planner-mcp-server/dist/index.js"],
"env": {
"CLIENT_ID": "...",
"TENANT_ID": "...",
"CLIENT_SECRET": "...",
"GROUP_ID": "...", // optional default group id for tools that require it
"PLAN_ID": "..." // optional default plan id for tools that require it
}
}
}
}
对于本地开发,您可以运行:
npm run dev
测试
测试是用 Vitest 并住在 src/__tests__/.
| 文件 | 覆盖范围 |
|---|---|
utils.test.ts |
ok / err 响应助手 |
planner-service.test.ts |
PlannerService --对模拟Graph客户端的所有CRUD操作 |
graph-client.test.ts |
createGraphClient --环境验证和客户端初始化 |
运行测试套件:
# Run once
npm test
# Watch mode (re-runs on file changes)
npm run test:watch
# With coverage report
npm run test:coverage
运行测试不需要真正的Azure凭据——Microsoft Graph客户端完全被模拟了。
项目结构
src/
graph-client.ts # Creates an authenticated Microsoft Graph client
planner-service.ts # Service implementing Planner CRUD operations
utils.ts # Response helpers (ok / err)
index.ts # Entry point — registers tools and starts the MCP server
__tests__/
utils.test.ts # Unit tests for response helpers
planner-service.test.ts # Unit tests for PlannerService
graph-client.test.ts # Unit tests for createGraphClient and auth setup
示例提示
- “列出abc123组中的计划”
- “在计划xyz456中创建一个具有紧急优先级且应于2025-04-01到期的任务‘审查文件’”
- “将任务任务789标记为已完成”
- 将任务task789的描述更新为“文档已审核和批准”