使用说明
SharePoint MCP服务器
用于浏览和与Microsoft SharePoint网站和文档交互的模型上下文协议服务器。
此基于TypeScript的MCP服务器通过Microsoft Graph API提供全面的SharePoint集成,实现:
- 资源:使用结构化元数据作为MCP资源访问SharePoint网站
- 工具:搜索文件、列出网站、浏览文档库和检索文件内容
- 认证:通过自动令牌管理保护OAuth2客户端凭据流
特性
资源
- 列出应用程序可访问的SharePoint网站
- 通过以下方式访问单个站点信息
sharepoint://site/{siteId}URI - JSON格式的站点元数据,包含显示名称和web URL
工具
search_files
使用Microsoft Graph Search API在SharePoint中搜索文件和文档
- 参数:
query(必填):搜索查询字符串limit(可选):返回的最大结果数(默认值:10)
list_sites
列出应用程序可访问的SharePoint网站
- 参数:
search(可选):按显示名称筛选网站
get_site_info
获取特定SharePoint网站的详细信息
- 参数:
siteUrl(必填):SharePoint网站URL(例如。,https://tenant.sharepoint.com/sites/sitename)
list_site_drives
列出SharePoint网站中的文档库(驱动器)
- 参数:
siteUrl(必需):SharePoint网站URL
list_drive_items
列出SharePoint文档库中的文件和文件夹
- 参数:
siteUrl(必需):SharePoint网站URLdriveId(可选):特定驱动器ID(如果未指定,则使用默认驱动器)folderPath(可选):列出项目的文件夹路径(默认:root)
get_file_content
从SharePoint获取特定文件的内容(仅限文本文件)
- 参数:
siteUrl(必需):SharePoint网站URLfilePath(必填):文件路径driveId(可选):特定驱动器ID(如果未指定,则使用默认驱动器)
先决条件
Azure应用程序注册
- 在Azure Active Directory中注册应用程序
- 配置API权限:
- 微软图形:
Sites.Read.All(应用程序权限) - 微软图形:
Files.Read.All(应用程序权限)
- 微软图形:
- 授予管理员权限同意
- 创建客户端密钥
环境变量
设置以下环境变量:
SHAREPOINT_URL=https://yourtenant.sharepoint.com
TENANT_ID=your-azure-tenant-id
CLIENT_ID=your-azure-app-client-id
CLIENT_SECRET=your-azure-app-client-secret
发展
安装依赖项:
npm install
构建服务器:
npm run build
对于自动重建的开发:
npm run watch
测试
使用MCP检查器测试服务器:
npm run inspector
检查器提供了一个web界面来测试所有可用的工具和资源。
安装
Claude桌面配置
将服务器添加到您的Claude Desktop配置中:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
视窗: %APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"sharepoint-mcp-server": {
"command": "node",
"args": ["/path/to/sharepoint-mcp-server/build/index.js"],
"env": {
"SHAREPOINT_URL": "https://yourtenant.sharepoint.com",
"TENANT_ID": "your-azure-tenant-id",
"CLIENT_ID": "your-azure-app-client-id",
"CLIENT_SECRET": "your-azure-app-client-secret"
}
}
}
}
全球安装
您还可以全局安装服务器:
npm install -g .
然后直接使用它:
sharepoint-mcp-server
建筑
服务器实现了一个面向服务的架构,并明确分离了关注点:
- 认证层:处理OAuth2令牌获取和刷新
- Graph API客户端:管理对Microsoft Graph API的HTTP请求
- 工具操作员:处理MCP工具请求并格式化响应
- 资源处理程序:管理SharePoint网站资源和元数据
- 错误处理:使用适当的MCP错误代码进行全面的错误管理
安全考虑
- 使用OAuth2客户端凭据流进行安全身份验证
- 令牌在到期前会自动刷新
- 所有API请求都使用HTTPS
- 客户端机密应安全存储,不得提交版本控制
- 应用程序权限需要Azure AD中的管理员同意
故障排除
常见问题
- 身份验证错误:验证Azure应用程序注册和权限
- 现场访问:确保应用程序具有适当的SharePoint权限
- 网络问题:检查Microsoft Graph API访问的防火墙设置
调试模式
设置详细日志记录的环境变量:
DEBUG=sharepoint-mcp-server
贡献
- 遵循TypeScript的最佳实践
- 保持全面的错误处理
- 添加新功能的测试
- 更新API变更文档
许可证
此项目根据Mozilla公共许可证2.0获得许可。请参阅 许可证 文件以获取详细信息。
贡献
我们欢迎捐款!请遵循以下指南:
入门指南
- 分叉存储库
- 创建要素分支(
git checkout -b feature/amazing-feature) - 进行更改
- 添加新功能的测试
- 确保所有测试通过(
npm test) - 提交您的更改(
git commit -m 'Add amazing feature') - 推到分支(
git push origin feature/amazing-feature) - 打开拉取请求
开发指南
- 遵循TypeScript最佳实践并维护类型安全
- 使用适当的MCP错误代码实施全面的错误处理
- 为所有公共方法和类添加JSDoc注释
- 通过明确的关注点分离来维护面向服务的架构
- 遵循SOLID原则,保持函数的重点和可测试性
- 针对任何API更改更新文档
代码的风格
- 使用TypeScript严格模式
- 遵循现有的代码格式和命名约定
- 删除未使用的导入和变量
- 使用描述性变量和函数名称
- 比继承更喜欢组合
测试
- 为新功能添加单元测试
- 测试误差条件和边缘情况
- 确保基本测试套件通过
- 尽可能使用真实的SharePoint环境进行测试
文档
- 更新README.md以获取新功能或配置更改
- 为新的公共API添加JSDoc注释
- 包括复杂功能的示例
- 更新变更日志以了解重大变更
更新日志
[0.1.0]-初始版本
- 通过Microsoft Graph API实现基本SharePoint集成
- 支持跨SharePoint搜索文件
- 网站列表和浏览功能
- 文档库访问和文件内容检索
- OAuth2客户端凭据身份验证
- SharePoint网站的MCP资源支持
- 全面的错误处理和记录
支持
如果您遇到问题或有疑问:
致谢
- 与 模型上下文协议SDK
- 使用Microsoft Graph API进行SharePoint集成
- 受到MCP社区和生态系统的启发
