mcp-swagger
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-swagger list all endpoints"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
@awssam/mcp-swagger
MCP (Model Context Protocol) server for exposing Swagger/OpenAPI documentation to AI models like Claude. This tool allows AI assistants to explore, understand, and interact with your API documentation seamlessly.
Features
14 Powerful Tools for exploring API documentation
Automatic Caching for fast responses
OpenAPI 3.0 Support (Swagger 2.0 compatible)
Token-Optimized responses for efficient AI interactions
Search & Discovery with intelligent scoring
Path Validation with typo suggestions
Curl Generation with example payloads
Schema Analysis and reference tracking
Related MCP server: Open API MCP Server
Installation
npm install -g @awssam/mcp-swaggerQuick Start
Using with Claude Desktop
Add to your Claude Desktop configuration file:
MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"swagger": {
"command": "npx",
"args": [
"@awssam/mcp-swagger",
"https://petstore.swagger.io/v2/swagger.json"
]
}
}
}Using with Claude CLI (Claude Code)
Option 1: Using claude mcp add command (Recommended)
claude mcp add swagger npx @awssam/mcp-swagger https://petstore.swagger.io/v2/swagger.jsonOption 2: Manual Configuration
Add to your Claude CLI configuration file:
Location: ~/.config/claude/config.yaml
mcpServers:
swagger:
command: npx
args:
- "@awssam/mcp-swagger"
- "https://petstore.swagger.io/v2/swagger.json"Or if installed globally:
mcpServers:
swagger:
command: mcp-swagger
args:
- "https://petstore.swagger.io/v2/swagger.json"After adding the configuration, restart Claude CLI for the changes to take effect.
Using with Environment Variable
export API_URL=https://your-api.com/api-docs
npx @awssam/mcp-swaggerUsing as CLI
npx @awssam/mcp-swagger https://your-api.com/api-docsAvailable Tools
1. listEndpoints
Lists all available API endpoints with their HTTP methods and tags.
Parameters:
tag(optional): Filter by specific tag
Example:
{
"tag": "users"
}2. getEndpointDetails
Retrieves complete details of a specific endpoint including parameters, request body, responses, and schemas.
Parameters:
path(required): Endpoint path (e.g.,/users/{id})method(optional): HTTP method (get, post, put, delete, patch)
Example:
{
"path": "/users/{id}",
"method": "get"
}3. searchEndpoints
Searches for endpoints by keyword in paths, descriptions, and tags. Results are sorted by relevance.
Parameters:
query(required): Search term
Example:
{
"query": "authentication"
}4. getSchemas
Retrieves data schemas (DTOs) defined in the API. Without parameters, lists all available schemas.
Parameters:
schemaName(optional): Specific schema name to retrieve
Example:
{
"schemaName": "User"
}5. listTags
Lists all tags used to categorize endpoints in the API.
6. getEndpointsByTag
Retrieves all endpoints associated with a specific tag.
Parameters:
tag(required): Tag name
Example:
{
"tag": "authentication"
}7. getApiInfo
Retrieves API metadata including title, version, description, servers, contact info, and license.
8. getSecuritySchemes
Lists authentication/authorization schemes available (OAuth2, API keys, Bearer tokens, etc.).
9. getServerUrls
Retrieves available server URLs and their environments (dev, staging, prod, etc.).
10. validateEndpointPath
Checks if an endpoint path exists. If not found, suggests similar paths to help with typos.
Parameters:
path(required): Endpoint path to validate
Example:
{
"path": "/users/{id}"
}11. getSchemaReferences
Finds all endpoints that use a specific schema. Useful for impact analysis when modifying schemas.
Parameters:
schemaName(required): Schema name to search for
Example:
{
"schemaName": "User"
}12. generateCurlExample
Generates a curl command example for a specific endpoint, including headers and sample request body.
Parameters:
path(required): Endpoint pathmethod(required): HTTP method
Example:
{
"path": "/users",
"method": "post"
}13. getDeprecatedEndpoints
Lists all endpoints marked as deprecated. Useful for migration planning.
14. executeEndpoint
✨ NEW - Executes an API endpoint and returns the actual response. Automatically uses required headers from the Swagger spec. Perfect for testing endpoints and fetching real-time data.
Parameters:
path(required): Endpoint path (e.g.,/users/{id})method(required): HTTP method (get, post, put, delete, patch)baseUrl(optional): Base server URL (uses Swagger default if not provided)pathParams(optional): Path parameters object (e.g.,{"id": "123"})queryParams(optional): Query parameters object (e.g.,{"page": 1, "perPage": 10})headers(optional): Custom headers object (e.g.,{"Authorization": "Bearer token"})body(optional): Request body for POST/PUT/PATCH
Example:
{
"path": "/admin/organizations",
"method": "get",
"baseUrl": "http://localhost:4000",
"queryParams": {
"page": 1,
"perPage": 10
},
"headers": {
"x-dev-code": "ILoveMom"
}
}Response includes:
success: Boolean indicating if request succeededstatus: HTTP status codestatusText: HTTP status messagedata: Response body (parsed JSON or text)headers: Response headersurl: Full URL that was calledmethod: HTTP method used
Project Structure
src/
├── index.js # Entry point & server setup
├── config.js # Configuration management
├── swagger/
│ ├── fetcher.js # Swagger doc fetching & caching
│ └── parser.js # Endpoint, schema, and tag parsing
└── tools/
├── definitions.js # Tool schemas & definitions
└── handlers.js # Tool request handlersConfiguration
The server accepts the API URL in three ways (in order of precedence):
Command-line argument:
npx @awssam/mcp-swagger <URL>Environment variable:
export API_URL=<URL>Default:
http://localhost:3000/api-json
Requirements
Node.js >= 18.0.0
Valid Swagger/OpenAPI JSON or YAML endpoint
Use Cases
API Exploration: Let AI understand and navigate your API
Documentation Assistance: Get instant answers about endpoints
Code Generation: Generate curl commands and examples
Migration Planning: Find deprecated endpoints
Impact Analysis: Track schema usage across endpoints
Developer Onboarding: Quick API discovery and learning
Development
# Clone the repository
git clone https://github.com/awssam/mcp-swagger.git
cd mcp-swagger
# Install dependencies
npm install
# Run locally
npm start https://petstore.swagger.io/v2/swagger.jsonLicense
MIT
Contributing
Contributions are welcome! Please open an issue or submit a pull request.
Support
Author: Awssam Saidi
Related Projects
Available Tools
14 toolsexecuteEndpointA
Exécute un endpoint API et retourne la réponse réelle. Utilise automatiquement les headers requis définis dans le Swagger. Parfait pour tester les endpoints et récupérer des données en temps réel.
Inputs: path (required), method (required), body, baseUrl, +3 more.
generateCurlExampleA
Génère un exemple de commande curl pour un endpoint spécifique, incluant les headers et un corps de requête exemple.
Inputs: path (required), method (required).
getApiInfoA
Récupère les métadonnées de l'API : titre, version, description, serveurs, contact, licence.
Inputs: no named parameters.
getDeprecatedEndpointsA
Liste tous les endpoints marqués comme dépréciés. Utile pour la planification de migrations.
Inputs: no named parameters.
getEndpointDetailsB
Récupère les détails complets d'un endpoint spécifique : paramètres, body, réponses, schémas, etc.
Inputs: path (required), method.
getEndpointsByTagA
Récupère tous les endpoints associés à un tag spécifique. Plus ciblé que listEndpoints avec filtre.
Inputs: tag (required).
getSchemaReferencesA
Trouve tous les endpoints qui utilisent un schéma spécifique. Utile pour l'analyse d'impact lors de modifications de schémas.
Inputs: schemaName (required).
getSchemasA
Récupère les schémas de données (DTOs) définis dans l'API. Sans paramètre, liste tous les schémas disponibles. Avec un nom, retourne le schéma complet.
Inputs: schemaName.
getSecuritySchemesA
Liste les schémas d'authentification/autorisation disponibles (OAuth2, API keys, Bearer tokens, etc.).
Inputs: no named parameters.
getServerUrlsA
Récupère les URLs des serveurs disponibles et leurs environnements (dev, staging, prod, etc.).
Inputs: no named parameters.
listEndpointsA
Liste tous les endpoints disponibles dans l'API avec leurs méthodes HTTP et tags. Retourne un résumé léger optimisé pour économiser les tokens.
Inputs: tag.
listTagsA
Liste tous les tags utilisés pour catégoriser les endpoints dans l'API.
Inputs: no named parameters.
searchEndpointsA
Recherche des endpoints par mot-clé dans les chemins, descriptions, tags. Retourne les résultats triés par pertinence.
Inputs: query (required).
validateEndpointPathA
Vérifie si un chemin d'endpoint existe. Si non, suggère des chemins similaires pour corriger les erreurs de frappe.
Inputs: path (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 14 tools
Each tool has a clearly distinct purpose: fetching server URLs, executing endpoints, listing endpoints, getting details, searching, schema handling, tag management, API info, security schemes, validation, schema references, curl generation, and deprecated endpoints. The descriptions are explicit enough to prevent confusion even where similar (e.g., listEndpoints vs getEndpointsByTag).
All tool names follow a consistent verb+noun camelCase pattern (get, execute, list, search, validate, generate). The style is uniform and predictable, making it easy to infer tool behavior from names.
14 tools is well within the ideal 3-15 range and each tool addresses a specific need in exploring and interacting with a Swagger-defined API. The count feels comprehensive without being bloated.
The toolset covers the full lifecycle of API interaction: discovery (list, search, details), execution, schema exploration, security information, validation, and deprecation tracking. There are no obvious dead ends or missing essential operations for a Swagger/OpenAPI use case.
Related MCP Connectors
Publish your API docs so AI assistants can look up endpoints and call your API correctly.
Turn any task into the right API calls: discover, evaluate, and integrate public APIs.
Discover, compare, route, and execute machine-accessible capabilities for AI agents.
AI-callable tools for API mocking, testing, monitoring, security, and automation.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceBrings OpenAPI/Swagger documentation into AI assistants, enabling endpoint discovery, deep inspection, cURL generation, and TypeScript type generation.-
- AlicenseNot gradedqualityDmaintenanceProvides AI assistants with access to OpenAPI specifications, enabling API discovery, schema retrieval, and direct API execution with support for OAuth 2.0 and other authentication methods.5 npm1MIT
- FlicenseAqualityDmaintenanceDynamically fetches and exposes OpenAPI/Swagger documentation as tools for AI assistants, enabling them to explore and interact with any REST API.31-
- AlicenseAqualityCmaintenanceConnects AI agents with Swagger/Knife4j API documentation, enabling real-time retrieval, search, and structured understanding of API interfaces, parameters, and schemas.5226 npm1MIT