mcpField
M
Microsoft 365 SharePoint

Microsoft 365 SharePoint

本地服务
github.com/mindstone文件与存储13今天更新

关于 Microsoft 365 SharePoint

面向 Microsoft 365 SharePoint 的 MCP 服务,通过 Microsoft Graph 访问站点、库、页面、列表和文件。它支持内容检索及 SharePoint 项目变更,并使用由宿主管理的 Microsoft OAuth 凭据。

主要功能

  1. 01发现站点并浏览文档库
  2. 02读取页面、列表和文件
  3. 03搜索 SharePoint 内容
  4. 04上传、移动和共享文件
  5. 05创建并发布站点页面
  6. 06管理列表项和元数据

适用场景

  1. 01查找多个站点和文档库中的文档
  2. 02读取 SharePoint 页面和列表项
  3. 03创建共享链接或更新权限
  4. 04编辑文件、页面或列表项

MCP 相关

向 MCP 客户端提供 46 个工具,用于 SharePoint 发现、读取、搜索、共享和修改。身份验证使用宿主的 Microsoft OAuth 凭据,并通过独立工具请求 SharePoint 增量授权。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"mindstone-mcp-server-microsoft-sharepoint": {
"command": "npx",
"args": [
"-y",
"@mindstone/mcp-server-microsoft-sharepoint"
],
"env": {
"MS_CLIENT_ID": "<MS_CLIENT_ID>",
"MS_CONFIG_DIR": "<MS_CONFIG_DIR>",
"MS_ACCOUNT_EMAIL": "<MS_ACCOUNT_EMAIL>",
"MS_MCP_PACKAGE_ID": "<MS_MCP_PACKAGE_ID>",
"MICROSOFT_REQUEST_TIMEOUT_MS": "<MICROSOFT_REQUEST_TIMEOUT_MS>"
}
}
}
}
启动命令npx -y @mindstone/mcp-server-microsoft-sharepoint
需要配置的环境变量
MS_CLIENT_IDMicrosoft Entra (Azure AD) application client ID
MS_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 responses
MICROSOFT_REQUEST_TIMEOUT_MSOverride the upstream Microsoft Graph request timeout in milliseconds (max 300000 = 5 min)

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@mindstone/mcp-server-microsoft-sharepoint0.2.1

工具

46

收录的工具列表 · 更新于 2 周前

此工具无需参数。

详细介绍

@mindstone/mcp-server-microsoft-sharepoint

npm version License: FSL-1.1-MIT

Microsoft 365 SharePoint MCP 服务——通过 Microsoft Graph API 发现站点、浏览文档库、读取页面和列表、搜索内容,并对 SharePoint 文件和列表执行变更操作。

面向协作组的 SharePoint MCP。它拥有自己的 authenticate_sharepoint 工具,主机可据此在协作组的 Microsoft 365 基础 OAuth 授权范围上,增量请求 Sites.Read.All 权限。

状态

为什么要开发此项目

我们在 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 文档,并创建一个全团队可用的只读共享链接。”

主机调用的工具:

  1. search_sharepoint — 在 Strategy 站点范围内搜索 Q3 OKR,并返回匹配的项目。
  2. 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 流程。

一键安装

添加到 Cursor 添加到 VS Code 添加到 VS Code Insiders

点击按钮后,宿主会提示你填写: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_IDMicrosoft 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。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。