Make legacy Fortran and C++
AI-ready and microservice-ready,
without rewriting it.
Your validated numerical code is the most valuable thing an AI agent can't reach. nativegate wraps it as an MCP server and REST API, so Claude, Cursor and any agentic client can call it as a tool today — with a recorded numerical baseline that helps verify the answers do not change.
ngate command.Four stages, each one a command you can run yourself.
Nothing in the console does anything the CLI can't do on its own — the web app
just runs ngate for you and shows you the output as it happens.
The numerics stay exactly where they are.
Modernization here means the interface, the packaging, and the deployment — not a rewrite. The Fortran or C++ underneath is unchanged and provably so.
A live HTTP service
Every exposed routine becomes an endpoint on an ordinary FastAPI app, shipped in an ordinary wheel — nothing exotic to deploy.
An MCP endpoint, for free
The same generated service exposes your native routines as tools an LLM agent can call directly, with descriptions carried over from your source comments.
Answers that can't drift
ngate golden record captures what the bindings return today; ngate verify fails the build the moment a regeneration changes an answer.
A compiler you don't have to trust
Builds run non-root and network-isolated in a container. A malicious or broken build script can't reach your host or the network.
Bindings, generated
pybind11 for C++, f2py for Fortran, CMake wiring, the Python package layout — all produced from what your source actually declares.
From header to container
detect, generate, build, verify, serve, docker — the whole path is one binary, scriptable, no web app required.
Your coding agent gets the native library as a tool, in one command.
Every generated service already speaks MCP. Pointing an agentic coding platform at it is a config entry, not an integration project.
claude mcp add
One line — claude mcp add --transport http petro_api http://127.0.0.1:8000/mcp — and every exposed routine shows up as a tool.
Drop into mcp.json
Same URL, same shape — paste it into .cursor/mcp.json or the Windsurf MCP panel and the routines show up as callable tools.
No SDK to write against
It's a standard streamable-HTTP MCP endpoint — no custom client, no auth dance, no generated stubs to keep in sync with the source.
One binary, from legacy source to running container.
ngate --help is authoritative — this is the shape of it.