Swagger API MCP服务器
  ](https://www.npmjs.com/package/swagger-api-mcp-server) ](https://www.npmjs.com/package/swagger-api-mcp-server) ](https://nodejs.org) ](https://lobehub.com/mcp/nekotarou-swagger-api-mcp-server)
MCP(模型上下文协议)服务器,用于解析 Swagger 2.0 和 OpenAPI 3.x 规范,通过MCP工具公开API结构。具有本地文件缓存架构,与内联响应相比,令牌使用率降低了85-95%。
特性
- Swagger 2.0和OpenAPI 3.x --完全支持双格式
- 智能缓存 --Spec解析一次,存储为本地JSON文件;工具返回紧凑的摘要+文件路径(约200个字符对5-20KB)
- 11 MCP工具 --动态加载、浏览、搜索、调用API和管理身份验证
- 3个MCP提示 --用于探索、搜索和集成API的指导性工作流程
- 3 MCP资源 -直接访问缓存的API信息、端点和架构
- 两种运输方式 --stdio(用于CLI/IDE集成)和HTTP(用于多会话web使用)
- 两阶段API调用 --在执行请求之前预览请求
- 零外部分析器 --自定义
$ref带圆形参考保护的旋转变压器
先决条件
- Node.js>=24
快速开始
从npm安装
npm install -g swagger-api-mcp-server或者克隆并构建
git clone https://github.com/NekoTarou/swagger-api-mcp-server.git
cd swagger-api-mcp-server
npm install
npm run build跑
# stdio mode (default) — for MCP clients like Claude Desktop
npm start
# Auto-load a spec on startup
SWAGGER_URL=https://petstore.swagger.io/v2/swagger.json npm start
# HTTP mode — multi-session with Express
npm run start:httpMCP客户端配置
克劳德桌面
添加到您的Claude Desktop配置文件(claude_desktop_config.json):
{
"mcpServers": {
"swagger-api": {
"command": "npx",
"args": ["-y", "swagger-api-mcp-server"],
"env": {
"SWAGGER_URL": "https://petstore.swagger.io/v2/swagger.json"
}
}
}
}光标/VS代码
添加到MCP设置中:
{
"mcpServers": {
"swagger-api": {
"command": "npx",
"args": ["-y", "swagger-api-mcp-server"],
"env": {
"SWAGGER_URL": "https://your-api.example.com/openapi.json"
}
}
}
}工具
| 工具 | 说明 |
|---|---|
swagger_load_spec | 从URL加载Swagger/OpenAPI规范,解析并缓存它 |
swagger_update_cache | 重新获取规范并重建缓存 |
swagger_get_info | 获取API元数据(标题、版本、服务器、身份验证方案) |
swagger_list_tags | 列出所有具有端点计数的标签 |
swagger_list_paths | 列出带有过滤(标签、方法、关键字)和分页的端点 |
swagger_get_endpoint | 获取端点摘要+缓存文件路径以获取完整详细信息 |
swagger_list_schemas | 列出具有过滤和分页功能的架构定义 |
swagger_get_schema | 获取模式摘要+缓存文件路径以获取完整定义 |
swagger_search | 按关键字跨端点和模式搜索 |
swagger_call_api | 执行带有两阶段确认的HTTP请求 |
swagger_set_auth | 在运行时动态设置或清除Authorization标头 |
提示
| 提示 | 参数 | 描述 |
|---|---|---|
swagger_explore_api | url | 引导工作流程加载并充分探索API规范 |
swagger_find_endpoint | keyword | 按关键字搜索端点并查看完整详细信息 |
swagger_integrate_api | url, task | 找到任务的正确端点并执行API调用 |
资源
| 资源 | URI | 描述 |
|---|---|---|
api-info | swagger://api/info | API基本信息(标题、版本、服务器、身份验证) |
api-endpoints | swagger://api/endpoints | 所有API端点的索引 |
api-schemas | swagger://api/schemas | 所有模式/模型定义的索引 |
高速缓存体系结构
加载规范时,它会被解析一次并存储为结构化JSON文件:
.swagger-cache/
├── meta.json # Cache metadata (URL, counts, timestamp)
├── info.json # Full API info (title, servers, auth)
├── tags.json # Tag list with endpoint counts
├── paths-index.json # Endpoint index for fast lookup
├── schemas-index.json # Schema index for fast lookup
├── endpoints/ # One file per endpoint (deep-resolved)
│ └── GET__users__{id}.json
└── schemas/ # One file per schema (deep-resolved)
└── User.json工具返回带有文件路径的简短摘要。LLM通过 Read 工具--保存 85-95%的代币 每次通话。
环境变量
| 变量 | 默认值 | 描述 |
|---|---|---|
SWAGGER_URL | _(空)_ | 启动时自动加载规格 |
TRANSPORT | stdio | 运输方式: stdio 或 http |
MCP_PORT | 3000 | HTTP服务器端口 |
MCP_HOST | 0.0.0.0 | HTTP服务器主机 |
API_BASE_URL | _(空)_ | 为调用覆盖API基本URL |
API_AUTH_TOKEN | _(空)_ | 初始授权标头值(可以在运行时通过以下方式更新 swagger_set_auth) |
CACHE_DIR | .swagger-cache | 自定义缓存目录路径 |
SESSION_TIMEOUT_MS | 1800000 | HTTP会话超时(30分钟) |
MAX_SESSIONS | 100 | 最大并发HTTP会话数 |
发展
npm run dev # Dev mode with auto-reload (tsx watch)
npm test # Run tests
npm run build # TypeScript compilation → dist/
npm run clean # Remove dist/