Build MCP· API → MCP

Paste a spec.
Publish an MCP server.

OpenAPI or GraphQL in, hosted MCP out — with AI-written tool descriptions, per-customer authentication, request logs and quotas from minute one. No MCP code, no OAuth plumbing, no new repo.

OpenAPI & GraphQL scanning

Every REST operation or GraphQL query/mutation becomes one typed MCP tool — arguments, auth, and nullability-safe queries handled for you.

AI-written tool descriptions

Agent-grade docs per tool: when to use it, exact argument formats, enum values, where to get IDs. Editable, regenerable.

Live the same afternoon

Stable MCP URL, hosted connect page for your customers, one-click client configs, logs and usage from the first call.

Works with Claude Cursor ChatGPT VS Code— verified with real clients

Three steps, one afternoon

  • 1 — Scan. Paste an OpenAPI 3.x spec (JSON/YAML or URL) or a GraphQL endpoint we introspect. A setup token is only used for scanning — never for your customers' calls.
  • 2 — Pick tools. Review the generated tools, keep the ones you want to expose, mark read vs write. AI writes the agent-facing descriptions in the background.
  • 3 — Publish. Get
    https://commandplusk.com/api/public/mcp/d/<your-slug>
    — or your own domain. Customers connect from Claude with their own account, immediately.

Case: AnnounceKit's changelog API, as an MCP

AnnounceKit — a changelog & product-updates SaaS — pointed the wizard at its GraphQL API. The scan produced 84 typed tools (posts, feeds, feedback, analytics, segments…), descriptions were AI-written, and the MCP went live on a stable URL the same afternoon. This is its dashboard:

commandplusk.com/dashboard — Usage · Announcekit
Requests (30d)
5,368
Failures (30d)
95
p95 latency
870 ms
Daily requests — last 30 days Successful Failed

Every call is attributed to the customer who made it — not to a shared key. That's what turns "we have an MCP" into "our customers use our product from Claude, safely":

commandplusk.com/dashboard — Usage · Per-customer usage (this month)
CustomerCallsFailuresTop toolLast activity
ada@loopwork.io61317post8:57 PM
felix@brightpath.app40911me8:33 PM
admin@commandplusk.com236post4:51 PM

What your customer does: paste one URL

Your customer adds your MCP URL to Claude, Cursor or ChatGPT. The client discovers the auth flow automatically (OAuth 2.1 discovery + dynamic client registration) and opens your hosted connect page — no config files, no token copy-paste:

Command+K hosted connect page for the AnnounceKit MCP: the customer enters their email and their own AnnounceKit API key; the key is validated against the API, stored encrypted, and a personal MCP access token is issued.
The hosted connect page — what your customer sees. Opens automatically when they add your MCP URL to Claude.

GraphQL and OpenAPI, done carefully

  • Nullability-safe GraphQL. Generated selection sets stay lean and avoid non-nullable landmines that break whole queries — a real-world failure mode we hit and fixed with live traffic.
  • Typed arguments. Path/query/header params, request bodies, enums and defaults carry through from your schema.
  • Re-sync on change. When your API evolves, re-scan from Setup → Tools; version snapshots keep existing clients stable.

Verified with real clients — Claude, Cursor and ChatGPT

This isn't "spec-compliant on paper". The gateway is exercised end to end with the production clients of Claude, Cursor and ChatGPT — including OAuth discovery, dynamic client registration, one-click Cursor install, and the transport edge cases only real clients trigger.

Pricing that starts at zero

Free tier: 1 MCP endpoint, 2,500 requests/month, no card. Paid: $9.99 per endpoint/month with 10,000 requests included, then $0.50 per additional 100k. Pause or archive an endpoint and it drops off your bill at the next prorated cycle.

Create your MCP now →