SharePoint REST API服务器

一个强大的SharePoint MCP服务器,通过SharePoint REST API与SharePoint Online无缝交互,支持多种认证方式和丰富的操作功能。

  • by Zerg00s
  • TypeScript
  • 本地部署
  • 37 星标
  • 更新于
在 GitHub 查看 Zerg00s/server-sharepoint

使用说明

SharePoint在线MCP服务器🚀

最强大的SharePoint MCP服务器,通过SharePoint REST API实现与SharePoint Online的无缝交互。

此MCP服务器设计用于 克劳德桌面 应用程序,但也可以由其他MCP客户端使用,例如 克莱恩 也。

目录

SharePoint操作可用性

用户

操作 可用 备注
列出网站用户 ✅
列出网站用户组 ✅
获取组成员 ✅
添加组成员 ✅
删除组成员 ✅
获取用户资料 ❌ /_api/SP.UserProfiles。人事经理
更新用户配置文件 ❌

站点

操作 可用
获取网站详细信息 ✅
更新站点属性 ✅
获取全球导航链接 ✅
获取快速导航链接 ✅
添加导航链接 ✅
更新导航链接 ✅
删除导航链接 ✅
获取子网站 ✅
创建子站点 ❌
删除子站点 ✅

区域设置

操作 可用
获取区域设置 ✅
更新区域设置 ❌

特性

操作 可用
获取网站集功能 ✅
获取所有网站功能 ✅
获取网站功能 ✅
获取所有网站功能 ✅
激活功能 ❌
停用功能 ❌

列表

操作 可用 备注
获取所有列表 ✅
创建列表 ✅
将网站内容类型添加到列表 ✅
从列表中删除内容类型 ✅
将字段添加到列表内容类型 ❌
从列表内容类型中删除字段 ❌
更新列表 ✅
获取列表字段 ✅
创建列表字段 ✅ 仅适用于基本场景
更新列表字段 ✅
删除列表字段 ✅
设置列表字段格式 ❌
设置列表视图格式 ❌
删除列表 ✅

列表视图

操作 可用
获取列表视图 ✅
删除列表视图 ✅
创建列表视图 ✅
更新列表视图 ✅
获取视图字段 ✅
添加视图字段 ✅
删除视图字段 ✅
删除所有视图字段 ✅
移动视图字段 ✅

列出内容类型

操作 可用 备注
获取所有列表内容类型 ✅
获取列表内容类型 ✅
创建列表内容类型 ❌
更新列表内容类型 ✅ 仅更改CT标题和组
删除列表内容类型 ✅

列出项目

操作 可用
获取所有列表项 ✅
创建列表项 ✅
更新列表项 ✅
删除列表项 ✅

网站内容类型

操作 可用 备注
获取所有网站内容类型 ✅
获取网站内容类型 ✅
创建网站内容类型 ❌
更新网站内容类型 ✅ 仅更改CT标题和组
删除网站内容类型 ✅

页面

操作 可用
创建现代页面 ✅
删除现代页面 ✅
列出现代页面 ✅
添加页面Web部件 ❌
删除页面Web部件 ❌
移动页面Web部件 ❌
更新页面Web部件 ❌

文件

操作 可用
创建文档 ❌
上传文档 ❌
移动文档 ❌
复制文档 ❌

分类学

操作 可用
获取分类组 ❌
创建分类标签 ❌
更新分类标签 ❌
删除分类标签 ❌

搜索

操作 可用
在SharePoint网站内搜索 ✅

身份验证选项

服务器支持两种身份验证方法:

  1. 客户端秘密身份验证 -传统的客户端ID和密码。这是被弃用的仅限应用程序的身份验证,在2026年4月之后将无法使用。
  2. 证书身份验证 -使用Azure AD应用程序注册证书的更现代方法

选项1:客户端秘密身份验证(2026年4月后将不起作用)

此选项需要SharePoint管理员角色。

配置步骤

⚠️ 您需要是SharePoint租户管理员或全局管理员才能创建SharePoint应用程序。

仅允许SharePoint应用程序

  • 从下载并安装SharePoint Online命令行管理程序 这里.
  • 打开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
  • 粘贴 Client ID 价值在 App ID 字段并单击 Lookup.
  • 将以下XML粘贴到 App Permission Request 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!"

此脚本将

  1. 在证书存储中创建自签名证书
  2. 注册Azure AD应用程序
  3. 将证书添加到应用程序中
  4. 配置所需的SharePoint权限
  5. 生成具有必要设置的配置文件
  6. 输出 claude_desktop_config.json 与Claude Desktop兼容

授予管理员同意

运行脚本后,您将获得一个管理员同意URL。在浏览器中打开它,并以全局管理员身份登录,以授予权限同意。


安装Node.js

安装Node.js版本: 22.14.0或更高版本

安装和配置Claude桌面

  • 下载 克劳德桌面 并安装它。
  • 在Claude Desktop中,转到 File > Settings > Developer.
  • 单击编辑配置
  • 在编辑器中打开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>"
      }
    }
  }
} 

💡了解如何从Entra ID获取租户ID

  • 保存配置文件并重新启动Claude Desktop。确保通过任务托盘图标完全退出应用程序:

如何与MCP服务器“对话”

  • 打开克劳德桌面,问一个问题,比如 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检查器

npx @modelcontextprotocol/inspector node build/src/index.js

MCP服务器上下文7 LLM文档

MCP服务器上下文7 LLM文档

SharePoint REST API文档

地方发展

  • 克隆仓库
  • nvm use 22.14.0
  • npm install
  • 在中更新MCP配置 claude_desktop_config.json 文件。样品:

用于客户端秘密身份验证(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检验员测试: npx @modelcontextprotocol/inspector node build/src/index.js -y