# Add your spreadsheet to ChatGPT as a custom MCP connector

> Connect a CSV or Google Sheet to ChatGPT through a custom MCP connector, so it filters and totals rows with exact results.

Source: https://datatomcp.com/guides/chatgpt-custom-connector-spreadsheet · By Killian Helf · Updated 2026-10-19

ChatGPT can analyze a file you upload, but each upload is a one-off copy: it doesn't stay in sync, it has size limits, and totals depend on the code ChatGPT writes that time. A **custom MCP connector** lets ChatGPT query a dataset that lives elsewhere and stays current. This guide connects a CSV or Google Sheet through datatomcp.

## What you need

- A ChatGPT plan with custom connectors (developer mode). Availability and menu names change; check OpenAI's help pages if yours differ.
- A datatomcp account with at least one dataset. Import a CSV, a CSV link or a Google Sheet under **Add data**.

## 1. Turn on developer mode

In ChatGPT, open **Settings → Apps & Connectors → Advanced** and enable **developer mode**.

## 2. Create the connector

1. Under **Apps & Connectors**, choose **Create**.
2. Name: `datatomcp`. MCP server URL: `https://app.datatomcp.com/mcp`.
3. Authentication: **OAuth**. ChatGPT registers itself with datatomcp automatically.
4. Save, then connect: a datatomcp sign-in and a consent screen appear. Allow read access to your datasets.

## 3. Use it in a chat

Enable the connector for the conversation and ask:

> Using datatomcp, what were total sales per country last quarter? Show the top five.

ChatGPT calls `describe_dataset`, then `aggregate` with a `group_by` on country, a date filter and a sum. The numbers come from the database, and the result names the dataset version used.

## Tips

- Ask ChatGPT to call `distinct_values` before filtering on a text column, so it uses the exact spelling in your data.
- For row-level questions ("list the 20 largest orders"), it uses `query_rows` with `order_by` and `limit`.
- The connector is read-only. ChatGPT can't change your data.

## Keeping data current

Click **Refresh now** on the dataset page after the source changes, or let Pro sync linked sources every hour.
