Microsoft Planner MCP服务器
一个生产就绪的MCP(模型上下文协议)服务器,它将Microsoft Planner与您的应用程序集成在一起,实现了对计划板和积压的程序化管理。
特性
- Microsoft OAuth 2.0身份验证 -使用SOAP和令牌缓存进行安全身份验证
- 图形API集成 -通过Graph API全面访问Microsoft Planner
- FastMCP服务器 -计划、任务和桶的资源处理程序
- 任务管理工具 -创建、读取、更新、删除和移动任务
- 智能高速缓存 -内存缓存以提高性能
- CLI客户端 -用于测试和交互的命令行界面
- 结构化日志记录 -带上下文跟踪的JSON日志记录
先决条件
- Python 3.11+
- 具有管理员权限的Microsoft Azure帐户
- 启用计划的Microsoft 365组织
- 具有所需权限的Azure应用程序注册
快速开始
1.Azure应用程序注册
运行安装脚本以获取分步说明:
python scripts/setup_azure_app.py这将指导您完成:
- 创建Azure AD应用程序注册
- 配置API权限
- 创建客户端机密
- 正在收集所需凭据
2.环境配置
复制示例环境文件并填写您的Azure凭据:
cp .env.example .env编辑 .env 并添加您的Azure凭据:
AZURE_TENANT_ID=your-tenant-id
AZURE_CLIENT_ID=your-app-client-id
AZURE_CLIENT_SECRET=your-client-secret3.安装依赖项
pip install -r requirements.txt4.运行服务器
python src/server.py服务器将于启动 http://0.0.0.0:8080
MCP资源
服务器公开这些MCP资源:
planner://plans/{plan_id}-获取计划详细信息planner://plans/{plan_id}/tasks-列出计划中的所有任务planner://plans/{plan_id}/buckets-列出计划中的所有桶
MCP工具
可用的任务管理工具:
创建任务
在Microsoft Planner中创建新任务。
参数:
plan_id(必填):计划IDtitle(必填):任务标题bucket_id(可选):存储桶IDdue_date(可选):截止日期(ISO 8601格式)priority(可选):优先级(0-10)assignee_ids(可选):要分配的用户ID列表
update_task
更新现有任务。
参数:
task_id(必填):任务IDtitle(可选):新标题bucket_id(可选):新桶IDpercent_complete(可选):进度百分比(0-100)priority(可选):新优先级due_date(可选):新的截止日期
删除任务
删除任务。
参数:
task_id(必填):任务ID
移动任务
将任务移动到另一个桶中。
参数:
task_id(必填):任务IDtarget_bucket_id(必填):目标存储桶ID
get_task_details
获取任务的详细信息。
参数:
task_id(必填):任务ID
CLI使用情况
该项目包括一个用于测试的CLI客户端:
# Get plan details
python cli/mcp_cli.py get-plan --plan-id YOUR_PLAN_ID
# List tasks in a plan
python cli/mcp_cli.py list-tasks --plan-id YOUR_PLAN_ID
# Create a new task
python cli/mcp_cli.py create-task --plan-id YOUR_PLAN_ID --title "New Task" --priority 5建筑
src/
├── server.py # FastMCP server entry point
├── config.py # Configuration management
├── auth/ # Microsoft authentication
├── graph/ # Graph API client
├── cache/ # Caching layer
├── tools/ # MCP tools
└── utils/ # Utilities and logging配置
所有配置都通过环境变量或 .env 文件:
| 变量 | 描述 | 默认值 |
|---|---|---|
AZURE_TENANT_ID | Azure AD租户ID | 必填 |
AZURE_CLIENT_ID | 应用客户端ID | 必填 |
AZURE_CLIENT_SECRET | 应用客户端机密 | 必填 |
MCP_SERVER_NAME | 服务器名称 | “Microsoft Planner MCP” |
MCP_SERVER_PORT | 服务器端口 | 8080 |
CACHE_TTL_SECONDS | 缓存TTL | 300 |
LOG_LEVEL | 日志记录级别 | 信息 |
安全
- 永不承诺
.env文件或机密到版本控制 - 定期轮换客户端机密
- 使用最低要求的API权限
- 在Azure AD中启用审核日志记录
故障排除
身份验证错误
- 在中验证Azure凭据
.env - 检查应用程序注册权限
- 确保获得管理员同意
API错误
- 检查网络连接
- 验证计划/任务ID是否正确
- 查看服务器日志以了解详细信息
许可证
MIT许可证
支持
有关问题和疑问,请在GitHub上打开问题。
