Token导航 LogoToken导航TokenDH.com
graph MCP logo
AI代理stdio官方级别未说明来源级核验

graph MCP

MCP Server

一个基于FastMCP框架的服务器,提供对Microsoft Graph API的安全认证访问,支持通过Azure AD进行OAuth2认证,适用于需要与Microsoft 365服务交互的AI助手场景。

工具数

0

提示词数

0

GitHub Stars

0

资源数

0
PythonAI代理工作流自动化

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

bcperry

提供方

bcperry

最后核验

2026/5/17 20:22

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

pip install -e .

详细介绍

Microsoft Graph MCP服务器

提供对Microsoft Graph API的身份验证访问的FastMCP服务器,可使用Azure Developer CLI(azd)部署到Azure应用程序服务。

此MCP服务器使AI助手能够通过使用Azure AD的安全、基于令牌的身份验证流,代表用户与Microsoft 365服务进行交互。

特性

  • Azure AD 身份验证:使用代表(OBO)流进行安全的OAuth2身份验证
  • Microsoft图形集成:访问用户配置文件、电子邮件和其他Microsoft 365资源
  • FastMCP框架:基于FastMCP构建,便于MCP服务器开发
  • Azure部署就绪:包括完整的基础设施代码和二头肌模板

可用工具

服务器公开了以下MCP工具:

  • get_user_info:从访问令牌声明中返回有关经过身份验证的Azure用户的信息
  • greet_user:从Microsoft Graph检索用户的个人资料并返回个性化问候语
  • display_access_token:为直接API调用返回用户的Graph API访问令牌
  • list_email_messages:电子邮件检索占位符(正在实施中)

建筑

服务器使用:

  • FastMCP 使用针对OAuth2流的Azure身份验证提供程序
  • 代表流动:将MCP连接令牌替换为Microsoft Graph令牌
  • Microsoft Graph SDK:用于类型安全的Graph API交互
  • 图形助手:自定义包装(src/graph_helpers/graph.py)用于Graph客户端管理

认证流程

  1. 客户端使用Azure AD进行身份验证并获取访问令牌
  2. 客户端使用访问令牌连接到MCP服务器
  3. 服务器使用验证令牌 AzureProvider
  4. 对于Graph API调用,服务器使用OBO流将令牌交换为Graph访问令牌
  5. 服务器代表用户进行经过身份验证的Graph API调用

先决条件

所需的环境变量

创建一个 .env 文件或设置以下环境变量:

AZURE_CLIENT_ID=
AZURE_CLIENT_SECRET=
AZURE_TENANT_ID=
AZURE_GRAPH_USER_SCOPES="User.Read Mail.Read"  # Space-separated scopes

Azure AD应用程序配置

您的Azure AD应用程序注册需要:

  1. API权限:

- Microsoft Graph>委派权限> User.Read - Microsoft Graph>委派权限> Mail.Read (如果使用电子邮件功能)

  1. 认证:

- 根据部署需要配置重定向URI - 在身份验证设置中启用“访问令牌”和“ID令牌”

  1. 公开API:

- 添加应用ID URI(例如。, api://) - 定义范围(例如。, read)那场比赛 required_scopesapp.py

  1. 证书和秘密:

- 创建客户端密钥并安全存储

用法

地方发展

  1. 克隆存储库
git clone 
cd graph_mcp
  1. 安装依赖项
pip install -e .
  1. 在中配置环境变量 .env
  1. 在本地运行服务器
python src/app.py

服务器将于启动 http://localhost:8000

部署到Azure

  1. 克隆仓库并安装AZD
  1. 登录到您的Azure帐户。
azd auth login
注意:如果使用政府云,您需要在登录前配置azd以使用该云
azd config set cloud.name AzureUSGovernment
azd auth login
  1. 运行以下命令以构建应用程序的可部署副本,将模板的基础架构配置到Azure,并将应用程序代码部署到新配置的资源。
azd up
注意:第一次运行会提示您 Enter a unique environment name: 这将用作将创建的用于保存所有Azure资源的资源组的前缀。此名称在您的Azure订阅中应该是唯一的。

此命令将提示您输入以下信息:

  • Azure Location:部署资源的Azure位置。
  • Azure Subscription:部署资源的Azure订阅。
注意:这可能需要一段时间才能完成,因为它执行三个命令: azd package (构建应用程序的可部署副本), azd provision (提供Azure资源),以及 azd deploy (部署应用程序代码)。在打包、配置和部署应用程序时,您将看到一个进度指示器。
  1. 然后更改app.py并运行 azd deploy 再次更新您的更改。

项目结构

graph_mcp/
├── src/
│   ├── app.py                  # Main FastMCP server with authentication
│   ├── requirements.txt        # Python dependencies
│   └── graph_helpers/
│       └── graph.py           # Microsoft Graph client wrapper
├── infra/
│   ├── main.bicep             # Main Bicep infrastructure template
│   ├── main.parameters.json   # Infrastructure parameters
│   └── resources.bicep        # Azure resources definition
├── azure.yaml                 # Azure Developer CLI configuration
├── pyproject.toml            # Python project configuration
└── README.md

应用服务定价

该模板使用Azure应用服务。您可以通过编辑选择不同的定价级别 /infra/resources.bicep:

  • 自由层(F1):最多10个应用程序,CPU/RAM有限-将第58行更改为 "F1"
  • 基本级别(B1):默认,适合开发- "B1" (当前设置)
  • 开发人员级别(D1):更多应用程序的折扣率- "D1"

请参阅 应用服务定价指南 了解详情。

添加更多工具

要使用其他Microsoft Graph功能扩展服务器,请执行以下操作:

  1. 在中添加新的工具功能 src/app.py 使用 @mcp.tool() 装饰器
  2. 使用 get_access_token() 检索经过身份验证的用户的令牌
  3. 呼叫 _get_graph_client(token) 获取经过身份验证的Graph客户端
  4. 使用Graph SDK方法与Microsoft 365服务交互

例子:

@mcp.tool()
async def get_calendar_events() -> dict:
    """Get the user's calendar events."""
    token = get_access_token()
    graph = await _get_graph_client(user_token=token)
    # Use graph.user_client.me.calendar.events.get() etc.
    ...

安全考虑

  • 安全地存储机密(在生产中使用Azure密钥库)
  • 为Graph API访问实现正确的范围验证
  • 对所有生产部署使用HTTPS
  • 遵循Graph API权限最小的原则
  • 定期轮换客户机密

故障排除

身份验证错误:验证您的Azure AD应用程序注册设置,并确保客户端ID、机密和租户ID正确。

图形API权限错误:检查您的应用程序注册是否具有所需的委托权限和管理员同意(如果需要)。

海外建筑运营管理局流程问题:确保 identifier_uriapp.py 与Azure AD应用程序的应用程序ID URI匹配。

资源

许可证

许可证 文件以获取详细信息。

目录标签

目录标签

PythonAI代理工作流自动化微软GraphAPI本地部署OAuth2认证Azure集成AI助手企业服务

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

token

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiotoken部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP