返回市场
共享点服务器

共享点服务器

作者:Zerg00s20 星标更新:2025-05-28

项目介绍

SharePoint Online MCP Server 🚀

Node.js 版本 SharePoint REST API npx 许可证 SharePoint Online Windows Linux macOS

SharePoint MCP Server

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

此MCP服务器设计用于与Claude Desktop应用程序配合使用,但也可以与其他MCP客户端(如Cline)一起使用。

目录

SharePoint操作可用性

用户

操作可用备注
列出站点用户
列出站点组
获取组成员
添加组成员
移除组成员
获取用户资料/_api/SP.UserProfiles.PeopleManager
更新用户资料

站点

操作可用
获取站点详情
更新站点属性
获取全局导航链接
获取快速导航链接
添加导航链接
更新导航链接
删除导航链接
获取子站点
创建子站点
删除子站点

区域设置

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

功能

操作可用
获取站点集合功能
获取所有站点功能
获取站点功能
获取所有站点功能
激活功能
停用功能

列表

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

列表视图

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

列表内容类型

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

列表项

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

站点内容类型

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

页面

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

文档

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

分类法

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

搜索

操作可用
在SharePoint站点内搜索

身份验证选项

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

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

选项1:客户端密钥身份验证(2026年4月后将无法使用)

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

配置步骤

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

允许仅限SharePoint的应用

  • 下载并安装SharePoint Online管理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
  • 点击生成以创建新的客户端ID和密钥。
  • 填写以下字段:
    • 应用域名:www.example.com(或您拥有的任何域名)
    • 重定向URL:http://example.com 应用注册
  • 点击创建以创建应用。
  • Client IDClient Secret值复制到安全的地方。稍后会用到它们。

授予应用权限

  • 打开https://<your-tenant>.sharepoint.com/_layouts/15/appinv.aspx
  • Client ID值粘贴到App ID字段中并点击查找查找
  • 将以下XML粘贴到App Permission Request XML字段中:
<AppPermissionRequests AllowAppOnlyPolicy="true">
   <AppPermissionRequest Scope="http://sharepoint/content/tenant" Right="FullControl" />
</AppPermissionRequests>
  • 点击创建然后点击信任它以授予应用权限。 信任它

选项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兼容的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部分:

证书身份验证配置

{
  "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。确保通过任务栏图标完全退出应用程序: 快速Claude应用

如何“与”MCP服务器通信

  • 打开Claude Desktop并提问,例如获取https://<your-tenant>.sharepoint.com/sites/Dashboard-Communication中的列表列表。以表格形式呈现结果。不要使用代码

示例结果


对于贡献者

构建新的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服务器上下文7文档供LLMs使用

MCP服务器上下文7文档供LLMs使用

SharePoint REST API文档

本地开发

  • 克隆仓库
  • nvm use 22.14.0
  • npm 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