使用说明
微软365 MCP服务器
一个MCP服务器,允许Claude Desktop和Claude Code通过Microsoft Graph API访问您的Microsoft 365电子邮件(Outlook)和日历。
快速入门概述
设置此MCP服务器需要两个主要步骤:
- Azure AD安装程序 (5-10分钟,一次性):在Azure中创建应用程序注册以获取凭据
- 本地安装 (5分钟):安装服务器并配置Claude Desktop或Claude Code
下面详细介绍了这两种方法,并附有分步说明。
包含的工具
| 工具 | 说明 |
|---|---|
ms365_list_emails |
列出来自任何文件夹(收件箱、已发送等)的电子邮件 |
ms365_read_email |
按ID阅读完整的电子邮件内容 |
ms365_search_emails |
按关键字搜索电子邮件 |
ms365_send_email |
发送电子邮件 |
ms365_create_draft |
创建电子邮件草稿而不发送 |
ms365_reply_email |
回复电子邮件 |
ms365_list_mail_folders |
列出所有具有计数的邮件文件夹 |
ms365_list_events |
列出日期范围内的日历事件 |
ms365_get_event |
获取完整的活动详细信息 |
ms365_list_calendars |
列出所有日历 |
ms365_find_free_time |
查看人们的忙/闲 |
ms365_get_profile |
获取您的Microsoft 365个人资料 |
Azure AD安装程序(首先需要)
在使用此MCP服务器之前,您需要创建Azure AD应用程序注册以获取您的 MS_CLIENT_ID 和 MS_TENANT_ID这只需要做一次。
步骤1:创建应用程序注册
-
转到Azure门户
- 引导到 portal.azure.com
- 使用您的Microsoft 365帐户登录
-
访问应用程序注册
- 在顶部搜索栏中,键入“应用程序注册”
- 点击 应用程序注册 从搜索结果中
-
创建新注册
- 点击 “+新注册” 顶部的按钮
- 填写登记表:
- 名字:
MS365 MCP Server(或您喜欢的任何名称) - 支持的帐户类型:选择 “仅此组织目录中的帐户(单个租户)”
- 重定向URI:
- 选择 “移动和桌面应用程序” 从下拉列表中
- 输入:
http://localhost
- 名字:
- 点击 “注册” 按钮
-
复制您的凭据
- 您将被带到应用程序的概述页面
- 复制并保存这两个值(稍后您将需要它们):
- 应用程序(客户端)ID → 这是你的
MS_CLIENT_ID - 目录(租户)ID → 这是你的
MS_TENANT_ID
- 应用程序(客户端)ID → 这是你的
- 请将这些值放在手边——您将在下面的设置步骤中使用它们
第2步:设置API权限
-
导航到API权限
- 在左侧边栏中,单击 “API权限”
-
添加Microsoft图形权限
- 点击 “+添加权限”
- 选择 “Microsoft Graph”
- 选择 “委托权限”
-
添加所需权限
- 搜索并添加以下每个权限:
- ✅ 邮件。阅读 -阅读您的电子邮件
- ✅ 邮件。读写 -创建和管理电子邮件草稿
- ✅ 邮件。发送 -从您的帐户发送电子邮件
- ✅ 日历。阅读 -阅读您的日历
- ✅ 用户。阅读 -读取基本配置文件信息
- 点击 “添加权限” 完成后
- 搜索并添加以下每个权限:
-
授予管理员同意
- 返回API权限页,查找 “授予[您的组织]管理员同意” 按钮
- 如果你是管理员:单击按钮并确认
- 如果你不是管理员:请您的IT管理员同意
- 您应该在“状态”列下看到所有权限的绿色复选标记
步骤3:验证您的设置
当您具备以下条件时,您的Azure配置即告完成:
- ✅ 已复制应用程序(客户端)ID
- ✅ 目录(租户)ID已复制
- ✅ 已添加和授予的所有五个权限(绿色复选标记)
现在,您已准备好继续进行本地安装!
本地安装
先决条件
- Python 3.10+
- 已安装克劳德桌面或克劳德代码CLI
- MS_CLIENT_ID 和 MS_tennal_ID 从上面的Azure设置
步骤1:克隆或下载项目
复制 ms365-mcp-server 将文件夹移动到计算机上的永久位置:
# Example: put it in your home directory
cp -r ms365-mcp-server ~/ms365-mcp-server
cd ~/ms365-mcp-server
步骤2:创建虚拟环境并安装依赖项
cd ~/ms365-mcp-server
python3 -m venv .venv
source .venv/bin/activate # macOS/Linux
# .venv\Scripts\activate # Windows
pip install -r requirements.txt
步骤3:首次身份验证
手动运行服务器一次以完成交互式Microsoft登录:
cd ~/ms365-mcp-server
source .venv/bin/activate
export MS_CLIENT_ID="your-client-id-here"
export MS_TENANT_ID="your-tenant-id-here"
python server.py
这将打开您的浏览器进行Microsoft登录。登录并授予权限。
一旦完成,a token_cache.json 文件已创建——该文件存储您的刷新令牌,因此您不需要再次登录(令牌自动续订约90天)。
按 Ctrl+C 登录成功后停止服务器。
步骤4:配置Claude桌面
打开Claude Desktop的配置文件:
重要:使用 MS_CLIENT_ID 和 MS_TENANT_ID 您是从上面的Azure设置中复制的。
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - 视窗:
%APPDATA%\Claude\claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
添加MCP服务器配置。将路径和凭据替换为您自己的:
{
"mcpServers": {
"ms365": {
"command": "/Users/YOURUSER/ms365-mcp-server/.venv/bin/python",
"args": [
"/Users/YOURUSER/ms365-mcp-server/server.py"
],
"env": {
"MS_CLIENT_ID": "your-client-id-here",
"MS_TENANT_ID": "your-tenant-id-here"
}
}
}
}
重要提示: 在虚拟环境中使用Python二进制文件的完整路径,而不仅仅是
python3.
找到你的Python路径:
# macOS/Linux
source ~/ms365-mcp-server/.venv/bin/activate
which python
# Outputs something like: /Users/youruser/ms365-mcp-server/.venv/bin/python
# Windows
# Usually: C:\Users\YOURUSER\ms365-mcp-server\.venv\Scripts\python.exe
步骤5:重新启动克劳德桌面
完全退出Claude Desktop并重新打开它。您应该看到🔌 图标或开始对话时可用的MCP工具。
Claude代码(CLI)的设置
如果您使用的是Claude Code(命令行工具),请按照以下步骤操作:
先决条件
- Python 3.10+
- 已安装Claude Code CLI
- Azure AD应用程序注册(MS_CLIENT_ID和MS_TENANT_ID)
步骤1-3:与克劳德桌面相同
按照上述Claude Desktop设置中的步骤1-3进行操作(克隆、创建venv、首次身份验证)。
步骤4:配置克劳德代码MCP设置
打开或创建Claude Code MCP配置文件:
重要:使用 MS_CLIENT_ID 和 MS_TENANT_ID 您是从上面的Azure设置中复制的。
- macOS/Linux:
~/.claude/mcp_settings.json - 视窗:
%USERPROFILE%\.claude\mcp_settings.json
添加MCP服务器配置:
{
"mcpServers": {
"ms365": {
"command": "/Users/YOURUSER/ms365_mcp_server/.venv/bin/python",
"args": [
"/Users/YOURUSER/ms365_mcp_server/server.py"
],
"env": {
"MS_CLIENT_ID": "your-client-id-here",
"MS_TENANT_ID": "your-tenant-id-here"
}
}
}
}
重要提示: 在虚拟环境中使用Python二进制文件的完整路径。
步骤5:测试连接
启动Claude Code并验证MCP服务器是否已加载:
claude-code
ms365工具应该在您的会话中可用。
使用示例
配置后,只需与Claude Desktop自然聊天:
- “阅读我最新的电子邮件”
- “在我的电子邮件中搜索马里奥关于密尔沃基工具的消息”
- “这周我的日程表上有什么?”
- “找我和你之间的空闲时间mario@qualitara.com明天”
- “发送电子邮件至john@example.com主题为“会议记录”。.."
- “回复最后一封电子邮件,说我下午3点会到”
故障排除
“身份验证已过期”错误
删除 token_cache.json 并运行 python server.py 再次进行重新认证。
工具未显示在Claude Desktop中
- 检查配置文件路径是否正确
- 确保Python路径指向venv的Python(不是系统Python)
- 完全重新启动Claude Desktop(退出,而不仅仅是关闭窗口)
- 检查Claude Desktop日志是否有错误
Microsoft Graph的权限错误
返回到Azure AD应用程序注册→ API权限并确保 Mail.Read, Mail.ReadWrite, Mail.Send, Calendars.Read,以及 User.Read 均经管理员同意。
令牌缓存位置
这 token_cache.json 与保存在同一目录中 server.py。请确保该进程具有对该文件夹的写入权限。
文件结构
ms365-mcp-server/
├── server.py # Main MCP server with all tools
├── auth.py # MSAL authentication (token acquire + cache)
├── graph_client.py # Microsoft Graph API client
├── requirements.txt # Python dependencies
├── token_cache.json # Auto-generated after first login (DO NOT COMMIT)
└── README.md # This file
安全说明
- 不需要客户机密。 这使用了SOAP
PublicClientApplication使用交互式身份验证——微软推荐的桌面/CLI应用程序方法。 token_cache.json包含您的刷新令牌。把它当作密码。不要将其提交给版本控制。- 刷新令牌每次使用会自动更新约90天。
