用于 Microsoft Graph API 的 Model-context-protocol (MCP) 服务器,采用 C# 编写。
注册一个新的 Entra ID 应用程序,并添加至少 User.Read.All 应用权限,创建一个新的客户端密钥。
您还可以授予其他权限,这取决于您希望通过 Microsoft Graph API 向 AI 查询关于租户的信息。
我使用的是 Claude 桌面应用,但我认为您可以使用任何其他 MCP 客户端,包括 GitHub Copilot,只要它们允许添加本地 MCP 服务器。
打开并构建解决方案。
打开 claude_desktop_config.json 文件。在 Windows 上,该文件应位于 %APPDATA%\Claude\ 文件夹中。
添加 MCP 服务器。在 args 部分,指定项目文件夹的路径。别忘了在 env 部分设置 Entra ID 应用程序的详细信息,如租户 ID、客户端 ID 和客户端密钥。
默认情况下,使用 Microsoft Graph 全球服务。您可以通过修改 NATIONAL_CLOUD 环境变量来更改它。
NATIONAL_CLOUD 的可能值如下:
{
"mcpServers": {
"graphApi": {
"command": "dotnet",
"args": [
"run",
"--project",
"path/to/folder/with/console_project",
"--no-build"
],
"env": {
"TENANT_ID": "<tenant_id>",
"CLIENT_ID": "<client_id>",
"CLIENT_SECRET": "<client_secret>",
"NATIONAL_CLOUD": "Global"
}
}
}
}
当您打开 Claude 桌面应用时,MCP 服务器应该会被自动发现并运行。您可以开始新的聊天。
如果 Claude 桌面应用已经打开,您需要关闭(从系统托盘退出)并重新打开它。
如果有任何问题,您可以在 %APPDATA%\Claude\logs 中查看日志。
MCP 客户端允许您连接到 MCP 服务器。
通过 MCP 服务器提供的工具可以由 Claude AI(通过 Anthropic Claude API)或部署到 Azure OpenAI 服务的任何模型调用。
您需要在 AnthropicService.GetAnthropicApiKey() 方法中设置 Anthropic API 密钥。
private static string GetAnthropicApiKey()
{
return "<anthropic-api-key>";
}
对于 Azure OpenAI 服务,您需要
AZURE_OPENAI_API_KEY 环境变量或在 AzureOpenAIServiceGetOpenAIApiKey() 方法中指定密钥AZURE_OPENAI_ENDPOINT 环境变量或在 AzureOpenAIService.GetOpenAIEndpoint() 方法中指定终端节点