Add a ChatGPT phone connector

A closed laptop, papers, and pens on a wooden desk
Photo by Polina Zimmerman on Pexels. Not a ChatGPT or Apple product photo.

Add a ChatGPT phone connector with a URL RingKit documents: https://api.ringkit.com/mcp, or https://api.ringkit.com/mcp/oauth. ChatGPT does not place the call and it does not answer it. The RingKit receptionist answers the business line. ChatGPT, after you approve access, can call the tools that token allows for one business. If a menu in ChatGPT is not named in the notes below, this article is not telling you to click it.

The notes are docs/mcp-oauth.md, read on November 10, 2026. The public product docs still describe an API-key connection to /mcp. That is a different setup. This page is the connector.

ChatGPT does not answer the phone

A connector is a login, not a voice. When a customer dials your business number, they reach the AI receptionist on that line. It says it is an AI. It answers from your brief, transfers to your own team, or takes a message, and you get a summary. That is the product described in what an AI receptionist does.

ChatGPT can ask RingKit, through the connector, for things the token allows: read calls, change a setting, and so on. It does not sit on the phone line. Saying "ChatGPT answers my business calls" would be false. The receptionist does. ChatGPT is a client of the API.

You connect the client. You do not add a library to ChatGPT.

The URLs the docs name

RingKit's OAuth notes give ChatGPT two URLs that work:

  • https://api.ringkit.com/mcp
  • https://api.ringkit.com/mcp/oauth

ChatGPT can use either. The tools declare _meta.securitySchemes. When a tool needs auth, the error carries _meta["mcp/www_authenticate"]. That is how the notes say ChatGPT finds the sign-in. Claude's custom connector is different: Claude is told to use only /mcp/oauth, because /mcp does not answer 401 until a bad token is sent, and Claude starts OAuth on a 401 with no token.

You paste a RingKit URL. You do not paste an rk_ API key into the connector and call that OAuth. API-key clients use /mcp with Authorization: Bearer rk_.... If you already have a key and a config file, that is the key path in the public docs, not this article.

What you are approving

The sign-in follows the same OAuth steps the notes describe. The client discovers protected-resource metadata (the format in RFC 9728), reads the authorization server metadata, and registers. You then see a consent screen.

On that screen the documented fields are: the client name, the redirect host, the permissions, and a business picker. Only an owner can approve. The scope is ringkit.read, or ringkit.manage, which includes read. The default is read. The resource is https://api.ringkit.com/mcp.

The token from POST /oauth/token is a 1-hour access token and a 90-day refresh token. Refresh tokens rotate every time they are used. If a client sends an already-rotated refresh token again, the whole grant is revoked and the client must connect again. POST /oauth/revoke and the /oauth/connections page also disconnect it.

If ChatGPT shows a host that is not api.ringkit.com, do not approve it.

The client does the registration itself, with POST /oauth/register. Public clients send token_endpoint_auth_method: "none". Other clients get a client_secret once, and only a SHA-256 hash of it is stored. Redirect URIs are https, loopback http, or a native app scheme. Registration is limited to 10 per IP per minute, and a registration that never gets a code or a grant is deleted after 24 hours. You should not be asked to invent a client id. If the screen asks you to paste a secret into the chat, stop. That secret does not belong in the transcript.

One business, and the tools that stay hidden

A linked session is exactly one business, the one you picked. Tools that create a business, manage API keys, or invite an owner are hidden. You cannot use the connector to open a second company or to hand the keys to someone else. Do that in the app, or with an API key, if you need it.

A read-only token that tries a write gets insufficient_scope and a step-up challenge. Approve manage if you want changes. Do not work around it by putting a key in a chat message. A key in a chat is a secret in a transcript.

The connector also does not forward your existing number. A person still does that with the carrier. Connecting ChatGPT does not publish a phone number and does not start the number fee by itself. The line is $1.99 a month, and the receptionist is $0.20 a minute, with the first 10 seconds of each call free. Figures are on the pricing page.

Read and manage are different approvals

ringkit.read and ringkit.manage are the only scopes the notes name. Read is the default. Manage includes read. A read token that calls a write tool gets insufficient_scope and a step-up challenge. Approve manage when you connect if you want ChatGPT to change a setting. If you only want it to look, leave the default. You can disconnect on /oauth/connections and approve again. Do not paste an API key into the chat to get around the scope. A key in the chat is a secret in a transcript, and a linked session still hides key-management tools.

A linked session is not the anonymous onboarding path. On /mcp with no credential, an agent can call ringkit_create_business. After you approve ChatGPT, that tool is hidden, along with API-key tools and owner invites. If you wanted ChatGPT to create the business, connect without a token first, using the public docs' no-key step, and only then approve the connector for the business that exists. Doing it backwards looks like a missing tool. It is the linked-session rule.

What to test after you connect

Ask ChatGPT for something a read token should allow, such as who the business is, if that tool is in the list the docs publish. Then ask for something a read token should refuse, and expect insufficient_scope rather than a silent success.

Then call the business number from another phone. ChatGPT should not be the voice that answers. The receptionist should. If the connector is down, the phone line still behaves the way you set it. The two systems fail separately. A revoked OAuth grant does not un-forward the number. A forwarding change does not revoke ChatGPT. Disconnecting the connector does not release the phone number. The number stays until you release it in the account, and the carrier forward stays until you turn that off on the phone.

If the server has DISABLE_MCP_OAUTH=1, this flow is off. API keys still work. That is an operator flag, not a ChatGPT setting.

What this page will not guess

ChatGPT's own screens move, and RingKit's notes do not name them. This article will not say "click the puzzle icon" or "open Explore GPTs." If you cannot paste a URL, use ChatGPT's current help for where a connector URL goes, and paste only the RingKit URL above.

The phone line's limits are the product's limits. The receptionist transfers to your team or takes a message. It does not book a calendar. The connector does not add that.