SharePoint MCP服务器

用于Microsoft SharePoint的MCP服务器,使用现代Azure AD(SCL)身份验证。
先决条件
Azure AD应用程序注册
- 首选 Azure 门户 → Azure Active Directory → 应用程序注册 → 新注册
- 名字:你喜欢什么都行 - 支持的帐户类型:“仅此组织目录中的帐户” - 重定向URI:留空
- 从 概述 第页,注意:
- 应用程序(客户端)ID → SHP_ID_APP - 目录(租户)ID → SHP_TENANT_ID
- 证书和秘密 → 新客户机密
- 保存 价值 立即(你不会再看到它了)→ SHP_ID_APP_SECRET
- API权限 → 添加权限 → SharePoint → 应用权限
- 添加 Sites.ReadWrite.All (或 Sites.Read.All 只读) - 点击 授予管理员同意 --状态必须显示绿色复选标记
- 获取您的SharePoint网站URL(例如。
https://contoso.sharepoint.com/sites/yoursite) →SHP_SITE_URL
- 不要包含尾随斜线
安全最佳实践
- 使用
Sites.Read.All如果你只需要读取权限(最小权限原则) - 设置日历提醒,在到期前轮换客户端机密
- 永不承诺
.env文件到Git——使用环境变量或机密管理器
安装
pip install mcp-sharepoint-us或来源:
git clone https://github.com/mdev26/mcp-sharepoint-us.git
cd mcp-sharepoint-us
pip install -e .配置
# Required
SHP_TENANT_ID=your-tenant-id-guid
SHP_ID_APP=your-client-id-guid
SHP_ID_APP_SECRET=your-client-secret
SHP_SITE_URL=https://your-tenant.sharepoint.com/sites/your-site
# Optional
SHP_DOC_LIBRARY=Shared Documents # default
SHP_AUTH_METHOD=msal # options: msal (default), certificate, legacy基于证书的身份验证(可选)
SHP_AUTH_METHOD=certificate
SHP_CERT_PATH=/path/to/certificate.pem
SHP_CERT_THUMBPRINT=your-cert-thumbprintClaude桌面集成
窗户: %APPDATA%\Claude\claude_desktop_config.json macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"sharepoint": {
"command": "python",
"args": ["-m", "mcp_sharepoint"],
"env": {
"SHP_TENANT_ID": "your-tenant-id",
"SHP_ID_APP": "your-client-id",
"SHP_ID_APP_SECRET": "your-client-secret",
"SHP_SITE_URL": "https://your-tenant.sharepoint.com/sites/your-site",
"SHP_AUTH_METHOD": "msal"
}
}
}
}使用uvx
{
"mcpServers": {
"sharepoint": {
"command": "uvx",
"args": ["mcp-sharepoint-us"],
"env": {
"SHP_TENANT_ID": "your-tenant-id",
"SHP_ID_APP": "your-client-id",
"SHP_ID_APP_SECRET": "your-client-secret",
"SHP_SITE_URL": "https://your-tenant.sharepoint.com/sites/your-site"
}
}
}
}可用工具
| 工具 | 说明 |
|---|---|
Test_Connection | 验证身份验证和连接 |
List_SharePoint_Documents | 列出文件夹中的文档 |
Get_Document_Content | 读取文档内容(支持.docx、.pptx、.xlsx、.pdf) |
Upload_Document | 上传新文档 |
Update_Document | 更新现有文档 |
Delete_Document | 删除文档 |
List_SharePoint_Folders | 列出文件夹 |
Create_Folder | 创建新文件夹 |
Delete_Folder | 删除空文件夹 |
Get_SharePoint_Tree | 获取递归文件夹结构 |
Create_Word_Document | 创建格式化的.docx并上传到SharePoint |
Edit_Word_Document | 在.docx中查找/替换或部分替换内容 |
Create_PowerPoint | 创建.pptx并上传到SharePoint |
故障排除
启用调试日志
LOGLEVEL=DEBUG python -m mcp_sharepoint“获取仅应用程序访问令牌失败”
- 确保
SHP_TENANT_ID已设置且正确(Azure门户→ Azure Active Directory→ 概述→ 租户ID) - 确保
SHP_AUTH_METHOD=msal(或保持未设置状态——默认值为msal) - 验证Azure门户中是否授予管理员同意(API权限上的绿色复选标记)
- 授予权限后,等待5-10分钟进行传播
“403禁止”/“拒绝访问”
- 权限必须 应用 权限,未委托
- 必须获得管理员同意
- 网站URL必须与SharePoint网站完全匹配(无尾随斜线)
“客户端密码无效”
- 复制秘密 价值,而不是秘密ID
- 检查您的电脑中是否有多余的空间
.env文件 - 密码可能已过期,请创建一个新密码
连接重置/防火墙问题
如果身份验证成功但Graph API调用失败(TLS期间连接重置),则端点 graph.microsoft.us (美国政府)或 graph.microsoft.com (商业)可能会被使用深度数据包检测的防火墙阻止。请您的网络团队将端口443上的端点列入白名单。对于代理环境:
export HTTPS_PROXY=http://proxy.company.com:8080许可证
MIT许可证
