Microsoft 365 File Search MCP Server (SharePoint & OneDrive)

Microsoft 365 File Search MCP Server (SharePoint & OneDrive)

godwin3737

研究与数据
访问服务器

README

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 (字符串): 搜索词或条件。 返回: 文件元数据对象数组。元数据包括文件内容摘要、驱动器 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 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. 单击这些权限的 授予管理员同意

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

许可证

本项目根据 MIT 许可证 获得许可。 您可以自由使用、修改和分发它,但需注明出处。

推荐服务器

Crypto Price & Market Analysis MCP Server

Crypto Price & Market Analysis MCP Server

一个模型上下文协议 (MCP) 服务器,它使用 CoinCap API 提供全面的加密货币分析。该服务器通过一个易于使用的界面提供实时价格数据、市场分析和历史趋势。 (Alternative, slightly more formal and technical translation): 一个模型上下文协议 (MCP) 服务器,利用 CoinCap API 提供全面的加密货币分析服务。该服务器通过用户友好的界面,提供实时价格数据、市场分析以及历史趋势数据。

精选
TypeScript
MCP PubMed Search

MCP PubMed Search

用于搜索 PubMed 的服务器(PubMed 是一个免费的在线数据库,用户可以在其中搜索生物医学和生命科学文献)。 我是在 MCP 发布当天创建的,但当时正在度假。 我看到有人在您的数据库中发布了类似的服务器,但还是决定发布我的服务器。

精选
Python
mixpanel

mixpanel

连接到您的 Mixpanel 数据。 从 Mixpanel 分析查询事件、留存和漏斗数据。

精选
TypeScript
Sequential Thinking MCP Server

Sequential Thinking MCP Server

这个服务器通过将复杂问题分解为顺序步骤来促进结构化的问题解决,支持修订,并通过完整的 MCP 集成来实现多条解决方案路径。

精选
Python
Nefino MCP Server

Nefino MCP Server

为大型语言模型提供访问德国可再生能源项目新闻和信息的能力,允许按地点、主题(太阳能、风能、氢能)和日期范围进行筛选。

官方
Python
Vectorize

Vectorize

将 MCP 服务器向量化以实现高级检索、私有深度研究、Anything-to-Markdown 文件提取和文本分块。

官方
JavaScript
Mathematica Documentation MCP server

Mathematica Documentation MCP server

一个服务器,通过 FastMCP 提供对 Mathematica 文档的访问,使用户能够从 Wolfram Mathematica 检索函数文档和列出软件包符号。

本地
Python
kb-mcp-server

kb-mcp-server

一个 MCP 服务器,旨在实现便携性、本地化、简易性和便利性,以支持对 txtai “all in one” 嵌入数据库进行基于语义/图的检索。任何 tar.gz 格式的 txtai 嵌入数据库都可以被加载。

本地
Python
Research MCP Server

Research MCP Server

这个服务器用作 MCP 服务器,与 Notion 交互以检索和创建调查数据,并与 Claude Desktop Client 集成以进行和审查调查。

本地
Python
Cryo MCP Server

Cryo MCP Server

一个API服务器,实现了模型补全协议(MCP),用于Cryo区块链数据提取,允许用户通过任何兼容MCP的客户端查询以太坊区块链数据。

本地
Python