npx mcpblaze@latest connector <openapi url>

Get your App listed in Claude and ChatGPTComply with leading AI directory listing policies

  • Claude
  • ChatGPT

One command. Ready to submit.To both Claude and ChatGPT.

Point it at your OpenAPI spec. It makes your API a Claude Connector and a ChatGPT plugin with sign-in and per-user rules, checks every published requirement, runs the test calls a reviewer makes, and writes the packet you paste into each portal.

You submit. Anthropic and OpenAI decide.

Ask your agent to get your app into Claude and ChatGPT

~/code/mybackend $ npm run dev

⚡️ My app: A restaurant table booking app, running on localhost:3000

GET /reservations/{id} Get one booking

DELETE /reservations/{id} Cancel a booking

POST /reservations Book a table

~/code/mybackend $

The policies, item by item

What the directories ask, and how each item is met

Anthropic and OpenAI publish what they look for. Every line is a check, run against your live connector. The result is a table: the rule, why it complies, the policy page it comes from.

Domain & transport

14
  • Your own domain, one CNAME
  • Streamable HTTP; a 401 that starts sign-in

Sign-in

13
  • OAuth on the connector itself
  • The consent page names claude.ai or chatgpt.com

Tools

21
  • Explicit hints: modify and delete prompt
  • No tool asks for a credential

Runtime

5
  • Errors say what the API said
  • No traces or request ids in results

Listing

43
  • Privacy page answers 200 and says what it keeps
  • Name and tagline within each portal’s limits

Attestations

11
  • Claude’s seven, ChatGPT’s three
  • Recorded with your name and the time

Drift

1
  • Live tools match the listing snapshot
  • A nightly re-check emails you

Evidence

16
  • Every tool answered for the reviewer
  • Every prompt made the agent call a tool

Safe fixes are applied for you. What needs you is asked once, pre-filled from your spec.

Tested, not asserted

It runs the calls a reviewer makes before you submit

Each example prompt is tried the moment you type it, through Claude Code and through Codex CLI. Every tool is called with a good argument and a bad one. The gateway records what happened; the CLI’s word is never the evidence. You still test it in Claude and in ChatGPT yourself, the way the reviewer will.

Then the use cases and the reviewer instructions are written from that run. Enter accepts.

Reviewer instructions · written from the run
  1. 1.Add https://mcp.resiresi.example (your own domain) as a custom connector in Claude or ChatGPT; sign in with the username and password entered in the credential fields.
  2. 2.Ask: "Book a table for 2 tonight at Nino Pizza" — uses createReservation; expect a booking with an id, the guests and the time.
  3. 3.Ask: "Cancel my 20:00 booking" — uses cancelReservation; expect the status cancelled.
  4. 4.A bad argument (guests: "many") answers "400: guests must be a number" — a message, not a crash.
? Use this? Yes
The hard requirements, built in

Sign-in and permissions, without writing them

Anthropic requires OAuth when tools act on a user’s account, and allows no sign-in only for public data; OpenAI accepts OAuth or none, never a shared token in the listing. People sign in once in Claude or ChatGPT; every call reaches your backend with their name on it, and your spec’s rules decide what they may do.

Who’s asking

Claude Code · connected to Nino Pizza (MCP)

signed in as ana@ninopizza.com

book me a table for 2 tonight

●Booked: table 1, 2 people at 19:30

what your backend receives

POST /reservations

x-abz-user-id user_8f2k…

x-abz-tenant-id ninopizza

x-abz-identity eyJhbGciOi…

{ "guests": 2, "time": "19:30" }

Are they allowed

Claude Code · Nino Pizza (MCP)

Bencancel Ana’s 19:30 booking

✗Not yours: only whoever made it can cancel it

Bencancel my 20:00 booking

✓Cancelled

Ninocancel Ana’s 19:30 bookingadmin

✓Cancelled. Nino is an admin of Nino Pizza

checked by MCPblaze before your backend sees the call
What you get

The submission packet

When every check is green: every field to paste, in each portal’s order, the reviewer account (created for you, shown once), the test steps, and the compliance table as proof.

A nightly re-check is switched on when the listing is green: it emails you if the listing drifts or a new check is added.

connector-packet-resiresi.md

# ResiResi — directory submission packet

Claude: ready · ChatGPT: ready

## Listing

- Name: ResiResi

- Connector URL: https://mcp.resiresi.example

- Auth: OAuth sign-in on the connector

## Reviewer account

- Username: reviewer-resiresi

- Password: shown once, stored encrypted

## Portal steps, in portal order

1. Connection · 2. Tools · 3. Listing · 4. Use cases · 5. Company · 6. Authentication · 7. Data handling · 8. Test & launch …

### Compliance — rule by rule, with sources

Plainly

What we do not do

We do not submit for you

You paste the packet into each portal. The command says what goes where.

We do not decide

Passing these checks means your connector meets the requirements we can verify. Listing decisions are made by Anthropic and OpenAI.

We do not replace ChatGPT

The automated runs are made from Claude Code and from Codex CLI, and the gateway records them. The real ChatGPT surface you try yourself before you submit.

One command, then you submit

terminal
$ npx mcpblaze@latest connector https://api.yourapp.com/openapi.yaml

Start in the terminal, finish on the page, or the other way round: every answer is saved as you give it, and one scorecard says what is left.

Or from your agent: claude mcp add --transport http mcpblaze https://mcp.mcpblaze.com — it can create the MCP server and check readiness; the details are on the page.

Rather hand it to your agent? Paste one prompt into Claude Code or Codex.