> For the complete documentation index, see [llms.txt](https://docs.carto.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.carto.com/carto-for-agents/connect-your-platform/chatgpt.md).

# ChatGPT

ChatGPT connects to CARTO as a **custom connector** over OAuth, giving the agent the full tool surface. It's one of the best-implemented MCP clients — its schema validator accepts CARTO's complete tool catalog, and it [renders maps inline](/carto-for-agents/connect-your-platform.md#which-platforms-render-maps-inline).

## Requirements

* A paid ChatGPT plan with **Developer Mode** (verified on Business).
* Your CARTO **MCP Server URL**.
* A CARTO **SPA OAuth Client** (Client ID; a secret is supported and recommended). See [Connecting with OAuth](/carto-for-agents/mcp-server/connecting-with-oauth.md#1-create-the-client-in-carto).

{% hint style="info" %}
In the current ChatGPT UI, connectors appear under **Plugins**.
{% endhint %}

## Steps

1. **Settings > Security and login**, scroll to **Developer mode**, and toggle it on. (It's labeled "ELEVATED RISK" — this is expected for any custom connector.)
2. Go to **Settings > Plugins > Browse plugins** and click the **+** button (top-right).
3. In **New Plugin**:
   * **Name** — anything.
   * **Connection** — leave on **Server URL**.
   * **URL** — your CARTO MCP Server URL.
4. **Authentication** — choose **OAuth**.
5. Expand **Advanced OAuth settings > Registration method** and change **CIMD → User-Defined OAuth Client**. Enter your CARTO SPA **Client ID** and **Client Secret**. Add `offline_access` to the scopes.
6. Tick **"I understand and want to continue"** and click **Create**.
7. **Before signing in**, register ChatGPT's callback on your CARTO client. Open the SPA client in CARTO (**Developers > Credentials > SPA OAuth Clients**), turn off **"Use default logout/callback URLs and Origins"**, and add:

   ```
   https://chatgpt.com/connector/oauth/<id>
   ```

   Read the exact `<id>` from the authorize URL ChatGPT opens. Save.
8. Click **Sign in** and complete the CARTO consent.

{% hint style="warning" %}
Leave the registration method on **CIMD** and sign-in will fail — CARTO recognizes CIMD only for Claude clients. Always switch to **User-Defined OAuth Client**. If you see "Unknown client", create a fresh SPA OAuth client and use its ID.
{% endhint %}

<figure><img src="/files/HvJkHqc1CpbKXBR2cGjr" alt=""><figcaption></figcaption></figure>

## Read-only alternative

If you don't control the CARTO client, choose **Access token / API key** in step 4 and supply a CARTO [API Access Token](/carto-for-agents/mcp-server/connecting-with-api-tokens.md) with the **MCP Server** scope (plus SQL, Maps, or LDS for more tools). This yields the [read-and-discovery subset](/carto-for-agents/mcp-server/connecting-with-api-tokens.md#what-a-token-unlocks) — no map or workflow authoring.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.carto.com/carto-for-agents/connect-your-platform/chatgpt.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
