zecure/mcp_swagger
3.1
If you are the rightful owner of mcp_swagger and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
MCP Swagger Server is a tool for generating Model Context Protocol servers from Swagger/OpenAPI specifications, offering flexible filtering and dynamic tool generation.
MCP Swagger Server
Generate MCP (Model Context Protocol) servers from Swagger/OpenAPI specifications with flexible filtering.
Features
- Dynamic Tool Generation: Automatically creates MCP tools from OpenAPI endpoints
- Flexible Filtering: Control exposed endpoints via HTTP methods, paths, tags, and operation IDs
- Authentication: Built-in Bearer token support
- Type Safety: Automatic parameter validation and conversion
- FastMCP Integration: Built on the FastMCP framework for reliable MCP server implementation
Installation
# Install from source
pip install -e .
# Or install dependencies directly
pip install -r requirements.txt
Quick Start
# Basic usage (exposes GET endpoints by default)
mcp-swagger path/to/swagger.json
# With authentication
mcp-swagger swagger.json --api-token "your-token"
# Custom base URL
mcp-swagger swagger.json --base-url "https://api.example.com"
Filtering Options
Control which endpoints are exposed:
- HTTP Methods:
--methods get post put delete - Path Patterns:
--paths "/api/*" --exclude-paths "/admin/*" - Tags:
--tags public documents --exclude-tags internal - Operation IDs:
--operation-ids list_docs get_doc --exclude-operation-ids delete_all
Examples
# Public read-only API
mcp-swagger api.json --methods get --tags public --exclude-paths "/admin/*"
# Specific operations only
mcp-swagger api.json --operation-ids list_docs get_doc search_docs
# Preview generated tools without starting server
mcp-swagger api.json --dry-run --methods get post
Configuration
Command Line Options
--host: Server host (default: localhost)--port: Server port (default: 8080)--transport: Transport protocol:sseorstreamable-http(default)--timeout: Request timeout in seconds (default: 30)--dry-run: Preview tools without starting server
Environment Variables
API_BASE_URL: Default base URL for the APIAPI_TOKEN: API token for authentication
Docker
# Build image
docker build -t mcp-swagger .
# Run with configuration
docker run -p 8080:8080 \
-e API_BASE_URL=https://api.example.com \
-e API_TOKEN=your-token \
-v $(pwd)/swagger.json:/app/swagger.json \
mcp-swagger /app/swagger.json --methods get post
Architecture
config/: CLI parsing and settingsfilters/: Endpoint filtering logicgenerators/: MCP tool generationparsers/: OpenAPI spec parsingapi_client/: HTTP client and authmodels/: Data modelsutils/: Utilities and logging
How It Works
- Load OpenAPI/Swagger specification (file or URL)
- Apply filters to select endpoints
- Generate FastMCP tools with parameter validation and auth
- Start MCP server with generated tools