An MCP server that provides access to Swagger/OpenAPI documentation and allows making API requests based on the specification.
- Loads Swagger documentation from a URL
- Makes API requests based on the Swagger spec
- Supports authentication via API key
- Caches Swagger spec for better performance
- Validates requests against the Swagger spec
- Install dependencies:
npm install- Build the TypeScript code:
npm run buildDevelopment mode:
npm run devProduction mode:
npm run startThe server requires the following environment variables:
SWAGGER_URL: URL to the Swagger specification (required)AUTH_KEY: Authentication key for API requests (optional)
- URI:
swagger://documentation - Description: Get the full Swagger documentation
Make API requests based on the Swagger spec.
Parameters:
path: The API endpoint pathmethod: HTTP method (GET, POST, etc.)parameters: Optional path/query parametersbody: Optional request body
Example:
const result = await mcp.tools.makeRequest({
path: "/api/users",
method: "GET",
parameters: { userId: "123" }
});This server is configured for deployment on Smithery.ai. The deployment requires:
- A
Dockerfilethat builds and runs the server - A
smithery.yamlconfiguration file - Proper TypeScript build setup
When deploying on Smithery.ai, configure the server with:
{
"swaggerUrl": "https://api.example.com/swagger.json",
"authKey": "your-api-key" // Optional
}- Build the Docker image:
docker build -t mcp-swagger .- Run the container:
docker run -e SWAGGER_URL=your-swagger-url -e AUTH_KEY=your-auth-key mcp-swaggernpm run build: Build TypeScript codenpm run start: Run the server in production modenpm run dev: Run the server in development mode with hot reloading