项目简介

这是一个基于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凭证、国家云环境等。

安装步骤

  1. Entra ID 应用注册: 在Azure门户中注册一个新的Entra ID 应用。
  2. 配置权限: 为注册的应用添加并授予至少 'User.Read.All' 的应用程序权限。根据需要访问的其他Graph API数据,可能需要授予更多权限。
  3. 创建客户端密钥: 为注册的应用生成一个新的客户端密钥(Client Secret)。记下租户ID (Tenant ID)、客户端ID (Client ID) 和客户端密钥 (Client Secret)。
  4. 构建项目: 使用.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中获取的信息。

基本使用方法

  1. 启动MCP客户端: 启动你的MCP客户端(例如配置好的Claude Desktop)。如果配置正确,客户端会自动发现并启动该Graph API MCP服务器。
  2. 与LLM交互: 在客户端中开始与LLM聊天。LLM现在可以通过配置的Graph API工具访问Microsoft Graph数据。你可以尝试向LLM提问关于你租户中用户或群组的问题,LLM可能会调用Graph API工具来获取信息并回答你。

信息

分类

AI与计算