JBAssist-微软图形MCP服务器
与Windows兼容的模型上下文协议(MCP)服务器实现,将Claude Desktop连接到Microsoft Graph API。
概述
该项目提供了一个简单的MCP服务器,允许Claude通过Microsoft Graph API与Microsoft 365服务交互。该服务器提供了多种工具来访问Graph API的标准和测试版功能。
API标准工具
- 获取个人资料:获取当前用户的个人资料信息
- 接收电子邮件:从用户收件箱中检索最近的电子邮件
- 获取日历事件:获取指定天数内即将发生的日历事件
- 搜索用户:搜索组织中的用户
API测试版工具(扩展用户功能)
- 获得增强的配置文件:获取详细的用户资料信息,包括技能、兴趣、学校等
- 获得直接报告:获取用户的直接报告,其中包含详细信息
- 找经理:获取用户的经理信息
- 获得存在感:获取用户的在线状态信息(可用性状态)
- 获得团队合作:获取用户的Microsoft团队和团队活动
- 高级用户搜索:按技能、部门、职位搜索具有高级筛选功能的用户
先决条件
- 版本18或更高
- 克劳德桌面 支持MCP
- Windows 10或11
- 具有适当权限的Microsoft 365帐户
- 具有适当权限的Azure AD应用程序注册
设置
1.创建Azure AD应用程序注册
- 转到 Azure门户 并导航到Azure Active Directory
- 选择“应用程序注册”,然后单击“新注册”
- 为您的应用程序输入一个名称(例如“JBAssist”)
- 对于支持的帐户类型,选择“仅此组织目录中的帐户”
- 点击“注册”
- 注意“应用程序(客户端)ID”和“目录(租户)ID”值
- 在“证书和机密”下,创建一个新的客户端机密并记录其值
2.配置API权限
- 在您的应用程序注册中,转到“API权限”
- 点击“添加权限”并选择“Microsoft Graph”
- 选择“应用程序权限”(用于守护进程/服务访问)或“委托权限”(用户访问)
- 添加以下权限:
- 用户。阅读 - 邮件。阅读 - 日历。阅读 - 用户。读。全部(用于用户搜索) - 在场。读。全部(用于状态信息) - 团队成员。读。全部(供团队参考)
- 点击“添加权限”
- 单击“授予\[您的组织\]管理员同意”
3.克隆和配置存储库
- 克隆此存储库:
git clone https://github.com/JBAgent/JBAssist.git
cd JBAssist- 创建一个
.env文件基于.env.example模板:
cp .env.example .env- 编辑
.env包含Azure AD应用程序详细信息的文件:
TENANT_ID=your-tenant-id
CLIENT_ID=your-client-id
CLIENT_SECRET=your-client-secret
SCOPES=User.Read,Mail.Read,Calendars.Read,User.Read.All,Presence.Read.All,TeamMember.Read.All- 安装依赖项:
npm install- 构建项目:
npm run build使用Claude Desktop运行Microsoft图形服务器
- 首先,启动Claude Desktop
- 使用以下方法之一运行服务器:
- PowerShell:
.\run-graph-server.ps1- 命令提示符:
run-graph-server.bat- 或者直接使用Node.js:
npm start- 在Claude Desktop中,单击拼图图标(🧩) 在右上角打开MCP服务器选择器
- 选择“添加MCP服务器”并输入
msgraph当系统提示输入服务器名称时
- 您应该看到Microsoft Graph服务器已成功连接的确认
使用Microsoft图形工具
连接后,您可以要求Claude使用自然语言的MS Graph工具,例如:
API标准示例
- “你能给我看看我的个人资料吗?”
- “我最近的电子邮件是什么?”
- “显示我下周的日历事件。”
- “你能搜索名为约翰的用户吗?”
API测试版示例
- “通过技能和兴趣获得我的强化个人资料。”
- “我的直接下属是谁?”
- “谁是我的经理?”
- “我目前的状态是什么?”
- “显示我的团队信息。”
- “搜索营销部门中具有SQL技能的用户。”
API Beta版功能
Microsoft Graph测试版API提供了对仍在开发中的功能的访问。这些功能可能会发生变化,可能不稳定。API测试版提供了对以下内容的访问:
增强的用户配置文件
API测试版提供了扩展的用户配置文件信息,包括:
- 技能和专业知识
- 兴趣
- 过去的项目
- 教育史
- 职责
- 关于我的信息
- 生日
- 首选语言
- 备选电子邮件地址
组织关系
- 直接报告层次结构
- 经理信息
- 团队成员资格
- 团队存在和状态
状态信息
- 用户可用性状态
- 活动信息
- 状态消息
- 团队存在信息
高级搜索
- 按技能搜索
- 按部门搜索
- 按职位搜索
- 使用多个过滤器的组合搜索
故障排除
如果您遇到问题:
- 身份验证错误:在中仔细检查您的Azure AD应用凭据
.env文件
- 权限错误:确保您的Azure AD应用程序具有授予的适当权限
- 连接错误:确保在Claude Desktop提示MCP权限时,您已单击“允许”按钮
- 日志文件:检查
graph-server.log详细错误信息文件
- 路径问题:确保Node.js和npm在系统的PATH变量中
- Windows中的权限错误:尝试以管理员身份运行命令提示符或PowerShell
- API测试版错误:请记住,测试版API端点可能会发生变化或行为与文档中的不同
发展
要修改服务器或添加新功能,请执行以下操作:
- 编辑中的文件
src目录 - 在中添加新工具
src/index.ts遵循现有模式 - 重建与
npm run build - 重新启动服务器
添加新的API测试版功能
添加新的API测试版功能时:
- 参考 Microsoft Graph测试版API文档
- 使用
graphBetaClientAPI测试版调用的实例 - 彻底测试,因为beta API可能会发生变化
- 为测试版功能添加适当的错误处理
- 记录任何限制或已知问题
其他Microsoft图形端点
此服务器提供基本功能,但Microsoft Graph提供更多端点。以下是您可以添加的一些示例:
- OneNote访问
- SharePoint文档访问
- 团队消息访问
- OneDrive文件访问
- 任务管理
请参阅 Microsoft Graph文档 更多端点。
许可证
麻省理工学院
致谢
该项目基于 Windows MCP天气示例 并已适应与Microsoft Graph配合使用。
