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门户:
- 注册新应用程序。
- 记下 客户端ID 和 租户ID.
- 创建一个 客户端密钥 在...之下 证书和秘密.
- 在...之下 API权限,添加以下内容 委托或申请 权限:
- Sites.Read.All - Files.Read.All
- 点击 授予管理员同意 对于这些权限。
确保这些值在您的 env MCP服务器的配置。
许可证
该项目根据 MIT许可证.\ 您可以自由使用、修改和分发它,并注明适当的归属。
