关于 Microsoft 365 SharePoint
面向 Microsoft 365 SharePoint 的 MCP 服务,通过 Microsoft Graph 访问站点、库、页面、列表和文件。它支持内容检索及 SharePoint 项目变更,并使用由宿主管理的 Microsoft OAuth 凭据。
主要功能
- 01发现站点并浏览文档库
- 02读取页面、列表和文件
- 03搜索 SharePoint 内容
- 04上传、移动和共享文件
- 05创建并发布站点页面
- 06管理列表项和元数据
适用场景
- 01查找多个站点和文档库中的文档
- 02读取 SharePoint 页面和列表项
- 03创建共享链接或更新权限
- 04编辑文件、页面或列表项
MCP 相关
向 MCP 客户端提供 46 个工具,用于 SharePoint 发现、读取、搜索、共享和修改。身份验证使用宿主的 Microsoft OAuth 凭据,并通过独立工具请求 SharePoint 增量授权。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
npx -y @mindstone/mcp-server-microsoft-sharepointMS_CLIENT_IDMicrosoft Entra (Azure AD) application client IDMS_CONFIG_DIRPath to the per-user Microsoft config directory (credentials/, accounts.json)MS_ACCOUNT_EMAILAccount email when running in multi-account per-instance mode (falls back to the first account in accounts.json)MS_MCP_PACKAGE_IDLogical package ID surfaced in error responsesMICROSOFT_REQUEST_TIMEOUT_MSOverride the upstream Microsoft Graph request timeout in milliseconds (max 300000 = 5 min)本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
46收录的工具列表 · 更新于 2 周前
此工具无需参数。
详细介绍
@mindstone/mcp-server-microsoft-sharepoint
Microsoft 365 SharePoint MCP 服务——通过 Microsoft Graph API 发现站点、浏览文档库、读取页面和列表、搜索内容,并对 SharePoint 文件和列表执行变更操作。
面向协作组的 SharePoint MCP。它拥有自己的 authenticate_sharepoint 工具,主机可据此在协作组的 Microsoft 365 基础 OAuth 授权范围上,增量请求 Sites.Read.All 权限。
状态
- 版本: 0.2.1 · npm
- 身份验证: OAuth(由主机协调的增量授权,通过
authenticate_sharepoint实现)(MS_CLIENT_ID) - 工具: 46(身份验证 + 站点、文档库、页面、列表、元数据、搜索、变更操作)
- 接口类型: cloud-api
- 机器可读信息:
STATUS.json - 共享库:
@mindstone/mcp-server-microsoft-shared
为什么要开发此项目
我们在 2026 年 5 月移植此项目时,Microsoft 自己的 Graph MCP 产品线尚未推出独立的 SharePoint 服务;当时的社区方案要么跳过了 SharePoint 在跨租户场景下所需的增量授权流程,要么将 SharePoint 视为独立的登录入口——每个连接器都要单独进行 OAuth 授权,并各自存储一份刷新令牌。我们将 MindstoneRebel 中打包的连接器提取出来,按原样移植,以便同一组包含五个连接器的 Microsoft 365 协作组(邮件、日历、文件、Teams、SharePoint)可以共用一套凭据和一个用于令牌持久化及请求超时处理的共享库。SharePoint 声明了自己的 authenticate_sharepoint 工具,与协作组的 authenticate_microsoft_account 相互独立,因此主机可以请求额外的 Sites.Read.All 权限范围,而不影响现有的邮件、日历、文件和 Teams 会话。
交互示例
“在 Strategy 团队的站点中查找 Q3 OKR 文档,并创建一个全团队可用的只读共享链接。”
主机调用的工具:
search_sharepoint— 在 Strategy 站点范围内搜索Q3 OKR,并返回匹配的项目。create_sharing_link— 为该项目创建组织范围内的只读共享链接。
响应(节选):
{
"match": {
"siteId": "example.sharepoint.com,...",
"name": "Q3-OKRs.docx",
"webUrl": "https://example.sharepoint.com/sites/Strategy/..."
},
"share": {
"type": "view",
"scope": "organization",
"webUrl": "https://example.sharepoint.com/:w:/r/sites/Strategy/.../EZk..."
}
}
要求
- Node.js 20+
- npm
- 能够执行 Microsoft OAuth 流程,并将每个帐户的令牌文件写入
${MS_CONFIG_DIR}/credentials/${sanitised-email}.token.json,同时写入${MS_CONFIG_DIR}/accounts.json索引的主机应用程序。此服务会读取这些文件;它本身不会发起 OAuth 流程。
一键安装
点击按钮后,宿主会提示你填写:MS_CLIENT_ID、MS_CONFIG_DIR、MS_MCP_PACKAGE_ID、MICROSOFT_REQUEST_TIMEOUT_MS。
Claude Desktop / Claude Code / Goose / Continue.dev 手动配置(Microsoft 365 SharePoint)
{
"mcpServers": {
"Microsoft 365 SharePoint": {
"command": "npx",
"args": [
"-y",
"@mindstone/mcp-server-microsoft-sharepoint"
],
"env": {
"MS_CLIENT_ID": "",
"MS_CONFIG_DIR": "",
"MS_MCP_PACKAGE_ID": "Microsoft365SharePoint",
"MICROSOFT_REQUEST_TIMEOUT_MS": "60000"
}
}
}
}
快速开始
安装与构建
cd <path-to-repo>/connectors/microsoft-sharepoint
npm install
npm run build
npx(发布后)
npx -y @mindstone/mcp-server-microsoft-sharepoint
本地
node dist/index.js
配置
此服务与负责 Microsoft 365 OAuth 流程的宿主应用程序协同运行。宿主将凭据写入磁盘;此服务读取这些凭据。
必需的环境变量
| 名称 | 描述 |
|---|---|
MS_CLIENT_ID | Microsoft Entra(Azure AD)应用程序客户端 ID。 |
MS_CONFIG_DIR | 每用户 Microsoft 配置目录的路径(credentials/、accounts.json)。 |
可选的环境变量
| 名称 | 描述 | 默认值 |
|---|---|---|
MS_ACCOUNT_EMAIL | 以每个实例对应多个账户的模式运行时的账户电子邮件地址。 | accounts.json 中的第一个账户。 |
MS_MCP_PACKAGE_ID | 在错误响应中显示的逻辑包 ID。 | Microsoft365SharePoint |
MICROSOFT_REQUEST_TIMEOUT_MS | 覆盖上游 Microsoft Graph 请求超时时间(最长 300000 ms)。 | 60000 |
MICROSOFT_DISABLE_REFRESH | 设置为 1 可在此界面禁用令牌刷新。工具将以结构化的 auth_required 响应失败,以便宿主执行重新授权。云端界面会将此项设为 1。 | 未设置 |
宿主配置示例
Claude Desktop / Cursor
{
"mcpServers": {
"Microsoft365SharePoint": {
"command": "npx",
"args": ["-y", "@mindstone/mcp-server-microsoft-sharepoint"],
"env": {
"MS_CLIENT_ID": "your-entra-application-client-id",
"MS_CONFIG_DIR": "/absolute/path/to/microsoft-config"
}
}
}
}
先通过 @mindstone/mcp-server-microsoft-mail 的 authenticate_microsoft_account 登录,以协商基础会话,然后调用此服务的 authenticate_sharepoint,在此基础上请求额外的 SharePoint Sites.Read.All 范围。
本地开发(无需发布到 npm)
{
"mcpServers": {
"Microsoft365SharePoint": {
"command": "node",
"args": ["<path-to-repo>/connectors/microsoft-sharepoint/dist/index.js"],
"env": {
"MS_CLIENT_ID": "your-entra-application-client-id",
"MS_CONFIG_DIR": "/absolute/path/to/microsoft-config"
}
}
}
}
工具(46)
| 工具 | 描述 |
|---|---|
authenticate_sharepoint | 请求 SharePoint 增量式同意(Sites.Read.All)。 |
list_sharepoint_sites、get_sharepoint_site | 发现并检查 SharePoint 站点。 |
list_site_document_libraries、list_library_files、get_library_file | 浏览文档库及其内容。 |
download_library_file、read_library_text_file、search_library_files | 读取并搜索文档库内容。 |
list_file_versions | 列出文档库文件的版本历史记录。 |
upload_library_file、upload_library_file_binary、create_library_folder、delete_library_item、move_library_item、copy_library_item、rename_library_item、create_sharing_link | 修改并共享文档库内容(文本上传、通过可恢复会话进行二进制文件/大型文件上传)。 |
list_item_permissions、invite_item_collaborators、revoke_item_permission | 管理单项共享权限(列出授权、邀请指定人员、撤销访问权限)。 |
list_site_pages、read_site_page | 浏览并读取 SharePoint 页面。 |
create_site_page、update_site_page、publish_site_page | 创建页面:新建草稿(支持简单 HTML 内容)、更新元数据、发布。 |
list_site_lists、list_list_items、get_list_item、create_list_item、update_list_item、delete_list_item | 浏览并修改列表项。 |
list_list_columns、create_site_list | 读取列表的列架构;创建包含列的新列表。 |
search_sharepoint | 搜索站点、文档库、列表和内容。 |
list_subsites、get_recent_files、get_library_tree | 查看站点发现结果和层级结构。 |
get_file_metadata、update_file_metadata | 读取并更新自定义 SharePoint 元数据字段。 |
get_site_drive、list_site_items、get_site_item、get_site_list、get_site_by_path、get_sites_delta | 其他站点、列表和驱动器检查 API。 |
安全注意事项
authenticate_sharepoint是 SharePoint 专用的增量式同意设置工具;该工具组其余工具的基础身份验证由@mindstone/mcp-server-microsoft-mail的authenticate_microsoft_account提供。- 手动错误负载包含
action_required和next_step恢复字段,同时保留现有的auth_required和成功响应结构。 - 已移除捆绑的 SharePoint 页面内容静默回退机制——现在处理程序错误会显示实际故障,而不会返回过时的页面正文。
- 每个工具的 Graph 调用都会通过
.options({signal})使用由调用方和工具组超时信号组合而成的信号。
许可证
FSL-1.1-MIT — Functional Source License 1.1 版,附带 MIT 未来许可证。允许免费用于非竞争用途;到达 LICENSE 中的转换日期后,将重新授权为 MIT。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。