Documenting MCP Servers
The Dev Portal renders a dedicated
Model Context Protocol (MCP) setup UI for
any OpenAPI operation that includes the x-mcp-server extension. The card
replaces the standard request/response view with the MCP endpoint URL, a copy
button, and tabbed installation instructions for Claude, ChatGPT, Cursor, VS
Code, and a generic config.
Building an MCP server on Zuplo?
If your MCP server uses Zuplo's
MCP Server Handler, the x-mcp-server
extension is added to your OpenAPI spec automatically. Skip this guide — there
is nothing to configure. See the
MCP Server overview for the build path.
When to use this guide
Use this guide when you want to surface an MCP server in your Dev Portal that you are not building with Zuplo's MCP Server Handler. Common scenarios:
- You proxy a third-party MCP server through a Zuplo route (for example, with a URL forward or custom handler) and want to publish setup instructions for it.
- You hand-author an OpenAPI spec for an MCP server hosted outside Zuplo.
- You catalog multiple MCP servers — some yours, some external — in a single Dev Portal.
In every case, this guide covers only the documentation side: how the Dev Portal renders the MCP card. Authentication, rate limiting, and any other gateway behavior is configured on the underlying route as usual.
Adding the extension
Add x-mcp-server to the operation that represents the MCP endpoint. MCP
servers typically use POST, but the extension works on any HTTP method.
openapi.json
For a quick setup with no metadata, use the shorthand "x-mcp-server": true.
The operation summary is then used as the server name.
Extension properties
| Property | Type | Required | Description |
|---|---|---|---|
name | string | No | Display name used in the generated client config snippets. Falls back to the operation summary, then mcp-server. |
version | string | No | Version metadata. Included for completeness; not currently rendered in the UI. |
tools | array | No | Tool metadata. Used by Zuplo enrichment; not currently rendered in the UI. |
Each entry in tools accepts:
| Property | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Tool name |
description | string | No | Human-readable tool description |
MCP URL resolution
The displayed MCP URL is constructed from the server URL of the API plus the
path of the operation. The server URL comes from the OpenAPI servers array
(or the operation-level servers override, when present).
For example:
Code
The displayed MCP URL is https://api.example.com/mcp/docs. Make sure the
server URL points to wherever the MCP server actually accepts requests — for
proxied servers, that is typically your Zuplo gateway URL.
Complete example
This minimal but complete OpenAPI spec produces an MCP endpoint page in the Dev Portal:
mcp-api.json
Reference the spec from your Dev Portal config (see
API Reference for the full apis
configuration):
zudoku.config.tsx
Generated UI
When the Dev Portal detects x-mcp-server on an operation, the page renders:
- MCP Endpoint card — the full URL with a copy button.
- AI Tool Configuration tabs with setup instructions for:
- Claude — add via the Connectors UI or the
claude mcp addCLI command. - ChatGPT — app setup via Settings → Apps → Advanced Settings.
- Cursor —
mcp.jsonconfiguration (global or project-level). - VS Code —
.vscode/mcp.jsonwith native HTTP transport for GitHub Copilot. - Generic — standard
mcp.jsonformat compatible with most MCP clients.
- Claude — add via the Connectors UI or the
The standard method badge, request body, parameters, and sidecar panels are hidden for MCP endpoints because they use a different interaction model.
Related
x-mcp-serverextension reference — the underlying OpenAPI extension.- MCP Server Handler — build an MCP server on Zuplo (and skip this guide entirely).
- MCP Server overview — concepts, capabilities, and the Zuplo-native build path.