使用说明
ms-365-mcp服务器
微软365 MCP服务器
用于通过Graph与Microsoft 365和Microsoft Office服务交互的模型上下文协议(MCP)服务器 API
先决条件
- Node.js>=14
特性
- 通过Microsoft身份验证库(SCL)进行身份验证
- 全面的Microsoft 365服务集成
- 只读模式支持安全操作
- 用于精细访问控制的工具过滤
支持的服务和工具
电子邮件(Outlook)
列出邮件消息、列出邮件文件夹、列出邮件夹消息、获取邮件消息、发送邮件、,
删除邮件
日历
列出日历、列出日历事件、获取日历事件、获得日历视图、创建日历事件,
更新日历事件、删除日历事件
OneDrive和SharePoint文件
列出驱动器,获取驱动器根项目,列出文件夹文件,下载onedrive文件内容,上传文件内容,
上传新文件,删除一个驱动器文件
Excel操作
列出excel工作表,获取excel范围,创建excel图表,格式化excel范围,对excel范围进行排序
OneNote
列出onenote笔记本,列出onenotes笔记本分区,列出oneote分区页面,获取onenote页面内容,
创建onenote页面
待办任务
列出待办任务列表,列出待办任务,获取待办任务,创建待办任务,更新待办任务,删除待办任务
规划师
列出计划器任务,获取计划器计划,列出计划任务,获取规划器任务,创建规划器任务
联系人
列出outlook联系人,获取outlook联系人,创建outlook联系人,更新outlook联系人,
删除outlook联系人
团队与聊天 (仅限工作/学校账户)
列出聊天记录,获取聊天记录,列出聊天消息,获取聊天消息,发送聊天消息,列出聊天信息回复,
回复聊天消息、列出加入的团队、获取团队、列出团队频道、获取团队频道、列出频道消息,
获取频道消息、发送频道消息、列出团队成员
SharePoint网站 (仅限工作/学校账户)
搜索sharepoint站点,获取sharepoint站点,按路径获取sharepoint站点、列出sharepoint站点驱动器,
按id获取sharepoint站点驱动器,列出sharepoint站点项目,获取sharepoint网站项目,列出sharepoint站点列表,
获取sharepoint站点列表,列出sharepoint站点列表项,获取sharepoint站点列项目,
获取sharepoint网站增量
工作范围问题
如果您在访问工作/学校功能(团队、SharePoint等)时遇到问题,您应该通过
--force-work-scopes 旗!
{
"mcpServers": {
"ms365": {
"command": "npx",
"args": [
"-y",
"@softeria/ms-365-mcp-server",
"--force-work-scopes"
]
}
}
}
虽然服务器应该在需要工作范围时尝试强制重新登录,但显式传递标记更安全 并从一开始就确保适当的范围权限。
用户档案
获取当前用户
快速入门示例
在Claude Desktop中测试登录:
例子
整合
克劳德桌面
要将此MCP服务器添加到Claude Desktop,请执行以下操作:
在“设置”>“开发人员”下编辑配置文件:
{
"mcpServers": {
"ms365": {
"command": "npx",
"args": [
"-y",
"@softeria/ms-365-mcp-server"
]
}
}
}
克劳德代码CLI
claude mcp add ms365 -- npx -y @softeria/ms-365-mcp-server
对于支持MCP的其他接口,请参阅其各自的文档以了解正确的 整合方法。
认证
⚠️ 在使用工具之前,您必须进行身份验证。
服务器支持三种身份验证方法:
1.设备代码流(默认)
通过设备代码进行交互式身份验证:
- MCP客户端登录:
- 打电话给
login工具(自动检查现有令牌) - 如果需要,获取URL+代码,在浏览器中访问
- 使用
verify-login工具确认
- 打电话给
- CLI登录:按照终端中的URL和代码提示进行操作。
npx @softeria/ms-365-mcp-server --login
令牌安全地缓存在您的操作系统凭据存储中(回退到文件)。
2.OAuth授权代码流(仅限HTTP模式)
跑步时 --http,服务器 需要 OAuth身份验证:
npx @softeria/ms-365-mcp-server --http 3000
此模式:
- 向MCP客户端宣传OAuth功能
- 在以下位置提供OAuth端点
/auth/*(授权、令牌、元数据) - 需要
Authorization: Bearer <token>对于所有MCP请求 - 使用Microsoft Graph API验证令牌
- 使伤残 默认情况下登录/注销工具(使用
--enable-auth-tools使他们)
MCP客户端在看到广告功能时将自动处理OAuth流。
为OAuth测试设置Azure AD
要使用OAuth模式和自定义Azure凭据(建议用于生产),您需要设置Azure AD应用程序 注册:
-
创建Azure AD应用程序注册:
- 首选 Azure门户
- 导航到Azure Active Directory→ 应用程序注册→ 新注册
- 集合名称:“MS365 MCP服务器”
-
配置重定向URI: 添加这些重定向URI,以便使用MCP Inspector进行测试:
http://localhost:6274/oauth/callbackhttp://localhost:6274/oauth/callback/debughttp://localhost:3000/callback(可选,用于服务器回调)
-
获取凭据:
- 复制 应用程序(客户端)ID 从概述页面
- 转到证书和机密→ 新客户机密→ 复制机密值
-
配置环境变量: 创建一个
.env项目根目录中的文件:MS365_MCP_CLIENT_ID=your-azure-ad-app-client-id-here MS365_MCP_CLIENT_SECRET=your-azure-ad-app-client-secret-here MS365_MCP_TENANT_ID=common
配置这些后,服务器将使用您的自定义Azure应用程序,而不是内置应用程序。
3.自带代币(BYOT)
如果您将ms-365-mcp-server作为外部管理Microsoft OAuth令牌的较大系统的一部分运行,则可以 直接向此MCP服务器提供访问令牌:
MS365_MCP_OAUTH_TOKEN=your_oauth_token npx @softeria/ms-365-mcp-server
这种方法:
- 绕过交互式身份验证流程
- 将预先存在的OAuth令牌用于Microsoft Graph API请求
- 不处理令牌刷新(令牌生命周期管理由您负责)
备注:HTTP模式需要身份验证。对于未经身份验证的测试,使用设备代码流的stdio模式。
身份验证工具:在HTTP模式下,默认情况下禁用登录/注销工具,因为OAuth处理身份验证。 使用
--enable-auth-tools如果你需要的话。
CLI选项
直接从命令行运行ms-365-mcp-server时,可以使用以下选项:
--login Login using device code flow
--logout Log out and clear saved credentials
--verify-login Verify login without starting the server
--force-work-scopes Force inclusion of work account scopes during login (includes Teams, SharePoint, etc.)
服务器选项
当作为MCP服务器运行时,可以使用以下选项:
-v Enable verbose logging
--read-only Start server in read-only mode, disabling write operations
--http [port] Use Streamable HTTP transport instead of stdio (optionally specify port, default: 3000)
Starts Express.js server with MCP endpoint at /mcp
--enable-auth-tools Enable login/logout tools when using HTTP mode (disabled by default in HTTP mode)
--enabled-tools <pattern> Filter tools using regex pattern (e.g., "excel|contact" to enable Excel and Contact tools)
环境变量:
READ_ONLY=true|1:替代--只读标志ENABLED_TOOLS:使用正则表达式模式过滤工具(替代启用的工具标志)MS365_MCP_FORCE_WORK_SCOPES=true|1:强制包含工作帐户范围(替代--Force工作范围标志)LOG_LEVEL:设置日志记录级别(默认值:“info”)SILENT=true|1:禁用控制台输出MS365_MCP_CLIENT_ID:自定义Azure应用程序客户端ID(默认为内置应用程序)MS365_MCP_TENANT_ID:自定义租户ID(多租户默认为“公共”)MS365_MCP_OAUTH_TOKEN:Microsoft Graph API的预存在OAuth令牌(BYOT方法)
支持
如果您遇到问题或需要帮助:
许可证
麻省 理工© 2025 软件