MCP微软365服务器
  
用于Microsoft 365集成的MCP(模型上下文协议)服务器。建于 规范驱动开发 方法论。
✨ 特性
📧 邮件(Outlook)
m365_mail_list-列出收件箱/文件夹中的电子邮件m365_mail_read-阅读特定电子邮件m365_mail_send-发送电子邮件(支持HTML)m365_mail_reply-回复电子邮件m365_mail_forward-转发电子邮件m365_mail_move-将电子邮件移动到文件夹m365_mail_flag-标记/取消标记以供后续跟进m365_mail_mark_read-标记为已读/未读m365_mail_folders-列出邮件文件夹m365_mail_create_draft-创建电子邮件草稿m365_mail_search-搜索电子邮件m365_mail_delete-删除电子邮件m365_mail_attachments_list-列出电子邮件附件m365_mail_attachment_get-获取附件内容
📅 日历
m365_calendar_list-列出事件m365_calendar_get-获取活动详细信息m365_calendar_create-创建活动(团队会议支持)m365_calendar_update-更新事件m365_calendar_respond-接受/拒绝邀请m365_calendar_delete-删除事件m365_calendar_availability-检查忙/闲状态m365_calendar_find_meeting_times-查找可用的会议时段
📁 OneDrive
m365_files_list-列出文件/文件夹m365_files_get-获取文件元数据m365_files_read-读取文件内容m365_files_search-搜索文件m365_files_upload-上传文件m365_files_delete-删除文件m365_files_share-创建共享链接m365_files_create_folder-创建新文件夹m365_files_move-移动文件/文件夹m365_files_copy-复制文件/文件夹
✅ 任务(待办事项)
m365_tasks_lists-列出任务列表m365_tasks_list-列出任务m365_tasks_create-创建任务m365_tasks_update-更新任务m365_tasks_complete-标记任务完成m365_tasks_delete-删除任务m365_tasks_create_list-创建新任务列表
💬 团队
m365_teams_chats-列出聊天记录m365_teams_messages-阅读聊天信息m365_teams_send-发送消息m365_teams_create_chat-创建新聊天m365_teams_create_online_meeting-创建团队会议m365_meetings_list-列出在线会议m365_meeting_transcripts-列出会议记录m365_meeting_transcript_content-获取成绩单内容m365_call_records-列出通话记录m365_meeting_by_join_url-按URL查找会议
📇 联系人
m365_contacts_list-列出联系人m365_contacts_get-获取联系方式m365_contacts_create-创建联系人m365_contacts_update-更新联系人m365_contacts_search-搜索联系人m365_contacts_delete-删除联系人
👥 用户
m365_users_list-列出组织用户m365_users_get-获取用户资料m365_users_search-搜索用户
🚀 快速开始
1.Azure Entra ID设置
在中创建应用程序 Azure门户:
- 首选 微软Entra ID → 应用程序注册 → 新注册
- 添加 应用程序权限 对于Microsoft Graph:
- Mail.Read, Mail.Send, Mail.ReadWrite - Calendars.Read, Calendars.ReadWrite - Files.Read.All, Files.ReadWrite.All - Sites.Read.All - Tasks.Read.All, Tasks.ReadWrite.All - Chat.Read.All, Chat.ReadWrite.All - Contacts.Read, Contacts.ReadWrite - User.Read.All - OnlineMeetings.Read.All, OnlineMeetings.ReadWrite.All (适用于团队会议) - OnlineMeetingTranscript.Read.All (用于成绩单)
- 授予管理员同意 为您的组织
2.安装
git clone https://github.com/malkhatib/mcp-microsoft365.git
cd mcp-microsoft365
npm install3.配置
创建 .env 文件:
TENANT_ID=your-tenant-id
CLIENT_ID=your-client-id
CLIENT_SECRET=your-client-secret
DEFAULT_USER=user@yourdomain.com4.构建和运行
npm run build
npm start5.与mcporter一起使用
# Add to mcporter config
mcporter config add m365 --stdio "node /path/to/dist/index.js"
# Test
mcporter call m365.m365_mail_list top:5📖 用法示例
# List recent emails
mcporter call m365.m365_mail_list top:10
# Send an email
mcporter call m365.m365_mail_send \
to:"someone@example.com" \
subject:"Hello" \
body:"
Hi there!
"
# List calendar events
mcporter call m365.m365_calendar_list top:5
# Create event with Teams meeting
mcporter call m365.m365_calendar_create \
subject:"Meeting" \
start:"2024-01-30T10:00:00" \
end:"2024-01-30T11:00:00" \
isOnline:true
# Search files
mcporter call m365.m365_files_search query:"report" top:10
# Create a task
mcporter call m365.m365_tasks_create \
listId:"xxx" \
title:"Review document" \
importance:"high"🏗️ 项目结构
mcp-microsoft365/
├── src/
│ ├── index.ts # Entry point
│ ├── core/
│ │ ├── auth.ts # OAuth2 token management
│ │ ├── config.ts # Environment configuration
│ │ ├── errors.ts # Custom error classes
│ │ ├── graph-client.ts # Microsoft Graph API client
│ │ └── logger.ts # Structured logging
│ ├── tools/
│ │ ├── mail.ts # Mail tools
│ │ ├── calendar.ts # Calendar tools
│ │ ├── files.ts # OneDrive tools
│ │ ├── tasks.ts # Tasks tools
│ │ ├── teams.ts # Teams tools
│ │ └── users.ts # Users tools
│ └── types/ # TypeScript interfaces
├── CONSTITUTION.md # Project principles
├── SPEC.md # Specifications
├── PLAN.md # Technical plan
└── TASKS.md # Task breakdown🔧 发展
# Install dependencies
npm install
# Build
npm run build
# Watch mode
npm run dev
# Run tests
npm test
# Lint
npm run lint📋 采用规范驱动开发构建
该项目遵循 规格套件 方法论:
- 宪法 -项目原则和标准
- 规格 -我们正在建造什么以及为什么
- 计划 -技术架构
- 任务 -实施分解
- 实施 -干净的模块化代码
🔒 安全
- 没有硬编码的秘密
- 配置的环境变量
- 带有自动刷新功能的令牌缓存
- 使用Zod进行输入验证
📄 许可证
MIT许可证-请参阅 许可证 文件。
👤 作者
马哈茂德·阿尔哈提卜
- 网站: malkhatib.com
- 油管 @马尔哈提卜
🙏 致谢
-
