Swagger Docs
БесплатноПоддерживается连接 AI Agent 与实时 API 文档的 MCP Server,让 AI 直接理解、检索并展开 Swagger / Knife4j 接口定义。
Описание
连接 AI Agent 与实时 API 文档的 MCP Server,让 AI 直接理解、检索并展开 Swagger / Knife4j 接口定义。
README
npm version CI Node.js 20+ Swagger 2.0 MCP Server License MIT Website
面向 Swagger 2.0 / Knife4j 文档的只读 MCP 服务,让 AI Agent 能够实时检索并展开接口定义。
swagger-docs-mcp 面向需要读取后端接口文档的 AI Agent。它实时获取 Swagger 2.0 文档,将接口、参数和 Schema 转换为结构化结果,同时保持无状态、只读和来源可追溯。
特性
- 实时读取:支持 Swagger JSON,以及 Knife4j(Springfox)
doc.html文档发现。 - 多维检索:可按分类、路径、HTTP Method、关键词或 Knife4j 深链接定位接口。
- 结构化 Schema:递归展开受支持的请求体和响应模型,同时对动态 Map、循环、缺失引用和外部引用保留明确边界。
- 结果可追溯:每次查询均返回文档入口、实际规范地址、获取时间和文档指纹。
- 边界明确:不保存文档地址、不使用跨调用缓存、不调用业务接口,也不推测无法解析的字段。
- 多客户端支持:提供 Codex、Claude Code、Gemini CLI 及 IDE Agent 客户端的接入配置。
快速开始
运行环境要求 Node.js 20 或更高版本。无需全局安装:
接入 MCP 客户端
swagger-docs-mcp 已发布到 npm Registry,以下命令可直接使用。Codex、Claude Code 和 Gemini CLI 会自动写入配置,并核验实际启动命令是否与预期一致:
npx --yes swagger-docs-mcp@latest setup codex
npx --yes swagger-docs-mcp@latest setup claude
npx --yes swagger-docs-mcp@latest setup gemini
IDE 类客户端使用同一个入口生成对应格式的配置:
npx --yes swagger-docs-mcp@latest setup cursor
npx --yes swagger-docs-mcp@latest setup vscode
npx --yes swagger-docs-mcp@latest setup opencode
查看全部支持项:
npx --yes swagger-docs-mcp@latest setup list
自动配置会把当前精确包版本写入客户端配置,确保后续启动可复现。卸载本项目创建的旧版本配置:
npx --yes swagger-docs-mcp@latest remove claude
upgrade 当前只执行归属与安全检查。由于客户端官方 CLI 无法提供可验证的原子替换和完整回滚,检测到旧版本后会明确停止并要求手动升级,不会先删除原配置。
让 Agent 协助接入
将下面的任务直接发送给具备本机命令和文件操作能力的 Agent。任务要求 Agent 先核实客户端与配置契约,再执行安装、配置和验证,避免覆盖已有配置:
请帮我在当前 MCP 客户端中安装并配置 swagger-docs-mcp。
要求:
1. 先确认 Node.js 版本不低于 20,并识别当前客户端的准确名称;不要猜测客户端或配置格式。
2. 运行 `npx --yes swagger-docs-mcp@latest setup list`,根据输出选择准确的客户端 ID。
3. 运行 `npx --yes swagger-docs-mcp@latest setup <client>`。
4. 如果命令自动写入配置,确认结果明确通过启动命令一致性核验。
5. 如果命令只输出 JSON,仅在核实当前客户端的官方配置文件位置和结构后,合并 `swagger-docs` 条目并保留其他配置;写入后重新解析配置,核对完整启动命令。
6. 如发现同名配置、权限错误、无法核验或外部契约不明确,立即停止并说明原因;不要覆盖、删除或猜测修复。
7. 最后运行 `npx --yes swagger-docs-mcp@latest doctor`,并报告实际使用的客户端 ID、执行命令、修改位置和核验结果。
不要保存 Swagger 文档地址、口令或 Token,也不要修改与本次接入无关的 MCP 配置。
运行诊断
# 检查本机运行环境
npx --yes swagger-docs-mcp@latest doctor
# 验证实时文档发现
npx --yes swagger-docs-mcp@latest doctor http://127.0.0.1:8080/doc.html
# 验证指定分组
npx --yes swagger-docs-mcp@latest doctor https://example.com/doc.html --group exact-group-name
# 输出供 CI 或脚本消费的 JSON
npx --yes swagger-docs-mcp@latest doctor https://example.com/doc.html --json
客户端支持
| 名称 | 客户端 | 接入方式 |
|---|---|---|
codex |
OpenAI Codex | 自动写入并核验启动命令一致性 |
claude |
Claude Code | 自动写入并核验启动命令一致性 |
gemini |
Gemini CLI | 自动写入并核验启动命令一致性 |
vscode |
VS Code / GitHub Copilot | 生成 servers 配置 |
cursor |
Cursor | 生成 mcpServers 配置 |
windsurf |
Windsurf | 生成 mcpServers 配置 |
trae |
Trae | 生成 mcpServers 配置 |
cline |
Cline | 生成 mcpServers 配置 |
roo |
Roo Code | 生成 mcpServers 配置 |
kiro |
Kiro | 生成 mcpServers 配置 |
opencode |
OpenCode v2 | 生成 mcp.servers 配置 |
自动配置只调用客户端官方 CLI,探测命令在系统临时目录执行并设有 15 秒超时。配置生成模式仅输出 JSON,不读取或修改用户文件。发现任意同名冲突时,setup 都会拒绝覆盖;npm alias、额外启动参数和无法解析的配置均按外部配置处理。新增或核验失败时不会按服务名自动清理,避免误删并发写入的配置,CLI 会要求用户手动检查。卸载会在执行前再次核验启动命令,并在执行后确认同名配置已消失。
“生成配置”表示按客户端公开配置结构输出模板,不代表已在所有客户端版本上完成运行时联调。客户端升级配置格式后,应以其官方文档为准并提交兼容性 Issue。
使用示例
在对话中同时提供文档地址和查询目标:
列出 http://203.0.113.10:8080/doc.html 的所有接口分类。
查询 http://203.0.113.10:8080/doc.html 的
/api/v1/study-exam-stat/baseline-class-stat POST,
展开完整的请求和响应字段。
在 http://203.0.113.10:8080/doc.html 中搜索“成绩统计”。
也可以直接查询 Knife4j 深链接:
查询接口:
http://203.0.113.10:8080/doc.html#/default/uniform-study-exam-stat-controller/getUniformStudyExamStatDetailUsingGET
示例地址 203.0.113.10 属于 IANA 保留地址,不对应真实服务。
让主 Agent 继续开发和调试
swagger-docs-mcp 负责实时读取并验证接口文档,Tool 结果会直接返回当前主 Agent。主 Agent 可继续检查项目代码、完成接口对接并运行测试,不需要手工复制请求和响应字段:
请根据下面的接口文档调试当前功能:
http://203.0.113.10:8080/doc.html#/default/uniform-study-exam-stat-controller/getUniformStudyExamStatDetailUsingGET
要求:
1. 先通过 swagger-docs-mcp 实时查询并验证接口,不猜测字段。
2. 核对请求方法、路径、必填参数、请求体和响应字段。
3. 检查当前项目已有的接口封装、调用位置和页面状态。
4. 按项目现有模式修复或完成对接,不添加猜测式兼容分支。
5. 运行必要的测试或页面调试,报告文档来源和实际验证结果。
主 Agent 需要同时具备目标代码、终端或浏览器调试能力,以及访问测试环境所需的网络和登录态。本 MCP 只读取文档,不调用 Swagger 中描述的业务接口;业务请求仍由项目运行时或主 Agent 的调试工具发起。
MCP Tools
| Tool | 说明 |
|---|---|
inspect_api_docs |
识别文档入口或深链接,验证导航线索并返回下一步操作 |
list_api_categories |
分页列出接口分类及接口数量 |
get_api_category |
按精确分类名返回接口摘要或完整文档 |
get_api_by_path |
按精确路径和可选 HTTP Method 返回完整接口文档 |
search_apis |
搜索路径、摘要、描述、分类和 operationId |
所有 Tool 都要求显式传入 docsUrl,并声明 outputSchema。成功结果统一包含 source、sourceNotice、data、warnings 和 completeness;错误结果使用 isError: true,同时返回稳定错误码和失败阶段。接口详情包括请求参数、请求体 Schema、响应状态,以及:
schemaTree:保留模型层级的字段树。flatFields:便于检索和展示的扁平字段路径。schemaReferences:解析过程中引用的 Schema。unresolvedDynamicFields:无法静态展开的动态字段。warnings、completeness:解析边界与结果完整性。
查询流程
inspect_api_docs实时检查文档入口和 Knife4j hash 线索。- 多分组文档返回候选分组,由用户精确选择;服务不会自动猜测。
- 分类或接口不唯一时返回候选项;定位唯一接口后调用
get_api_by_path。 - 后续调用继续携带原始
docsUrl及已确认的group、path和method。
Tool 返回的 sourceNotice 说明本次查询来源和缓存状态,Agent 应在最终回答中保留该信息。
支持范围
| 项目 | 状态 |
|---|---|
| Swagger 2.0 JSON | 支持 |
| Knife4j / Springfox 文档发现 | 支持 |
| Knife4j hash 深链接 | 支持 |
| OpenAPI 3.x | 暂不支持,返回明确的版本错误 |
| MCP 传输 | stdio |
| 文档协议 | HTTP、HTTPS |
| URL 内嵌认证信息 | 不支持 |
外部 $ref |
不读取,保留解析边界 |
顶层参数 / 响应本地 $ref |
支持;缺失引用标记为部分完整 |
Schema 本地 $ref、数组、allOf |
支持递归展开 |
| 动态 Map、循环引用、最大深度 | 保留边界并标记为部分完整 |
安全边界
- 访问用户明确提供的文档入口及其同源发现地址,不调用规范中描述的业务 API。
- 每次 Tool 调用都重新获取文档,不保存地址、选择状态或历史响应。
- 单次请求超时 10 秒,响应体最大 20 MB。
- 最多跟随 3 次同源重定向,拒绝跨主机重定向和跨主机发现地址。
- 拒绝包含用户名或密码的 URL,不读取外部
$ref。 - 动态字段、缺失引用、循环引用和最大深度均返回明确警告。
- 上游失败时返回错误阶段和请求地址,不使用历史文档降级。
- 查询结果会回传文档地址用于溯源,不要在 URL 查询参数中携带口令或令牌。
默认允许访问进程可达的公网、内网和本机 HTTP(S) 地址,因此本工具不是 SSRF 隔离代理。处理不受信任的 URL 时,应设置精确来源白名单:
SWAGGER_DOCS_ALLOWED_ORIGINS=https://api.example.com,http://127.0.0.1:8080 \
npx --yes swagger-docs-mcp@latest
完整信任边界和漏洞报告方式见 SECURITY.md。
开发
npm run dev # 直接运行 TypeScript 入口
npm run typecheck # 类型检查
npm test # 完整测试
npm run test:integration # MCP 集成测试
npm run build # 构建 dist
npm run check # 类型检查、测试和构建
本地源码接入可在构建后使用 node dist/index.js setup <client> --local。--local 会写入当前仓库中 dist/index.js 的绝对路径,仓库移动后必须重新生成配置。
源码按职责分层:
| 目录 | 职责 |
|---|---|
src/source |
安全 HTTP 获取与文档发现 |
src/navigation |
Knife4j hash 导航解析 |
src/parser |
解析器公共契约 |
src/swagger2 |
Swagger 2.0 解析实现 |
src/service |
查询、分页与来源封装 |
src/server |
MCP Tool 契约 |
src/cli |
诊断和客户端配置 |
src/domain |
共享领域模型 |
新增规范版本时,可实现新的 ApiSpecParser 并复用现有 Service 和 MCP Tool 契约。
JavaScript / TypeScript API
npm 根入口无 CLI 副作用,公开 createMcpServer、ApiDocsService、Swagger2Parser、SafeHttpClient 及领域类型。未通过根入口导出的 dist 内部路径不属于语义化版本兼容范围。
import { ApiDocsService } from "swagger-docs-mcp";
const service = new ApiDocsService();
const result = await service.listCategories("https://api.example.com/v2/api-docs", undefined, 1, 20);
发布
- 更新版本号和 CHANGELOG.md,运行
npm run check与npm pack --dry-run。 - 确认 npm Trusted Publisher 仍绑定本仓库的
publish.yml,且 GitHubnpmEnvironment 的保护规则与发布权限符合预期;这些属于一次性配置,相关契约变化时才需更新。 - 创建与
package.json一致的vX.Y.ZGitHub Release。工作流将重新执行发布门禁,并通过 OIDC 发布包及请求生成来源证明。
prepublishOnly 会在手工执行 npm publish 时强制运行类型检查、完整测试和构建。0.x 阶段允许在次版本中调整实验性能力;计划对外稳定后再发布 1.0.0。
License
Установить Swagger Docs в Claude Desktop, Claude Code, Cursor
unyly install swagger-docsСтавит в Claude Desktop, Claude Code, Cursor и VS Code — сам разбирается с npx, uvx и сборкой из исходников.
Впервые? Поставь CLI: curl -fsSL https://unyly.org/install | sh
Или настроить вручную
Выполни в терминале:
claude mcp add swagger-docs --env SWAGGER_DOCS_ALLOWED_ORIGINS="" -- npx -y swagger-docs-mcpПошаговые гайды: как установить Swagger Docs
FAQ
Swagger Docs MCP бесплатный?
Да, Swagger Docs MCP бесплатный — установка в пару кликов через Unyly без оплаты.
Нужен ли API-ключ для Swagger Docs?
Да, требуются переменные окружения: SWAGGER_DOCS_ALLOWED_ORIGINS. Unyly подставит их в конфиг при установке.
Swagger Docs — hosted или self-hosted?
Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.
Как установить Swagger Docs в Claude Desktop, Claude Code или Cursor?
Открой Swagger Docs на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.
Похожие MCP
Notion
Read and write pages in your workspace
автор: NotionLinear
Issues, cycles, triage — from Claude
автор: LinearGoogle Drive
Search and read your Drive files
автор: Googlemindsdb/mindsdb
Connect and unify data across various platforms and databases with [MindsDB as a single MCP server](https://docs.mindsdb.com/mcp/overview).
автор: mindsdbfulcradynamics/fulcra-context-mcp
MCP server for accessing personal health and biometric data including sleep stages, heart rate, HRV, glucose, workouts, calendar, and location via the Fulcra Li
автор: fulcradynamicsaymericzip/intlayer
A MCP Server that enhance your IDE with AI-powered assistance for Intlayer i18n / CMS tool: smart CLI access, access to the docs.
автор: aymericziprinadelph/Agent-MCP
A framework for creating multi-agent systems using MCP for coordinated AI collaboration, featuring task management, shared context, and RAG capabilities.
автор: rinadelphWhenLabs-org/when
Developer toolkit: auto-detect stack for AI context files, catch port conflicts, validate .env schemas, spot docs drift, audit dependency licenses, and time cod
автор: WhenLabs-orgBeltran12138/wecom-docs-mcp-server
WeCom (Enterprise WeChat) document operations via MCP: create, read, and edit Docs and Smartsheets (9 tools). Fills the doc-CRUD gap — existing WeCom MCP server
автор: Beltran12138madbonez/caldav-mcp
Universal MCP server for CalDAV protocol integration. Works with any CalDAV-compatible calendar server including Yandex Calendar, Google Calendar (via CalDAV),
автор: madbonezCompare Swagger Docs with
Не уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории productivity
