mcpField
S
SharePoint MCP Server   node.js Based REST API

SharePoint MCP Server node.js Based REST API

本地服务
github.com/Zerg00s开发工具3774 周前更新

关于 SharePoint MCP Server node.js Based REST API

SharePoint MCP Server 是基于 Node.js 的 MCP 服务,通过 SharePoint REST API 与 SharePoint Online 交互,主要面向 Claude Desktop 用户。它覆盖用户、站点、列表、页面等多类操作,并支持证书和客户端密钥两种认证方式。

主要功能

  1. 01通过 SharePoint REST API 操作 SharePoint Online
  2. 02管理用户组、站点导航和子站点
  3. 03管理列表、列表视图、字段和列表项
  4. 04创建和删除现代页面
  5. 05支持证书与客户端密钥认证

适用场景

  1. 01在 Claude Desktop 中查询 SharePoint 站点的列表信息
  2. 02批量管理列表字段、视图和列表项

MCP 相关

该项目是 MCP 服务,向 Claude Desktop 等 MCP 客户端提供 SharePoint 相关操作,README 中标注了各项操作的可用状态。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"server-sharepoint": {
"command": "npx",
"args": [
"-y",
"server-sharepoint"
],
"env": {
"SHAREPOINT_CLIENT_ID": "<SHAREPOINT_CLIENT_ID>",
"SHAREPOINT_CLIENT_SECRET": "<SHAREPOINT_CLIENT_SECRET>",
"SHAREPOINT_TENANT_ID": "<SHAREPOINT_TENANT_ID>"
}
}
}
}
启动命令npx -y server-sharepoint
需要配置的环境变量
SHAREPOINT_CLIENT_ID
SHAREPOINT_CLIENT_SECRET密钥
SHAREPOINT_TENANT_ID

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmserver-sharepoint

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

SharePoint Online MCP 服务 🚀

Node.js Version SharePoint REST API npx License SharePoint Online Windows Linux macOS

SharePoint MCP 服务

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

此 MCP 服务旨在与 Claude Desktop 桌面应用配合使用,也可与 Cline 等其他 MCP 客户端配合使用。

目录

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 Management 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
  • 点击 Generate 以创建新的客户端 ID 和机密。
  • 填写以下字段:
    • 应用域:www.example.com(或你拥有的任意域名)
    • 重定向 URL:http://example.com 应用注册
  • 点击 Create 创建应用。
  • 将 Client ID 和 Client Secret 的值复制到安全的位置。稍后需要用到它们。
授予应用权限
  • 打开 https://<your-tenant>.sharepoint.com/_layouts/15/appinv.aspx
  • 在 App ID 字段中粘贴 Client ID 的值,然后点击 Lookup。 查找
  • 在 App Permission Request XML 字段中粘贴以下 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 兼容的 claude_desktop_config.json
授予管理员同意

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


安装 Node.js

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

安装和配置 Claude Desktop

  • 下载并安装 Claude Desktop。
  • 在 Claude Desktop 中,前往 File > Settings > Developer。 File > Settings
  • 点击 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": "<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 并提出类似这样的问题: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 Inspector
npx @modelcontextprotocol/inspector node build/src/index.js
面向大模型的 MCP Server Context 7 文档

面向大模型的 MCP Server Context 7 文档

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

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。