
Higress 托管 Context7 MCP Server为 AI Agent 提供最新版本化文档的实践指南【免费下载链接】higress AI Gateway | AI Native API Gateway项目地址: https://gitcode.com/GitHub_Trending/hi/higress本篇技术指南围绕 Higress 仓库中集成的 Context7 MCP Server 展开介绍如何通过 Higress 的 MCP 插件机制将 Context7 提供的最新、版本特定文档与代码示例检索能力以标准 MCP 工具的形式暴露给 AI Agent。读完本文你将掌握 SSE URL 的生成与 MCP Client 配置方法、resolve-library-id与get-library-docs两个核心工具的完整参数语义以及从底层 REST-to-MCP 配置看透该 Server 如何被实现与定制。Context7 MCP Server 概述Context7 是一个面向 AI 生态的文档服务能够为各类开源库提供最新且版本特定的文档内容并可从源码中提取真实可用的代码示例。Higress 仓库中的mcp-context7目录README_ZH.md、README.md给出了该 MCP Server 的完整集成说明与声明式配置使 AI Agent 可以通过统一的模型上下文协议Model Context Protocol直接查询任意库的文档。该 Server 的核心价值体现在以下五个方面获取最新、版本特定的文档解决传统知识库快照滞后的问题让 AI 的回答始终基于目标库的当前版本从源码中提取真实可用的代码示例示例并非人工撰写而是直接来自仓库源码可信度和可运行性更高提供简洁、相关的信息无冗余内容按 token 预算裁剪输出避免无关内容挤占模型上下文窗口支持个人免费使用个人开发者可以直接接入无需付费与 MCP 服务器和工具集成以标准 MCP 工具形态接入可被任意支持 MCP 的 Client 调用。使用教程从生成 SSE URL 到接入 MCP ClientContext7 MCP Server 以 SSEServer-Sent Events方式对外提供 MCP 端点接入过程分为两步。第一步生成 SSE URL在 MCP Server 管理界面登录后输入 API-KEY即可生成一个专属的 SSE URL。该 URL 是 MCP Client 与 Server 建立会话的唯一入口。第二步配置 MCP Client在用户的 MCP Client 界面中将生成的 SSE URL 添加到 MCP Server 列表中配置片段如下mcpServers: { context7: { url: https://mcp.higress.ai/mcp-context7/{generate_key}, } }其中{generate_key}为第一步生成的动态密钥mcp.higress.ai是 Higress 托管的 MCP Server 平台域名。配置完成后MCP Client 即可发现并调用该 Server 暴露的工具。可用工具详解Context7 MCP Server 暴露了两个工具二者存在严格的调用先后关系。resolve-library-id库名解析该工具用于将通用包名解析为 Context7 兼容的库 ID是使用get-library-docs获取文档的必要前置步骤。参数说明query必填要搜索的库名称用于获取 Context7 兼容的库 ID。由于不同仓库、不同命名空间下可能存在同名库直接使用包名无法唯一定位文档因此必须先通过该工具拿到标准化的libraryId后续文档检索才能精确命中。get-library-docs获取库文档该工具用于获取指定库的最新文档。使用前必须先调用resolve-library-id获取 Context7 兼容的库 ID否则无法定位文档。参数说明folders用于组织文档的文件夹过滤器可选libraryId必填库的唯一标识符tokens返回的最大 token 数默认 5000可选topic文档中的特定主题可选type要检索的文档类型目前仅支持txt可选。tokens参数直接控制输出长度默认 5000 个 token既保证信息量又防止响应过长挤占上下文topic允许将检索范围收敛到特定主题配合folders可以进一步缩小文档范围提升检索精度。底层实现剖析一份 YAML 驱动的 REST-to-MCP 声明式配置与需要编写 Go 代码实现工具逻辑的 MCP Server 不同mcp-context7目录下的 mcp-server.yaml 展示了 Higress 的REST-to-MCP能力无需编写任何业务代码仅通过声明式配置即可将 Context7 的 REST API 转换为标准的 MCP 工具。这份配置是理解该 Server 全部行为的关键证据。server 声明server: name: context7-mcp-servername字段用于标识该 MCP Server 实例。根据 MCP 服务器实现指南该名称在通过插件托管时用于路由识别必须与加载时的服务器标识保持一致。resolve-library-id 的配置实现- name: resolve-library-id description: Required first step - Resolves a general package name into a Context7-compatible library ID. Must be called before using get-library-docs to retrieve a valid Context7-compatible library ID. args: - name: query description: Library name to search for and retrieve a Context7-compatible library ID. type: string required: true position: query requestTemplate: url: https://context7.com/api/v1/search method: GET responseTemplate: body: | {{- range $index, $item : .results }} ## 结果 {{add $index 1}} - **id**: {{ $item.id }} - **title**: {{ $item.title }} - **description**: {{ $item.description }} {{- end }}可以看到工具的参数定义中包含name、description、type、required、position等字段其中position: query表示该参数以 URL 查询参数形式拼接进请求requestTemplate声明上游请求为对https://context7.com/api/v1/search的 GET 调用responseTemplate则用模板语法遍历响应中的.results数组将每条结果渲染为带序号、id、title、description的易读文本供 AI 消化。get-library-docs 的配置实现- name: get-library-docs description: Fetches up-to-date documentation for a library. You must call resolve-library-id first to obtain the exact Context7-compatible library ID required to use this tool. args: - name: folders description: Folders filter for organizing documentation type: string position: query - name: libraryId description: Unique identifier of the library type: string required: true position: path - name: tokens description: Maximum number of tokens to return type: integer position: query default: 5000 - name: topic description: Specific topic within the documentation type: string position: query - name: type description: Type of documentation to retrieve type: string position: query enum: [txt] requestTemplate: url: https://context7.com/api/v1{libraryId} method: GET headers: - key: X-Context7-Source value: server这份配置与文档中的参数说明一一对应并补充了更多实现细节libraryId的position: path表明它会被直接拼接到 URL 路径中https://context7.com/api/v1{libraryId}这解释了为什么必须先解析出合法 ID——非法或未规范化的 ID 会直接导致上游请求路径错误tokens被声明为integer类型并带有default: 5000与文档中的默认值一致type参数通过enum: [txt]约束取值与文档目前仅支持 txt的描述吻合请求头中的X-Context7-Source: server用于向上游标识请求来源。模板引擎与响应格式化原理mcp-server.yaml中的responseTemplate使用 GJSON Template 语法Go 模板 GJSON 路径语法的结合这与 MCP 服务器实现指南中描述的 REST-to-MCP 通用能力一致请求模板requestTemplate用于构造 HTTP 请求的 URL、头部和正文可通过.config.fieldName访问服务器配置通过.args.argName访问工具参数响应模板responseTemplate用于将上游 JSON 响应转换为适合 AI 消费的可读格式支持 GJSON 路径语法如.results数组遍历、range控制结构以及add等模板函数如{{add $index 1}}输出从 1 开始的序号。GJSON Template 内置了超过 70 个 Sprig 函数add、upper、lower、default、toJson等模板能力上等同于 Helm 的模板体系。在 Context7 的配置中响应模板将搜索 API 返回的原始 JSON 加工为结果 N id/title/description的结构化文本正是为了让 LLM 以最小 token 消耗理解候选库信息。从源码结构看这套能力的底层实现位于 rest_server.go其中定义了RestToolRequestTemplate构造请求 URL、Header、Body与RestToolResponseTemplate渲染响应 Body等结构工具参数支持required、default、enum等属性定义插件侧则在 config.go 中解析server、path、domain_list等配置并注册 SSE 端点。这意味着你完全可以参照mcp-context7的这份 YAML把其他任意 REST API 快速改造成 MCP 工具而无须接触 Go 编译与 WASM 构建流程。适用前提与限制说明本 Server 依赖 Higress 的 MCP Server 插件能力根据 MCP 服务器实现指南MCP Server 插件需要 Higress 2.1.0 或更高版本SSE URL 的生成依赖mcp.higress.ai平台登录与 API-KEY个人使用免费文档检索的类型目前仅支持txttokens默认 5000可按需调整以平衡信息量与上下文占用。总结Higress 仓库中的mcp-context7是一个零代码集成的典型范例它借助 REST-to-MCP 声明式配置将 Context7 的文档检索 REST API 包装为resolve-library-id与get-library-docs两个标准 MCP 工具让 AI Agent 能够随时获取最新、版本特定、无冗余的库文档与源码级代码示例。通过本文的配置解析与底层实现剖析读者既能直接上手接入该 Server也能举一反三在 Higress 中基于任意 REST API 快速构建自己的 MCP 工具。【免费下载链接】higress AI Gateway | AI Native API Gateway项目地址: https://gitcode.com/GitHub_Trending/hi/higress创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考