From OpenAPI spec to hosted MCP server
SpecSync reads your spec once, turns each operation into an MCP tool, and hosts an endpoint that proxies every tool call to your API.
1. Operations become tools
Each path and method in the spec becomes one tool. The tool is named after the operation's operationId, converted to snake_case. If there's no operationId, the name is built from the method and path. The tool description comes from the operation's summary and description.
| REST operation | MCP tool | |
|---|---|---|
| GET /v1/orders/{id} | get_order(idle this cycle) | |
| POST /v1/orders | create_order(idle this cycle) | |
| GET /v1/customers | get_v1_customers(idle this cycle) |
2. Parameters become an input schema
Path, query and header parameters and the JSON request body are merged into a single JSON Schema. Agents see exactly what arguments each tool takes and which ones are required.
paths:
/v1/orders/{id}:
get:
operationId: getOrder
summary: Fetch one order
parameters:
- name: id
in: path
required: true
schema: { type: string }{
"name": "get_order",
"description": "Fetch one order",
"inputSchema": {
"type": "object",
"properties": { "id": { "type": "string" } },
"required": ["id"]
}
}3. You choose what's exposed
After SpecSync reads the spec, you pick which tools the bridge serves. Clients listing tools only see the ones you've turned on.
4. Calls are proxied to your API
When an agent calls a tool, SpecSync fills in the path, query and body from the arguments and sends the request to your API's base URL, taken from servers or host/basePath. It returns the response to the agent.
| Concern | What SpecSync does |
|---|---|
| Auth | Forwards Authorization, x-api-key and other X- headers sent by the MCP client. It never stores your credentials. |
| Network safety | Refuses to proxy tool calls to private, loopback or link-local addresses. |
| Metering | Counts each call per tool, per bridge and per billing cycle. The dashboard shows the totals. |
| Transport | MCP over HTTP with Server-Sent Events, at one URL per bridge. |
5. Serve it on your domain
Every bridge gets a URL on mcp.specsync.io. To serve it under your own name, point a CNAME such as mcp.yourcompany.com at mcp.specsync.io and verify it in the dashboard. SpecSync issues TLS automatically.