代理365 MCP
MCP(模型上下文协议)服务器,用于Microsoft 365与AI编码助手的集成。
直接从任何兼容MCP的客户端访问SharePoint、Word、Teams、Outlook、日历、Excel和M365 Copilot。
支持的客户
- 克劳德代码 (人工CLI)
- 克劳德桌面版 (Anthropic应用程序)
- VS Code 使用GitHub Copilot
- GitHub Copilot 支持MCP
- 光标
- 任何兼容MCP的AI助手
特性
- SharePoint和OneDrive:读/写文件、搜索、共享
- 字:阅读文档、添加注释、创建新文档
- 团队:阅读聊天记录、频道、发布消息
- Outlook邮件:阅读/发送电子邮件
- 日历:管理事件
- Excel:读/写电子表格
- M365副驾驶:搜索和聊天
- 用户档案:组织结构图、经理信息
80多种工具可供选择。出于安全考虑,对危险操作(删除/移除)进行了过滤。
先决条件
- Microsoft 365许可证副本 分配给您的帐户
- 组织设置 (每个组织一次):
- 创建Entra ID应用程序注册 - 授予代理365权限的管理员同意 - 用户可以从entra.microsoft.com(或IT管理员,如果他们没有访问权限)获取租户ID和客户端ID
快速开始
选项1:零配置(如果IT提供环境变量)
只需添加到MCP配置中-首次使用时会自动进行身份验证:
{
"mcpServers": {
"agent365": {
"command": "npx",
"args": ["-y", "github:rapyuta-robotics/agent365-mcp", "serve"],
"env": {
"AGENT365_TENANT_ID": "your-tenant-id",
"AGENT365_CLIENT_ID": "your-client-id"
}
}
}
}首次使用时,您的浏览器会自动打开以进行Microsoft登录。就是这样!
选项2:交互式设置
运行安装向导,为您配置所有内容:
npx github:rapyuta-robotics/agent365-mcp setup这将:
- 提示输入您的租户ID和客户端ID(如果您没有访问权限,请从entra.microsoft.com或IT管理员处获取)
- 在浏览器中打开Microsoft登录
- 自动配置克劳德代码和/或VS代码
- 存储约90天会话的刷新令牌
就是这样! 重新启动编码助手,工具就可用了。
______________________________________________________________________
手动安装
如果您更喜欢手动设置:
1.身份验证
从entra.microsoft.com获取您的值:
- 租户ID:Entra主页
- 客户端ID:主页>应用程序注册>代理365 MCP
如果您没有Entra访问权限,请咨询您的IT管理员。
export AGENT365_TENANT_ID="your-tenant-id"
export AGENT365_CLIENT_ID="your-client-id"
npx github:rapyuta-robotics/agent365-mcp auth2.配置您的MCP客户端
克劳德代码(~/.claude.json)
{
"mcpServers": {
"agent365": {
"type": "stdio",
"command": "npx",
"args": ["-y", "github:rapyuta-robotics/agent365-mcp", "serve"],
"env": {
"AGENT365_TENANT_ID": "your-tenant-id",
"AGENT365_CLIENT_ID": "your-client-id"
}
}
}
}VS Code
快捷方式:Ctrl+Shift+P(或Cmd+Shift+P在Mac上)→MCP: Open User Configuration直接编辑MCP配置文件。
将此添加到您的MCP用户配置中(~/.vscode/mcp.json):
{
"servers": {
"agent365": {
"command": "npx",
"args": ["-y", "github:rapyuta-robotics/agent365-mcp", "serve"],
"env": {
"AGENT365_TENANT_ID": "your-tenant-id",
"AGENT365_CLIENT_ID": "your-client-id"
}
}
}
}备选方案-添加MCP服务器UI:
Ctrl+Shift+P→MCP: Add Server- 选择:
Command (stdio) - 命令:
npx - Args:
-y github:rapyuta-robotics/agent365-mcp serve - 姓名:
agent365 - 范围:
User Settings或Workspace - 然后编辑配置以添加
env以上章节
克劳德桌面版
配置文件位置:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - 视窗:
%APPDATA%\Claude\claude_desktop_config.json
或者:打开克劳德桌面→ 设置→ 开发者→ 编辑配置
{
"mcpServers": {
"agent365": {
"command": "npx",
"args": ["-y", "github:rapyuta-robotics/agent365-mcp", "serve"],
"env": {
"AGENT365_TENANT_ID": "your-tenant-id",
"AGENT365_CLIENT_ID": "your-client-id"
}
}
}
}保存后, 完全退出并重新启动Claude Desktop 加载新配置。
GitHub副本/游标
在编辑器的设置中使用类似的MCP配置。有关确切位置,请参阅编辑的MCP文档。
- 重新启动编辑器 -工具将可用。
检查状态
npx github:rapyuta-robotics/agent365-mcp status重新验证(令牌过期时)
npx github:rapyuta-robotics/agent365-mcp authIT管理员设置
看 管理员.md 有关详细的设置说明。
快速开始
- 创建服务主体 (一次性)
curl -O https://raw.githubusercontent.com/microsoft/Agent365-devTools/main/scripts/cli/Auth/New-Agent365ToolsServicePrincipalProdPublic.ps1
pwsh ./New-Agent365ToolsServicePrincipalProdPublic.ps1- 创建应用程序注册
az ad app create --display-name "Agent 365 MCP" --sign-in-audience "AzureADMyOrg"
az ad app update --id --is-fallback-public-client true
az ad app update --id --public-client-redirect-uris "http://localhost"
az ad sp create --id - 添加权限和授予同意
看 管理员.md 用于完成权限设置和管理员同意命令。
- 分发给用户
为用户提供:
- 租户ID:
az account show --query tenantId -o tsv - 客户端ID:步骤2中的应用程序ID
可用工具
| 前缀 | 服务 | 工具 |
|---|---|---|
sharepoint_* | SharePoint/OneDrive | 文件操作、搜索、共享 |
word_* | Word | 阅读文档、评论、创建 |
teams_* | 团队 | 聊天、频道、消息 |
mail_* | Outlook | 电子邮件阅读/发送/回复 |
calendar_* | 日历 | 活动、日程安排 |
me_* | 个人资料 | 用户/组织信息 |
excel_* | Excel | 电子表格操作 |
copilot_* | M365副驾驶 | 搜索、聊天 |
安全
- 每个用户都使用自己的M365帐户进行身份验证
- 访问权限仅限于用户在M365中可以访问的内容
- 默认情况下,危险操作(删除、移除)被阻止
- 令牌存储在本地
~/.agent365-mcp/ - 令牌在1小时后过期,下次使用时自动刷新
配置
自定义行为的可选环境变量:
| 变量 | 默认值 | 描述 |
|---|---|---|
AGENT365_TENANT_ID | (必需) | Azure租户ID |
AGENT365_CLIENT_ID | (必填) | 应用注册客户端ID |
AGENT365_TOKEN_PATH | ~/.agent365-mcp/tokens.json | 自定义令牌存储路径 |
AGENT365_MAX_RESPONSE_SIZE | 50000 | 截断前的最大字符数 |
AGENT365_TIMEOUT | 60000 | 请求超时(毫秒) |
AGENT365_LARGE_FILE_DIR | (无) | 保存大型响应的目录 |
AGENT365_LARGE_FILE_THRESHOLD | 100000 | 文件保存的大小阈值 |
AGENT365_ALLOW_DANGEROUS | false | 启用危险工具(删除/移除) |
AGENT365_DISABLED_SERVERS | (无) | 要禁用的逗号分隔服务器 |
大响应处理
默认情况下,超过50KB的响应将被截断。为了更好地处理大数据:
{
"env": {
"AGENT365_LARGE_FILE_DIR": "/tmp/agent365-responses"
}
}设置后,超过100KB的响应将保存到文件中,而不是截断。代理接收文件路径,并可以使用读取工具访问内容。
禁用服务器
如果您没有Copilot许可证或想禁用特定服务:
{
"env": {
"AGENT365_DISABLED_SERVERS": "copilot,excel"
}
}代理还会自动检测许可证错误,并优雅地禁用受影响的服务器。
完整配置示例
{
"mcpServers": {
"agent365": {
"command": "npx",
"args": ["-y", "github:rapyuta-robotics/agent365-mcp", "serve"],
"env": {
"AGENT365_TENANT_ID": "your-tenant-id",
"AGENT365_CLIENT_ID": "your-client-id",
"AGENT365_MAX_RESPONSE_SIZE": "100000",
"AGENT365_TIMEOUT": "120000",
"AGENT365_LARGE_FILE_DIR": "/tmp/agent365",
"AGENT365_DISABLED_SERVERS": "copilot"
}
}
}
}故障排除
“作用域不存在”错误
您的令牌没有所需的权限。重新验证:
npx github:rapyuta-robotics/agent365-mcp auth“无有效令牌”错误
令牌已过期或未通过身份验证。运行:
npx github:rapyuta-robotics/agent365-mcp auth工具未加载
- 检查状态:
npx github:rapyuta-robotics/agent365-mcp status - 验证复制副本许可证是否已分配给您的帐户
- 确认配置中的租户ID(Entra主页)和客户端ID(主页>应用程序注册>代理365 MCP),或者如果您没有访问权限,请要求IT管理员验证管理员同意
响应错误大/内容截断
一些M365查询返回非常大的响应。代理会自动处理此问题:
- 使用更具体的查询(日期范围、过滤器、分页)
- 集
AGENT365_LARGE_FILE_DIR保存对文件的大响应 - 增加
AGENT365_MAX_RESPONSE_SIZE用于更大的截断限制 - 使用M365副驾驶搜索,而不是列出所有项目
请求超时
长时间运行的查询可能会超时。增加超时时间 AGENT365_TIMEOUT (以毫秒为单位)。
文档
许可证
麻省理工学院
