Foundry Docs MCP Server
使用说明(简要指南,包含核心要点、安装与运行、以及与 MCP 客户端的对接方式):
-
项目简介
- 这是一个以 MCP(Model Context Protocol)为核心的后端服务器实现,专门为 Foundry 文档提供可查询的资源、可调用的工具和可渲染的 Prompt 模板,支持通过 JSON-RPC 与 LLM 客户端交互。
- 服务器通过 FastMCP 框架提供统一接口,处理资源查询、文档获取、工具调用和提示模板等能力,并可与多种传输方式(如 Stdio、SSE、WebSocket 等)协同工作。
-
主要功能点
- MCP 核心能力
- 资源管理与数据访问:提供文档及相关元数据的检索与访问能力。
- 工具注册与执行:暴露工具入口,允许 LLM 客户端通过 MCP 调用外部功能。
- 提示模板(Prompts):整合并渲染可定制的提示模板,支持与 LLM 的交互模式对接。
- 与外部服务的集成
- Azure 搜索/向量检索(AzureSearchIndex、FoundryProjectOpenAI)以提升检索质量。
- 与 GitHub Repos 的集成(通过事件派发等机制,支持文档更新通知与自动化工作流触发)。
- 会话与监控
- 提供会话上下文、能力声明,并可接入可选的遥测/告警(Telemetry)模块。
- 支持的工作流
- 服务端会在启动时加载文档索引、导航结构等元数据,提供 search/get_doc/list_sections/get_section 等工具供客户端调用。
- MCP 核心能力
-
安装步骤
-
- 将仓库克隆或下载到本地。
-
- 安装依赖(项目通常通过 Python 的包管理器安装,建议使用虚拟环境)。
-
- 配置依赖的外部服务(如 Azure 搜索、Foundry AI 项目等)所需的环境变量,确保服务可用。
-
- 启动 MCP 服务器:
- 运行方式通常为通过 Python 模块启动,例如: python -m foundry_docs_mcp.server
- 服务器启动后将对外提供 MCP 接口,等待来自 MCP 客户端的请求。
-
-
服务器配置(MCP 客户端对接配置,JSON 格式;下列字段来自仓库中的实现信息,供客户端在使用时参考,不需要包含在 MCP 客户端侧代码中) { "server_name": "foundry-docs", "command": "python", "args": ["-m", "foundry_docs_mcp.server"], "description": "Foundry 文档的 MCP 服务端,提供资源、工具与提示模板等能力", "notes": "启动该服务器以供 MCP 客户端连接;MCP 客户端仅需要了解 server_name、command、args 等信息以完成连接初始化,实际通信通过 MCP 协议进行。" }
-
基本使用方法
- 启动后,MCP 客户端可以通过发送标准的 JSON-RPC 请求来调用以下核心能力:
- search_docs(query, limit): 在 Foundry 文档中进行全文检索
- get_doc(path): 获取指定路径的文档内容
- list_sections(): 列出所有 TOC 的章节/分节
- get_section(section): 获取某一章节下的文档列表
- submit_search_feedback(...): 记录搜索失败案例以用于测试基准
- 与客户端对接的要点
- MCP 服务器通过 JSON-RPC 收发请求与响应,确保在网络或串口等传输方式下的稳定性(例如 Stdio、SSE、WebSocket 等)。
- 服务器需要正确地声明能力和会话上下文,并按需返回资源、工具或 prompts 的元数据与内容。
- 启动后,MCP 客户端可以通过发送标准的 JSON-RPC 请求来调用以下核心能力:
-
额外信息
- 服务器实现具备完整的服务器端搭建、初始化、工具实现、以及与外部服务的集成逻辑(包括骨架工厂、资源加载、导航结构等)。
- 如需自定义 Cloud/OpenAI 的模型/向量检索等能力,可通过环境变量进行开关和配置。
-
注意事项
- 具体的部署配置(如 Azure 搜索端点、OpenAI/Foundry API 的密钥等)需要在部署环境中按需设置环境变量。
- MCP 客户端在初始接入时无需关心服务器的内部实现细节,只需知道服务器的启动命令及接口即可。