关于 SharePoint MCP Server node.js Based REST API
SharePoint MCP Server 是基于 Node.js 的 MCP 服务,通过 SharePoint REST API 与 SharePoint Online 交互,主要面向 Claude Desktop 用户。它覆盖用户、站点、列表、页面等多类操作,并支持证书和客户端密钥两种认证方式。
主要功能
- 01通过 SharePoint REST API 操作 SharePoint Online
- 02管理用户组、站点导航和子站点
- 03管理列表、列表视图、字段和列表项
- 04创建和删除现代页面
- 05支持证书与客户端密钥认证
适用场景
- 01在 Claude Desktop 中查询 SharePoint 站点的列表信息
- 02批量管理列表字段、视图和列表项
MCP 相关
该项目是 MCP 服务,向 Claude Desktop 等 MCP 客户端提供 SharePoint 相关操作,README 中标注了各项操作的可用状态。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
SharePoint Online MCP 服务 🚀

功能最强大的 SharePoint MCP 服务,可通过 SharePoint REST API 与 SharePoint Online 无缝交互。
此 MCP 服务旨在与 Claude Desktop 桌面应用配合使用,也可与 Cline 等其他 MCP 客户端配合使用。
目录
SharePoint 操作可用性
用户
| 操作 | 可用 | 备注 |
|---|---|---|
| 列出站点用户 | ✅ | |
| 列出站点组 | ✅ | |
| 获取组成员 | ✅ | |
| 添加组成员 | ✅ | |
| 移除组成员 | ✅ | |
| 获取用户配置文件 | ❌ | /_api/SP.UserProfiles.PeopleManager |
| 更新用户配置文件 | ❌ |
网站
| 操作 | 可用 |
|---|---|
| 获取网站详情 | ✅ |
| 更新网站属性 | ✅ |
| 获取全局导航链接 | ✅ |
| 获取快速导航链接 | ✅ |
| 添加导航链接 | ✅ |
| 更新导航链接 | ✅ |
| 删除导航链接 | ✅ |
| 获取子网站 | ✅ |
| 创建子网站 | ❌ |
| 删除子网站 | ✅ |
区域设置
| 操作 | 可用 |
|---|---|
| 获取区域设置 | ✅ |
| 更新区域设置 | ❌ |
功能
| 操作 | 可用 |
|---|---|
| 获取网站集功能 | ✅ |
| 获取所有网站功能 | ✅ |
| 获取网站功能 | ✅ |
| 获取所有网站功能 | ✅ |
| 激活功能 | ❌ |
| 停用功能 | ❌ |
列表
| 操作 | 可用 | 备注 |
|---|---|---|
| 获取所有列表 | ✅ | |
| 创建列表 | ✅ | |
| 将网站内容类型添加到列表 | ✅ | |
| 从列表中移除内容类型 | ✅ | |
| 向列表内容类型添加字段 | ❌ | |
| 从列表内容类型中移除字段 | ❌ | |
| 更新列表 | ✅ | |
| 获取列表字段 | ✅ | |
| 创建列表字段 | ✅ | 仅适用于基本场景 |
| 更新列表字段 | ✅ | |
| 删除列表字段 | ✅ | |
| 设置列表字段格式 | ❌ | |
| 设置列表视图格式 | ❌ | |
| 删除列表 | ✅ |
列表视图
| 操作 | 可用 |
|---|---|
| 获取列表视图 | ✅ |
| 删除列表视图 | ✅ |
| 创建列表视图 | ✅ |
| 更新列表视图 | ✅ |
| 获取视图字段 | ✅ |
| 添加视图字段 | ✅ |
| 移除视图字段 | ✅ |
| 移除所有视图字段 | ✅ |
| 移动视图字段 | ✅ |
列表内容类型
| 操作 | 可用 | 备注 |
|---|---|---|
| 获取所有列表内容类型 | ✅ | |
| 获取列表内容类型 | ✅ | |
| 创建列表内容类型 | ❌ | |
| 更新列表内容类型 | ✅ | 仅更改 CT 标题和组 |
| 删除列表内容类型 | ✅ |
列表项
| 操作 | 可用 |
|---|---|
| 获取所有列表项 | ✅ |
| 创建列表项 | ✅ |
| 更新列表项 | ✅ |
| 删除列表项 | ✅ |
网站内容类型
| 操作 | 可用 | 备注 |
|---|---|---|
| 获取所有网站内容类型 | ✅ | |
| 获取网站内容类型 | ✅ | |
| 创建网站内容类型 | ❌ | |
| 更新网站内容类型 | ✅ | 仅更改 CT 标题和组 |
| 删除网站内容类型 | ✅ |
页面
| 操作 | 可用 |
|---|---|
| 创建现代页面 | ✅ |
| 删除现代页面 | ✅ |
| 列出现代页面 | ✅ |
| 添加页面 Web 部件 | ❌ |
| 删除页面 Web 部件 | ❌ |
| 移动页面 Web 部件 | ❌ |
| 更新页面 Web 部件 | ❌ |
文档
| 操作 | 可用 |
|---|---|
| 创建文档 | ❌ |
| 上传文档 | ❌ |
| 移动文档 | ❌ |
| 复制文档 | ❌ |
分类体系
| 操作 | 可用 |
|---|---|
| 获取分类组 | ❌ |
| 创建分类标签 | ❌ |
| 更新分类标签 | ❌ |
| 删除分类标签 | ❌ |
搜索
| 操作 | 可用 |
|---|---|
| 在 SharePoint 网站内搜索 | ✅ |
身份验证选项
服务支持两种身份验证方法:
- 客户端密钥身份验证 - 使用传统的客户端 ID 和密钥。这是已弃用的仅应用身份验证方式,2026 年 4 月后将无法使用。
- 证书身份验证 - 使用 Azure AD 应用注册和证书的较新方式
选项 1:客户端密钥身份验证(2026 年 4 月后将无法使用)
此选项需要 SharePoint 管理员角色。
配置步骤
⚠️ 你必须是 SharePoint 租户管理员或全局管理员,才能创建 SharePoint 应用。
允许仅限 SharePoint 的应用
- 从此处下载并安装 SharePoint Online Management Shell。
- 打开 PowerShell 并运行以下命令,确保已启用仅限 SharePoint 的应用:
Connect-SPOService -Url https://<your-tenant>-admin.sharepoint.com/
Set-SPOTenant -DisableCustomAppAuthentication $false
使用客户端机密创建仅适用于 SharePoint 的应用
- 打开
https://<your-tenant>.sharepoint.com/_layouts/15/appregnew.aspx - 点击
Generate以创建新的客户端 ID 和机密。 - 填写以下字段:
- 应用域:
www.example.com(或你拥有的任意域名) - 重定向 URL:
http://example.com
- 应用域:
- 点击
Create创建应用。 - 将
Client ID和Client Secret的值复制到安全的位置。稍后需要用到它们。
授予应用权限
- 打开
https://<your-tenant>.sharepoint.com/_layouts/15/appinv.aspx - 在
App ID字段中粘贴Client ID的值,然后点击Lookup。
- 在
App Permission Request XML字段中粘贴以下 XML:
<AppPermissionRequests AllowAppOnlyPolicy="true">
<AppPermissionRequest Scope="http://sharepoint/content/tenant" Right="FullControl" />
</AppPermissionRequests>
- 点击
Create,然后点击Trust It,以授予应用权限。
选项 2:证书身份验证
基于证书的身份验证比客户端机密更安全。它使用证书验证应用的身份,而不是使用共享机密。
⚠️ 此选项需要全局管理员角色才能向应用授予必要的权限。
克隆仓库
git clone https://github.com/Zerg00s/server-sharepoint.git
使用证书创建 Azure AD 应用
进入克隆的仓库,并使用提供的 PowerShell 脚本创建带证书的 Azure AD 应用:
.\Create-SPAppCertificate.ps1 -AppName "SharePoint-Server-MCP" -CertName "SharePoint-Server-MCP-Cert" -CertPassword "YourSecureP@ssw0rd!"
此脚本将
- 在证书存储中创建自签名证书
- 注册 Azure AD 应用程序
- 将证书添加到应用程序
- 配置所需的 SharePoint 权限
- 生成包含必要设置的配置文件
- 输出与 Claude Desktop 兼容的
claude_desktop_config.json
授予管理员同意
运行脚本后,你会获得一个管理员同意 URL。在浏览器中打开该 URL,并以全局管理员身份登录,为这些权限授予同意。
安装 Node.js
安装 Node.js 版本:22.14.0 或更高版本
安装和配置 Claude Desktop
- 下载并安装 Claude Desktop。
- 在 Claude Desktop 中,前往
File>Settings>Developer。
- 点击 Edit Config

- 在编辑器中打开 claude_desktop_config.json 配置文件。你也可以使用之前由 PowerShell 脚本生成的 claude_desktop_config.json 文件。
- 将以下内容粘贴到配置文件中,并使用你自己的值更新
mcpServers部分:
证书身份验证配置
{
"mcpServers": {
"server-sharepoint": {
"command": "npx",
"args": [
"-y",
"server-sharepoint"
],
"env": {
"AZURE_APPLICATION_ID": "<your-app-id>",
"AZURE_APPLICATION_CERTIFICATE_THUMBPRINT": "<your-certificate-thumbprint>",
"AZURE_APPLICATION_CERTIFICATE_PASSWORD": "<your-certificate-password>",
"M365_TENANT_ID": "<your-tenant-id>"
}
}
}
}
客户端机密身份验证配置(不推荐)
{
"mcpServers": {
"server-sharepoint": {
"command": "npx",
"args": [
"-y",
"server-sharepoint"
],
"env": {
"SHAREPOINT_CLIENT_ID": "<your-client-id>",
"SHAREPOINT_CLIENT_SECRET": "<your-client-secret>",
"M365_TENANT_ID": "<your-tenant-id>"
}
}
}
}
- 保存配置文件并重启 Claude Desktop。请确保通过任务栏托盘图标完全退出应用:

如何与 MCP 服务“对话”
- 打开 Claude Desktop 并提出类似这样的问题:
Get me the list of lists from https://<your-tenant>.sharepoint.com/sites/Dashboard-Communication. Present the results in a table form. don't use code。

贡献者指南
构建新的 npm 包
npm run build
npm publish
npx clear-npx-cache
npm cache clean --force
在本地运行 MCP Inspector
npx @modelcontextprotocol/inspector node build/src/index.js
面向大模型的 MCP Server Context 7 文档
面向大模型的 MCP Server Context 7 文档
SharePoint REST API 文档
本地开发
- 克隆仓库
nvm use 22.14.0npm install- 更新
claude_desktop_config.json文件中的 MCP 配置。示例:
使用客户端密钥进行身份验证(2026 年 4 月之后将无法使用)
{
"mcpServers": {
"sharepoint": {
"command": "node",
"args": [
"C:\\trash\\server-sharepoint\\build\\index.js"
],
"env": {
"SHAREPOINT_CLIENT_ID": "aaa2ce0f-7c97-4e51-acd9-4ac99e6831d0",
"SHAREPOINT_CLIENT_SECRET": "bbb0OFF+aWkua2NJRERUMGduMmhsWDhGUTVPUHJZLXd5dldSemNPUw==",
"M365_TENANT_ID": "22bcd981-eaa6-475f-aac3-3afca0c35261"
}
}
}
}
使用证书进行身份验证(推荐)
{
"mcpServers": {
"sharepoint": {
"command": "node",
"args": [
"C:\\trash\\server-sharepoint\\build\\index.js"
],
"env": {
"AZURE_APPLICATION_ID": "5bc793c7-3eb0-4b86-88bf-b464b2459c4c",
"AZURE_APPLICATION_CERTIFICATE_THUMBPRINT": "3D38D1D8AC3228CAD35E527D1105101B0B90CE86",
"AZURE_APPLICATION_CERTIFICATE_PASSWORD": "TemporaryP@ssw0rd",
"M365_TENANT_ID": "11bcd981-eaa6-475f-aac3-3afca0c35261"
}
}
}
}
- 修改代码
- 构建代码
npm run build - 使用 MCP Inspector 测试:
npx @modelcontextprotocol/inspector node build/src/index.js -y
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。