返回市场
微软365文件搜索服务器

微软365文件搜索服务器

作者:godwin37378 星标更新:2025-04-10

项目介绍

MCP Server - Microsoft 365 文件搜索(SharePoint 和 OneDrive)

概述

这是一个实现模型上下文协议(MCP)服务器,提供在 Microsoft 365 环境中的高级文件搜索功能。该服务器通过提供来自 SharePoint/OneDrive 的内容,实现了高效的文件发现、元数据分析以及与业务工作流的集成。

https://github.com/user-attachments/assets/bbe63c02-f6d9-4c9b-8f98-36fc22a081cc

组件

工具

服务器提供了两个核心工具:

  • search_m365_files 在 M365 环境中执行文件搜索。 输入

    • query (字符串):搜索词或条件。 返回值:文件元数据对象数组。元数据包括文件内容摘要、驱动器ID文件ID 等其他详细信息。
  • get_file_content 从特定文件中检索内容。 输入

    • driveid (字符串):父驱动器的唯一标识符。
    • fileid (字符串):文件的唯一标识符。 返回值:作为二进制流的文件内容。 注意:使用本地缓存以加快重复访问速度。

缓存

为了提高性能并减少冗余的 API 调用,服务器会将下载的文件本地缓存。这对于处理大型文档或频繁访问的文件特别有用。

  • 缓存文件存储在 ./src/mcp_m365_filesearch/.local/downloads 目录下(相对于项目根目录)。
  • 当通过 get_file_content 请求文件时,服务器首先检查缓存。
  • 如果文件已缓存,则直接从磁盘返回,无需新的 API 调用。

此功能确保了更快的响应时间和高效利用 API 频率限制。

与 Claude Desktop 集成

要将服务器与 Claude Desktop 集成,请更新您的 claude_desktop_config.json

"mcpServers": {
  "M365 文件搜索 (SharePoint/OneDrive)": {
    "command": "uv",
    "args": [
      "--directory",
      "父目录的完整路径",
      "run",
      ".\\src\\mcp_m365_filesearch\\server.py"
    ],
    "env": {
      "CLIENT_ID": "MSGraph 客户端ID",
      "CLIENT_SECRET": "MS Graph 客户端密钥",
      "TENANT_ID": "租户ID",
      "REGION": "搜索区域"
    }
  }
}

Microsoft Graph 应用注册

要使用此服务器,您需要在 Azure 门户 注册一个应用程序:

  1. 注册一个新的应用程序。
  2. 记录下 客户端ID租户ID
  3. 证书和密钥 下创建一个 客户端密钥
  4. API 权限 下添加以下 委托或应用 权限:
    • Sites.Read.All
    • Files.Read.All
  5. 点击这些权限的 授予管理员同意

确保这些值正确设置在 MCP 服务器的 env 配置中。

许可证

本项目根据 MIT 许可证发布。 您可以自由地使用、修改和分发它,只要适当归因即可。