What you need
A URL to the raw document —.json or .yaml, version 3 — not the Swagger UI
page you read in a browser. And whatever the API expects from a service account:
nothing, a fixed header, or OAuth client credentials. The data plane has to reach
both the document and the API; if they live on a private network, that means
Hybrid.
Validation, and how to read it
Nothing saves until Validate OpenAPI passes. It fetches the document, parses it, compiles the tools, and fails at a named stage:
On success it shows the tool count, the API title, the resolved base address, and
one line per tool. Warnings do not block:
- Operations without
operationId— names are derived from method and path, soGET /v1/models-catalogbecomesget_v1_models_catalog. Tool names are the first thing a model reads when deciding what to call; if you own the API, give every operation anoperationId. - Operations skipped — file uploads, form posts, XML. The rest compiles.
- More than 80 tools — long tool lists crowd out the model’s context. Restrict the set on the application.
Authenticating to the API
This is how the gateway signs in to the API; how agents sign in to the gateway is set on the application and is unrelated.
One service credential for every call. The API sees the gateway, not the person.
If you need each user to authorise individually, that needs a real MCP server with
forwarded OAuth — this integration cannot do it.
What it does not do
One call is one request. If an operation paginates,page or cursor become
tool arguments and the agent asks for the next page itself. The gateway never
walks a collection. An agent that needs everything in one call needs an endpoint
that returns everything.
JSON only. Uploads, forms and XML are skipped. So are references to other
files: publish the document as one file.
Limits. 5 MB and 500 operations per document; 10 MB per tool response.