🚀 Join Microsoft 365 MCP Server
The Ultimate AI-Powered Gateway to Microsoft 365
Der ultimative KI-gestützte Zugang zu Microsoft 365
A powerful Model Context Protocol (MCP) server enabling AI assistants to seamlessly interact with Microsoft 365 services through the Graph API.
Ein leistungsstarker Model Context Protocol (MCP) Server, der KI-Assistenten ermöglicht, nahtlos mit Microsoft 365-Diensten über die Graph API zu interagieren.
Overview • Quick Start • Features • Super Tools • Tools • Configuration • Security
______________________________________________________________________
📋 Table of Contents / 目录
- 概述 / 概述
- 快速入门/Schnellstart
- 特点 / 功能
- 超级工具/超级工具
- 工具类别/工具分类
- 智能发现系统
- 配置 / 配置
- 身份验证方法 / Authentication Methods
- 安全合规/安全合规
- API参考/API-参考
______________________________________________________________________
🌟 概述 / 概述
英语
这 加入Microsoft 365 MCP服务器 改变了AI助手与Microsoft 365的交互方式。它提供了一个 智能层 它理解上下文,从使用模式中学习,并无缝执行复杂的多步操作。
关键创新:
- 超级工具模式:将126多个单独的工具整合到11个统一的“超级工具”中,以便于LLM决策
- 微软365统一搜索:主要搜索工具,可搜索所有M365内容,并建议下一步使用的特定工具
- 双时区显示:显示所有日历事件和电子邮件的服务器本地时间和UTC
- 快速摘要列表:在回复顶部列出全面的概述列表,以确保没有遗漏任何项目
- 智能学习系统:根据使用模式进行调整和改进
- 只读模式:无需写入操作即可安全探索
德语
这 加入Microsoft 365 MCP服务器 它将彻底改变人工智能助理与Microsoft 365的交互方式。而不是简单的API包装,它提供了一个 智能层了解上下文,从使用模式中学习,并无缝执行复杂的多步骤操作。
重要创新:
- 超级工具Modus将126+个单独工具整合为11个统一的“超级工具”,以便更轻松地做出LLM决策
- 微软365统一搜索主要搜索工具,可搜索所有 M365 内容并建议特定工具供进一步使用
- 双时区显示显示所有日历日期和电子邮件的服务器本地时间和 UTC
- 快速概览列表答案开头的全面概述列表,以确保不会忽略任何项目
- 智能学习系统根据使用模式进行调整和改进
- 只读Modus安全探索,无需写入操作
为什么选择这个服务器?为什么选择这个服务器?
| 特性/功能 | 传统API/传统API | 加入MS365 MCP服务器 |
|---|---|---|
| context understanding / 背景理解❌ None / Keines | ✅ 深度语义理解(Deep Semantic Understanding) |
多步操作(Multi-Step Operations)❌ 手动编排(Manual Orchestration)✅ 自动链接/Automatic Chaining 学习系统 / Learning System❌ Static / Statisch | ✅ Adaptive learning from use 适应性学习 自然语言 / Natural Language❌ Not supported / 不支持✅ Ask questions naturally 自然地问问题 工具整合(Tool Consolidation)❌ 126+ 个别工具 / 126+ 个别工具 |✅ 11 超级工具 / 11 超级工具 | Timezone Display / 时区显示 |❌ 单一时区(Single Time Zone)✅ Local + UTC / Lokal + UTC | Result Overview / 结果概述❌ 只有详细/只有详细✅ Quick summary + details / 快速概述 + 详情 |
______________________________________________________________________
⚡ 快速入门/Schnellstart
先决条件 / Requirements
英语:
- 码头工人 和 Docker Compose
- Microsoft 365帐户(个人、工作或学校)
- Azure AD应用程序注册(用于生产用途)
德语:
- 码头工人 和 Docker Compose
- Microsoft 365 帐户(个人、商业或学校帐户)
- Azure AD 应用注册(用于生产部署)
🐳 Docker Deployment / Docker 部署
选项1:Docker编写(推荐/Empfohlen)
# 1. Create configuration file / Konfigurationsdatei erstellen
cp stack.env.example stack.env
# 2. Configure your Azure AD credentials in stack.env
# Konfigurieren Sie Ihre Azure AD-Anmeldedaten in stack.env
nano stack.env
# 3. Start the server / Server starten
docker compose up -d
# For standalone mode (without Traefik):
# Für Standalone-Modus (ohne Traefik):
docker compose --profile standalone up -d选项2:Docker运行
# Pull the image / Image herunterladen
docker pull aijoin/join-ms-365-mcp-server:latest
# Run with environment variables / Mit Umgebungsvariablen ausführen
docker run -d \
--name ms365-mcp \
-p 3000:3000 \
-e MS365_MCP_CLIENT_ID=your-client-id \
-e MS365_MCP_TENANT_ID=your-tenant-id \
-e MS365_MCP_USE_SUPER_TOOLS=true \
-v ./data:/app/data \
aijoin/join-ms-365-mcp-server:latest \
--http 3000 -vMCP客户端集成/MCP客户端集成
英语: 将您的AI助手连接到正在运行的服务器:
德语: 将 AI 助手连接到正在运行的服务器:
{
"mcpServers": {
"ms365": {
"url": "https://your-server.com/mcp",
"transportType": "streamable-http"
}
}
}第一次身份验证 / First Authentication
英语: 只需询问您的AI助手: _“让我登录到Microsoft 365”_ -服务器将引导您完成设备代码身份验证。
德语: 只要问你的AI助理: _“登录到 Microsoft 365”_ 服务器将引导您通过设备代码身份验证。
______________________________________________________________________
🎯 特点 / 功能
核心能力 / Core Capabilities
| 能力/功能 | 描述 |
|---|---|
| 11超级工具 | 整合的界面取代了126+个单独的工具 |
| 微软365统一搜索 | 所有M365内容的主要搜索工具 |
| 90+个人工具 | 全面覆盖Microsoft 365服务(经典模式) |
| 智能搜索 | 具有语义理解的跨产品搜索 |
| 深入研究 | 复杂问题的多步推理 |
| 学习系统 | 根据使用模式随着时间的推移而改进 |
| 双时区显示 | 服务器本地时间+所有日期/时间的UTC |
| 快速摘要列表 | 概述列表,以确保没有遗漏任何内容 |
| 下载链接 | 为文件生成直接下载链接 |
| Microsoft循环支持 | 循环文件检测和内容提取 |
| 只读模式 | 无需写入操作的安全探索 |
| 预设筛选 | 只加载您需要的工具 |
支持的 Microsoft 365 服务
📧 展望
- 电子邮件管理
- 文件夹组织/订单组织
- Attachments / 附件
- 草案 / Drafts
📅 日历
- 活动和会议/终点站和贝斯普雷琼根
- 日程安排/终止计划
- Recurring Events / 重复活动
- Meeting Time / 会议时间
📁 OneDrive
- 文件操作/日期操作
- 文件夹管理
- 分享/自由
- 下载/上传
💬 团队
- 聊天与消息/聊天与新闻
- 频道 / Channels
- 团队管理 / Team Management
- 成绩单/成绩单
🌐 SharePoint
- 网站和列表/网站和收听
- 文档库 / Document Libraries
- 网站搜索/类似网站
- 权限 / 权限
📊 Excel
- 工作表操作 / Worksheet Operations
- 距离操纵/贝雷伊奇操作
- 图表/图表
- 格式 / Formatting
✅ 任务
- 待办事项列表 / To-do lists
- 规划师任务/规划师Aufgaben
- 任务分配 / Task Assignment
- 到期日期 / Due Dates
📔 OneNote
- 笔记本
- Sections & Pages / 章节和页面
- Content Creation / 内容创作
- 搜索/搜索
🔄 微软循环
- 循环文件检测 / Loop File Detection
- 协作文件/协作文件
- 内容提取 / Content Extraction
- 流体格式解析/流体格式解析
______________________________________________________________________
🚀 超级工具/超级工具
英语
超级工具模式 将126多个单独的工具合并为11个统一的“超级工具”。每个超级工具都接受一个 action 参数来指定操作,使LLM更容易选择正确的工具。
启用超级工具模式:
# Via environment variable / Über Umgebungsvariable
MS365_MCP_USE_SUPER_TOOLS=true
# Or via Docker / Oder über Docker
docker run -d \
-e MS365_MCP_USE_SUPER_TOOLS=true \
aijoin/join-ms-365-mcp-server:latest \
--http 3000德语
超级工具Modus 将126+个单个工具合并为11个统一的“超级工具”。每个超级工具都接受一个 action指定操作的参数,这使得LLM更容易选择正确的工具。
启用超级工具模式:
# Über Umgebungsvariable
MS365_MCP_USE_SUPER_TOOLS=true
# Oder über Docker
docker run -d \
-e MS365_MCP_USE_SUPER_TOOLS=true \
aijoin/join-ms-365-mcp-server:latest \
--http 3000超级工具列表/超级工具列表
| # | Tool | Description / Beschreibung |
|---|---|---|
| 0 | search | 🔍 主要的 -跨电子邮件、日历、文件、SharePoint、团队的Microsoft 365统一搜索。返回结果并建议下一步使用哪些特定工具。 |
| 1 | email | 📧 统一的电子邮件操作:列表、获取、文件夹、附件、搜索、发送、回复、删除、移动 |
| 2 | calendar | 📅 日历操作:列表、获取、查看、日历、创建事件、更新事件、删除事件 |
| 3 | teams | 💬 团队,频道,聊天:列出团队,获取团队,频道、频道消息,聊天,聊天消息 |
| 4 | files | 📁 OneDrive文件:驱动器、列表、获取、下载、搜索、根 |
| 5 | tasks | ✅ 待办事项和计划:待办事项列表、待办事项任务、计划任务、创建待办事项、更新待办事项、删除待办事项 |
| 6 | contacts | 👥 联系人和用户:列出联系人、获取联系人、列出用户、当前用户 |
| 7 | meetings | 🎥 在线会议:列出会议、获取会议、记录、录音 |
| 8 | sharepoint | 🌐 SharePoint:搜索网站、获取网站、网站驱动器、网站列表 |
| 9 | notes | 📔 OneNote:笔记本、分区、页面、页面内容、搜索页面 |
| 10 | assistant | 🤖 智能操作:询问、搜索、我的一天、一周、人员信息、项目概述、跟进 |
Example Usage / 使用示例
英语:
{
"tool": "search",
"arguments": {
"query": "Project Alpha meeting notes",
"entityTypes": ["message", "event", "driveItem"],
"size": 10
}
}德语:
{
"tool": "search",
"arguments": {
"query": "Projekt Alpha Besprechungsnotizen",
"entityTypes": ["message", "event", "driveItem"],
"size": 10
}
}只读模式支持
英语: 所有超级工具都尊重 READ_ONLY 环境变量。启用只读模式时,写入操作(发送、创建、更新、删除)会自动被阻止,并显示清晰的错误消息。
德语: 所有超级工具都尊重 READ_ONLY 环境变量。写入操作(发送,创建,更新,删除)将在启用只读模式时自动阻止,并显示明确的错误消息。
# Enable read-only mode / Read-Only-Modus aktivieren
READ_ONLY=1
# or / oder
MS365_MCP_READ_ONLY=true______________________________________________________________________
🕐 Dual Time Zone Display 双时区显示
英语
现在显示所有日历事件和电子邮件 服务器本地时间和UTC 为了便于参考:
⏰ 10:30 (UTC: 09:30)特征:
- 服务器本地时间(主显示器)
- UTC时间(仅供参考)
- 组合显示格式:
HH:MM (UTC: HH:MM) - 结构化数据中的ISO 8601 UTC时间戳
德语
立即查看所有日历日期和电子邮件 服务器本地时间和UTC 简单参考:
⏰ 10:30 (UTC: 09:30)功能:
- 服务器本地时间(主要显示)
- UTC时间(参考)
- 组合显示格式 :
HH:MM (UTC: HH:MM) - 结构化数据中的ISO 8601 UTC时间戳
示例输出 / Example Output
日历活动/Kalendertens:
📅 Montag, 28.01.2026 (1 Termin)
──────────────────────────────────────────────────
💻 Kickoff-Briefing
⏰ 10:30 (UTC: 09:30) - 11:30 (UTC: 10:30) (1h)
📍 Conference Room A电子邮件:
📬 Project Update
⏰ 09:15 (UTC: 08:15)
👤 Von: Max Müller ______________________________________________________________________
📋 Quick Summary Lists / 快速概述列表
英语
确保 不会忽略任何日历事件或电子邮件,所有回复现在都包括 快速摘要列表 在顶部,然后是详细视图。
日历快速摘要:
📋 SCHNELLÜBERSICHT ALLER TERMINE:
────────────────────────────────────────────────────────────
1. 💻 28.01.2026 10:30 (UTC: 09:30) | Kickoff-Briefing
2. 📍 28.01.2026 14:00 (UTC: 13:00) | Team Meeting
3. 💻 28.01.2026 16:30 (UTC: 15:30) | Client Call
═══════════════════════════════════════════════════════════
📖 DETAILANSICHT:
═══════════════════════════════════════════════════════════电子邮件快速摘要:
📋 SCHNELLÜBERSICHT ALLER E-MAILS:
────────────────────────────────────────────────────────────
1. 📬📎 28.01.2026 09:15 (UTC: 08:15) | Max Müller | Projekt Update...
2. 📭 27.01.2026 18:30 (UTC: 17:30) | Anna Schmidt | Meeting Notizen
═══════════════════════════════════════════════════════════
📖 DETAILANSICHT:
═══════════════════════════════════════════════════════════德语
为了确保 不会忽略日历日期或电子邮件现在所有的答案都包含一个 快速列表 首先是细节视图。
日历快速概览:
📋 SCHNELLÜBERSICHT ALLER TERMINE:
────────────────────────────────────────────────────────────
1. 💻 28.01.2026 10:30 (UTC: 09:30) | Kickoff-Briefing
2. 📍 28.01.2026 14:00 (UTC: 13:00) | Team Meeting
3. 💻 28.01.2026 16:30 (UTC: 15:30) | Client Call
═══════════════════════════════════════════════════════════
📖 DETAILANSICHT:
═══════════════════════════════════════════════════════════电子邮件快速概述:
📋 SCHNELLÜBERSICHT ALLER E-MAILS:
────────────────────────────────────────────────────────────
1. 📬📎 28.01.2026 09:15 (UTC: 08:15) | Max Müller | Projekt Update...
2. 📭 27.01.2026 18:30 (UTC: 17:30) | Anna Schmidt | Meeting Notizen
═══════════════════════════════════════════════════════════
📖 DETAILANSICHT:
═══════════════════════════════════════════════════════════______________________________________________________________________
🛠 工具类别/工具分类
🔐 身份验证工具 / Authentication Tools
具有多帐户支持的安全身份验证。
| Tool | Description / Beschreibung | Notes / Hinweise |
|---|---|---|
login | 通过设备代码流进行身份验证 | Required before using other tools |
logout | 注销 Microsoft 帐户 | 清除缓存令牌 |
verify-login Check Authentication Status 非交互式验证 | ||
list-accounts | 列出缓存的 Microsoft 帐户 / 列出缓存的 Microsoft 帐户 | 多帐户支持 / 多帐户支持 |
select-account Switch between accounts 无缝账户切换 | ||
remove-account | Remove account from cache | 清理存储的凭据 |
📧 电子邮件和通信工具/电子邮件和通讯工具
完整的电子邮件管理和共享邮箱支持。
个人电子邮件 / Personal Email
| Tool | Description / Beschreibung | Parameters |
|---|---|---|
list-mail-messages | 列出带过滤的电子邮件 / 列出带过滤的电子邮件 | top, filter, search, orderby |
get-mail-message | 获取完整的电子邮件内容 | messageId |
send-mail | Send new email / 发送新电子邮件 | to, subject, body, attachments |
create-draft-email | Create email draft / 创建电子邮件草案 | to, subject, body |
delete-mail-message | 删除电子邮件 | messageId |
move-mail-message | 将电子邮件移动到Ordner verschieben中的文件夹/电子邮件 | messageId, folderId |
list-mail-folders | List all mail folders / 列出所有电子邮件文件夹 | - |
list-mail-folder-messages | 列出文件夹中的消息 | folderId |
超级工具: email
英语: 具有基于操作的界面的统一电子邮件操作:
{
"tool": "email",
"arguments": {
"action": "list",
"top": 25,
"search": "Project Alpha"
}
}可用操作: list, get, folders, child-folders, attachments, search, send, reply, delete, move
德语: 基于操作界面的统一电子邮件操作:
{
"tool": "email",
"arguments": {
"action": "list",
"top": 25,
"search": "Projekt Alpha"
}
}可用的动作 : list, get, folders, attachments, search, send, reply, delete, move
📅 日历工具/Kalender工具
完整的日历管理与会议安排。
| 工具 | 描述 | 参数 |
|---|---|---|
list-calendars | 列出所有日历 / 列出所有日历 | - |
list-calendar-events | 列出事件/终止事件 | top, filter, orderby |
get-calendar-event | 获取活动详情 / 查看日期详情 | eventId |
create-calendar-event 创建新事件 / Create new event subject, start, end, attendees | ||
update-calendar-event 更新事件/日期 eventId, updates | ||
delete-calendar-event 删除事件/日期 eventId | ||
get-calendar-view 获取日历视图 | startDateTime, endDateTime | |
find-meeting-times Find available slots 查找可用的时间段 attendees, duration |
超级工具: calendar
英语: 统一日历操作:
{
"tool": "calendar",
"arguments": {
"action": "view",
"startDateTime": "2026-01-28T00:00:00Z",
"endDateTime": "2026-01-29T00:00:00Z"
}
}可用操作: list, get, view, calendars, specific-calendar, create-event, update-event, delete-event
德语: 统一日历操作:
{
"tool": "calendar",
"arguments": {
"action": "view",
"startDateTime": "2026-01-28T00:00:00Z",
"endDateTime": "2026-01-29T00:00:00Z"
}
}可用的动作 : list, get, view, calendars, specific-calendar, create-event, update-event, delete-event
📁 文件和驱动器工具 / File & Drive Tools
具有上传/下载功能的OneDrive文件管理/OneDrive Dateiverwaltung mit上传/下载Funktionen。
| Tool | Description / Beschreibung | Parameters |
|---|---|---|
list-drives | 列出可用的驱动器 | - |
get-drive-root-item 获取驱动器根文件夹。 driveId | ||
list-folder-files | 列出文件夹中的文件 | folderId, top |
download-onedrive-file-content | 下载文件内容 | itemId |
upload-file-content | 更新文件内容 | itemId, content |
upload-new-file Upload new file 上传新文件 folderId, fileName, content | ||
delete-onedrive-file | Delete file / 删除文件 | itemId |
💬 Microsoft团队工具/Microsoft团队工具
注: 需要--org-modeflag(仅限工作/学校帐户)/Erfordert--org-mode旗帜(仅限商业/学校帐户)
| 工具 | 描述 | 参数 | |
|---|---|---|---|
list-chats | 列出所有聊天 / 列出所有聊天 | top | |
get-chat | 获取聊天详情/聊天详情abrufen | chatId | |
list-chat-messages | 列出聊天中的消息 | chatId, top | |
send-chat-message | 发送聊天消息 / 发送聊天消息 | chatId, content | |
list-joined-teams | 列出你所在的团队 | - | |
list-team-channels | 列出团队频道 / 列出团队频道 | teamId | |
list-channel-messages | 列出频道消息 | 列出频道消息 | teamId, channelId |
send-channel-message | Send channel message 发送频道消息 teamId, channelId, content |
🔍 搜索和发现工具/此类和发现工具
强大的跨产品搜索功能。
超级工具: search (Primary / Primary)
英语: 这 推荐的第一个工具 用于浏览Microsoft 365内容。在电子邮件、日历、文件、SharePoint、团队中搜索,并建议下一步使用哪些特定工具。
德语: 这 推荐的第一个工具 探索 Microsoft 365 内容。搜索电子邮件、日历、文件、SharePoint、团队,并建议下一步使用哪些特定工具。
{
"tool": "search",
"arguments": {
"query": "Project Alpha meeting notes",
"entityTypes": ["message", "event", "driveItem"],
"size": 10
}
}实体类型: message, event, driveItem, site, list, listItem, chatMessage, person
答复包括:
- 按实体类型分组的搜索结果
- 下一步的工具建议
- 总点击数
- 带有元数据的格式化结果
🧠 智能复合工具/智能一体化工具
这些 智能工具 自动链接多个API调用以回答复杂的上下文问题/Dise 智能工具 自动链接多个 API 调用以回答复杂的上下文问题。
| Tool | What It Does / Was es tut | Example Query / Beispielabfrage |
|---|---|---|
find-messages-with-person Find all Teams chats with a person | “我和约翰讨论了什么?” | |
find-emails-with-person | Find all email threads with a person / 查找与一个人相关的所有电子邮件主题 | “Show emails from Sarah” / “Show emails from Sarah” |
find-meetings-with-person 查找过去和未来的会议 / 查找过去和未来的会议 | “When did I meet with Mike?” | |
discover-project | 查找所有项目相关内容 / 查找所有项目相关内容 | “Everything about Project Apollo” |
discover-person 《约翰·史密斯是谁?》(Who is John Smith? | ||
get-my-week-summary 每周生产力摘要(英语:Weekly Productivity Digest)(Weekly Productivity Digest)(英语:Weekly Productivity Digest)(Weekly Productivity Digest)(英语:Weekly Productivity Digest)(Weekly Productivity Digest)(Weekly Productivity Digest)(Weekly Productivity Digest) |
______________________________________________________________________
🔬 智能发现系统
英语
该服务器具有复杂的 搜索优先策略 具有多个智能组件:
┌─────────────────────────────────────────────────────────────────┐
│ User Question │
└─────────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────┐
│ NLP Enhancer │
│ • Entity extraction • Intent classification │
│ • Synonym expansion • Query refinement │
└─────────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────┐
│ Search-First Strategy │
│ • Microsoft Search API (emails, files, chats, events) │
│ • Learning-informed entity type selection │
│ • Automatic query refinement if no results │
└─────────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────┐
│ Entity Extractor │
│ • Identifies sites, teams, users, files │
│ • Extracts relevant keywords │
│ • Maps to specific product queries │
└─────────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────┐
│ Data Aggregator │
│ • Deduplication • Relevance sorting │
│ • LLM-optimized formatting • Source tracking │
└─────────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────┐
│ Learning System │
│ • Records successful patterns • Updates confidence │
│ • Learns entity type preferences • User feedback │
└─────────────────────────────────────────────────────────────────┘德语
服务器具有一个复杂的 搜索第一策略 多个智能组件:
┌─────────────────────────────────────────────────────────────────┐
│ Benutzerfrage │
└─────────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────┐
│ NLP Enhancer │
│ • Entitäts-Extraktion • Intent-Klassifizierung │
│ • Synonym-Erweiterung • Abfrage-Verfeinerung │
└─────────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────┐
│ Search-First-Strategie │
│ • Microsoft Search API (E-Mails, Dateien, Chats, Termine) │
│ • Lernbasierte Entitätstyp-Auswahl │
│ • Automatische Abfrage-Verfeinerung bei keinen Ergebnissen │
└─────────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────┐
│ Entity Extractor │
│ • Identifiziert Websites, Teams, Benutzer, Dateien │
│ • Extrahiert relevante Schlüsselwörter │
│ • Mappt auf spezifische Produktabfragen │
└─────────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────┐
│ Data Aggregator │
│ • Deduplizierung • Relevanz-Sortierung │
│ • LLM-optimierte Formatierung • Quellen-Tracking │
└─────────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────┐
│ Lernsystem │
│ • Zeichnet erfolgreiche Muster auf • Aktualisiert Konfidenz │
│ • Lernt Entitätstyp-Präferenzen • Benutzer-Feedback │
└─────────────────────────────────────────────────────────────────┘______________________________________________________________________
⚙ 配置 / 配置
Docker命令选项/Docker Befehlsoptionen
| Option | Description / Beschreibung | Example / Beispiel | |
|---|---|---|---|
--org-mode | 启用组织模式(团队、SharePoint)/Organizationsmodus aktivieren(团队、SharePoints) | --org-mode | |
--read-only 禁用写作操作(Disable write operations) --read-only | |||
--http [port] | 启动HTTP服务器(默认:3000)/HTTP服务器启动(标准:3000) | --http 8080 | |
--preset 加载特定工具预设(Load specific tool presets) --preset mail,calendar | |||
| `--enabled-tools | |||
| ` | 按正则表达式过滤工具/工具nach正则表达式过滤器 | `--enabled-tools "excel\ | contact"` |
--toon | 启用TOON格式(节省30-60%的令牌)/TON格式aktivieren(30-60%令牌Ersparnis) | --toon | |
--discovery | 仅从发现工具开始/Nur mit发现工具开始 | --discovery | |
--cloud | 云环境(全球/中国)/云Umgebung(全球/中华人民共和国) | --cloud china | |
-v | Enable verbose logging / 启用详细日志记录 | -v |
环境变量 / Environment Variables
| Variable | Description / Beschreibung | Default |
|---|---|---|
MS365_MCP_CLIENT_ID | Azure AD应用程序客户端ID | Required / 必需 |
MS365_MCP_TENANT_ID | Azure AD租户ID | common |
MS365_MCP_CLIENT_SECRET | 客户端机密(机密应用程序)/客户端Geheimnis(vertrauliche应用程序) | - |
MS365_MCP_USE_SUPER_TOOLS 启用超级工具模式 Enable Super-Tools mode false | ||
MS365_MCP_ORG_MODE 启用组织模式(Enable organization mode) false | ||
MS365_MCP_OUTPUT_FORMAT | 输出格式(json/toon) / 输出格式 (json/toon) | json |
MS365_MCP_CLOUD_TYPE | 云环境/云Umgebung | global |
MS365_MCP_KEYVAULT_URL | Azure密钥库URL | - |
MS365_MCP_MAX_RESULTS | 最大搜索结果 / 最大搜索结果 | 500 |
MS365_MCP_ANONYMIZE_PII | 将知识库存储中的PII匿名化/PII在Wissensdatenbank匿名化器中匿名化 | true |
READ_ONLY | 启用只读模式/只读模式 | false |
安全警告 / Security Warning:设置MS365_MCP_ANONYMIZE_PII=false在将数据存储到知识库之前,禁用自动删除个人身份信息(电子邮件地址、电话号码、ID等)。这是 不建议在生产中使用 并且可能违反GDPR/DSGVO合规性。仅出于开发或调试目的禁用。/已设定MS365_MCP_ANONYMIZE_PII=false禁用在保存在知识库之前自动删除个人数据(电子邮件地址,电话号码,ID等)。这将 在生产中不推荐 可能违反 GDPR 合规性。仅禁用开发或调试。 |LOG_LEVEL|记录级别/记录级别|info| |SILENT关闭控制台输出(Disable console output)false|
Docker运行示例/Docker运行指南
# Basic HTTP server / Grundlegender HTTP-Server
docker run -d -p 3000:3000 aijoin/join-ms-365-mcp-server:latest --http 3000
# Organization mode with Super-Tools / Organisationsmodus mit Super-Tools
docker run -d -p 3000:3000 \
-e MS365_MCP_CLIENT_ID=your-client-id \
-e MS365_MCP_TENANT_ID=your-tenant-id \
-e MS365_MCP_USE_SUPER_TOOLS=true \
aijoin/join-ms-365-mcp-server:latest \
--http 3000 --org-mode -v
# Read-only mode with Super-Tools / Read-Only-Modus mit Super-Tools
docker run -d -p 3000:3000 \
-e MS365_MCP_USE_SUPER_TOOLS=true \
-e READ_ONLY=1 \
aijoin/join-ms-365-mcp-server:latest \
--http 3000______________________________________________________________________
🔑 身份验证方法 / Authentication Methods
1.设备代码流(默认/标准)
英语: 用户交互式身份验证:
- 打电话给
login工具 - 访问提供的URL并输入代码
- 呼叫
verify-login确认
德语: 交互式用户身份验证:
- 叫这个
login工具 上 - 访问提供的URL并输入代码
- 打电话
verify-login为了确认
2.OAuth授权码流(HTTP模式)
英语: 对于web应用程序和远程服务器:
- 在以下位置公开OAuth端点
/auth/* - 需要
Authorization: Bearer对于MCP请求 - 通过动态客户端注册支持MCP OAuth 2.1
德语: 对于 Web 应用程序和远程服务器:
- 设置 OAuth 端点
/auth/*准备 - 需要
Authorization: Bearer对于 MCP 请求 - 支持 MCP OAuth 2.1 与动态客户端注册
3.自带代币(BYOT)
英语: 要与现有OAuth系统集成:
docker run -d -p 3000:3000 \
-e MS365_MCP_OAUTH_TOKEN=your_token \
aijoin/join-ms-365-mcp-server:latest \
--http 3000德语: 与现有 OAuth 系统集成:
docker run -d -p 3000:3000 \
-e MS365_MCP_OAUTH_TOKEN=your_token \
aijoin/join-ms-365-mcp-server:latest \
--http 3000______________________________________________________________________
🔐 Azure AD应用程序权限
Delegate Permissions 概述
英语: Azure AD应用程序注册需要以下Microsoft Graph代理权限。这些权限允许服务器代表登录用户访问Microsoft 365服务。
德语: Azure AD 应用程序注册需要以下 Microsoft Graph Delegate 权限。这些权限允许服务器代表登录用户访问 Microsoft 365 服务。
个人帐户权限 / Personal Account Permissions
这些权限适用于个人Microsoft帐户(Outlook.com、Hotmail等)和工作/学校帐户:
| Permission | Description / 描述 | Required For | ||
|---|---|---|---|---|
User.Read | 阅读用户配置文件 | 基本功能 | ||
People.Read | 阅读人 | 联系人搜索 | ||
Mail.Read 阅读电子邮件/阅读电子邮件 | ||||
Mail.ReadWrite | 阅读和写信/电子邮件管理 | |||
Mail.Send | 发送邮件 / 发送电子邮件 | 发送电子邮件 / 发送电子邮件 | ||
Calendars.Read | 阅读日历 | 查看日历 | ||
Calendars.ReadWrite | 阅读和写入日历 / 日历管理 | |||
Contacts.Read | 阅读联系人 | 查看联系人 | ||
Contacts.ReadWrite | Read and write contacts / 联系人管理 | |||
Files.Read | 阅读文件 / 阅读文件 | OneDrive read / 阅读 OneDrive | ||
Files.Read.All | Read all files / 读取所有文件 | 跨用户文件访问 | ||
Files.ReadWrite | 读取和写入文件 / 读取和写入文件 | OneDrive 管理 / OneDrive 管理 | ||
Tasks.Read | 阅读任务 | 阅读任务 | 阅读任务 | 阅读任务 |
Tasks.ReadWrite 阅读和写作任务/待办事项管理 | ||||
Notes.Read | 阅读 OneNote / 阅读 OneNote | 查看 OneNote / 查看 OneNote | ||
Notes.Create | 创建 OneNote / 创建 OneNote | |||
OnlineMeetings.Read | 阅读在线会议 / 阅读在线会议 | 会议信息 / 会议信息 | ||
OnlineMeetingTranscript.Read.All | 阅读会议成绩单 / 阅读会议成绩单 | Transcript access | ||
OnlineMeetingRecording.Read.All | 阅读会议记录 | 录制访问 |
组织模式权限(Organization Mode Permissions)
这些权限需要工作/学校帐户和 --org-mode 标志:
| Permission | Description / 描述 | Required For |
|---|---|---|
User.Read.All | Read all users / 阅读所有用户 | 用户目录 |
Mail.Read.Shared | 阅读共享邮箱 | 共享邮箱访问 |
Mail.Send.Shared | Send from shared mailboxes 发送为共享邮箱 | |
Calendars.Read.Shared | 阅读共享日历 | 访问共享日历 |
Chat.Read | 阅读聊天/聊天lesen | 团队聊天阅读/团队聊天lesen |
ChatMessage.Read | 阅读聊天消息 / 阅读聊天消息 | 团队消息阅读 / 阅读团队消息 |
ChatMessage.Send | Send chat messages / 发送聊天消息 | Teams message sending / 发送团队消息 |
Team.ReadBasic.All | Read basic team info / 阅读基本团队信息 | 团队列表 / 团队列表 |
TeamMember.Read.All | 阅读团队成员 | 团队成员访问 |
Channel.ReadBasic.All | 阅读基本频道信息 | 频道列表 / 频道列表 |
ChannelMessage.Read.All | 阅读所有频道消息 | 阅读所有频道消息 |
ChannelMessage.Send 发送频道消息(Channel Message Sending) | ||
Sites.Read.All | 阅读所有SharePoint网站/所有SharePoint网站登录 | SharePoint访问/SharePoint Zugriff |
权限配置 / Permission Configuration
英语: 要在Azure门户中配置这些权限,请执行以下操作:
- 首选 Azure Active Directory → 应用注册
- 选择您的应用程序注册
- 导航到 API权限
- 点击 添加权限 → 微软图形 → 委托权限
- 从上表中添加所有必需的权限
- 点击 授予管理员同意 (用于组织权限)
德语: 若要在 Azure 门户中配置这些权限:
- 进入 Azure Active Directory → 应用程序注册
- 选择您的应用程序注册
- 导航到 API 权限
- 点击 添加权限 → 微软图形 → 委派的权限
- 从上表中添加所有必要的权限
- 点击 授予管理员权限 (组织权限)
最小权限集(Minimum Permission Set)
英语: 对于只读访问,您可以使用最小设置:
User.ReadMail.ReadCalendars.ReadFiles.ReadTasks.ReadContacts.ReadNotes.Read
德语: 对于只读访问,您可以使用最小句子:
User.ReadMail.ReadCalendars.ReadFiles.ReadTasks.ReadContacts.ReadNotes.Read
注: 服务器仅根据启用的工具自动请求所需的权限。使用--preset或--enabled-tools限制许可范围。服务器仅自动请求基于激活工具所需的权限。使用--preset或--enabled-tools限制权限范围。
______________________________________________________________________
🔒 安全合规/安全合规
Security Features/安全功能
- ✅ OAuth 2.1/PKCE 安全令牌处理(Secure Token Handling)
- ✅ 令牌验证 针对 Microsoft Graph 验证
- ✅ 安全存储 Persistent volume for credentials / 持久的凭据卷
- ✅ 只读模式 无修改的安全探索(Safe Exploration Without Modifications)
- ✅ 输入验证 对所有输入进行 Zod Schema Validation
- ✅ 速率限制 可配置请求限制(Configurable request limits)
- ✅ HTTPS/TLS Traffic Integration for Production 生产交通集成
合规
- ISO 27001 信息安全管理 / Information Security Management
- GDPR/DSGVO 数据保护通过设计 / Data Protection by Design
- 开放式Web应用程序安全项目 -安全最佳实践/安全最佳实践
______________________________________________________________________
📊 查询仪表板 / 查询仪表板
英语
查询仪表板提供了一个安全的web界面来查看和分析所有用户查询。此功能允许对MCP工具的使用情况进行审计、分析和调试。
特征:
- 📈 实时统计 -总查询数、唯一用户数、成功率
- 🔍 查询搜索和筛选 -按工具、用户、日期、状态筛选
- 📉 每小时活动图表 -24小时内可视化查询分布
- 🔒 密码保护 -通过环境变量进行安全访问
- 📥 GDPR数据导出 -导出用户数据以实现数据可移植性
- 🗑️ GDPR 删除 -删除用户数据(被遗忘权)
德语
查询仪表板提供了一个安全的 Web 界面,用于查看和分析所有用户查询。此功能可对 MCP 工具的使用进行审核、分析和调试。
功能:
- 📈 实时统计 总查询,唯一用户,成功率
- 🔍 查询搜索和过滤 - 按工具,用户,日期,状态过滤
- 📉 每小时活动图表 24小时视觉查询分布
- 🔒 密码保护 通过环境变量安全访问
- 📥 DSGVO数据出口 - 导出用户数据以实现数据可移植性
- 🗑️ GDPR 删除 删除用户数据(被遗忘权)
启用仪表板/仪表板aktivieren
# In stack.env or docker-compose environment
# In stack.env oder docker-compose Umgebung
DASHBOARD_PASSWORD=your-secure-password-here访问仪表板: https://your-server.com/dashboard / 访问仪表板: https://your-server.com/dashboard
______________________________________________________________________
📚 API参考/API-参考
MCP客户端配置/MCP客户端配置
OpenWebUI/远程客户端
{
"mcpServers": {
"ms365": {
"url": "https://your-server.com/mcp",
"transportType": "streamable-http"
}
}
}地方发展 / Local Development
{
"mcpServers": {
"ms365": {
"url": "http://localhost:3000/mcp",
"transportType": "streamable-http"
}
}
}刀具响应格式/刀具Antwortformat
All tools return MCP-compliant responses 所有工具都会返回符合 MCP 的响应:
interface McpToolResult {
content: Array;
isError?: boolean;
}______________________________________________________________________
🐳 Docker Deployment / Docker 部署
Traefik制作 / Production with Traefik
# docker-compose.yml
services:
ms365-mcp-server:
image: aijoin/join-ms-365-mcp-server:latest
container_name: ms365-mcp
restart: unless-stopped
env_file:
- stack.env
command: ['--http', '3000', '-v']
volumes:
- ./data:/app/data
labels:
- 'traefik.enable=true'
- 'traefik.http.routers.ms365-mcp.rule=Host(`ms365-mcp.yourdomain.com`)'
- 'traefik.http.routers.ms365-mcp.entrypoints=websecure'
- 'traefik.http.routers.ms365-mcp.tls.certresolver=myresolver'
networks:
- web
networks:
web:
external: true从源代码构建 / Build from Source
# Clone the repository / Repository klonen
git clone https://github.com/michelfritzschjoin/join-ms-365-mcp-server.git
cd join-ms-365-mcp-server
# Build the image / Image erstellen
docker build -t ms365-mcp-server .
# Run / Ausführen
docker run -p 3000:3000 ms365-mcp-server --http 3000______________________________________________________________________
🤝 贡献 / Contribute
英语:
- 克隆该仓库
- 跑
npm install - 生成客户端:
npm run generate - 进行更改
- 运行验证:
npm run verify - 提交PR
德语:
- 存储库forken
npm install执行- 生成客户端:
npm run generate - 进行更改
- 执行验证 :
npm run verify - PR 提交
______________________________________________________________________
📄 许可证
版权所有©2026加入有限公司
______________________________________________________________________
📞 支持/支持
- 📋 问题
______________________________________________________________________
ℹ️ 版本信息/版本信息n
英语: 版本会自动从以下位置读取 package.json 在运行时。横幅和CLI中显示的版本始终与软件包版本同步,无需手动更新。
德语: 版本在运行时自动关闭 package.json 读。横幅和CLI中显示的版本始终与软件包版本同步 - 无需手动更新。
______________________________________________________________________
Built with ❤️ by Join GmbH
Mit ❤️ erstellt von Join GmbH
