项目简介
这是一个基于Model Context Protocol (MCP) 构建的服务器端实现,专注于集成Microsoft Graph API。它允许兼容MCP的LLM客户端(如部分AI助手或自定义应用)通过标准化的协议调用Microsoft Graph的功能,从而让LLM能够访问和操作Microsoft 365、Azure AD (Entra ID) 等数据。
主要功能点
- Microsoft Graph API集成: 将Microsoft Graph API的核心功能封装为一个可调用的“工具”。
- LLM能力增强: 使LLM能够安全地查询用户信息、组成员、文件等Microsoft Graph暴露的数据。
- 标准协议支持: 使用MCP协议与LLM客户端通信,确保兼容性。
- 环境配置灵活: 支持通过环境变量配置Entra ID凭证、国家云环境等。
安装步骤
- Entra ID 应用注册: 在Azure门户中注册一个新的Entra ID 应用。
- 配置权限: 为注册的应用添加并授予至少 'User.Read.All' 的应用程序权限。根据需要访问的其他Graph API数据,可能需要授予更多权限。
- 创建客户端密钥: 为注册的应用生成一个新的客户端密钥(Client Secret)。记下租户ID (Tenant ID)、客户端ID (Client ID) 和客户端密钥 (Client Secret)。
- 构建项目: 使用.NET构建该服务器项目。
服务器配置
MCP服务器通常由MCP客户端启动和管理。你需要将服务器的启动信息配置到你的MCP客户端中(例如Claude Desktop的配置文件)。以下是一个配置示例,说明了如何配置该Graph API服务器:
客户端配置文件 (例如 'claude_desktop_config.json') 中的 'mcpServers' 部分:
{ "mcpServers": { "graphApi": { "command": "dotnet", // 启动命令,这里使用dotnet运行C#应用 "args": [ "run", // dotnet命令参数 "--project", // 指定项目文件路径 "path/to/folder/with/console_project", // 替换为你服务器项目的实际文件路径 "--no-build" // 不重新构建,直接运行 ], "env": { "TENANT_ID": "<你的Entra ID租户ID>", // 你的Entra ID 租户ID "CLIENT_ID": "<你的Entra ID客户端ID>", // 你的Entra ID 应用客户端ID "CLIENT_SECRET": "<你的Entra ID客户端密钥>", // 你的Entra ID 应用客户端密钥 "NATIONAL_CLOUD": "Global" // Microsoft Graph 环境,可选值:Global, US_GOV, US_GOV_DOD, China, Germany (默认为 Global) } } } }
将 'path/to/folder/with/console_project' 替换为你本地克隆仓库后,包含 'Program.cs' 的服务器项目文件夹的实际路径。同时替换 '<你的Entra ID租户ID>'、'<你的Entra ID客户端ID>' 和 '<你的Entra ID客户端密钥>' 为你在步骤3中获取的信息。
基本使用方法
- 启动MCP客户端: 启动你的MCP客户端(例如配置好的Claude Desktop)。如果配置正确,客户端会自动发现并启动该Graph API MCP服务器。
- 与LLM交互: 在客户端中开始与LLM聊天。LLM现在可以通过配置的Graph API工具访问Microsoft Graph数据。你可以尝试向LLM提问关于你租户中用户或群组的问题,LLM可能会调用Graph API工具来获取信息并回答你。
信息
分类
AI与计算