Skip to main content

Option 1 — install the Rings app (fastest)

Rings is published in the ChatGPT app directory. Nothing to configure.

Install Rings AI in ChatGPT

Open the listing, click Connect, and sign in with your Rings account.
Use it by naming Rings in a prompt, or by picking it from the tools menu in the composer.

Option 2 — add it yourself in developer mode

Use this when you want the full tool surface, including write actions, under your own workspace’s controls.
Developer mode and full MCP support are available on ChatGPT Business, Enterprise, and Edu plans, on ChatGPT web. On Business, only admins and owners can enable it; on Enterprise and Edu, admins can grant it to specific members via RBAC.
1

Enable developer mode

Admins and owners turn it on in Workspace Settings → Permissions & Roles → Connected Data → Developer mode / Create custom MCP connectors.Each person then enables it for their own account under Settings → Apps → Advanced Settings.
2

Create the app

Go to Settings → Apps → Create (admins can also do this from Workspace settings → Apps → Create).
3

Fill in the server details

4

Scan tools

Click Scan Tools. Complete the Rings OAuth prompt when it appears, then wait for the scan to list the tools.
5

Create

Click Create. The app appears under Settings → Apps → Enabled Apps with a Dev label, and as a draft in Workspace settings → Apps → Drafts.
6

Publish it to the workspace

An admin or owner opens Workspace settings → Apps → Drafts and clicks Publish. Enterprise and Edu admins can use Configure Actions to choose which tools are allowed and Configure Access to pick which groups get the app.
ChatGPT loses access when the first token expires unless the server issues refresh tokens. Rings advertises the refresh_token grant in its authorization-server metadata and issues refresh tokens, so no extra configuration is needed on your side.

Option 3 — the OpenAI API

Point the Responses API straight at the Rings MCP server:
  • authorization takes an OAuth access token. OpenAI does not store it, so send it on every request.
  • Narrow the surface with allowed_tools: ["tool_a", "tool_b"] — get the exact names from an MCP list_tools request.
  • Leave require_approval at its default when the model can call write tools.