这是一个实现模型上下文协议(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 频率限制。
要将服务器与 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": "搜索区域"
}
}
}
要使用此服务器,您需要在 Azure 门户 注册一个应用程序:
Sites.Read.AllFiles.Read.All确保这些值正确设置在 MCP 服务器的 env 配置中。
本项目根据 MIT 许可证发布。 您可以自由地使用、修改和分发它,只要适当归因即可。