Z

Zerg00s

@Zerg00s/server-sharepoint
0 Stars 302 次浏览 Zerg00s 更新于 2026-08-23
该服务暂未提供标准配置,请参考 README 手动接入

服务介绍

SharePoint Online MCP 服务器

这是一个用于 Claude Desktop 的 MCP 服务器,它允许您通过 SharePoint REST API 与 SharePoint Online 进行交互。它设计为与 Claude Desktop 应用程序一起使用,但也可以被其他 MCP 客户端使用。

实现

组件 操作 是否可用
用户 ✅
按角色列出站点用户 ✅
列出站点组 ✅
获取组成员 ✅
添加组成员 ✅
移除组成员 ✅
站点 ✅
获取站点详情 ✅
更新站点属性 ✅
获取全局导航链接 ✅
获取快速导航链接 ✅
添加导航链接 ✅
更新导航链接 ✅
删除导航链接 ✅
获取子站点 ✅
创建子站点 ❌
删除子站点 ✅
列表 ✅
获取所有列表 ✅
创建列表 ✅
更新列表 ❌
获取列表字段 ✅
创建列表字段 ✅
更新列表字段 ✅
删除列表字段 ✅
设置列表字段格式 ❌
设置列表视图格式 ❌
删除列表 ✅
列表视图 ✅
获取列表视图 ✅
删除列表视图 ✅
创建列表视图 ✅
更新列表视图 ✅
获取视图字段 ✅
添加视图字段 ✅
移除视图字段 ✅
移除所有视图字段 ✅
移动视图字段 ✅
列表项 ✅
获取所有列表项 ✅
创建列表项 ✅
更新列表项 ✅
删除列表项 ✅
列表内容类型 ❌
获取所有列表内容类型 ❌
创建列表内容类型 ❌
更新列表内容类型 ❌
删除列表内容类型 ❌
页面 ❌
创建现代页面 ❌
文档 ❌
创建文档 ❌
上传文档 ❌
复制文档 ❌
获取分类组 ❌
创建分类标签 ❌
更新分类标签 ❌
删除分类标签 ❌

身份验证选项

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

  1. 客户端密钥身份验证 - 传统的客户端ID和密钥。这是仅应用程序的身份验证,已被弃用,并将在2026年4月后不再工作。
  2. 证书身份验证 - 使用Azure AD应用注册与证书的更现代的方法。

选项1:客户端密钥身份验证(将在2026年4月后不再工作)

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

配置步骤

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

允许仅SharePoint的应用

  • 从这里下载并安装SharePoint Online Management Shell。
  • 打开PowerShell并运行以下命令以确保已启用仅SharePoint的应用:

powershell
Connect-SPOService -Url https://-admin.sharepoint.com/
Set-SPOTenant -DisableCustomAppAuthentication $false

创建带有客户端密钥的仅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!"

该脚本将执行以下操作:

  1. 在您的证书存储中创建自签名证书
  2. 注册一个Azure AD应用程序
  3. 将证书添加到应用程序
  4. 配置所需的SharePoint权限
  5. 生成包含必要设置的配置文件
  6. 输出与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": "",
"AZURE_APPLICATION_CERTIFICATE_THUMBPRINT": "",
"AZURE_APPLICATION_CERTIFICATE_PASSWORD": "",
"M365_TENANT_ID": ""
}
}
}
}

对于客户端密钥身份验证(不推荐)

json
{
"mcpServers": {
"server-sharepoint": {
"command": "npx",
"args": [
"-y",
"server-sharepoint"
],
"env": {
"SHAREPOINT_CLIENT_ID": "",
"SHAREPOINT_CLIENT_SECRET": "",
"M365_TENANT_ID": ""
}
}
}
}

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

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

如何与 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 - 更新站点属性,包括标题、描述和徽标 URL
  • getSubsites - 从站点获取所有子站点
  • deleteSubsite - 删除一个子站点(需要确认)
  • getGlobalNavigationLinks - 获取全局(顶部)导航链接
  • getQuickNavigationLinks - 获取快速(左侧)导航链接
  • addNavigationLink - 向全局或快速导航添加导航链接
  • updateNavigationLink - 更新现有导航链接
  • deleteNavigationLink - 删除导航链接
  • getSiteUsers - 获取站点用户,可按角色(所有者、成员、访客)筛选
  • getSiteGroups - 获取站点的所有 SharePoint 组

列表管理

  • getLists - 获取 SharePoint 站点上的所有可用列表
  • createList - 使用自定义设置创建新的列表或文档库,并可选自定义 URL
  • deleteList - 删除列表或文档库(需要确认)
  • 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.0
  • npm 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

相关 MCP 服务