Skip to main content
Glama

MCP Swagger Server

by zecure
README.md2.82 kB
# 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 ```bash # Install from source pip install -e . # Or install dependencies directly pip install -r requirements.txt ``` ## Quick Start ```bash # 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 ```bash # 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: `sse` or `streamable-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 API - `API_TOKEN`: API token for authentication ## Docker ```bash # 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 settings - **`filters/`**: Endpoint filtering logic - **`generators/`**: MCP tool generation - **`parsers/`**: OpenAPI spec parsing - **`api_client/`**: HTTP client and auth - **`models/`**: Data models - **`utils/`**: Utilities and logging ## How It Works 1. Load OpenAPI/Swagger specification (file or URL) 2. Apply filters to select endpoints 3. Generate FastMCP tools with parameter validation and auth 4. Start MCP server with generated tools

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/zecure/mcp_swagger'

If you have feedback or need assistance with the MCP directory API, please join our Discord server