I got tired of manually writing MCP tools for every REST endpoint I wanted
to expose to an LLM. So I automated it.
mcpgen reads an OpenAPI JSON or YAML file and generates a complete,
ready‑to‑run MCP server in Python.
🔧 What it does
- Parses OpenAPI 3.0 / 3.1 specs
- Creates one MCP tool per endpoint (with
snake_casenames) - Handles auth automatically (API key, Bearer, etc.)
- Outputs a clean, human‑readable Python script
- Zero runtime surprises – just
mcpandhttpx
🚀 Quick start
bash
pip install mcpgen
mcpgen my-api.json -o my-mcp-server
python my-mcp-server/server.py
The generated server runs over stdio – ready to plug into Claude Desktop
or any MCP client.
🧪 Real‑world test
Recently a contributor added an OpenAPI 3.1 fixture (Xquik API) with
lookupTweet and getUser endpoints. The tool generated the correct
tools, including path parameters and x-api-key auth, on the first try.
All 18 tests pass. It works.
🤔 Why you might want it
If you’re building LLM agents that need to interact with APIs,
mcpgen eliminates the boilerplate. You don’t have to write a single
@app.tool() decorator by hand.
It also makes it dead simple to experiment – change your API spec,
regenerate the server, and you’re done.
📦 Links
GitHub: JnanaSrota/mcpgen
PyPI: pip install mcpgen
MIT licensed, open to contributions
🙏 Feedback
If you try it with your own API spec and something breaks (or works
beautifully), I’d love to hear about it. Drop a comment or open an issue.
Thanks for reading!
Top comments (0)