文件搜索服务

MCP Server - Microsoft 365 File Search 是一个提供高级文件搜索功能的服务器实现,支持在Microsoft 365环境中高效发现文件、分析元数据并与业务流程集成。

  • by godwin3737
  • Python
  • 本地部署
  • 11 星标
  • 更新于
在 GitHub 查看 godwin3737/mcp-server-microsoft365-filesearch

使用说明

MCP服务器-Microsoft 365文件搜索(SharePoint和OneDrive)

概述

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

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

组件

工具

服务器提供2个核心工具:

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

    • query (string):搜索词或条件。
      退货:文件元数据对象数组。元数据包括文件内容摘要, 驱动器ID,以及 文件ID除其他细节外。
  • 获取_文件_内容
    从特定文件中检索内容。
    输入:

    • driveid (string):父驱动器的唯一标识符。
    • fileid (string):文件的唯一标识符。
      退货:文件内容为二进制流。
      备注:使用本地缓存来加速重复访问。

缓存

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

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

此功能可确保更快的响应时间和API速率限制的有效使用。

使用Claude Desktop

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

"mcpServers": {
  "M365 File Search (SharePoint/OneDrive)": {
    "command": "uv",
    "args": [
      "--directory",
      "full_path_to_parent_directory",
      "run",
      ".\\src\\mcp_m365_filesearch\\server.py"
    ],
    "env": {
      "CLIENT_ID": "MSGraph Client ID",
      "CLIENT_SECRET": "MS Graph Client Secret",
      "TENANT_ID": "TENANT ID",
      "REGION": "SEARCH REGION"
    }
  }
}

Microsoft Graph应用程序注册

要使用此服务器,您需要在 Azure门户:

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

确保这些值在您的 env MCP服务器的配置。

许可证

该项目根据 MIT许可证.
您可以自由使用、修改和分发它,并注明适当的归属。