使用说明
具有Microsoft OAuth身份验证的简单MCP服务器
使用Microsoft OAuth(v2.0)进行用户身份验证的MCP服务器示例。它演示了OAuth集成的基本组件,以及基于Microsoft Graph API的各种工具。
概述
此演示将指导您通过以下方式设置服务器:
-
针对Microsoft Azure AD的OAuth2授权流(v2.0端点)
-
工具用于:
- 正在检索经过身份验证的用户的Microsoft Graph配置文件
- 阅读和发送电子邮件
- 创建、读取、更新和删除日历事件
- 检查团队可用性(忙/闲)
先决条件
-
在Azure AD中注册应用程序:
-
登录Azure门户: https://portal.azure.com
-
引导到 Azure Active Directory > 应用程序注册 > 新注册
- 名字:例如,“简单MCP微软认证”
- 支持的帐户类型:任何组织目录中的帐户(“多租户”)+个人Microsoft帐户
- 重定向URI (网络):
http://localhost:8000/microsoft/callback
-
点击 注册 并记下:
- 应用程序(客户端)ID
- 目录(租户)ID
-
首选 证书和秘密,创建一个 新客户机密,并注意它的价值。
-
-
确保你有Python 3.9+,或者
poetry或pip安装。
所需的环境变量
在运行服务器之前,请设置以下环境变量:
export MCP_MICROSOFT_MICROSOFT_CLIENT_ID="your-application-client-id"
export MCP_MICROSOFT_MICROSOFT_CLIENT_SECRET="your-client-secret"
export MCP_MICROSOFT_MICROSOFT_CALLBACK_PATH="http://localhost:8000/microsoft/callback"
安装与运行
- 安装依赖项:
uv pip install .
- 启动服务器:
uv run mcp_microsoft_auth --host localhost --port 8000 --transport streamable-http
如果 --transport 未指定,将使用sse作为默认值
端点
- SSE endpoint: `/sse`
- Streamable HTTP endpoint: `/mcp`
可用工具
| 工具 | 说明 | 所需范围 |
|---|---|---|
get_user_profile |
返回经过身份验证的用户的Microsoft Graph配置文件 | user |
list_emails |
从收件箱读取最新电子邮件(count 参数) |
mail.read |
send_email |
发送电子邮件(to, subject, body) |
mail.send |
create_meeting |
创建日历事件(subject, attendees, start, duration) |
calendars.readwrite |
list_events |
列出即将发生的事件(from_now_minutes, next_hours, max_results) |
calendars.read |
get_user_schedule |
检索其他用户的日历(user_email, start_datetime, end_datetime) |
calendars.read.shared |
get_team_availability |
返回与会者列表的忙/闲可用性 | calendars.read |
update_event |
更新现有事件(event_id, updates) |
calendars.readwrite |
delete_event |
删除事件(event_id) |
calendars.readwrite |
故障排除
- 验证环境变量:
MCP_MICROSOFT_MICROSOFT_CLIENT_IDMCP_MICROSOFT_MICROSOFT_CLIENT_SECRETMCP_MICROSOFT_MICROSOFT_CALLBACK_PATH
- 确保Azure AD中的回调URL与配置的URL完全匹配。
- 确认没有其他服务正在使用端口8000。
- 检查运输(
sse或streamable-http)是有效的。 - 检查控制台日志中是否存在来自Microsoft Graph API响应的任何错误。
要测试服务器,您可以使用 检查员 或工具,如 curl /邮递员。
