使用说明
SharePoint MCP服务器
用于Microsoft SharePoint的MCP服务器,使用现代Azure AD(SCL)身份验证。
先决条件
Azure AD应用程序注册
-
首选 Azure 门户 → Azure Active Directory → 应用程序注册 → 新注册
- 名字:你喜欢什么都行
- 支持的帐户类型:“仅此组织目录中的帐户”
- 重定向URI:留空
-
从 概述 第页,注意:
- 应用程序(客户端)ID →
SHP_ID_APP - 目录(租户)ID →
SHP_TENANT_ID
- 应用程序(客户端)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-thumbprint
Claude桌面集成
窗户: %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许可证