最强大的 SharePoint MCP 服务器,可通过 SharePoint REST API 与 SharePoint Online 进行无缝交互。该 MCP 服务器专为与 Claude Desktop 应用程序配合使用而设计,但也可由其他 MCP 客户端(如 Cline)使用。
本项目是一个强大的 SharePoint MCP 服务器,能借助 SharePoint REST API 与 SharePoint Online 实现无缝交互。以下将详细介绍如何使用该服务器。
安装 Node.js 版本:22.14.0 或更高版本
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": "" ,
"AZURE_APPLICATION_CERTIFICATE_THUMBPRINT": "" ,
"AZURE_APPLICATION_CERTIFICATE_PASSWORD": "" ,
"M365_TENANT_ID": ""
}
}
}
}
{
"mcpServers": {
"server-sharepoint": {
"command": "npx",
"args": [
"-y",
"server-sharepoint"
],
"env": {
"SHAREPOINT_CLIENT_ID": "" ,
"SHAREPOINT_CLIENT_SECRET": "" ,
"M365_TENANT_ID": ""
}
}
}
}
| 操作 | 是否可用 | 备注 |
|---|---|---|
| 列出网站用户 | ✅ | |
| 列出网站组 | ✅ | |
| 获取组成员 | ✅ | |
| 添加组成员 | ✅ | |
| 删除组成员 | ✅ | |
| 获取用户配置文件 | ❌ | /_api/SP.UserProfiles.PeopleManager |
| 更新用户配置文件 | ❌ |
| 操作 | 是否可用 |
|---|---|
| 获取网站详细信息 | ✅ |
| 更新网站属性 | ✅ |
| 获取全局导航链接 | ✅ |
| 获取快速导航链接 | ✅ |
| 添加导航链接 | ✅ |
| 更新导航链接 | ✅ |
| 删除导航链接 | ✅ |
| 获取子网站 | ✅ |
| 创建子网站 | ❌ |
| 删除子网站 | ✅ |
| 操作 | 是否可用 |
|---|---|
| 获取区域设置 | ✅ |
| 更新区域设置 | ❌ |
| 操作 | 是否可用 |
|---|---|
| 获取网站集功能 | ✅ |
| 获取所有网站功能 | ✅ |
| 获取网站功能 | ✅ |
| 获取所有网站功能 | ✅ |
| 激活功能 | ❌ |
| 停用功能 | ❌ |
| 操作 | 是否可用 | 备注 |
|---|---|---|
| 获取所有列表 | ✅ | |
| 创建列表 | ✅ | |
| 向列表添加网站内容类型 | ✅ | |
| 从列表中删除内容类型 | ✅ | |
| 向列表内容类型添加字段 | ❌ | |
| 从列表内容类型中删除字段 | ❌ | |
| 更新列表 | ✅ | |
| 获取列表字段 | ✅ | |
| 创建列表字段 | ✅ | 仅基本场景 |
| 更新列表字段 | ✅ | |
| 删除列表字段 | ✅ | |
| 设置列表字段格式 | ❌ | |
| 设置列表视图格式 | ❌ | |
| 删除列表 | ✅ |
| 操作 | 是否可用 |
|---|---|
| 获取列表视图 | ✅ |
| 删除列表视图 | ✅ |
| 创建列表视图 | ✅ |
| 更新列表视图 | ✅ |
| 获取视图字段 | ✅ |
| 添加视图字段 | ✅ |
| 删除视图字段 | ✅ |
| 删除所有视图字段 | ✅ |
| 移动视图字段 | ✅ |
| 操作 | 是否可用 | 备注 |
|---|---|---|
| 获取所有列表内容类型 | ✅ | |
| 获取列表内容类型 | ✅ | |
| 创建列表内容类型 | ❌ | |
| 更新列表内容类型 | ✅ | 仅更改内容类型标题和组 |
| 删除列表内容类型 | ✅ |
| 操作 | 是否可用 |
|---|---|
| 获取所有列表项 | ✅ |
| 创建列表项 | ✅ |
| 更新列表项 | ✅ |
| 删除列表项 | ✅ |
| 操作 | 是否可用 | 备注 |
|---|---|---|
| 获取所有网站内容类型 | ✅ | |
| 获取网站内容类型 | ✅ | |
| 创建网站内容类型 | ❌ | |
| 更新网站内容类型 | ✅ | 仅更改内容类型标题和组 |
| 删除网站内容类型 | ✅ |
| 操作 | 是否可用 |
|---|---|
| 创建现代页面 | ✅ |
| 删除现代页面 | ✅ |
| 列出现代页面 | ✅ |
| 添加页面 Web 部件 | ❌ |
| 删除页面 Web 部件 | ❌ |
| 移动页面 Web 部件 | ❌ |
| 更新页面 Web 部件 | ❌ |
| 操作 | 是否可用 |
|---|---|
| 创建文档 | ❌ |
| 上传文档 | ❌ |
| 移动文档 | ❌ |
| 复制文档 | ❌ |
| 操作 | 是否可用 |
|---|---|
| 获取分类组 | ❌ |
| 创建分类标签 | ❌ |
| 更新分类标签 | ❌ |
| 删除分类标签 | ❌ |
| 操作 | 是否可用 |
|---|---|
| 在 SharePoint 网站内搜索 | ✅ |
服务器支持两种认证方式:
此选项需要 SharePoint 管理员角色。
⚠️ 重要提示
你需要是 SharePoint 租户管理员或全局管理员才能创建 SharePoint 应用程序。
Connect-SPOService -Url https://-tenant>-admin.sharepoint.com/
Set-SPOTenant -DisableCustomAppAuthentication $false
https://.sharepoint.com/_layouts/15/appregnew.aspx Generate 以创建新的客户端 ID 和密钥。www.example.com(或你拥有的任何域名)http://example.com
Create 以创建应用程序。Client ID 和 Client Secret 值复制到安全的地方,后续会用到。https://.sharepoint.com/_layouts/15/appinv.aspx Client ID 值粘贴到 App ID 字段中,然后点击 Lookup。
App Permission Request XML 字段中:<AppPermissionRequests AllowAppOnlyPolicy="true">
<AppPermissionRequest Scope="http://sharepoint/content/tenant" Right="FullControl" />
AppPermissionRequests>
Create,然后点击 Trust It 以授予应用程序权限。
基于证书的认证比客户端密钥提供更好的安全性。它使用证书来证明应用程序的身份,而不是共享密钥。
⚠️ 重要提示
此选项需要全局管理员角色才能为应用程序提供必要的权限。
git clone https://github.com/Zerg00s/server-sharepoint.git
导航到克隆的仓库,并使用提供的 PowerShell 脚本创建带有证书的 Azure AD 应用程序:
.\Create-SPAppCertificate.ps1 -AppName "SharePoint-Server-MCP" -CertName "SharePoint-Server-MCP-Cert" -CertPassword "YourSecureP@ssw0rd!"
此脚本将:
claude_desktop_config.json。运行脚本后,你将获得一个管理员同意 URL。在浏览器中打开该 URL,并以全局管理员身份登录以授予权限同意。
Get me the list of lists from https://.sharepoint.com/sites/Dashboard-Communication. Present the results in a table form. don't use code 。npm run build
npm publish
npx clear-npx-cache
npm cache clean --force
npx @modelcontextprotocol/inspector node build/src/index.js
nvm use 22.14.0npm installclaude_desktop_config.json 文件中的 MCP 配置。示例如下:{
"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 buildnpx @modelcontextprotocol/inspector node build/src/index.js -y本项目采用 MIT 许可证。