SharePoint Docs MCP Server
使用说明(Markdown格式)
-
项目简介
- 该仓库实现了一个 MCP 服务器,用于向 LLM 客户端提供 SharePoint 文档相关的资源、工具和提示模板等上下文信息。核心功能包括文档搜索、文件下载、以及对 Excel 文件的解析与查询等能力。
-
主要功能点
- sharepoint_docs_search
- 在 SharePoint(包含站点与 OneDrive)中按关键词搜索文档
- 支持最大结果数、文件扩展名过滤
- 支持返回详细信息或简化信息(详细时包含标题、路径、大小、修改日期、扩展名、摘要等,简化时仅返回标题、路径、扩展名)
- sharepoint_docs_download
- 根据给定路径下载文件并返回 Base64 编码的内容
- sharepoint_excel
- 读取或搜索 SharePoint 上的 Excel 文件
- 支持按工作表、单元格范围读取,或按查询关键字搜索单元格
- 支持格式信息(字体、填充、单元格合并、行高列宽等)的可选包含
- 支持 header_rows、data_rows 的分离,以及 metadata_only 模式
- 支持冻结窗格、多工作表处理、多个范围/行列大小的安全限制
- tool 注册与禁用
- 注册三个工具并允许通过环境变量禁用部分工具
- 错误处理
- 集成统一的错误分类与自然语言描述,便于对话式代理理解
- 认证与客户端获取
- 支持证书模式(单例 SharePoint 客户端)和 OAuth 模式(通过 FastMCP 的上下文传递令牌)
- sharepoint_docs_search
-
安装步骤
-
- 确保使用 Python 3.12 环境
-
- 安装并运行运行环境(示例:通过 uvx 从 GitHub 直接启动,或本地安装并使用 uv 启动)
-
- 配置环境变量(见下方配置说明),根据需要选择证书认证或 OAuth 认证
-
- 启动服务器
- stdio 模式(适用于本地桌面或开发环境)
- 运行命令示例:uv run sharepoint-docs-mcp --transport stdio
- HTTP 模式(网络服务)
- 运行命令示例:uv run sharepoint-docs-mcp --transport http --host 0.0.0.0 --port 8000
-
-
服务器配置(客户端无需了解,仅供 MCP 服务端配置理解;以下为示例 JSON 配置,说明 server 名称、命令和参数)
- 配置示例 1(stdio 传输) { "server_name": "SharePointDocsMCP", "command": "uv", "args": ["run", "sharepoint-docs-mcp", "--transport", "stdio"] } 注释:server_name 为 MCP 客户端显示的服务器名称,command 为启动命令,args 为启动参数,使用 stdio 传输时无需对外暴露接口。
- 配置示例 2(HTTP 传输) { "server_name": "SharePointDocsMCP", "command": "uv", "args": ["run", "sharepoint-docs-mcp", "--transport", "http", "--host", "0.0.0.0", "--port", "8000"] } 注释:HTTP 传输允许通过网络访问 MCP 服务,需自行确保安全措施(如认证、防火墙等)。
- 说明
- 以上配置仅用于客户端/运维在页面化或自动化工具中描述如何启动服务器;具体环境变量配置与运行时参数,请参考项目文档中的 Setup、Usage 指南。
-
基本使用方法
- 先配置 SharePoint 相关的凭据与网络参数(证书模式或 OAuth 模式)
- 启动服务器(上述 stdio 或 http 其中之一)
- 使用 MCP 客户端与服务器交互,执行以下操作:
- 搜索文档:调用 sharepoint_docs_search,提供查询关键词、可选的 max_results、file_extensions、response_format
- 下载文件:调用 sharepoint_docs_download,传入文件路径
- Excel 解析与查询:调用 sharepoint_excel,传入文件路径、sheet、cell_range、include_header、include_formatting、metadata_only 等参数;或传入 query 进行搜索
- 如需调试或排错,可查看服务端日志输出(默认为输出到 stderr)