使用说明
Microsoft Graph MCP服务器
一种非常简单的方法来给你的人工智能助手 微软365内部的超能力.
这个项目将Microsoft Graph变成了一个易于使用的MCP服务器,这样Claude、您的自定义代理或任何MCP客户端都可以立即与您的 电子邮件、日历和联系人.
没有Azure设置。没有图形API知识。只需安装→ 登录→ 您的AI将成为Microsoft 365高级用户。
⭐ 为什么开发者喜欢这个项目
- 你的人工智能可以自然地阅读、搜索、回复和组织电子邮件
- 批量电子邮件操作 --在一次通话中删除或存档多封电子邮件(不再是一封接一封!)
- 它通过真实的可用性检查来理解和管理您的日历
- 它使用简单的MCP工具处理触点
- 它使用微软的设备登录安全地工作——没有秘密,没有风险
- 它只适用于零配置的本地机器
这是 最快的方法 让你的AI代理 实际上很有用 在工作中。
如果此项目为您节省了时间:
👉 请在回购中加星——这真的很有帮助! ⭐
🚀 快速开始
1.安装
pip install -r requirements.txt
多模式支持:图像压缩需要
Pillow>=10.0.0(包含在requirements.txt中)。如果未安装,则返回的图像将不进行压缩。
或者:
pip install uv
uvx .
2.链接到克劳德桌面
打开:
%APPDATA%/Claude/claude_desktop_config.json
选择以下配置方法之一:
方法1:使用 uv run (推荐)
{
"mcpServers": {
"microsoft-graph": {
"command": "uv",
"args": ["run", "--directory", "<path-to-your-local-repo>", "microsoft-graph-mcp-server"]
}
}
}
推荐:此方法直接使用您的本地代码,因此更改无需重新安装即可立即生效。
方法2:使用 uvx (本地路径)
{
"mcpServers": {
"microsoft-graph": {
"command": "uvx",
"args": ["--from", "<path-to-your-local-repo>", "microsoft-graph-mcp-server"]
}
}
}
备注:
- 第一次或代码更改后,运行:
uv tool install --force <path-to-your-local-repo>uvx缓存该包,因此您需要重新安装以获取代码更新
方法3:使用 python -m
{
"mcpServers": {
"microsoft-graph": {
"command": "py",
"args": ["-m", "microsoft_graph_mcp_server"]
}
}
}
备注:
- 视窗:使用
py(Python启动器)自动查找您的Python安装- Linux/Mac:替换
py和python或python3- 从项目目录运行或通过安装
pip install -e .
3.登录
在Claude中,只需问:“请帮我登录Microsoft Graph”
克劳德将致电:
{
"tool": "auth",
"action": "start"
}
点击链接→ 输入代码→ 登录。
那就告诉克劳德:“我已完成浏览器登录”
然后克劳德将完成:
{
"tool": "auth",
"action": "complete"
}
你已连接。您的AI助手现在可以访问Microsoft 365。
🌟 你的AI能做什么
下面是 友好但完整 功能概述——旨在给潜在用户留下深刻印象,帮助人们一目了然地了解项目的强大功能。
🔧 配置AI助手(推荐)
将系统提示复制到您的AI助手配置中:
适用于克劳德桌面,添加到您的项目或自定义说明中。这提供了:
- 智能工作流选择(对于简单的电子邮件,AI自动选择快速模式,对于复杂的电子邮件,自动选择完整模式)
- 电子邮件的HTML格式规则
- 日历冲突检测意识
- 使用MCP工具的最佳实践
对于其他AI助手,将SYSTEM_PROMPT.md内容用作系统指令。
📧 电子邮件超级大国
您的AI可以:
- 按发件人、主题、正文或自然过滤器搜索电子邮件
- 专注收件箱支持 -默认情况下,搜索“聚焦”电子邮件,并可选择搜索“其他”或全部
- 打开完整的电子邮件内容,包括附件
- 下载附件 到工作区进行LLM分析(Excel、PDF、图像等)
- 多模态LLM的图像分析 -在线查看和分析图像附件(屏幕截图、照片、图表)
- 使用HTML回复、转发和撰写新邮件
- 移动、删除、存档或批量管理邮件
- 使用快速本地缓存浏览电子邮件
- 按时间范围筛选(“今天”、“本周”、“过去30天”)
- 处理文件夹:创建、重命名、删除、移动
示例
{
"tool": "search_emails",
"query": "invoices",
"search_type": "subject"
}
附件下载示例
{
"tool": "get_email_content",
"cache_number": 1,
"download_attachments": true
}
附件保存到 workspace/attachments 并且可以由其他工具(文件读取器、图像查看器等)进行处理。
聚焦收件箱示例
{
"tool": "search_emails",
"query": "newsletter",
"inference_classification": "other"
}
📅 日历智能
您的AI可以:
- 搜索所有即将举行的活动
- 创建或修改会议
- 取消活动并通知与会者
- 接受或拒绝邀请
- 检查多个与会者的可用性
- 创建重复事件
- 自动处理时区
示例
{
"tool": "manage_event_as_organizer",
"action": "create",
"subject": "Project Sync",
"start": "2026-02-26T14:00",
"end": "2026-02-26T14:30"
}
👥 联系人搜索
- 通过姓名或电子邮件查找组织中的人员
- 需要时回退到模糊匹配
- 登录后立即生效
{
"tool": "search_contacts",
"query": "john li"
}
🧠 为什么这个项目存在
现代人工智能助手需要与你的真实工作工具——电子邮件、会议、文件——进行交互。
Microsoft Graph提供了所有这些功能,但是:
- API很复杂
- 身份验证令人望而生畏
- Azure应用程序注册很痛苦
- 开发人员想要简单,而不是官僚主义
此MCP服务器解决了所有问题:
- 零Azure设置
- 零图API学习曲线
- 零复杂性
只需安装即可。
🔥 真实世界的用例和人工智能友好的工作流程
这些实际例子准确地展示了潜在用户 为什么这个项目很重要,工作流程专为人工智能使用而设计——简单、可预测、可靠。
用例:“自动报告代理”
你的人工智能可以扫描你的收件箱和日历,然后生成每周摘要报告。
- 提取上周的电子邮件
- 提取关键事件
- 确定行动项目
- 起草一封干净的每周摘要电子邮件
- 将其发送给您的团队
工作流程
- 让克劳德搜索电子邮件:“查找过去7天的电子邮件”
克劳德将致电:
{
"tool": "search_emails",
"days": 7
}
- 让克劳德浏览结果:“为我分析电子邮件”
克劳德将致电:
{
"tool": "browse_email_cache",
"page_number": 1,
"mode": "llm"
}
退货:电子邮件摘要,包括发件人、主题、日期和缓存号,便于参考。在 llm 模式下,克劳德每页收到更多电子邮件(默认为20封),以便进行高效分析。
- 让克劳德搜索事件:“查找上周的日历事件”
克劳德将致电:
{
"tool": "search_events",
"time_range": "last_week"
}
- 请克劳德发送摘要电子邮件:“向团队发送每周总结”
克劳德将致电:
{
"tool": "send_email",
"action": "send_new",
"to": ["team@example.com"],
"subject": "Weekly Summary",
"htmlbody": "<p>Here's the update...</p>"
}
用例:批量BCC转发
您的AI可以搜索电子邮件,并使用CSV文件通过BCC将其转发给多个收件人。
工作流程
- 让克劳德按主题搜索电子邮件:“查找主题为‘公司公告’的电子邮件”
克劳德将致电:
{
"tool": "search_emails",
"query": "Company Announcement",
"search_type": "subject"
}
- 让克劳德浏览电子邮件缓存:“显示主题为‘公司公告’的电子邮件”
克劳德将致电:
{
"tool": "browse_email_cache",
"page_number": 1,
"mode": "llm"
}
- 请Claude验证电子邮件内容:“显示电子邮件号码1”
克劳德将致电:
{
"tool": "get_email_content",
"cache_number": 1
}
- 要求Claude使用CSV通过BCC批量转发:“将1号电子邮件转发给CSV文件中的所有收件人”
克劳德将致电:
{
"tool": "send_email",
"action": "forward",
"cache_number": 1,
"bcc_csv_file": "C:/path/to/recipients.csv",
"subject": "Fwd: Company Announcement",
"htmlbody": "<p>Please see the company announcement below.</p>"
}
备注CSV文件应包含一列,标题为“电子邮件”,其中包含所有收件人的电子邮件地址。
用例:安排会议
您的AI可以通过Teams链接检查可用性并安排会议。
工作流程
- 让克劳德检查与会者的可用性:“查看3月1日约翰和简的空房情况”
克劳德将致电:
{
"tool": "check_attendee_availability",
"attendees": ["john@example.com", "jane@example.com"],
"date": "2026-03-01"
}
- 让克劳德安排一次会议:“安排3月1日下午2点与约翰和简会面30分钟”
克劳德将致电:
{
"tool": "manage_event_as_organizer",
"action": "create",
"subject": "Project Discussion",
"start": "2026-03-01T14:00",
"end": "2026-03-01T14:30",
"attendees": ["john@example.com", "jane@example.com"],
"team": true
}
备注:The "team": true 参数将团队会议链接添加到事件中。
用例:清理收件箱
您的AI可以帮助您在一次操作中批量删除或存档多封电子邮件。
工作流程
- 让克劳德搜索电子邮件:“查找来自的电子邮件newsletter@example.com"
克劳德将致电:
{
"tool": "search_emails",
"query": "newsletter@example.com",
"search_type": "sender"
}
- 让克劳德浏览结果:“显示这些电子邮件”
克劳德将致电:
{
"tool": "browse_email_cache",
"page_number": 1,
"mode": "llm"
}
- 让克劳德删除多封电子邮件:“删除电子邮件1、2、3、4和5”
克劳德将致电:
{
"tool": "manage_emails",
"action": "delete_multiple",
"cache_numbers": [1, 2, 3, 4, 5]
}
或者将其存档:“将电子邮件1到5存档”
克劳德将致电:
{
"tool": "manage_emails",
"action": "archive_multiple",
"cache_numbers": [1, 2, 3, 4, 5]
}
备注:所有电子邮件都在一次批处理中处理-高效快捷!
用例:下载并分析附件
你的人工智能可以下载电子邮件附件,并使用其他工具进行分析。
工作流程
- 让克劳德搜索带有附件的电子邮件:“查找带有Excel附件的电子邮件”
克劳德将致电:
{
"tool": "search_emails",
"query": "xlsx",
"search_type": "body"
}
- 让克劳德浏览结果:“显示这些电子邮件”
克劳德将致电:
{
"tool": "browse_email_cache",
"page_number": 1,
"mode": "llm"
}
退货:电子邮件摘要,附件信息(名称、大小、内容类型)可见。
- 让Claude下载附件:“从电子邮件1下载Excel附件”
克劳德将致电:
{
"tool": "get_email_content",
"cache_number": 1,
"download_attachments": true,
"attachment_names": ["report.xlsx"]
}
退货:电子邮件内容及其附件已保存到 workspace/attachments/report.xlsx
- 使用其他工具进行分析:“读取Excel文件并对其进行总结”
Claude现在可以使用文件读取工具来处理下载的附件。
主要特点:
- 下载前查看附件名称/类型(在browse_email_cache中)
- 仅下载特定附件
attachment_names参数 - 自定义下载路径
download_path参数 - 内联附件(嵌入图像)会自动跳过
用例:分析图像附件(多模式)
使用多模式LLM时,您的AI可以直接查看和分析图像附件。
工作流程
- 让克劳德搜索包含图像的电子邮件:“查找带有图像附件的电子邮件”
克劳德将致电:
{
"tool": "search_emails",
"days": 7
}
- 让克劳德浏览结果:“显示电子邮件”
克劳德将致电:
{
"tool": "browse_email_cache",
"page_number": 1,
"mode": "llm"
}
退货:显示附件类型的电子邮件摘要(例如。, contentType: image/png)
- 让克劳德查看带有图片的电子邮件:“显示带有图像的1号电子邮件”
克劳德将致电:
{
"tool": "get_email_content",
"cache_number": 1,
"return_html": true
}
退货:返回图像的电子邮件内容为 ImageContent 以便多模态LLM直接分析。
- 克劳德分析图像:“屏幕截图中有什么?”
Claude将描述它在图像中看到的内容——屏幕截图、图表、照片、图表等。
配置 (in .env):
MULTIMODAL_SUPPORTED=true
IMAGE_MAX_SIZE_KB=50
IMAGE_MAX_DIMENSION=1024
IMAGE_QUALITY=75
备注:图像会自动压缩以符合LLM API限制。
用户模式电子邮件浏览
供人类浏览 (当您想逐页查看电子邮件时):
- 让克劳德搜索电子邮件:“查找本周的电子邮件”
克劳德将致电:
{
"tool": "search_emails",
"time_range": "this_week"
}
- 让克劳德逐页浏览:“显示电子邮件的第一页”
克劳德将致电:
{
"tool": "browse_email_cache",
"page_number": 1,
"mode": "user"
}
退货:包含发件人、主题、日期和缓存号的电子邮件摘要。在 user 模式下,每页收到的电子邮件更少(默认为5封),便于人类阅读。
- 导航到下一页:“显示下一页”
克劳德将致电:
{
"tool": "browse_email_cache",
"page_number": 2,
"mode": "user"
}
- 查看特定电子邮件:“显示3号电子邮件”
克劳德将致电:
{
"tool": "get_email_content",
"cache_number": 3
}
- 请克劳德回复电子邮件:“回复3号电子邮件说谢谢”
克劳德将致电:
{
"tool": "send_email",
"action": "reply",
"cache_number": 3,
"htmlbody": "<p>Thank you!</p>"
}
关键区别:使用 "mode": "user" 当你想手动逐页浏览电子邮件时,页面尺寸更小,更容易让人阅读。
电子邮件工作流(LLM模式)
- 让克劳德搜索电子邮件:“查找有关预算的电子邮件”
克劳德将致电:
{
"tool": "search_emails",
"query": "budget"
}
- 让克劳德浏览结果:“显示预算电子邮件”
克劳德将致电:
{
"tool": "browse_email_cache",
"page_number": 1,
"mode": "llm"
}
退货:电子邮件摘要,包括发件人、主题、日期和缓存号,便于参考。在 llm 模式下,克劳德每页收到更多电子邮件(默认为20封),以便进行高效分析。
- 让Claude查看特定电子邮件:“显示第二封电子邮件”
克劳德将致电:
{
"tool": "get_email_content",
"cache_number": 2
}
- 请克劳德回复:“回复此电子邮件说它看起来不错”
克劳德将致电:
{
"tool": "send_email",
"action": "reply",
"cache_number": 2,
"htmlbody": "<p>Looks good!</p>"
}
日历工作流
- 让克劳德搜索事件:“查找本周的日历事件”
克劳德将致电:
{
"tool": "search_events",
"time_range": "this_week"
}
- 让Claude浏览活动:“显示事件的第一页”
克劳德将致电:
{
"tool": "browse_events",
"page_number": 1,
"mode": "user"
}
- 请Claude查看活动详情:“显示事件编号1”
克劳德将致电:
{
"tool": "get_event_detail",
"cache_number": 1
}
- 请克劳德对事件作出回应:“接受事件编号1”
克劳德将致电:
{
"tool": "manage_event_as_attendee",
"action": "accept",
"cache_number": 1
}
🙌 您想支持该项目吗?
如果这对你有帮助, 请考虑在存储库中突出显示.
它激励了持续的开发,并帮助其他人发现该工具。
� 完整的MCP工具参考
以下是所有可用MCP工具的完整列表,并附有简单说明:
🔐 身份验证和设置
auth-管理Microsoft Graph身份验证(启动、完成、刷新、注销)user_settings-配置用户偏好,如时区、搜索天数和页面大小
📧 邮件管理
search_emails-按发件人、主题、正文或时间范围搜索或列出电子邮件。支持聚焦收件箱过滤(focused,other,all).使用end_date="now"从特定日期搜索到当前时间browse_email_cache-使用分页浏览缓存的电子邮件(人类用户模式,人工智能分析llm模式)get_email_content-获取完整的电子邮件内容,包括附件。使用return_html=true获取完整的HTML正文send_email-使用HTML支持发送新电子邮件、回复或转发manage_emails-移动、删除、存档、标记或分类电子邮件manage_mail_folder-创建、重命名、删除或移动电子邮件文件夹
📅 日历管理
search_events-按主题或组织者搜索或列出日历事件browse_events-使用分页浏览缓存的日历事件get_event_detail-获取特定事件的详细信息manage_event_as_organizer-为您自己的活动创建、更新、取消、转发或向与会者发送电子邮件manage_event_as_attendee-接受、拒绝、暂时接受、建议新时间、向与会者发送电子邮件或删除已取消的活动邀请check_attendee_availability-检查会议日程安排的可用性
👥 人员和联系人
search_contacts-通过姓名或电子邮件查找组织中的人员
🔑 关键工作流模式
电子邮件工作流:
search_emails-将电子邮件加载到缓存中browse_email_cache-使用适当的模式浏览(llm对于AI,user人类)get_email_content-查看特定电子邮件详细信息send_email或manage_emails-采取行动
日历工作流:
search_events-将事件加载到缓存中browse_events-浏览事件get_event_detail-查看特定事件manage_event_as_attendee或manage_event_as_organizer-采取行动
身份验证工作流:
- 尝试
auth和refresh动作优先-如果经过身份验证,则继续 - 如果刷新失败(无令牌或已过期):
auth和start→ 获取验证URL和代码 - 在浏览器中打开URL,输入代码,完成Microsoft登录
auth和complete行动→ 身份验证已完成
注: 刷新令牌的有效期约为90天。始终尝试 refresh 首先,当需要进行身份验证时。
所有工具均遵循JSON格式 "tool": "tool_name" 作为第一个参数,使它们易于与Claude等人工智能助手一起使用。
