SharePoint集成服务器

一个用于Microsoft SharePoint Online集成的远程模型上下文协议(MCP)服务器,提供文档搜索、文件下载、列表操作等功能,支持双因素认证并部署在Cloudflare Workers上。

  • by yoohan1107
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 yoohan1107/sharepoint-mcp-server

使用说明

SharePoint MCP服务器

用于Microsoft SharePoint Online集成的远程模型上下文协议(MCP)服务器。

特性

  • 🔍 按关键字搜索SharePoint文档
  • 📄 下载并提取文件内容
  • 📁 列出文件和文件夹
  • 📋 SharePoint列表CRUD操作(获取、创建、更新、删除)
  • 🔐 双层身份验证(API密钥+Azure AD客户端凭据)
  • ⚡ 部署在Cloudflare Workers(边缘计算)上

建筑

AI Client → MCP Server (CF Workers) → Microsoft Graph API → SharePoint Online

先决条件

  • 具有应用程序权限的Azure AD应用程序:
    • Sites.Read.All
    • Sites.ReadWrite.All
    • Files.Read.All
  • Cloudflare帐户
  • SharePoint Online网站访问

部署

此项目使用GitHub Actions自动部署到Cloudflare Workers。

设置

  1. Azure AD配置

    • 在Azure门户中注册应用程序
    • 获取客户端ID、客户端密码、租户ID
    • 在管理员同意的情况下授予应用程序权限
  2. Cloudflare配置

    • 获取API代币:Cloudflare Dashboard→ 我的资料→ API令牌→ 创建令牌
    • 获取帐户ID:Cloudflare仪表板→ 工人和页面(右下)
  3. GitHub秘密

    将这些秘密添加到您的GitHub存储库(设置→ 秘密与变量→ 行动):

    CLOUDFLARE_API_TOKEN=<your-cloudflare-api-token>
    CLOUDFLARE_ACCOUNT_ID=<your-cloudflare-account-id>
    
  4. Cloudflare员工的秘密

    首次部署后,通过Cloudflare Dashboard进行设置:

    工人和页面→ 您的员工→ 设置→ 变量→ Add:

    MCP_API_KEY=<your-api-key>
    AZURE_CLIENT_ID=<azure-app-client-id>
    AZURE_CLIENT_SECRET=<azure-app-secret>
    AZURE_TENANT_ID=<azure-tenant-id>
    SHAREPOINT_SITE_URL=https://yourtenant.sharepoint.com/sites/YourSite
    
  5. KV命名空间

    工人和页面→ 您的员工→ 设置→ 绑定→ Add:

    • 变量名称: GRAPH_TOKEN_CACHE
    • 类型:KV命名空间
    • 创建新命名空间或选择现有命名空间
  6. 部署

    git add .
    git commit -m "Initial commit"
    git push origin main
    

    GitHub Actions将自动部署到Cloudflare Workers。

MCP工具

文档工具

  1. 搜索文档:按关键字搜索文档
  2. 获取_文件_内容:以文本形式下载文件内容
  3. 列表文件:列出文件夹中的文件

SharePoint列表工具

  1. list_lists:列出可用的SharePoint列表和库
  2. get_list_columns:获取列表列架构和字段元数据
  3. get_list_item:按ID获取单个列表项
  4. get_list_items:使用OData筛选器查询列表项
  5. 创建列表项:创建新列表项
  6. update_list_item:更新现有列表项
  7. delete_list_item:删除列表项

使用Claude Desktop

添加到您的Claude Desktop MCP设置中:

{
  "mcpServers": {
    "sharepoint": {
      "url": "https://sharepoint-mcp-server.workers.dev/mcp",
      "headers": {
        "Authorization": "Bearer <your-mcp-api-key>"
      }
    }
  }
}

你可以问克劳德:

  • “在SharePoint中搜索预算文档”
  • “显示文件ID abc123的内容”
  • “显示此网站中的所有列表和库”
  • “列出任务列表中状态为活动的项目”

发展

备注:本地开发需要x64架构。在ARM64(苹果Silicon、Windows ARM)上,使用GitHub Actions进行部署。

许可证

麻省理工学院

参考文献