Specwarrant

Generates an MCP server from your OpenAPI 3.x spec: a TypeScript ZIP with up to 8 tools picked from your operations. Before delivery we build it, boot it and call every tool against a mock API generated from your spec; if any check fails, Stripe refunds you in full automatically. $149 one-time per spec. Checkout opens after our final payment test.

เอกสาร

Paste an OpenAPI spec. Get a tested MCP server, or your money back.

Specwarrant turns your OpenAPI 3.x spec into a TypeScript MCP server that Claude, Cursor and other MCP clients can use. We build it, boot it and call every tool before you get it. If any check fails, Stripe refunds you in full automatically.

  • Built on the official @modelcontextprotocol/sdk, with stdio and HTTP transports
  • Up to 8 tools, picked from your operations
  • Ships with its own test suite and a mock API generated from your spec
  • Your API credentials stay in environment variables. We never ask for them.

$149 one-time

Per spec. No subscription.

Checkout opens after our final payment test. The price and the checks on this page are what every order gets.

See a real run

The Swagger Petstore spec, in and out

We ran the public Petstore 3.0 spec through the same build a paid order gets. It produced 8 tools and passed 20 of 20 checks in 12.9 seconds. Read the run record, the generated README and package.json, and the file list of the ZIP.

"/pet/{petId}": {
  "get": {
    "operationId": "getPetById",
    "summary": "Find pet by ID.",
    "parameters": [{
      "name": "petId",
      "in": "path",
      "required": true,
      "description": "ID of pet to return",
      "schema": { "type": "integer",
                  "format": "int64" }
    }]
  }
}
{
  "name": "getPetById",
  "description": "Find pet by ID. Returns a
    single pet. [GET /pet/{petId}]",
  "inputSchema": {
    "type": "object",
    "properties": {
      "petId": { "type": "integer",
                 "format": "int64",
                 "description": "ID of pet to return" }
    },
    "required": ["petId"],
    "additionalProperties": false
  }
}
ToolRequestCalled in test
getInventoryGET /store/inventoryPassed
findPetsByStatusGET /pet/findByStatusPassed
getUserByNameGET /user/{username}Passed
getOrderByIdGET /store/order/{orderId}Passed
findPetsByTagsGET /pet/findByTagsPassed
createUserPOST /userPassed
placeOrderPOST /store/orderPassed
getPetByIdGET /pet/{petId}Passed

What every build must pass before you get a ZIP

The checks run in this order, and the build stops at the first failure. tool_call runs once per tool, so a server with 8 tools runs 20 checks. Each build has a 5-minute limit. The build and the checks use no LLM.

  1. spec_load: the file downloads and parses as JSON or YAML
  2. spec_valid: it is valid OpenAPI 3.x, with internal $ref s only
  3. tool_selection: up to 8 operations with JSON requests and responses become tools, spread across your spec's tags. Reads rank above creates, then updates and deletes; login, token and session endpoints rank last.
  4. codegen: every tool input is valid JSON Schema
  5. install: dependencies install cleanly
  6. typecheck: the TypeScript compiles with no type errors
  7. build: the server builds
  8. boot_stdio: it starts and answers the MCP initialize handshake
  9. tools_list: it lists the expected tools with valid schemas
  10. tool_call: each tool is called once against the mock API, and its response is checked
  11. boot_http: the remote HTTP transport starts and responds
  12. package: the files are scanned for secrets
  13. zip_selftest: the ZIP is unpacked into a clean folder, installed with npm ci, and its tests run

What is in the ZIP

  • A TypeScript project for Node.js 20 or newer
  • A README with setup for Claude Desktop and Claude Code
  • npm test, which starts the server and calls each tool against a mock API generated from your spec
  • An .env.example listing the base URL and credential variables

Limits, stated plainly

  • OpenAPI 3.x only. Swagger 2.0 files fail the gate.
  • At most 8 tools per server, picked by the rule in the gate list. You cannot choose them yet.
  • $ref s must point inside the spec. A spec that references other files fails the gate.
  • Auth is an API key or a bearer token, read from environment variables. The server does not run OAuth flows: you supply the token.
  • The tests call a mock API built from your spec, never your live API, so they prove the server matches the spec, not that your API matches it.

Your data

  • We download the spec from the URL you enter, following up to 3 redirects. Nothing else is fetched from your servers.
  • We store the spec URL, the order record and the built ZIP on our server. A refund request turns the download link off.
  • Stripe handles the card. We never see the card number.

Two ways to get your money back

Automatic, if a check fails

If any gate check fails, you get no ZIP, and a full refund is issued to your card through Stripe. You do not have to ask.

On request, within 7 days

Your order page has a refund button. Use it within 7 days of payment for a full refund, for any reason.