Token导航 LogoToken导航TokenDH.com
MCP Outlook Server logo
办公协作stdio官方级别未说明来源级核验

MCP Outlook Server

MCP Server

通过Microsoft Graph API发送Outlook邮件的MCP服务器,支持多租户配置和个人/组织账户两种认证方式。

工具数

0

提示词数

0

GitHub Stars

0

资源数

0
邮件服务PythonClaudeClaude DesktopClaudeCursor

安装说明

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

作者 / 组织

jayozer

提供方

jayozer

最后核验

2026/5/17 20:23

运行时

Python

快速接入

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

命令预览

python3 - <<'PY'

详细介绍

Agentbuilder Outlook MCP 服务器

![FastMCP Deployment](https://agentbuilder-outlook-mcp.fastmcp.app/mcp)

通过Microsoft Graph发送Outlook邮件的FastMCP服务器。此项目之所以存在,是因为Agent Builder的Outlook连接器不提供发送电子邮件的功能;MCP服务器通过提供一个单一的接口来填补这一缺失工具 send_outlook_mail 入口点,用于验证有效载荷、获取访问令牌并调用Graph(图API) sendMail 终端节点。

先决条件

  • Python 3.10及以上版本
  • 带有Microsoft Outlook/Graph账户的 Mail.Send 权限(委托令牌或应用程序注册)
  • uv (推荐)或 pip

安装

uv pip install .

环境变量

设置以下内容为 .env (从...创建 .env.example):

  • GRAPH_USER_ACCESS_TOKEN – 可选的委托承载令牌(例如,来自 Graph Explorer),用于快速测试。
  • GRAPH_DEFAULT_SENDER – 发件邮箱,例如。, user@outlook.com
  • GRAPH_TENANT_IDGRAPH_CLIENT_IDGRAPH_CLIENT_SECRET – 仅在应用仅凭客户端凭据授权流程中需要。

在运行之前加载它们:

set -a; source .env; set +a

本地使用

模拟运行(未发送邮件):

python3 - <<'PY'
from server import send_outlook_mail_impl

result = send_outlook_mail_impl(
    subject="Dry Run",
    body="Payload preview only.",
    to=["recipient@example.com"],
    dry_run=True,
)
print(result)
PY

发送实时消息(dry_run=False) 一旦配置确认无误。为了让客户端访问MCP工具:

fastmcp run server.py

远程部署

该服务器已部署在FastMCP上 https://agentbuilder-outlook-mcp.fastmcp.app/mcp使用此URL连接您的MCP兼容客户端(如Claude Desktop、Cursor等)。

在连接到远程服务器之前进行本地验证:

fastmcp run server.py

多租户配置

这台服务器支持 多租户使用 当调用时,每个用户需提供自己的Microsoft凭据 send_outlook_mail 工具。服务器本身不存储任何凭据——所有身份验证都是在每次请求时进行的。

两种认证方法

MCP服务器通过两种不同的身份验证流程,支持个人微软账户和组织账户:

方法1:个人Microsoft账户(@outlook.com、@hotmail.com、@live.com)

最适合用于: 个人用户、测试、个人电子邮件自动化

认证: 带有用户登录的委托权限

设置步骤:

  1. 首选 Microsoft Graph 探索器
  2. 使用您的个人微软帐户登录
  3. 运行任何查询(例如,GET /me)
  4. 格兰特 Mail.Send 当被提示时给予许可
  5. 点击 “访问令牌” 按制表键并复制令牌
  6. 在您的MCP客户端中使用该令牌:
send_outlook_mail(
    subject="Test Email",
    body="Hello from my personal account!",
    to=["recipient@example.com"],
    access_token="EwBIBMl6BAAU...",  # Your Graph Explorer token
    sender="your.personal@outlook.com"
)

令牌格式: 非JWT专有格式(以...开头 EwB...,没有点) 到期日: 约1小时(需手动刷新) 权限: 委托(以已登录用户的身份操作)

注: 个人帐户令牌使用微软专有的加密格式。这是正常的,并且与Graph API正常工作,尽管它们不是标准的JWT。

______________________________________________________________________

方法2:组织帐户(Microsoft 365 / Azure AD)

最适合用于: 生产应用、服务账户、自动化工作流

认证: 客户端凭据(仅限应用,无需用户登录)

先决条件:

  • 带有 Microsoft 365 的 Azure AD 租户
  • Exchange Online邮箱已配置
  • Azure AD 应用注册

设置步骤:AZURE_SETUP.md 翻译为中文是:“AZURE 设置指南.md” 或 “AZURE 配置说明.md”(具体翻译可能根据上下文有所调整,但基本意思是指向一个关于 Azure 设置或配置的 Markdown 文件) 以获取详细说明

快速概要:

  1. 创建Azure AD应用程序注册
  2. 添加 Mail.Send 应用程序权限
  3. 授予管理员同意
  4. 创建客户端密钥
  5. 在您的MCP客户端中使用凭据:
send_outlook_mail(
    subject="Automated Email",
    body="Sent via client credentials",
    to=["recipient@example.com"],
    tenant_id="your-tenant-id",
    client_id="your-client-id",
    client_secret="your-client-secret",
    sender="user@company.com"  # Must be valid organizational mailbox
)

令牌格式: 标准JWT(以...开头 eyJ...(由点分隔的)有3个部分 过期日期: 由服务器自动刷新 权限: 应用程序(应用独立运行,不作为用户)

______________________________________________________________________

对比表

功能个人账户组织账户
账户类型@outlook.com, @hotmail.com, @live.com@company.com(Microsoft 365)
认证授权(用户登录)应用程序(客户端凭据)
代币来源图形资源管理器Azure AD 应用注册
令牌格式专有(EwB...)JWT ( 翻译为中文是:)JSON Web Token ((一种用于在网络应用间安全传递信息的开放标准)eyJ...
代币有效期1小时自动续期
最适合/最适用于测试,个人使用生产,自动化
成本免费需要M365许可证(约6美元/月)
设置复杂性简单(2分钟)中等(15分钟)

______________________________________________________________________

单租户回退(可选)

为了向后兼容,如果未提供任何凭据参数,服务器将回退到使用环境变量:

  • GRAPH_TENANT_ID
  • GRAPH_CLIENT_ID
  • GRAPH_CLIENT_SECRET
  • GRAPH_DEFAULT_SENDER
  • GRAPH_USER_ACCESS_TOKEN

这允许运行一个单租户服务器,其中所有用户共享同一个Outlook账户。 不建议用于多租户部署。

测试

uv pip install .[dev]
pytest

单元测试涵盖了令牌获取和有效载荷构建。

部署说明

  • fastmcp.json 被配置为 fastmcp run 以及FastMCP云。
  • 目标平台上的机密信息应通过环境变量提供。
  • todo.md 对于剩余任务和部署检查清单。

目录标签

目录标签

邮件服务PythonClaude本地部署MicrosoftGraph自动化工具多租户支持Outlook集成

支持客户端

Claude DesktopClaudeCursor

接入字段

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

stdio

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

token

运行时(runtime,运行环境)

Python

部署方式(deploymentType,部署类型)

remote-capable

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

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

0

权限和风险

stdiotokenremote-capable

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

安装前确认

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

来源信息

继续浏览同类 MCP