Skip to Content
MCP ServersCommunitySwagger Explorer MCP

Swagger Explorer MCP

View original on GitHub 

A Management Control Plane (MCP) server for exploring and analyzing Swagger/OpenAPI specifications through Claude.

Quick Start

Install and run globally using npx:

npx -y @johnneerdael/swagger-mcp

Or install with environment variables:

npx -y @johnneerdael/swagger-mcp \ --env BASE_URL=/api \ --env AUTH_TOKEN=your-token \ --env PORT=3000

Installation for Claude Desktop

  1. Open Claude Desktop
  2. Click on Settings (gear icon)
  3. Select β€œTools & Integrations”
  4. Click β€œAdd MCP Server”
  5. Enter the following:
    Name: Swagger Explorer Command: npx -y @johnneerdael/swagger-mcp Arguments: --swagger-url=$SWAGGER_URL
  6. Click β€œInstall”

Usage with Claude

Here are some example interactions with Claude:

Basic Swagger Exploration

Human: Can you explore the Swagger documentation at http://localhost:8080/docs? Claude: I'll help you explore that Swagger documentation using the Swagger Explorer MCP. Let me analyze the API endpoints and schemas for you: [Claude would then use the MCP to fetch and analyze the Swagger documentation]

Analyzing Specific Endpoints

Human: What are the available response schemas for the /pets POST endpoint? Claude: I'll check the response schemas for that endpoint using the MCP. [Claude would use the MCP to fetch specific endpoint details]

Schema Analysis

Human: Can you show me the detailed structure of the Pet schema? Claude: I'll retrieve the detailed schema information using the MCP. [Claude would use the MCP to analyze the schema structure]

Features

  1. Authentication Support

    • Bearer token authentication
    • Configurable through environment variables
  2. Custom Response Formatting

    • Minimal format: Removes null/empty values
    • Detailed format: Includes metadata and timestamps
    • Raw format: Unmodified response
  3. Schema Analysis

    • Detailed property exploration
    • Response schema analysis
    • Schema relationships
  4. API Exploration

    • Path listing
    • Method filtering
    • Response format analysis

Configuration

Environment Variables:

  • BASE_URL: Base path for the API (default: ”)
  • AUTH_TOKEN: Bearer token for authentication
  • PORT: Server port (default: 3000)
  • SWAGGER_URL: Default Swagger documentation URL

API Endpoints

Explore API

curl -X POST http://localhost:3000/api/explore \ -H "Authorization: Bearer your-token" \ -H "Content-Type: application/json" \ -d '{ "url": "http://your-swagger-url", "options": { "paths": true, "schemas": true } }'

Get Schema Details

curl -X POST http://localhost:3000/api/schema-details \ -H "Authorization: Bearer your-token" \ -H "Content-Type: application/json" \ -d '{ "url": "http://your-swagger-url", "schemaName": "Pet" }'

Get Response Schemas

curl -X POST http://localhost:3000/api/response-schemas \ -H "Authorization: Bearer your-token" \ -H "Content-Type: application/json" \ -d '{ "url": "http://your-swagger-url", "path": "/pets", "method": "post" }'

Response Formats

Minimal Format

{ "status": "success", "data": { // Only non-null values } }

Detailed Format

{ "status": "success", "timestamp": "2025-01-29T10:00:00.000Z", "data": { // Full response }, "metadata": { "version": "1.0", "format": "detailed" } }

Common Use Cases

  1. API Documentation Review

    Human: Can you summarize all the available endpoints and their purposes?
  2. Schema Validation

    Human: What fields are required for creating a new pet?
  3. Response Analysis

    Human: What are the possible error responses for the login endpoint?
  4. Integration Planning

    Human: How should I structure my request to create a new order?

Troubleshooting

  1. Connection Issues

    • Ensure the Swagger URL is accessible
    • Check if authentication token is correct
    • Verify port is not in use
  2. Authorization Errors

    • Verify AUTH_TOKEN is set correctly
    • Ensure bearer token is included in requests
  3. Schema Not Found

    • Check if schema name is exact match
    • Verify Swagger spec is loaded correctly

Security Notes

  1. The MCP requires authentication if AUTH_TOKEN is set
  2. All requests are logged for debugging
  3. Sensitive information is not cached
  4. Rate limiting is applied to prevent abuse

Development

To contribute or modify:

  1. Clone the repository
  2. Install dependencies:
    npm install
  3. Build:
    npm run build
  4. Run locally:
    npm start

License

MIT License - See LICENSE file for details

Last updated on