Skip to main content

A Python MCP server that turns Swagger/OpenAPI documentation into AI-callable tools

Project description

Swagger MCP Server (Python)

A Python implementation of a Model Context Protocol (MCP) server that transforms Swagger/OpenAPI documentation into AI-callable tools. This enables AI assistants (like Claude, Gemini) to interact with REST APIs through Swagger documentation.

Features

  • 7 MCP Tools: Same functionality as the TypeScript version
  • Multi-service Support: Configure multiple Swagger endpoints simultaneously
  • Auto-authentication: Cache tokens from 401 responses and auto-inject
  • Smart Parameter Completion: Fill required fields with reasonable defaults
  • Network Auto-correction: Handle localhost vs 127.0.0.1 connectivity issues
  • Caching: 5-minute TTL for Swagger documents with automatic refresh

Installation

pip install -e .

Usage

As an MCP Server

Configure in your MCP client (Claude Desktop, Windsurf, etc.):

{
  "mcpServers": {
    "swagger-python": {
      "command": "python",
      "args": [
        "-m",
        "swagger_mcp",
        "http://localhost:8090/v3/api-docs"
      ]
    }
  }
}

Command Line Arguments

  • Single service: http://localhost:8090/v3/api-docs
  • Multiple services: user=http://localhost:8090/v3/api-docs order=http://localhost:8091/v3/api-docs
  • Authentication: auth=admin:123456 or auth=/login/path:user:pass

Available Tools

  1. list_services - List configured Swagger services
  2. refresh_docs - Force refresh cached Swagger documentation
  3. list_endpoints - List all available API endpoints
  4. search_apis - Intelligent fuzzy search with weighted matching
  5. get_endpoint_details - Get complete endpoint definition with parameters and schemas
  6. debug_endpoint - Execute real HTTP requests with auto-authentication and smart parameter completion
  7. generate_curl - Generate cURL commands for API calls

Development

# Install development dependencies
pip install -e ".[dev]"

# Run tests
pytest

# Format code
black src/

# Lint code
ruff check src/

Project Structure

src/swagger_mcp/
├── __main__.py          # Entry point
├── server.py           # MCP server implementation
├── services/
│   └── loader.py       # Swagger document loading, caching, auth management
├── tools/
│   └── __init__.py     # All MCP tool implementations
├── utils/
│   └── schema.py       # JSON Schema resolution utilities
└── types/
    └── swagger.py      # Pydantic models for Swagger documents

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

swagger_mcp_python-1.0.0.tar.gz (13.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

swagger_mcp_python-1.0.0-py3-none-any.whl (14.5 kB view details)

Uploaded Python 3

File details

Details for the file swagger_mcp_python-1.0.0.tar.gz.

File metadata

  • Download URL: swagger_mcp_python-1.0.0.tar.gz
  • Upload date:
  • Size: 13.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.16 {"installer":{"name":"uv","version":"0.9.16","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for swagger_mcp_python-1.0.0.tar.gz
Algorithm Hash digest
SHA256 236066f6254b7b6e285f1f8cc6de9883aa7ed32cc2adeee607609a09113d48b9
MD5 950a51b3aa99a651d5f39ae66437ac9d
BLAKE2b-256 dcfec4b62368faf888d5bb2b6d1856d6cf3a026a4f75cc3e271bd9347885ef91

See more details on using hashes here.

File details

Details for the file swagger_mcp_python-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: swagger_mcp_python-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 14.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.16 {"installer":{"name":"uv","version":"0.9.16","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for swagger_mcp_python-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1bcc9af614e6d4bc5d28852167086af1fe7e8879a94d38e7cad4b6ba3bea8587
MD5 9ebed0d6f9bd77fd987139c4a34d52da
BLAKE2b-256 69b165f0e98c1ecac474ef014ecfe1af90a7d27d368103243d67c99a51cfa96d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page