Quick answer
postgres for warehouse introspection and queries, sqlite for local analytics files, filesystem for notebooks and query folders, fetch for pulling docs and API responses, memory so the agent remembers your schema across sessions, and sequential-thinking for multi-step query planning. google-drive covers spreadsheets and shared docs. Start with those, wire a read-only role, then decide whether a vendor-specific server is worth it.- Warehouse / SQL
- postgres (Anthropic reference) with a read-only role
- Local analytics
- sqlite (Anthropic reference) for .db files on disk
- Cross-session memory
- memory (Anthropic reference) to persist schema notes
- Multi-step queries
- sequential-thinking (Anthropic reference) for chained SQL
What MCP Unlocks for a Data Agent
A coding agent that only sees your repo is blind to the thing your repo is about: the data. It knows the ORM models but not which columns actually have values, knows the migration files but not which of them has run in prod, knows the metrics doc but not whether the numbers still add up. MCP is the standard way to close that gap: an MCP server exposes tools the agent can call (query, list tables, read a file) and the agent uses them on demand, with the results flowing back into its context window.
For data work specifically, that unlocks four things a plain coding agent cannot do well: schema-aware code generation (write SQL against the real column types), notebook-adjacent workflows (open, edit, and re-run a local SQLite file or a scratch query folder), dashboard and pipeline automation (introspect, change, verify), and continuity across sessions (remember what “the events table” means so you don't re-explain it every morning). All four hinge on the same discipline: pick a small set of servers, scope their credentials tightly, and let the agent introspect before it writes.
The Shortlist: MCP Servers Worth Installing for Data
Every server below is an Anthropic reference server, one of the maintained implementations published alongside the MCP spec. That matters because the reference set is small, stable, and documented; you can read the source in an afternoon. Vendor-specific servers for Snowflake, BigQuery, or dbt exist in the wider ecosystem and can be excellent, but their maturity varies, so verify the source and maintainer before you hand one your warehouse URL, or wrap the vendor's own CLI via filesystem + shell (see the pattern below).
| Server | What it gives the agent | When to install |
|---|---|---|
postgres | List tables, read columns and types, run parameterized queries against a Postgres database. | You have a Postgres warehouse or app DB and want schema-aware SQL and lightweight reads. |
sqlite | Same shape as postgres, but for a local SQLite file, list tables, read schema, run queries. | You keep analytics or event data in a .db file on disk, or use SQLite as a scratch analytics store. |
filesystem | Scoped read/write to a directory, so the agent can open notebooks, queries, and CSVs directly. | Always. Scope it to a project (queries/, notebooks/) rather than $HOME. |
fetch | Fetch a URL and return the content, useful for warehouse docs, API schemas, or a hosted metric spec. | The agent needs to read public docs or an internal spec page to write a correct query. |
memory | A persistent key-value store the agent can write to and read across sessions. | You want the agent to remember schema quirks, business definitions, or a chosen convention. |
sequential-thinking | A structured planning tool the agent uses to lay out multi-step reasoning before executing. | For chained SQL (join plan, then window, then rollup) where a plan visibly improves the output. |
google-drive | Read Google Docs and Sheets the agent needs (data dictionaries, metric definitions, source-of-truth sheets). | Your data documentation or a canonical spreadsheet actually lives in Drive. |
Deep Dive: The postgres MCP Server
The Postgres reference server is the single highest-leverage install for a data-oriented agent, because most analytics stacks land on Postgres somewhere (the app DB, a Postgres-compatible warehouse, a metabase-style mirror). Point it at a database with a connection string and it exposes tools to list schemas, list tables, describe columns and types, and run queries. The agent stops guessing at column names and starts reading them.
What it changes about agent behavior
The behavior shift is visible in the very first request. Ask for “a query that returns weekly active users” without the server and the agent invents plausible column names; ask with the server registered and a good agent will first list tables, find events, describe its columns, discover the actual timestamp field, and only then write SQL. That's not a prompt improvement, it's a capability improvement, and it's exactly the introspect-first pattern covered below.
What to point it at
Point it at a read-only role on the database, not at your admin URL. In Postgres that's typically a dedicated login with USAGE on the target schemas and SELECT on the tables the agent should see, nothing else. If your warehouse has a staging or masked replica, prefer that over prod. The safety section below has the full checklist.
Deep Dive: The sqlite MCP Server
SQLite gets underestimated for data work, and that's a mistake. A single .db file is an excellent home for a personal analytics store, an event log you're prototyping against, or the output of a scraper the agent is iterating on. The SQLite reference server exposes the same primitives as the Postgres one (list tables, read schema, run queries), scoped to one file on disk.
The typical flow is: the agent uses filesystem to see the .db file exists, uses sqlite to introspect its shape, runs a few queries to sanity-check, then writes the code that consumes it. Because everything is local, there are no credentials to leak and no network hop to worry about, so this is often the right place to start when you're learning the introspect-first pattern before pointing an agent at a real warehouse.
Your AI workspace for shipping software.
Download AIDEN free and point it at your existing Claude Code or Codex setup. No credit card, running in minutes.
Download AIDEN freeFree to start · macOS 12+ · No credit card required
Deep Dive: The memory MCP Server (Schema Continuity)
The memory reference server is a small persistent store, key-value with a lightweight graph structure, that the agent can write to and read from across sessions. On its own it sounds generic; for data work it's specifically useful because schema knowledge is expensive to rebuild. Introspecting a large warehouse every session, re-deciding which events table is the canonical one, re-remembering that amount_cents is in USD and amount_local isn't, wastes tokens and gets details wrong.
The right pattern is to have the agent write short, factual notes into memory the first time it figures something out (“events.event_type = 'signup' is the canonical source for signup counts; deduplicate on user_id”) and read them at the start of the next session. That's durable context without inflating your CLAUDE.md, and it plays nicely with context engineering's central rule: relevance beats volume.
Deep Dive: The sequential-thinking MCP Server
The sequential-thinking reference server exposes a structured planning tool: the agent calls it to record a numbered chain of thoughts, revise them, and branch, then executes against the plan. For data tasks with three or more moving parts, a join plan followed by a window function followed by a rollup, or a migration that has to preserve invariants, the plan step visibly improves output quality because the model commits to a shape before writing SQL.
It's not a fit for every task. For “count active users last week” the planning tool is overhead. For “rewrite the retention SQL to use the new events schema without regressing the monthly dashboard,” it's the difference between one clean pass and three false starts. Turn it on and let the model decide when to reach for it.
The Pattern: Let the Agent Introspect the Schema First
The single most useful discipline when adding data MCP servers is to structure the workflow so the agent always introspects before it generates. Handed a request like “write a query for weekly retention,” the difference between a mediocre agent and a good one is whether it starts by looking at the schema or by hallucinating one.
- 1
List, don't assume
The first tool call on any data task should be listing schemas and tables. Cheap, tiny context cost, and it anchors the rest of the session in what actually exists. - 2
Describe the tables the request touches
For each candidate table, read the column names and types. This catches renames, discovers the actual timestamp column, and prevents SQL that references fields the warehouse never had. - 3
Sanity-check with a tiny query
A LIMIT 5 or a COUNT(*) confirms the table has the shape and volume the agent thinks it does. Ten seconds of introspection saves a wrong-answer round trip. - 4
Write the real query, with the real columns
Only now generate the final SQL, using the exact names and types just observed. The output is dramatically less likely to hallucinate a column or misuse a type. - 5
Persist what you learned
If the schema quirk is durable (e.g., the events table has both a legacy and a current timestamp column), write it into memory or a skill so the next session doesn't rediscover it.
A short skill encoding these five steps (call it data-introspect-first) turns the pattern from a hope into a habit: the model loads the skill on any data-shaped request and follows the sequence.
Safety: Read-Only Credentials, Scoped Access
An MCP server is exactly as dangerous as the credentials you hand it. There is no default MCP “sandbox” that will save you from having pointed the Postgres server at your admin URL, treat the connection string with the same seriousness you'd treat handing a colleague a shared BI account. The good posture is uncomplicated.
Dedicated read-only role
Prefer staging or a masked replica
Scope the filesystem server too
Rotate on the same schedule as human creds
Wiring Data MCP Servers into Claude Code or AIDEN
MCP servers are registered once, and every compatible agent picks them up. For Claude Code, the claude mcp add command writes to ~/.claude.json (or a project's .mcp.json). Here's a realistic starting set for a data agent, Postgres against a read-only role, a local SQLite file, filesystem scoped to a project, and memory for schema recall:
# Postgres MCP (Anthropic reference server), read-only role
claude mcp add postgres \
-- npx -y @modelcontextprotocol/server-postgres \
"postgresql://readonly_agent:$PG_PW@warehouse.internal:5432/analytics"
# SQLite MCP for a local analytics file
claude mcp add sqlite \
-- npx -y @modelcontextprotocol/server-sqlite \
--db-path /Users/me/data/metrics.db
# Filesystem MCP scoped to your notebooks + queries directory
claude mcp add fs \
-- npx -y @modelcontextprotocol/server-filesystem \
/Users/me/work/analytics
# Memory MCP so the agent remembers the warehouse schema across sessions
claude mcp add memory \
-- npx -y @modelcontextprotocol/server-memoryAIDEN is a cockpit over your local coding-agent CLIs: it drives Claude Code and Codex behind a spec-first kanban with a PR per story, and it uses your own inference (BYO Claude or Codex subscription, or API key). Because it runs your existing CLIs rather than replacing them, it inherits your MCP setup automatically, every server you've registered above is available to every agent AIDEN launches, with no second config to keep in sync.