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

Office 365 MCP Server

MCP Server

@modelcontextprotocol/inspector

一个连接Claude与Microsoft 365服务的Office MCP服务器实现,提供邮件、日历、Teams、OneDrive/SharePoint等多种功能的集成与管理。

工具数

14

提示词数

0

GitHub Stars

14

资源数

0
日程管理JavaScriptClaude邮件管理Claude DesktopClaude

安装说明

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

作者 / 组织

hvkshetry

提供方

hvkshetry

最后核验

2026/5/17 20:20

运行时

Node.js

快速接入

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

命令预览

npx @modelcontextprotocol/inspector node index.js

详细介绍

Office MCP服务器

这是Office MCP(模型上下文协议)服务器的全面实现,通过Microsoft Graph API将Claude与Microsoft 365服务连接起来。

无头操作! 初始设置后,无需浏览器身份验证即可运行。自动令牌刷新和Windows任务计划程序支持不可见的后台操作。看 任务_时间表_SETUP.md Windows安装指南。
开发状态:该项目正在积极开发中,尚未投入生产。API、接口和功能可能会更改,恕不另行通知。请自行承担风险,仅用于评估和测试目的。不建议用于生产部署。

特性

  • 完成Microsoft 365集成:电子邮件、日历、团队、OneDrive/SharePoint、联系人、计划器、待办事项、组和目录
  • 整合工具架构:基于操作的路由减少了工具数量,实现了LLM上下文的高效使用
  • 无头操作:初始身份验证后不使用浏览器运行
  • 自动令牌管理:具有自动刷新功能的持久令牌存储
  • 共享邮箱支持:访问共享邮箱 .Shared 范围
  • 集中错误处理:具有针对Graph API错误的可操作提示的一致错误格式
  • 电子邮件附件处理:下载嵌入式附件并将SharePoint URL映射到本地路径
  • 高级电子邮件搜索:支持KQL和自动查询优化的统一搜索
  • 团队会议管理:访问成绩单、录音和人工智能见解
  • 文件管理:支持跨驱动器的完整OneDrive和SharePoint文件操作
  • 联系人管理:使用高级搜索对Outlook联系人进行完整的CRUD操作
  • 任务管理:Microsoft Planner和待办事项集成
  • 可配置路径:所有本地同步路径的环境变量

快速开始

先决条件

  • Node.js 16或更高版本
  • Microsoft 365帐户(个人或工作/学校)
  • Azure应用程序注册(见下文)

安装

  1. 克隆存储库:
git clone https://github.com/yourusername/office-mcp.git
cd office-mcp
  1. 安装依赖项:
npm install
  1. 复制环境模板:
cp .env.example .env
  1. 配置您的 .env 文件包含:

- Azure应用程序凭据(请参阅下面的Azure设置) - SharePoint/OneDrive同步的本地文件路径 - 可选设置

  1. 运行初始身份验证:
npm run auth-server
# Visit http://localhost:3000/auth and sign in
  1. 配置Claude桌面(请参阅下面的Claude桌面配置)

工具架构

服务器使用整合的工具设计,其中每个Microsoft 365域都作为单个工具公开 operation (以及可选 entity)路由。这最大限度地减少了LLM上下文开销,同时提供了完整的功能。

工具操作
system身份验证和服务器信息about, authenticate, check_status
mail电子邮件list, read, send, reply, draft, search, move, folder, rules, categories, focused
calendar日历事件list, get, create, update, delete, find_free_slots
teams_meeting团队会议create, update, cancel, find, list_transcripts, get_transcript, get_recordings
teams_channel团队频道list, create, get, update, delete, send_message, list_messages, list_members
teams_chat团队聊天list, create, get, send_message, list_messages, list_members
filesOneDrive/SharePointlist, get, search, upload, download, create_folder, delete, move, copy, share --所有操作都支持交叉驱动 driveId
search统一搜索跨邮件、文件、事件的基于关键字的搜索--返回 IDDriveID 取得可操作的结果
contactsOutlook联系人list, get, create, update, delete, search, list_folders
plannerMicrosoft Planner实体+操作: plan.list, task.create, bucket.get_tasks, user.lookup等等。
todo微软要做list_lists, create_list, list_tasks, create_task, update_task, list_checklist等等。
groupsM365组list, get, create, update, delete, list_members, add_member, remove_member, list_owners, get_drive, list_drives
directory用户目录lookup_user, get_profile, get_manager, get_reports, get_presence, search_users
notificationsWebhookscreate, list, renew, delete

错误处理

所有工具都用 safeTool() 其提供:

  • 一致的 isError: true 故障响应
  • 上下文标记的消息(例如。, [calendar.create] Error: ...)
  • 常见Graph API错误的可操作提示(401403404429)

Azure应用程序注册和配置

要使用此MCP服务器,您需要首先在Azure门户中注册和配置应用程序。以下步骤将引导您完成注册新应用程序、配置其权限和生成客户端密钥的过程。

应用注册

  1. 打开 Azure 门户 在浏览器中
  2. 使用Microsoft工作或个人帐户登录
  3. 搜索或点击“应用程序注册”
  4. 点击“新注册”
  5. 输入应用程序的名称,例如“Office MCP Server”
  6. 选择“任何组织目录中的帐户和个人Microsoft帐户”选项
  7. 在“重定向URI”部分,从下拉列表中选择“Web”并输入http://localhost:3000/auth/callback“在文本框中
  8. 点击“注册”
  9. 从应用程序设置页面的概述部分,复制“应用程序(客户端)ID”,并将其作为OFFICE_client_ID输入.env文件和claude-config-sample.json文件

应用程序权限

  1. 从Azure门户的应用程序设置页面中,选择“管理”部分下的“API权限”选项
  2. 点击“添加权限”
  3. 点击“Microsoft Graph”
  4. 选择“委派权限”
  5. 搜索并选中这些权限旁边的复选框:

- 离线访问 - 用户。阅读 - 用户。读写 - 用户。阅读基础。全部 - 邮件。读写 - 邮件。发送 - 邮件。读写。共享 - 邮件。发送。共享 - 邮箱设置。读写 - 日历。读写 - 联络。读写 - 文件夹。读写。全部 - 团队。阅读基础。全部 - 团队。创建 - 聊天。读写 - 频道消息。读。全部 - 频道消息。发送 - 在线会议记录。读。全部 - 在线会议。读写 - 任务。读写 - 集团。读。全部 - 目录。读。全部 - 在场。读写 - 地点。读。全部

  1. 点击“添加权限”

客户端密钥

  1. 在Azure门户的应用程序设置页面中,选择管理部分下的“证书和机密”选项
  2. 切换到“客户端机密”选项卡
  3. 点击“新客户机密”
  4. 输入描述,例如“客户端密码”
  5. 选择最长可能的过期时间
  6. 点击“添加”
  7. 复制secret值,并将其作为OFFICE_CLIENT_secret输入.env文件和claude-config-sample.json文件中

环境配置

必需变量

# Azure App Registration
OFFICE_CLIENT_ID=your-azure-app-client-id
OFFICE_CLIENT_SECRET=your-azure-app-client-secret
OFFICE_TENANT_ID=common

# Authentication
OFFICE_REDIRECT_URI=http://localhost:3000/auth/callback

可选变量

# Local file paths (customize to your system)
SHAREPOINT_SYNC_PATH=/path/to/your/sharepoint/sync
ONEDRIVE_SYNC_PATH=/path/to/your/onedrive/sync
TEMP_ATTACHMENTS_PATH=/path/to/temp/attachments
SHAREPOINT_SYMLINK_PATH=/path/to/sharepoint/symlink

# Server settings
USE_TEST_MODE=false
TRANSPORT_TYPE=stdio  # or 'http' for SSE headless mode
HTTP_PORT=3333
HTTP_HOST=127.0.0.1

Claude桌面配置

  1. 找到您的Claude Desktop配置文件:

- 窗户: %APPDATA%\Claude\claude_desktop_config.json - macOS: ~/Library/Application Support/Claude/claude_desktop_config.json - Linux: ~/.config/Claude/claude_desktop_config.json

  1. 添加MCP服务器配置:
{
  "mcpServers": {
    "office-mcp": {
      "command": "node",
      "args": ["/path/to/office-mcp/index.js"],
      "env": {
        "OFFICE_CLIENT_ID": "your-client-id",
        "OFFICE_CLIENT_SECRET": "your-client-secret",
        "SHAREPOINT_SYNC_PATH": "/path/to/sharepoint",
        "ONEDRIVE_SYNC_PATH": "/path/to/onedrive"
      }
    }
  }
}
  1. 重新启动克劳德桌面
  1. 在克劳德,使用 system 工具与 operation: "authenticate" 连接到Microsoft 365

测试

MCP检查员

使用MCP检查器直接测试服务器:

npx @modelcontextprotocol/inspector node index.js

测试模式

启用测试模式以在没有API调用的情况下使用模拟数据:

USE_TEST_MODE=true node index.js

单元测试

npm test

身份验证流程

  1. 启动身份验证服务器:

- 跑 ./start-auth-server.sh (或使用 npm run auth-server)

  1. 身份验证服务器在端口3000上运行,并处理OAuth回调
  2. 在克劳德,使用 system 工具与 operation: "authenticate" 获取身份验证URL
  3. 在浏览器中完成身份验证
  4. 代币存储在 ~/.office-mcp-tokens.json

无头操作

自动令牌刷新

初始身份验证后,服务器会自动刷新令牌,无需用户交互。

HTTP/SSE传输模式

对于无头环境,使用SSE传输:

TRANSPORT_TYPE=http HTTP_PORT=3333 node index.js

服务器暴露 /sse (GET)用于SSE连接和 /message (POST)用于客户端消息。

Windows服务(可选)

对于Windows后台操作:

  1. 完成初始身份验证
  2. 配置为Windows任务计划程序任务
  3. 在系统启动时不可见地运行

故障排除

常见问题

  1. 身份验证错误

- 确保Azure应用程序具有正确的权限 - 检查令牌文件是否存在: ~/.office-mcp-tokens.json - 验证重定向URI是否与Azure配置匹配

  1. 使用日期过滤器进行电子邮件搜索

- 经过日期过滤的搜索现在直接路由到$filter API以提高可靠性 - 使用通配符 * 适用于日期范围内的所有电子邮件 - 两者 startDateendDate 支持ISO格式(2025-08-27)或相关格式(7d/1w/1m/1y)

  1. 电子邮件附件问题

- 在中配置本地同步路径 .env - 确保临时目录具有写入权限 - 检查SharePoint同步是否处于活动状态

  1. API费率限制

- 服务器包括指数回退的自动重试 - 如果持续存在,请降低请求频率

  1. 权限错误

- 验证是否已授予所有必需的Graph API权限 - 某些权限可能需要管理员同意

安全注意事项

  • 安全令牌存储:使用原子写入以限制文件权限(0o600)存储令牌,以防止损坏
  • 无凭据记录:令牌内容从不记录;仅使用布尔型存在检查
  • 敏感数据补救:不记录电子邮件正文、收件人和搜索查询;带有查询参数的API URL在DEBUG_VERBOSE之后被选通
  • 环境变量:从不承诺 .env 文件
  • 客户秘密:定期轮换并在生产中使用Azure密钥库
  • 本地路径:使用环境变量而不是硬编码路径
  • 优雅地关闭:正确处理SIGTERM/SIGINT以终止清洁流程

贡献

欢迎投稿!拜托:

  1. 分叉存储库
  2. 创建要素分支
  3. 提交拉取请求

许可证

MIT许可证-有关详细信息,请参阅许可证文件

目录标签

目录标签

日程管理JavaScriptClaude邮件管理Microsoft365集成本地部署日历管理Teams会议管理文件管理

支持客户端

Claude DesktopClaude

接入字段

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

stdio

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

oauth

运行时(runtime,运行环境)

Node.js

来源包(packageName,安装包名)

@modelcontextprotocol/inspector

工具数量(toolCount,工具数)

14

资源数量(resourceCount,资源数)

0

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

0

权限和风险

stdiooauth部署方式未说明

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

安装前确认

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

来源信息

继续浏览同类 MCP