通过 Microsoft Graph API 访问 Microsoft 365 服务,包括:电子邮件(Outlook)、日历、OneDrive、待办任务和联系人。
当用户提及以下关键词时激活:outlook、email、calendar、onedrive、microsoft、office 365、o365、ms365、my meetings、my emails、schedule meeting、send email、check calendar、to do、microsoft tasks
首次登录后,认证信息会被缓存。使用设备代码流时无需配置环境变量。
如需在无头/自动化环境中运行,请设置以下环境变量:
- MS365_MCP_CLIENT_ID - Azure AD 应用客户端 ID
- MS365_MCP_CLIENT_SECRET - Azure AD 应用密钥
- MS365_MCP_TENANT_ID - 租户 ID(个人账户请使用 "consumers")
# 通过设备代码登录(交互式)
python3 /root/clawd/skills/ms365/ms365_cli.py login
# 检查认证状态
python3 /root/clawd/skills/ms365/ms365_cli.py status
# 列出已缓存的账户
python3 /root/clawd/skills/ms365/ms365_cli.py accounts
# 获取当前用户信息
python3 /root/clawd/skills/ms365/ms365_cli.py user
# 列出最近邮件
python3 /root/clawd/skills/ms365/ms365_cli.py mail list [--top N]
# 读取特定邮件
python3 /root/clawd/skills/ms365/ms365_cli.py mail read 邮件ID
# 发送邮件
python3 /root/clawd/skills/ms365/ms365_cli.py mail send --to "收件人@example.com" --subject "邮件主题" --body "邮件正文"
# 列出即将发生的事件
python3 /root/clawd/skills/ms365/ms365_cli.py calendar list [--top N]
# 创建事件
python3 /root/clawd/skills/ms365/ms365_cli.py calendar create --subject "会议主题" --start "2026-01-15T10:00:00" --end "2026-01-15T11:00:00" [--body "描述"] [--timezone "时区"]
# 列出根目录文件
python3 /root/clawd/skills/ms365/ms365_cli.py files list
# 列出文件夹内文件
python3 /root/clawd/skills/ms365/ms365_cli.py files list --path "文件夹路径"
# 列出任务列表
python3 /root/clawd/skills/ms365/ms365_cli.py tasks lists
# 获取指定列表的任务
python3 /root/clawd/skills/ms365/ms365_cli.py tasks get 列表ID
# 创建任务
python3 /root/clawd/skills/ms365/ms365_cli.py tasks create 列表ID --title "任务标题" [--due "截止日期"]
# 列出联系人
python3 /root/clawd/skills/ms365/ms365_cli.py contacts list [--top N]
# 搜索联系人
python3 /root/clawd/skills/ms365/ms365_cli.py contacts search "搜索关键词"
用户:"查看我的 Outlook 邮件"
助手:执行 mail list --top 10 命令
用户:"我今天有什么会议?"
助手:执行 calendar list 命令
用户:"给 john@company.com 发送一封关于项目更新的邮件"
助手:执行 mail send 命令并填入相应参数
用户:"显示我的 OneDrive 文件"
助手:执行 files list 命令
用户:"添加一个审查预算的任务"
助手:先列出任务列表,然后在合适的列表中创建任务
处理 Microsoft 365 相关请求时:
- 所有操作均使用 ms365_cli.py 脚本
- 若命令执行失败,请先检查认证状态
- 若未登录,请引导用户通过设备代码流程登录
- 处理日历事件时,请使用 ISO 8601 日期时间格式
- 默认时区为 America/Chicago
- 发送邮件前,请确认收件人和邮件内容
- 处理任务时,先列出可用任务列表供用户选择
本技能基于 Softeria 开发的 ms-365-mcp-server。
- NPM 包: @softeria/ms-365-mcp-server
- GitHub: https://github.com/Softeria/ms-365-mcp-server
- 许可证: MIT