SharePoint文件管理服务

一个Model Context Protocol (MCP)服务器,使AI助手能够与SharePoint交互,提供OAuth认证、文件搜索和文件夹结构浏览功能。

  • by ofekvs18
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 ofekvs18/sharepoint-mcp

使用说明

SharePoint MCP服务器

模型上下文协议(MCP)服务器,使Claude等AI助手能够与SharePoint交互,提供OAuth身份验证、文件搜索和文件夹结构探索功能。

特性

  • 🔐 OAuth 2.0身份验证:使用Microsoft进行基于浏览器的安全登录
  • 🔍 文件搜索:按名称、内容或两者搜索文件
  • 📁 文件夹结构:浏览SharePoint文件夹层次结构
  • 📄 文件内容:检索文件内容
  • ⏰ 最近的文件:列出最近修改的文件
  • 🛡️ 基于权限的:仅访问用户授予权限的网站

先决条件

  • Node.js 18或更高版本
  • 具有SharePoint访问权限的Microsoft 365帐户
  • Azure AD应用程序注册(请参阅下面的设置)

快速开始

🚀 新增:本地测试(无Azure安装!)

想要在没有Azure AD设置的情况下立即进行测试吗?看 LOCAL_SETUP.md

TL;DR用于本地测试:

  1. npm install
  2. 配置Claude Desktop配置文件
  3. 在Claude中:“使用SharePoint进行身份验证”(不需要客户端ID!)
  4. 设置您的网站URL并开始搜索

📚 完整生产设置

看 START_HERE.md 有关使用您自己的Azure AD应用程序的完整设置说明。

TL;DR用于生产:

  1. 注册Azure AD应用程序并获取客户端ID+租户ID
  2. npm install
  3. 配置Claude Desktop配置文件
  4. 重新启动克劳德
  5. 使用您的凭据通过Claude进行身份验证

完整说明见 START_HERE.md

Azure AD应用程序设置

第一步:注册申请

  1. 首选 Azure门户
  2. 导航至 Azure Active Directory > 应用程序注册 > 新注册
  3. 填写详细信息:
    • 名字:SharePoint MCP
    • 重定向URI:Web→ http://localhost:3000/callback
  4. 点击 注册

步骤2:配置API权限

  1. 在您的应用程序注册中,转到 API权限
  2. 点击 添加权限 > Microsoft Graph > 委托权限
  3. 添加: Sites.Read.All, Files.Read.All, offline_access
  4. 点击 授予管理员同意

步骤3:获取您的凭据

在您的应用程序注册概述页面中,请注意:

  • 应用程序(客户端)ID
  • 目录(租户)ID

安装

cd sharepoint-mcp
npm install

Claude桌面配置

编辑您的Claude Desktop配置文件:

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

{
  "mcpServers": {
    "sharepoint": {
      "command": "node",
      "args": ["/absolute/path/to/sharepoint-mcp/index.js"]
    }
  }
}

重要:使用完整绝对路径!

用法

1.身份验证

In Claude: "Authenticate with SharePoint using:
- Client ID: [your-client-id]
- Tenant ID: [your-tenant-id]"

2.设置网站URL

In Claude: "Set my SharePoint site to: https://yourtenant.sharepoint.com/sites/yoursite"

3.搜索和探索

"Search for files containing 'quarterly report'"
"Show me the folder structure"
"What are the 10 most recently modified files?"

可用工具

authenticate_sharepoint

使用OAuth 2.0通过SharePoint进行身份验证。

参数:

  • clientId (必需):Azure AD应用程序(客户端)ID
  • tenantId (必需):Azure AD租户ID

set_site_url

设置SharePoint网站URL。

参数:

  • siteUrl (必需):完整的SharePoint网站URL

search_files

按文件名或内容搜索文件。

参数:

  • query (必填):搜索查询字符串
  • searchType (可选):“文件名”、“内容”或“两者都有”
  • maxResults (可选):最大结果(默认值:20)

get_folder_structure

检索文件夹结构。

参数:

  • folderPath (可选):相对文件夹路径
  • depth (可选):横向深度1-5(默认值:2)

get_file_content

检索文件内容。

参数:

  • fileId (必填):搜索结果中的文件ID

list_recent_files

列出最近修改的文件。

参数:

  • limit (可选):文件数(默认值:10)

故障排除

看 故障排除.md 详细的解决方案。

常见问题:

  • “找不到MCP服务器”→ 检查配置路径是否为绝对路径
  • “身份验证失败”→ 验证客户端ID和租户ID
  • “权限被拒绝”→ 在Azure中授予管理员同意

安全

  • 仅存储在内存中的访问令牌(1小时后过期)
  • 只读权限
  • 用户必须明确授予访问权限
  • 尊重SharePoint权限

看 安全.md 获取完整的安全信息。

局限性

  • 令牌在1小时后过期(尚未自动刷新)
  • 只读(无写操作)
  • 受Microsoft Graph API限制
  • 检索大文件可能很慢

许可证

麻省理工学院

文档

贡献

欢迎投稿!请提交问题或拉取请求。