datatomcp

CSV MCP server, hosted: query CSVs from Claude, ChatGPT and Cursor

A CSV MCP server lets an AI agent query a CSV file through tools instead of reading it. The open-source options run locally: they point at a file on your disk and work with clients on the same machine. That’s fine in an editor, but Claude.ai, ChatGPT and automation tools can’t reach your laptop.

datatomcp hosts the CSV for you and exposes it as a remote MCP server with sign-in, so any MCP client can use it from anywhere.

1. Add the CSV

Sign in at app.datatomcp.com and open Add data:

  • Upload a CSV: up to 20 MB and 100,000 rows on the free plan (200 MB and 2 million rows on Pro). Comma, semicolon and tab delimiters are detected.
  • Paste a link: any public CSV URL, such as an export link from another tool. datatomcp fetches it now and on every refresh.

2. Read the import report

Real CSVs are messy. The report lists what it found before any agent sees the data:

  • lines that couldn’t be parsed, with their line numbers (the rest of the file is still imported);
  • numbers stored as text ("$2,145"), with a one-click conversion;
  • columns mixing date formats, or values like "EUR" and "eur" that would split filters.

Nothing changes until you apply a fix, and each fix creates a new version.

3. Connect your agent

Use the URL https://app.datatomcp.com/mcp in any client:

  • Claude.ai / Desktop: Settings → Connectors → Add custom connector.
  • Claude Code: claude mcp add --transport http datatomcp https://app.datatomcp.com/mcp
  • Cursor: Settings → MCP → Add new server (HTTP).
  • ChatGPT: a custom connector in developer mode.

Each client signs in once with OAuth. There are no keys in config files.

4. Query

The agent gets five read-only tools: list_datasets, describe_dataset, query_rows, aggregate and distinct_values. A typical aggregate:

{
  "group_by": ["product"],
  "metrics": [{ "fn": "sum", "column": "total", "as": "revenue" }],
  "order_by": [{ "column": "revenue", "dir": "desc" }],
  "limit": 5
}

Results include meta.rows_matched, meta.truncated and meta.version, so the agent knows whether it saw everything and which data it used.

Local or hosted?

Run a local CSV MCP server if the file only lives on your machine and only your editor needs it. Use a hosted one when chat apps, teammates’ agents or automations need the same data, when the file is refreshed from a link or a Google Sheet, or when you want one copy everyone queries. The same dataset is also available as a REST API.