The Swagger MCP Server is a Model Context Protocol (MCP)-based server designed to parse Swagger/OpenAPI documents and generate TypeScript types and API client code. It supports both Swagger v2 and OpenAPI v3 specifications and integrates seamlessly with large language models through the MCP protocol.
npm install
# or using pnpm
pnpm install
node start-server.js
You can interact with the MCP server using standard input/output. Examples include:
# Parse Swagger document
node examples/optimized-swagger-parser-example.js
# Generate TypeScript types
node examples/typescript-generator-example.js
# Generate API client
node examples/api-client-generator-example.js
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
}
}
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"]
}
}
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"
}
}
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"]
}
}
file-writer
){
"method": "file-writer",
"params": {
"filePath": "./output.txt",
"content": "Hello, world!",
"createDirs": true
}
}
For large API documents, it is recommended to use the following configuration:
{
"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
}
}
Example: Generating a React Query client:
{
"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 document caches are stored in the .api-cache
directory. To clear the cache:
.api-cache
directory.useCache: false
in the parameters.Customize server settings in swagger-mcp-config.json
:
{
"name": "Swagger MCP Server",
"version": "1.0.0",
"transport": "stdio"
}
Start the debug server:
node start-server.js
Connect using MCP Inspector:
npx @modelcontextprotocol/inspector pipe -- node start-server.js
Refer to road.md for development plans and progress.
To automatically install the Swagger MCP Server for Claude Desktop using Smithery:
npx -y @smithery/cli install @tuskermanshu/swagger-mcp-server --client claude
# Build the project
npm run build
# Or using pnpm
pnpm build
parse-swagger
- Parses Swagger/OpenAPI documents and returns API operation information.parse-swagger-optimized
- Optimized version of the Swagger/OpenAPI parser.parse-swagger-lite
- Lightweight parser optimized for large documents.generate-typescript-types
- Generates TypeScript type definitions from Swagger/OpenAPI documents.generate-typescript-types-optimized
- Optimized version of the TypeScript type generator.generate-api-client
- Generates API client code from Swagger/OpenAPI documents.generate-api-client-optimized
- Optimized version of the API client generator.file-writer
- Writes content to the file system.