If your service already has an OpenAPI (Swagger) spec, you do not need to hand-write an MCP server. The spec already describes every endpoint, its parameters and responses — exactly the information MCP needs to expose them as tools. Here is the approach.
Why this works
An OpenAPI document and an MCP tool list describe the same thing from different angles: callable operations with typed inputs and outputs. A generator reads the spec and emits one MCP tool per operation, wiring the HTTP call, parameters and auth for you. Minutes instead of days.
The fast path
Loadout's OpenAPI-to-MCP generator takes a spec URL or file and produces a ready-to-run server config — no code. Paste your spec, pick the operations you want exposed, and copy the result into your client config (see MCP config file location).
What to watch for
- Do not expose everything. A 200-endpoint API becomes 200 tools, which blows past Cursor's ~40-tool cap and overwhelms the model. Select the handful of operations the AI actually needs.
- Auth. Pass API keys via environment variables, not inline. Prefer a scoped, read-only key.
- Write operations. Be deliberate about exposing
POST/DELETEendpoints to an AI — start read-only (GETonly) and add writes consciously. See MCP security best practices. - Descriptions matter. The model picks tools by their descriptions. If your spec's summaries are thin, the generated tools will be hard for the model to choose correctly — improve the spec.
When to hand-write instead
Generation is perfect for straightforward CRUD APIs. Hand-write a server when you need to combine several API calls into one tool, reshape responses heavily, or add logic the spec cannot express. For that, see build your first MCP server (Node.js) or the Python tutorial.
Going further
Once your server runs, submit it to Loadout so others can find it. Browse what already exists in the developer tools category.