微软OAuth认证服务器

一个使用微软OAuth(v2.0)进行用户认证的MCP服务器示例,集成了微软Graph API,支持用户资料获取、邮件管理、日历事件操作等功能。

  • by MindForgeCollective
  • Python
  • 混合部署
  • 更新于
在 GitHub 查看 mindforgecollective/mcp_server_graphapi

使用说明

具有Microsoft OAuth身份验证的简单MCP服务器

使用Microsoft OAuth(v2.0)进行用户身份验证的MCP服务器示例。它演示了OAuth集成的基本组件,以及基于Microsoft Graph API的各种工具。

概述

此演示将指导您通过以下方式设置服务器:

  • 针对Microsoft Azure AD的OAuth2授权流(v2.0端点)

  • 工具用于:

    • 正在检索经过身份验证的用户的Microsoft Graph配置文件
    • 阅读和发送电子邮件
    • 创建、读取、更新和删除日历事件
    • 检查团队可用性(忙/闲)

先决条件

  1. 在Azure AD中注册应用程序:

    • 登录Azure门户: https://portal.azure.com

    • 引导到 Azure Active Directory > 应用程序注册 > 新注册

      • 名字:例如,“简单MCP微软认证”
      • 支持的帐户类型:任何组织目录中的帐户(“多租户”)+个人Microsoft帐户
      • 重定向URI (网络): http://localhost:8000/microsoft/callback
    • 点击 注册 并记下:

      • 应用程序(客户端)ID
      • 目录(租户)ID
    • 首选 证书和秘密,创建一个 新客户机密,并注意它的价值。

  2. 确保你有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"

安装与运行

  1. 安装依赖项:
uv pip install .
  1. 启动服务器:
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

故障排除

  1. 验证环境变量:
    • MCP_MICROSOFT_MICROSOFT_CLIENT_ID
    • MCP_MICROSOFT_MICROSOFT_CLIENT_SECRET
    • MCP_MICROSOFT_MICROSOFT_CALLBACK_PATH
  2. 确保Azure AD中的回调URL与配置的URL完全匹配。
  3. 确认没有其他服务正在使用端口8000。
  4. 检查运输(sse 或 streamable-http)是有效的。
  5. 检查控制台日志中是否存在来自Microsoft Graph API响应的任何错误。

要测试服务器,您可以使用 检查员 或工具,如 curl /邮递员。