294 查看 · 2026-07-07 更新
SharePoint Online MCP 服务器
这是一个用于 Claude Desktop 的 MCP 服务器,它允许您通过 SharePoint REST API 与 SharePoint Online 进行交互。它设计为与 Claude Desktop 应用程序一起使用,但也可以被其他 MCP 客户端使用。
实现
| 组件 | 操作 | 是否可用 |
|---|---|---|
| 用户 | ✅ | |
| 按角色列出站点用户 | ✅ | |
| 列出站点组 | ✅ | |
| 获取组成员 | ✅ | |
| 添加组成员 | ✅ | |
| 移除组成员 | ✅ | |
| 站点 | ✅ | |
| 获取站点详情 | ✅ | |
| 更新站点属性 | ✅ | |
| 获取全局导航链接 | ✅ | |
| 获取快速导航链接 | ✅ | |
| 添加导航链接 | ✅ | |
| 更新导航链接 | ✅ | |
| 删除导航链接 | ✅ | |
| 获取子站点 | ✅ | |
| 创建子站点 | ❌ | |
| 删除子站点 | ✅ | |
| 列表 | ✅ | |
| 获取所有列表 | ✅ | |
| 创建列表 | ✅ | |
| 更新列表 | ❌ | |
| 获取列表字段 | ✅ | |
| 创建列表字段 | ✅ | |
| 更新列表字段 | ✅ | |
| 删除列表字段 | ✅ | |
| 设置列表字段格式 | ❌ | |
| 设置列表视图格式 | ❌ | |
| 删除列表 | ✅ | |
| 列表视图 | ✅ | |
| 获取列表视图 | ✅ | |
| 删除列表视图 | ✅ | |
| 创建列表视图 | ✅ | |
| 更新列表视图 | ✅ | |
| 获取视图字段 | ✅ | |
| 添加视图字段 | ✅ | |
| 移除视图字段 | ✅ | |
| 移除所有视图字段 | ✅ | |
| 移动视图字段 | ✅ | |
| 列表项 | ✅ | |
| 获取所有列表项 | ✅ | |
| 创建列表项 | ✅ | |
| 更新列表项 | ✅ | |
| 删除列表项 | ✅ | |
| 列表内容类型 | ❌ | |
| 获取所有列表内容类型 | ❌ | |
| 创建列表内容类型 | ❌ | |
| 更新列表内容类型 | ❌ | |
| 删除列表内容类型 | ❌ | |
| 页面 | ❌ | |
| 创建现代页面 | ❌ | |
| 文档 | ❌ | |
| 创建文档 | ❌ | |
| 上传文档 | ❌ | |
| 复制文档 | ❌ | |
| 获取分类组 | ❌ | |
| 创建分类标签 | ❌ | |
| 更新分类标签 | ❌ | |
| 删除分类标签 | ❌ |
身份验证选项
服务器支持两种身份验证方法:
- 客户端密钥身份验证 - 传统的客户端ID和密钥。这是仅应用程序的身份验证,已被弃用,并将在2026年4月后不再工作。
- 证书身份验证 - 使用Azure AD应用注册与证书的更现代的方法。
选项1:客户端密钥身份验证(将在2026年4月后不再工作)
此选项需要SharePoint管理员角色。
配置步骤
⚠️ 您需要是SharePoint租户管理员或全局管理员才能创建SharePoint应用。
允许仅SharePoint的应用
- 从这里下载并安装SharePoint Online Management Shell。
- 打开PowerShell并运行以下命令以确保已启用仅SharePoint的应用:
powershell
Connect-SPOService -Url https://
创建带有客户端密钥的仅SharePoint应用
- 打开
https://<your-tenant>.sharepoint.com/_layouts/15/appregnew.aspx - 点击
生成以创建新的客户端ID和密钥。 - 填写以下字段:
- 应用域:
www.example.com(或您拥有的任何域名) - 重定向URL:
http://example.com
- 应用域:
- 点击
创建以创建应用。 - 将
客户端ID和客户端密钥值复制到安全的地方。稍后会用到它们。
授予应用权限
- 打开
https://<your-tenant>.sharepoint.com/_layouts/15/appinv.aspx - 在
应用ID字段中粘贴客户端ID值,然后点击查找。
- 在
应用权限请求XML字段中粘贴以下XML:
xml
- 点击
创建,然后点击信任它以授予应用权限。
选项2:证书身份验证
基于证书的身份验证比客户端密钥提供了更好的安全性。它使用证书来证明应用程序的身份,而不是共享密钥。
⚠️ 此选项需要全局管理员角色来为应用提供必要的权限。
克隆仓库
bash git clone https://github.com/Zerg00s/server-sharepoint.git
使用证书创建Azure AD应用
导航到克隆的仓库,并使用提供的PowerShell脚本来创建带有证书的Azure AD应用:
powershell .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。在浏览器中打开它,并以全局管理员身份登录以授予权限。
安装Node.js
安装Node.js版本:22.14.0或更高版本
安装和配置Claude Desktop
- 下载Claude Desktop并安装。
- 在Claude Desktop中,转到
文件>设置>开发者。
- 点击编辑配置
- 打开编辑器中的 claude_desktop_config.json配置文件。您也可以使用之前由 PowerShell 脚本生成的claude_desktop_config.json文件。 - 将以下内容粘贴到配置文件中,并根据您的实际值更新
mcpServers部分:
对于证书身份验证
json
{
"mcpServers": {
"server-sharepoint": {
"command": "npx",
"args": [
"-y",
"server-sharepoint"
],
"env": {
"AZURE_APPLICATION_ID": "
对于客户端密钥身份验证(不推荐)
json
{
"mcpServers": {
"server-sharepoint": {
"command": "npx",
"args": [
"-y",
"server-sharepoint"
],
"env": {
"SHAREPOINT_CLIENT_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。

可用工具
站点管理
getSite- 获取 SharePoint 站点的详细信息updateSite- 更新站点属性,包括标题、描述和徽标 URLgetSubsites- 从站点获取所有子站点deleteSubsite- 删除一个子站点(需要确认)getGlobalNavigationLinks- 获取全局(顶部)导航链接getQuickNavigationLinks- 获取快速(左侧)导航链接addNavigationLink- 向全局或快速导航添加导航链接updateNavigationLink- 更新现有导航链接deleteNavigationLink- 删除导航链接getSiteUsers- 获取站点用户,可按角色(所有者、成员、访客)筛选getSiteGroups- 获取站点的所有 SharePoint 组
列表管理
getLists- 获取 SharePoint 站点上的所有可用列表createList- 使用自定义设置创建新的列表或文档库,并可选自定义 URLdeleteList- 删除列表或文档库(需要确认)getListFields- 获取列表中字段/列的详细信息createListField- 创建新字段/列,分为两步:首先使用干净的名称以生成正确的内部名称,然后更新为所需的显示名称(包含空格)updateListField- 更新字段,包括显示名称、选项和其他属性deleteListField- 从列表中删除字段/列(需要确认)getListViews- 获取列表的所有视图,可选字段详细信息createListView- 创建带有选定字段和筛选器的自定义视图updateListView- 更新现有视图的设置和字段deleteListView- 从列表中删除视图(不能删除默认视图)
列表视图字段管理
getViewFields- 获取特定列表视图中的所有字段addViewField- 向列表视图添加字段removeViewField- 从列表视图中移除字段removeAllViewFields- 从列表视图中移除所有字段moveViewFieldTo- 将字段移动到列表视图中的特定位置
列表项管理
getListItems- 从特定列表中获取所有项createListItem- 使用自定义字段值创建新项updateListItem- 更新现有项的字段值-deleteListItem- 从列表中移除一个项目
用户管理
getGroupMembers- 获取特定 SharePoint 组的所有成员addGroupMember- 将用户添加到 SharePoint 组removeGroupMember- 从 SharePoint 组中移除用户
对于贡献者
- 构建一个新的 npm 包
bash npm run build npm publish npx clear-npx-cache npm cache clean --force
本地运行 MCP Inspector
bash npx @modelcontextprotocol/inspector node build/src/index.js
MCP Server Context 7 文档(针对 LLMs)
[https://context7.com/modelcontextprotocol/servers](MCP Server Context 7 Documentation for LLMs)
本地开发
- 克隆仓库
nvm use 22.14.0npm install- 更新
claude_desktop_config.json文件中的 MCP 配置。示例:
对于客户端密钥认证(将在 2026 年 4 月后失效)
json { "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" } } } }
对于证书认证(推荐)
json { "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
来源
- 来源:github
- 链接:https://github.com/Zerg00s/server-sharepoint