How to get your API into Claude and ChatGPT?
Claude’s connector checklist is the list of sign-in rules your MCP server must follow before Claude will connect to it.
APIblaze follows every one. Run the command below and it puts a gateway in front of your API with OAuth already set up. You get an MCP address to paste into Claude, plus authorization: rules for what each signed-in person is allowed to do.
Get an MCP server Claude can connect to
$ npx apiblaze@latest create --target https://ninopizzas.com/openapi.yamlPaste it in a terminal. No sign-up, no servers. The link is a sample restaurant API; swap in your own API’s address. It prints an MCP address: in Claude, open Customize, then Connectors, then Add custom connector, and paste it.
What Claude requires from your MCP server
These are the rules Claude’s documentation sets for connectors. Your MCP server has to meet every one, or the connection fails. APIblaze takes care of that instantly: point it at your API and you get an MCP server that passes every rule.
Each row gives the rule in plain words, the tech word for it, and what it takes to build yourself versus one command from APIblaze.
| Claude requires | Build it yourself | APIblaze |
|---|---|---|
| Answer “sign in first” the way Claude expectsThe tech word for it: a 401 with a WWW-Authenticate resource_metadata pointer | You build it 1–2 hours Code in front of every MCP request that refuses unsigned calls with exactly that reply. | Built in Included Every MCP address answers unsigned calls that way. |
| Say where people sign inThe tech word for it: protected resource and authorization server metadata (RFC 9728, RFC 8414) | You build it 2–4 hours Two discovery documents under /.well-known/, whose address must match your MCP address exactly. | Built in Included Published for every server. |
| Let Claude introduce itselfThe tech word for it: Client ID Metadata Document (CIMD) or dynamic client registration (RFC 7591) | You build it 1–3 days Fetch and check Claude’s published identity, or run a registration endpoint that gains a new client on every connection. | Built in Included Both. Claude uses its published identity, which you approve once. |
| A safe sign-in handshakeThe tech word for it: PKCE with S256 | You build it 2–4 hours Check a one-time proof on every sign-in, so a stolen code is useless. | Built in Included Required on every sign-in. |
| Send people back to Claude, and only to ClaudeThe tech word for it: redirect URI https://claude.ai/api/mcp/auth_callback | You build it 2–4 hours Accept Claude’s return address and refuse look-alikes, or someone else collects the tokens. | Built in Included Checked exactly against the addresses Claude publishes. |
| Keep people signed inThe tech word for it: refresh tokens, with invalid_grant when one is no longer valid | You build it 1–2 days A token endpoint that renews access and answers errors in the exact form Claude expects. | Built in Included Built in: people stay connected without signing in again. |
| An actual sign-inThe tech word for it: an identity provider | You build it 2–5 days Pick a login provider, connect it, and store your users. | Built in Included Hosted GitHub sign-in out of the box, or your own: Google, Microsoft, Auth0 or any OpenID Connect provider. |
| Answer within 10 seconds, from the public internetThe tech word for it: endpoint latency and Anthropic’s egress range | You build it 1–2 days Keep sign-in fast, on a public address, with your firewall open to Anthropic’s servers. | Built in Included Hosted on Cloudflare’s global network, with nothing for you to keep online. |
| Claude’s whole checklist | About 1–3 weeks of work | One command, under 30 seconds |
| Not on Claude’s list, but what makes it safe | ||
| Decide who may do whatThe tech word for it: authorization | You build it 1–2 weeks A check in every tool you write. | Built in Included Rules like “only the person who made a booking can change it”, applied before your code runs. |
Answer “sign in first” the way Claude expectsThe tech word for it: a 401 with a WWW-Authenticate resource_metadata pointer
- You build itBuild it yourself 1–2 hours
Code in front of every MCP request that refuses unsigned calls with exactly that reply.
- Built inAPIblaze Included
Every MCP address answers unsigned calls that way.
Say where people sign inThe tech word for it: protected resource and authorization server metadata (RFC 9728, RFC 8414)
- You build itBuild it yourself 2–4 hours
Two discovery documents under /.well-known/, whose address must match your MCP address exactly.
- Built inAPIblaze Included
Published for every server.
Let Claude introduce itselfThe tech word for it: Client ID Metadata Document (CIMD) or dynamic client registration (RFC 7591)
- You build itBuild it yourself 1–3 days
Fetch and check Claude’s published identity, or run a registration endpoint that gains a new client on every connection.
- Built inAPIblaze Included
Both. Claude uses its published identity, which you approve once.
A safe sign-in handshakeThe tech word for it: PKCE with S256
- You build itBuild it yourself 2–4 hours
Check a one-time proof on every sign-in, so a stolen code is useless.
- Built inAPIblaze Included
Required on every sign-in.
Send people back to Claude, and only to ClaudeThe tech word for it: redirect URI https://claude.ai/api/mcp/auth_callback
- You build itBuild it yourself 2–4 hours
Accept Claude’s return address and refuse look-alikes, or someone else collects the tokens.
- Built inAPIblaze Included
Checked exactly against the addresses Claude publishes.
Keep people signed inThe tech word for it: refresh tokens, with invalid_grant when one is no longer valid
- You build itBuild it yourself 1–2 days
A token endpoint that renews access and answers errors in the exact form Claude expects.
- Built inAPIblaze Included
Built in: people stay connected without signing in again.
An actual sign-inThe tech word for it: an identity provider
- You build itBuild it yourself 2–5 days
Pick a login provider, connect it, and store your users.
- Built inAPIblaze Included
Hosted GitHub sign-in out of the box, or your own: Google, Microsoft, Auth0 or any OpenID Connect provider.
Answer within 10 seconds, from the public internetThe tech word for it: endpoint latency and Anthropic’s egress range
- You build itBuild it yourself 1–2 days
Keep sign-in fast, on a public address, with your firewall open to Anthropic’s servers.
- Built inAPIblaze Included
Hosted on Cloudflare’s global network, with nothing for you to keep online.
Claude’s whole checklist
- Build it yourself: about 1–3 weeks of work
- APIblaze: one command, under 30 seconds
Not on Claude’s list, but what makes it safe
Decide who may do whatThe tech word for it: authorization
- You build itBuild it yourself 1–2 weeks
A check in every tool you write.
- Built inAPIblaze Included
Rules like “only the person who made a booking can change it”, applied before your code runs.
Times are rough estimates for one experienced developer using common OAuth libraries, including testing the connection with Claude. Starting from scratch, or adding many tools, takes longer.
What happens when someone adds your connector
Ana wants Claude to manage her bookings at a restaurant. This is what passes between Claude and the restaurant’s server, and where each item on the checklist comes in.
- 1
She adds it
Ana pastes the restaurant’s MCP address into Claude as a custom connector and clicks Connect.
- 2
Claude is told to sign in
The server answers: not without signing in, and here is where.
The tech word for it: a 401 with resource metadata
- 3
Claude introduces itself
Claude shows the sign-in server its published identity, including the one address Ana may be sent back to.
The tech word for it: client registration
- 4
Ana signs in
A sign-in page opens. She signs in with GitHub, sees that Claude is asking, and agrees.
The tech word for it: OAuth with PKCE
- 5
Claude gets her pass
Claude receives a token that says “this is Ana”, and renews it before it runs out.
The tech word for it: access and refresh tokens
- 6
Every request is Ana’s
“List my bookings” shows hers. Asking to cancel Ben’s is refused before the restaurant’s code ever sees it.
The tech word for it: authorization
Passing Claude’s checklist still leaves a gap
Once your server passes the checklist, Claude knows who is asking: it’s Ana. But nothing on Claude’s list says what Ana is allowed to do, and an AI assistant tries whatever it is asked. Cancel Ben’s booking? See every customer’s bookings? Call your server a thousand times a minute? Unless something stops it, your server says yes.
APIblaze closes that gap, in the same gateway.
Only what’s theirs
Ana can change her bookings, not Ben’s. Rules are written in plain English and checked on every call.
The tech word for it: authorization
Managers and staff
Put people in groups and decide what each group may do. The manager sees every booking; a customer sees their own.
The tech word for it: roles and groups
Not a thousand times a minute
Every new server starts with a rate limit of 10 requests a second per caller and a quota of 3,000 a day, so an assistant stuck in a loop can’t flood you.
The tech word for it: rate limits and quotas
Approve Claude once, then everyone just signs in
A sign-in server that lets any app register is a phishing tool: a stranger registers an app that looks like yours and collects your users’ sign-ins. So APIblaze holds every new app until you approve it.
A new server says yes on its own
In its first hour, apps that connect are approved automatically, so your first test just works.
After that, one command
It approves the next app that connects, and only that one.
npx apiblaze@latest allowoauthregistrationOr from your inbox
When a new app is waiting, you get an email with a link to approve it.
One approval covers everyone who connects from claude.ai, the desktop app and the mobile apps.
“Couldn’t reach the MCP server”: the usual causes
Despite the wording, it is rarely the network. These are the causes Claude’s own troubleshooting guide lists, in the order it checks them.
- 1
Claude can’t find your sign-in server
Your 401 has no pointer, and the /.well-known/ addresses return 404, so Claude never learns where to send people.
- 2
Claude has no way to register
Your sign-in server offers neither a registration endpoint nor support for Claude’s published identity.
- 3
A firewall blocks Anthropic
A CDN or bot rule answers 403 or 429 to Anthropic’s servers before your code ever sees the request.
- 4
Your address redirects
Apex to www, or a vanity domain to a CDN. Claude drops the sign-in token when it is redirected to another host, and you get “Authorization with the MCP server failed”.
- 5
Your server is only reachable privately
claude.ai connects from Anthropic’s servers, so an address that only works on your network or VPN fails, even when it works from your laptop.
- 6
Your token endpoint is slow
Claude waits 10 seconds for a token. Any slower and sign-in fails, even if the token would have arrived.
With APIblaze, the gateway handles this part. It serves the pointer, the discovery documents and both ways for Claude to register, on a public address that doesn’t redirect.
Common questions
How do I add OAuth to my MCP server so it works with Claude?
Your server has to answer unsigned calls with a 401 that points to its sign-in details, publish those details, let Claude register (with its published identity or by dynamic registration), support PKCE, accept Claude’s return address and renew tokens. Or put APIblaze in front of it, which does all of that with one command.
Can I use an API key instead of OAuth?
Only partly. Claude can send a fixed key in a request header, but that is in beta for a limited set of organizations, and everyone in the organization shares the key, so your server can’t tell people apart. For anything per person, Claude expects OAuth. APIblaze gives you both: keys for apps, sign-in for people.
Should my server support DCR or CIMD?
Claude prefers CIMD, its published identity, when your sign-in server advertises it, and falls back to DCR (dynamic client registration) otherwise. DCR adds a new registration for every fresh connection, which piles up on a popular server. APIblaze supports both and advertises CIMD.
Does it work in the Claude desktop app and on mobile?
Yes. claude.ai, the desktop app and the mobile apps use the same sign-in, so the same checklist covers all three.
Can I keep my existing login?
Yes. Instead of the hosted GitHub sign-in, point APIblaze at your own OAuth app, such as Auth0, Google or Microsoft, or at your own token issuer. Your users sign in where they already do.
Do I need to be listed in Claude’s directory?
No. Anyone can add your server by its address as a custom connector: in their own settings on Free, Pro and Max plans (Free allows one custom connector), and on Team and Enterprise plans an Owner adds it for the organization. The directory is a separate, reviewed listing.
Do my users need an APIblaze account?
No. They sign in with GitHub or with your own login. Only you, the owner of the server, use APIblaze.
Pass Claude’s checklist now
One command, no sign-up. Sign-in, permissions and limits, ready for Claude.
$ npx apiblaze@latest create --target https://ninopizzas.com/openapi.yamlSources
Claude’s requirements were checked against its connector documentation in October 2026. They change; if something here is out of date, tell us and we’ll fix it.
- Claude: Authentication for connectors
- Claude: Troubleshoot your connector
- Claude: Add a connector that isn’t in the directory
- MCP specification: Authorization
- RFC 9728: Protected resource metadata
- RFC 8414: Authorization server metadata
- RFC 7591: Dynamic client registration
- RFC 7636: PKCE
Claude is a trademark of Anthropic, PBC. APIblaze is not affiliated with Anthropic.