SharePoint文档管理服务

一个通过Microsoft Graph API为Claude提供SharePoint文档和文件夹管理功能的MCP服务器。

  • by peacockery-studio
  • JavaScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 peacockery-studio/sharepoint-mcp

使用说明

SharePoint MCP服务器

模型上下文协议(MCP)服务器,通过Microsoft Graph API为Claude提供对Microsoft SharePoint的访问。

特性

  • 文件夹管理:列出、创建、删除文件夹和查看文件夹树结构
  • 文档操作:上传、下载、阅读、更新和删除文档
  • 元数据支持:获取和更新文件元数据字段
  • OAuth 2.0身份验证:通过浏览器流进行安全的基于用户的身份验证
  • 一致的架构:与Outlook MCP相同的模块化模式,便于维护

快速开始

1.安装依赖项

cd sharepoint-mcp
npm install

2.Azure AD设置

  1. 首选 Azure门户 > 应用程序注册 > 新注册
  2. 姓名: sharepoint-mcp (或您喜欢的名字)
  3. 支持的帐户类型:“仅此组织目录中的帐户”
  4. 重定向URI: Web > http://localhost:3334/auth/callback
  5. 点击 注册

注册后:

  1. 复制 应用程序(客户端)ID
  2. 复制 目录(租户)ID
  3. 首选 证书和秘密 > 新客户机密
    • 复制 价值 (不是秘密ID!)
  4. 首选 API权限 > 添加权限 > 微软图形 > 委托权限
    • 添加: Sites.ReadWrite.All, Files.ReadWrite.All
  5. 点击 授予管理员同意 (需要管理员)

3.配置环境

创建一个 .env 文件:

SHAREPOINT_CLIENT_ID=your-client-id
SHAREPOINT_CLIENT_SECRET=your-client-secret-value
SHAREPOINT_TENANT_ID=your-tenant-id
SHAREPOINT_SITE_URL=https://your-tenant.sharepoint.com/sites/your-site
SHAREPOINT_DOC_LIBRARY=Shared Documents

4.身份验证

# Start the auth server
npm run auth-server

# Open http://localhost:3334 in your browser and complete authentication

5.运行服务器

npm start

Claude桌面集成

添加到您的Claude Desktop配置中:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json 窗户: %APPDATA%/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "sharepoint-assistant": {
      "command": "node",
      "args": ["/path/to/sharepoint-mcp/index.js"],
      "env": {
        "SHAREPOINT_CLIENT_ID": "your-client-id",
        "SHAREPOINT_CLIENT_SECRET": "your-client-secret",
        "SHAREPOINT_TENANT_ID": "your-tenant-id",
        "SHAREPOINT_SITE_URL": "https://your-tenant.sharepoint.com/sites/your-site",
        "SHAREPOINT_DOC_LIBRARY": "Shared Documents"
      }
    }
  }
}

可用工具

认证

工具 说明
authenticate 启动OAuth身份验证流程
check_auth_status 检查当前身份验证状态
logout 清除存储的令牌

文件夹操作

工具 说明
list_folders 列出目录中的文件夹
create_folder 创建新文件夹
delete_folder 删除空文件夹
get_folder_tree 获取递归文件夹结构

文档操作

工具 说明
list_documents 列出文件夹中的文档
get_document_content 读取文档内容
upload_document 将内容上传为新文档
upload_document_from_path 上传本地文件
update_document 更新现有文档
delete_document 删除文档
download_document 下载到本地文件系统
get_file_metadata 获取文件元数据字段
update_file_metadata 更新元数据字段

发展

# Run with MCP Inspector for testing
npm run inspect

# Run in test mode (mock data)
npm run test-mode

# Run tests
npm test

建筑

sharepoint-mcp/
├── index.js              # Main MCP server entry point
├── config.js             # Configuration settings
├── sharepoint-auth-server.js  # OAuth callback server
├── auth/                 # Authentication module
│   ├── index.js
│   ├── token-manager.js  # Token storage & refresh
│   └── tools.js          # Auth tools
├── folder/               # Folder operations
│   ├── index.js
│   └── tools.js
├── document/             # Document operations
│   ├── index.js
│   └── tools.js
└── utils/                # Shared utilities
    ├── index.js
    └── graph-api.js      # Graph API client

故障排除

“需要身份验证”错误

  • 确保您已运行身份验证服务器并完成浏览器身份验证
  • 检查令牌是否存储在 ~/.sharepoint-mcp-tokens.json

“AADST7000215”错误

  • 您正在使用Secret ID而不是Secret值
  • 返回Azure并复制实际的秘密值

“拒绝访问”错误

  • 确保已授予API权限管理员同意
  • 验证网站URL是否正确

端口3334正在使用中

npx kill-port 3334

许可证

麻省理工学院