swaggertools-mcp
v1.0.5
Published
MCP server for querying OpenAPI/Swagger documents, including fuzzy operation matching.
Readme
swagger-mcp
English | 中文
用于加载和查询 OpenAPI/Swagger 文档的 MCP 服务。 支持在用户只提供部分路径或关键词时进行接口模糊匹配。
功能特性
- 加载远程 OpenAPI 3.x 文档(JSON/YAML)
- 基于内存的文档缓存(TTL)
- 按 method/tag/关键词筛选接口
- 通过不完整路径进行接口模糊解析
- 查看接口完整请求/响应结构
- 查看
components.schemas以及被哪些接口引用
工具列表
openapi.loadopenapi.healthopenapi.reloadopenapi.list_operationsopenapi.resolve_operationopenapi.get_operationopenapi.explain_operationopenapi.get_schema
openapi.explain_operation 适合直接回答“这个接口怎么调”:会输出参数分类、请求体示例和响应示例。
省 token 默认策略:
openapi.resolve_operation:topK默认3openapi.get_operation:默认resolveRefs=false且responseFormat=compactopenapi.explain_operation:默认resolveRefs=false且detailLevel=brief
环境要求
- Node.js 18+
- pnpm 10+
快速开始
pnpm install
pnpm dev构建并运行:
pnpm build
pnpm startCodex MCP 配置示例
{
"mcpServers": {
"swagger-mcp": {
"command": "npx",
"args": ["-y", "swaggertools-mcp", "--docPath", "http://dev.manage.zw.uav.sczlcq.com/v3/api-docs"]
}
}
}如果你在本仓库本地联调,也可以继续用 pnpm dev 启动。
参数说明
openapi.load支持运行时入参:url、headers、forceRefreshurl(或回退到启动参数--docPath)必须是 OpenAPI 文档的http/https地址- 启动参数
--docPath变为可选,用于在未传openapi.load.url时作为默认来源 - 不再通过
.env或其他环境变量读取默认文档地址
docId: "default" 行为
- 如果服务中已加载过文档,
default会映射到最近一次加载的docId。 - 如果尚未加载文档,会返回错误并提示先调用
openapi.load。
常见问题
- 错误:
Document not found: default- 先调用
openapi.load - 确保 MCP 启动参数中已设置
--docPath
- 先调用
