I craft unique cereal names, stories, and ridiculously cute Cereal Baby images.

swagger-mcp-server
3 years
Works with Finder
1
Github Watches
0
Github Forks
6
Github Stars
Swagger MCP 服务器
一个基于Model Context Protocol (MCP)的服务器,用于解析Swagger/OpenAPI文档并生成TypeScript类型和API客户端代码。
功能特点
- 解析Swagger/OpenAPI文档,支持v2和v3规范
- 生成TypeScript类型定义
- 生成不同框架的API客户端代码(Axios、Fetch、React Query等)
- 通过MCP协议提供这些功能,便于与大型语言模型集成
-
优化的大型文档处理:
- 内存和文件系统缓存机制
- 懒加载解析策略
- 增量解析与部分结果返回
- 进度反馈
- 自动识别不同格式的Swagger UI URLs
快速开始
安装依赖
npm install
# 或者使用pnpm
pnpm install
启动服务器
node start-server.js
服务器默认使用标准输入/输出通信。
使用MCP工具
可以通过标准输入/输出与MCP服务器通信。以下是一些示例:
# 解析Swagger文档
node examples/optimized-swagger-parser-example.js
# 生成TypeScript类型
node examples/typescript-generator-example.js
# 生成API客户端
node examples/api-client-generator-example.js
可用工具
1. Swagger/OpenAPI解析工具
标准解析工具 (parse-swagger)
{
"method": "parse-swagger",
"params": {
"url": "https://petstore3.swagger.io/api/v3/openapi.json",
"includeSchemas": true,
"includeDetails": true
}
}
优化解析工具 (parse-swagger-optimized)
适用于完整解析,带有高级选项:
{
"method": "parse-swagger-optimized",
"params": {
"url": "https://petstore3.swagger.io/api/v3/openapi.json",
"includeSchemas": true,
"includeDetails": true,
"useCache": true,
"skipValidation": true,
"cacheTTLMinutes": 60,
"lazyLoading": false,
"filterTag": "pet"
}
}
轻量级解析工具 (parse-swagger-lite)
为大型文档优化,快速但只返回基本信息:
{
"method": "parse-swagger-lite",
"params": {
"url": "https://petstore3.swagger.io/api/v3/openapi.json",
"includeSchemas": false,
"includeDetails": false,
"useCache": true,
"skipValidation": true
}
}
2. TypeScript类型生成工具
标准类型生成器 (generate-typescript-types)
{
"method": "generate-typescript-types",
"params": {
"swaggerUrl": "https://petstore3.swagger.io/api/v3/openapi.json",
"outputDir": "./generated/types",
"namespace": "PetStore",
"strictTypes": true,
"generateEnums": true,
"generateIndex": true
}
}
优化类型生成器 (generate-typescript-types-optimized)
{
"method": "generate-typescript-types-optimized",
"params": {
"swaggerUrl": "https://petstore3.swagger.io/api/v3/openapi.json",
"outputDir": "./generated/types",
"namespace": "PetStore",
"strictTypes": true,
"useCache": true,
"skipValidation": true,
"lazyLoading": true,
"includeSchemas": ["Pet", "Order", "User"]
}
}
3. API客户端生成工具
标准API客户端生成器 (generate-api-client)
{
"method": "generate-api-client",
"params": {
"swaggerUrl": "https://petstore3.swagger.io/api/v3/openapi.json",
"outputDir": "./generated/api",
"clientType": "axios",
"generateTypeImports": true,
"typesImportPath": "../types",
"groupBy": "tag"
}
}
优化API客户端生成器 (generate-api-client-optimized)
{
"method": "generate-api-client-optimized",
"params": {
"swaggerUrl": "https://petstore3.swagger.io/api/v3/openapi.json",
"outputDir": "./generated/api",
"clientType": "react-query",
"generateTypeImports": true,
"typesImportPath": "../types",
"groupBy": "tag",
"useCache": true,
"skipValidation": true,
"lazyLoading": true,
"includeTags": ["pet", "store"]
}
}
4. 文件写入工具
{
"method": "file-writer",
"params": {
"filePath": "./output.txt",
"content": "Hello, world!",
"createDirs": true
}
}
处理大型API文档
对于大型API文档,推荐使用以下配置:
- 使用优化版工具,启用缓存和懒加载
- 使用标签或路径前缀过滤,只获取需要的API操作
- 仅在必要时包含模式定义
- 设置合理的缓存有效期,避免频繁重新解析
示例:
{
"method": "parse-swagger-lite",
"params": {
"url": "https://your-large-api-doc-url.json",
"useCache": true,
"skipValidation": true,
"lazyLoading": true,
"filterTag": "your-specific-tag",
"includeSchemas": false
}
}
支持的客户端框架
目前支持以下API客户端框架:
- Axios: 功能全面的Promise基HTTP客户端
- Fetch: 浏览器原生API,无需额外依赖
- React Query: 用于React应用的数据获取和缓存库,提供hooks和缓存功能
示例 - 生成React Query客户端:
{
"method": "generate-api-client-optimized",
"params": {
"swaggerUrl": "https://petstore3.swagger.io/api/v3/openapi.json",
"outputDir": "./generated/react-query",
"clientType": "react-query",
"generateTypeImports": true
}
}
缓存管理
API文档缓存存储在 .api-cache
目录中。如果需要清除缓存:
- 删除
.api-cache
目录 - 或者设置
useCache: false
参数
配置选项
可在 swagger-mcp-config.json
中自定义服务器设置:
{
"name": "Swagger MCP Server",
"version": "1.0.0",
"transport": "stdio"
}
开发与调试
启动调试服务器:
node start-server.js
然后使用MCP Inspector连接:
npx @modelcontextprotocol/inspector pipe -- node start-server.js
或者直接方式(但可能导致输出混乱):
npx @modelcontextprotocol/inspector -- node start-server.js
项目路线图
参见 road.md 文件了解开发计划和进度。
安装
通过Smithery安装
要通过Smithery为Claude Desktop自动安装swagger-mcp-server:
npx -y @smithery/cli install @tuskermanshu/swagger-mcp-server --client claude
构建
# 构建项目
npm run build
# 或使用pnpm
pnpm build
可用的MCP工具
-
parse-swagger
- 解析Swagger/OpenAPI文档,返回API操作信息 -
parse-swagger-optimized
- 解析Swagger/OpenAPI文档(优化版) -
parse-swagger-lite
- 轻量级解析Swagger/OpenAPI文档,专为大型文档优化 -
generate-typescript-types
- 从Swagger/OpenAPI文档生成TypeScript类型定义 -
generate-typescript-types-optimized
- 从Swagger/OpenAPI文档生成TypeScript类型定义(优化版) -
generate-api-client
- 从Swagger/OpenAPI文档生成API客户端代码 -
generate-api-client-optimized
- 从Swagger/OpenAPI文档生成API客户端代码(优化版) -
file-writer
- 将内容写入文件系统
相关推荐
Confidential guide on numerology and astrology, based of GG33 Public information
Converts Figma frames into front-end code for various mobile frameworks.
Advanced software engineer GPT that excels through nailing the basics.
Micropython I2C-based manipulation of the MCP series GPIO expander, derived from Adafruit_MCP230xx
A unified API gateway for integrating multiple etherscan-like blockchain explorer APIs with Model Context Protocol (MCP) support for AI assistants.
Mirror ofhttps://github.com/suhail-ak-s/mcp-typesense-server
本项目是一个钉钉MCP(Message Connector Protocol)服务,提供了与钉钉企业应用交互的API接口。项目基于Go语言开发,支持员工信息查询和消息发送等功能。
Discover the most comprehensive and up-to-date collection of MCP servers in the market. This repository serves as a centralized hub, offering an extensive catalog of open-source and proprietary MCP servers, complete with features, documentation links, and contributors.
Short and sweet example MCP server / client implementation for Tools, Resources and Prompts.
Reviews

user_QqpDZNfF
Swagger-mcp-server is an excellent tool for anyone looking to integrate microservices with well-documented APIs. Created by tuskermanshu, this server-side application simplifies the process by generating interactive API documentation, making it a valuable resource for developers. Highly recommended for its ease of use and efficiency! Check it out on GitHub: https://github.com/tuskermanshu/swagger-mcp-server