proratia-mcp
Click on "Install 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., "@proratia-mcpGet the OpenAPI spec for the API running locally."
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.
Proratia MCP Server (FastMCP + Docker)
A high-performance, containerized Model Context Protocol (MCP) server built with FastMCP (Python).
This server is a generic, bare-minimum MCP boilerplate for giving agents access to a locally running API's OpenAPI/Swagger spec, completely inside a Docker container. It is not tied to any specific backend—it auto-discovers whatever API is running locally, or repoint it via .env configuration, no code changes required.
No local runtimes (Python, Node, etc.) are required on the host machine—only Docker is required.
Features
OpenAPI Spec Fetcher (
get_openapi_spec): Fetches the Swagger/OpenAPI JSON spec from a locally running API. Requires no configuration or arguments—auto-discovers the API by probing common hosts/ports/paths.Manual URL Override (
set_api_url): If auto-discovery can't find the right API, save its spec URL directly. Persisted on a volume until you change or clear it.Interactive Fallback: On clients that support MCP elicitation,
get_openapi_specasks the user for the URL directly when discovery fails, and saves the answer automatically—no separateset_api_urlcall needed.
Related MCP server: Swagger MCP Server
Directory Structure
proratia-mcp/
├── Dockerfile # Container configuration with unbuffered I/O
├── docker-compose.yml # Service compose definition for network (SSE) mode
├── .dockerignore # Build-context exclusions
├── .env.example # Template for local environment configuration
├── requirements.txt # Python dependencies (fastmcp, httpx, python-dotenv)
├── server.py # Main FastMCP server implementation
└── README.md # This guide1. Quick Start: Build the Docker Image
Build the docker image locally using the terminal. Open a terminal in the proratia-mcp directory and run:
docker build -t proratia-mcp:latest .Configure the environment
Copy .env.example to .env:
cp .env.example .envMCP_PORT=8000MCP_PORT is the only setting needed to get started—it controls which port the server listens on (and publishes) in SSE mode via docker-compose.
No API configuration is required: get_openapi_spec takes no arguments and auto-discovers a locally running API by probing common hosts/ports/paths. If you want to skip the scan for a faster/more reliable lookup, .env.example has commented-out variables (API_BASE_URL, OPENAPI_PATH, API_HOST_HEADER, and the DISCOVERY_* candidate-list overrides) you can uncomment as needed.
2. How to Use the MCP
Add this to your MCP client's mcpServers configuration (see STDIO or SSE below for client-specific instructions and options):
{
"mcpServers": {
"proratia-mcp": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"--env-file",
"/absolute/path/to/proratia-mcp/.env",
"-v",
"proratia-mcp-data:/app/data",
"proratia-mcp:latest"
]
}
}
}Once the server is connected to your client (STDIO or SSE—see the sections below), two tools are exposed: get_openapi_spec and set_api_url. Just ask your agent to fetch the API spec in plain language, e.g.:
"Get the OpenAPI spec for the API running locally."
If auto-discovery can't find it, your client may prompt you for the URL directly (if it supports MCP elicitation)—just answer and it's remembered automatically. Otherwise, tell your agent the URL directly and it'll save it for you:
"The API spec is at http://localhost:4000/swagger.json, use that from now on."
Example manual invocations (e.g. via MCP Inspector):
{
"tool": "get_openapi_spec",
"arguments": {}
}{
"tool": "set_api_url",
"arguments": { "url": "http://localhost:4000/swagger.json" }
}See Available Tools below for details on how discovery works, how to hint it via .env, and how the saved URL persists.
3. Integration with LLM Clients (STDIO Mode)
In STDIO mode, the LLM client (e.g., Claude Desktop, Cursor, Cline, Agy, Windsurf, or any other MCP-compatible agent) launches the Docker container as a subprocess and communicates with it using stdin and stdout.
A. Standard mcpServers JSON Configuration
Most MCP clients share the same mcpServers JSON schema, just in a client-specific config file. Add proratia-mcp there, making sure to pass the -i (interactive) flag so stdio streams stay open, and --env-file to load your .env configuration:
{
"mcpServers": {
"proratia-mcp": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"--env-file",
"/absolute/path/to/proratia-mcp/.env",
"-v",
"proratia-mcp-data:/app/data",
"proratia-mcp:latest"
]
}
}
}Common config file locations:
Claude Desktop (macOS):
~/Library/Application Support/Claude/claude_desktop_config.jsonClaude Desktop (Windows):
%APPDATA%\Claude\claude_desktop_config.jsonCursor:
.cursor/mcp.json(project-level) or global MCP settingsOther clients (Agy, Cline, Windsurf, etc.): check that client's MCP documentation for its config file location—the
mcpServersblock itself is portable across all of them.
After saving, restart your client (or reload its MCP connections) to pick up the new server.
B. GUI-Based Configuration
Some clients offer a settings UI instead of hand-editing JSON (e.g. Cursor):
Go to Settings > Features > MCP (or the equivalent in your client).
Click + Add New MCP Server.
Fill out the fields:
Name:
proratia-mcpType:
commandCommand:
docker run -i --rm --env-file /absolute/path/to/proratia-mcp/.env -v proratia-mcp-data:/app/data proratia-mcp:latest
Save and wait for the status indicator to turn green.
4. Running as a Network Service (SSE Mode)
If you prefer to run the server as a background service that clients connect to over HTTP (Server-Sent Events), you can use Docker Compose.
Start the service:
docker-compose up -dThe server will spin up and listen on the port set by
MCP_PORTin your.envfile (defaults to8000). You can configure your MCP clients to connect tohttp://localhost:${MCP_PORT}/sse.
To stop the service:
docker-compose down5. Testing Changes with MCP Inspector
After modifying server.py, rebuild the image (docker build -t proratia-mcp:latest .) and use the official MCP Inspector to interactively call the tool and verify it behaves as expected before wiring it into an LLM client:
npx @modelcontextprotocol/inspector docker run -i --rm --env-file .env -v proratia-mcp-data:/app/data proratia-mcp:latestThis opens a local web UI where you can invoke get_openapi_spec (no arguments needed) or set_api_url and inspect the raw response.
Available Tools
1. get_openapi_spec
Fetches the Swagger/OpenAPI JSON spec from a locally running API. Takes no parameters.
Tries, in order:
A URL saved via
set_api_url(or a previous elicitation answer), if one was set.API_BASE_URL(+OPENAPI_PATH,API_HOST_HEADER), if set in.env, as a fast-path hint.Full auto-discovery—probing combinations of
DISCOVERY_HOSTS,DISCOVERY_PORTS,DISCOVERY_PATHS, andDISCOVERY_HOST_HEADERS(all with sane defaults, overridable in.env) and returning the first response containing anopenapiorswaggerkey.If the client supports MCP elicitation, asking the user for the URL directly and saving their answer for next time (same storage as
set_api_url).
API_HOST_HEADER / DISCOVERY_HOST_HEADERS override the HTTP Host header independently of the connection address. Needed when the target sits behind a reverse proxy (e.g. Caddy, Nginx) that routes by virtual host.
2. set_api_url
Manually sets the OpenAPI/Swagger spec URL for get_openapi_spec to use, for when auto-discovery can't find the right API.
Parameters:
url(string, required): The full URL to the spec document, e.g."http://localhost:4000/openapi.json". Pass an empty string to clear the saved URL and revert to the.envhint / auto-discovery.
The value is written to /app/data inside the container and persists across restarts until changed or cleared again—see Persisting the saved URL below for the volume mount required to make this durable.
Persisting the Saved URL
set_api_url writes to /app/data/url.txt inside the container. Without a mounted volume, this is lost the moment the container is removed (which happens on every call in STDIO mode, since it runs with --rm). To make it durable, mount a named volume at that path:
-v proratia-mcp-data:/app/dataThis is already included in the mcpServers config examples and the Inspector command above, and in docker-compose.yml for SSE mode. Docker creates the named volume automatically on first use—no manual setup needed.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Alicense-qualityFmaintenanceAn MCP server that automatically converts OpenAPI specifications into MCP tools by scanning a folder for spec files, requiring no configuration files or separate servers.77MIT
- AlicenseAqualityCmaintenanceMCP server that provides tools for exploring and testing APIs through Swagger/OpenAPI documentation.57512MIT
- Alicense-qualityDmaintenanceA dynamic MCP server that automatically discovers and generates tools from any REST API using OpenAPI/Swagger specifications, enabling instant endpoint access with zero manual configuration.MIT
- Flicense-qualityDmaintenanceMCP server that wraps any REST API with an OpenAPI spec, dynamically creating MCP tools at runtime without code generation.5
Related MCP Connectors
MCP server for AI access to SmartBear tools, including BugSnag, Reflect, Swagger, PactFlow, QTM4J.
The official MCP Server from Mia-Platform to interact with Mia-Platform Console
APIs.guru MCP — keyless directory of 2,500+ public APIs and their OpenAPI specs.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/d3bn/proratia-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server