关于 MCP Server - Microsoft 365 File Search (SharePoint & OneDrive)
这款 MCP 服务可搜索 Microsoft 365 的 SharePoint 和 OneDrive 文件并读取内容,适用于需要文件元数据和文档访问的客户端,并通过本地缓存复用已下载文件。
主要功能
- 01搜索 SharePoint 和 OneDrive 文件
- 02返回文件元数据及摘要
- 03读取文件内容
- 04本地缓存已下载文件
适用场景
- 01按条件查找文件
- 02查看搜索结果的元数据
- 03读取选定文件
- 04从缓存复用已下载文件
MCP 相关
将 Microsoft 365 文件搜索和内容读取作为 MCP 工具提供。客户端可按查询词搜索,再使用 drive ID 和 file ID 获取内容。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 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(字符串):搜索词或条件。
返回:文件元数据对象数组。元数据包括文件内容摘要、drive ID 和 file 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 门户中注册一个应用程序:
- 注册一个新应用程序。
- 记下 Client ID 和 Tenant ID。
- 在 Certificates & Secrets 下创建一个 Client Secret。
- 在 API permissions 下添加以下 delegated 或 application 权限:
Sites.Read.AllFiles.Read.All
- 点击 Grant admin consent,授予这些权限。
确保在 MCP 服务的 env 配置中正确设置这些值。
许可证
本项目根据 MIT 许可证授权。
你可以自由使用、修改和分发本项目,但需注明出处。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。