返回市场
共享点-MCP服务器

共享点-MCP服务器

作者:sekops-ch4 星标更新:2025-07-01

项目介绍

SharePoint MCP Server

这是一个用于浏览和与Microsoft SharePoint站点及文档进行交互的模型上下文协议(MCP)服务器。

基于TypeScript的MCP服务器通过Microsoft Graph API提供了全面的SharePoint集成,支持以下功能:

  • 资源:将SharePoint站点作为具有结构化元数据的MCP资源访问
  • 工具:搜索文件、列出站点、浏览文档库并检索文件内容
  • 认证:使用安全的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站点的详细信息

list_site_drives

列出SharePoint站点中的文档库(驱动器)

  • 参数
    • siteUrl(必需):SharePoint站点URL

list_drive_items

列出SharePoint文档库中的文件和文件夹

  • 参数
    • siteUrl(必需):SharePoint站点URL
    • driveId(可选):特定驱动器ID(未指定时使用默认驱动器)
    • folderPath(可选):要列出项目的文件夹路径(默认:根目录)

get_file_content

从SharePoint获取特定文件的内容(仅限文本文件)

  • 参数
    • siteUrl(必需):SharePoint站点URL
    • filePath(必需):文件路径
    • driveId(可选):特定驱动器ID(未指定时使用默认驱动器)

前提条件

Azure应用注册

  1. 在Azure Active Directory中注册一个应用
  2. 配置API权限:
    • Microsoft Graph:Sites.Read.All(应用权限)
    • Microsoft Graph:Files.Read.All(应用权限)
  3. 为权限授予管理员同意
  4. 创建客户端密钥

环境变量

设置以下环境变量:

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 Inspector测试服务器:

npm run inspector

Inspector提供了一个Web界面来测试所有可用的工具和资源。

安装

Claude Desktop配置

将服务器添加到您的Claude Desktop配置中:

macOS~/Library/Application Support/Claude/claude_desktop_config.json Windows%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中的管理员同意

故障排除

常见问题

  1. 认证错误:验证Azure应用注册和权限
  2. 站点访问:确保应用具有适当的SharePoint权限
  3. 网络问题:检查防火墙设置以允许Microsoft Graph API访问

调试模式

设置环境变量以启用详细日志记录:

DEBUG=sharepoint-mcp-server

贡献

  1. 遵循TypeScript最佳实践
  2. 维护全面的错误处理
  3. 为新功能添加测试
  4. 更新API更改的文档

许可证

本项目根据Mozilla Public License 2.0许可。详情参见LICENSE文件。

贡献

我们欢迎贡献!请遵循以下指南:

开始

  1. 分叉仓库
  2. 创建功能分支(git checkout -b feature/amazing-feature
  3. 进行更改
  4. 添加新功能的测试
  5. 确保所有测试通过(npm test
  6. 提交更改(git commit -m 'Add amazing feature'
  7. 推送到分支(git push origin feature/amazing-feature
  8. 打开Pull Request

开发指南

  • 遵循TypeScript最佳实践并维护类型安全性
  • 实现全面的错误处理,带有适当的MCP错误代码
  • 为所有公共方法和类添加JSDoc注释
  • 维护服务导向架构,职责分明
  • 遵循SOLID原则,使函数专注且易于测试
  • 对任何API更改更新文档

代码风格

  • 使用TypeScript严格模式
  • 遵循现有的代码格式和命名约定
  • 移除未使用的导入和变量
  • 使用描述性的变量和函数名称
  • 优先使用组合而非继承

测试

  • 为新功能添加单元测试
  • 测试错误条件和边缘情况
  • 确保基本测试套件通过
  • 尽可能在真实SharePoint环境中测试

文档

  • 更新README.md以反映新功能或配置更改
  • 为新的公共API添加JSDoc注释
  • 包括复杂功能的例子
  • 对重大更改更新变更日志

变更日志

[0.1.0] - 初始发布

  • 通过Microsoft Graph API实现基本的SharePoint集成
  • 支持跨SharePoint搜索文件
  • 站点列表和浏览能力
  • 文档库访问和文件内容检索
  • OAuth2客户端凭据认证
  • 支持SharePoint站点的MCP资源
  • 全面的错误处理和日志记录

支持

如果您遇到问题或有任何疑问:

  1. 查看此README中的故障排除部分
  2. 搜索现有GitHub问题
  3. 创建一个新的问题,提供有关问题的详细信息
  4. 包含相关日志和配置(不包含敏感信息)

致谢

  • 使用模型上下文协议SDK构建
  • 使用Microsoft Graph API进行SharePoint集成
  • 受MCP社区和生态系统启发