Docs · Getting Started

From zero to your first query in five minutes.

Connect a database, paste a three-line MCP config, and ask your AI assistant to explore your schema. No API keys to manage — authorization happens automatically in your browser the first time you run a tool. Free for the first 15 queries a day, no card required.

Quickstart

  1. 1
    Connect your database
    Head to data.thinair.co/connect, pick your engine, and paste your connection string. That's it — nothing else to configure.
  2. 2
    Paste the MCP config
    Copy the three-line config block below into your AI client's MCP settings file and restart the client. No API key required.
  3. 3
    Ask your first question
    "Show me the 10 largest tables and flag any with high null rates."
    On the first tool call, your client opens a browser tab to authorize. Click through once — all future calls are automatic.

Connect a database

Every supported engine takes a standard DSN. Paste it into the Connect page — we test reachability and encrypt the string at rest. No API key is issued or needed; authorization is handled by your MCP client on the first tool call.

PostgreSQL
postgres://user:pass@host:5432/dbname
MySQL
mysql://user:pass@host:3306/dbname?ssl=true
SQL Server
Server=host;Database=db;User Id=u;Password=p;Encrypt=strict;

Already connected? Add databases right from your chat with the add_connection tool — you'll get a secure one-time link to paste your connection string.

Set up your client

Three walkthroughs for the most common clients — each step has a screenshot so you can't get lost.

Native custom-connector support — no config file needed.

  1. 01
    Open Settings → Connectors
    Open Claude Desktop, hit ⌘, for Settings, and pick Connectors in the left rail.
    Claude Desktop settings sidebar with Connectors highlighted
  2. 02
    Add a custom connector
    Click Add custom connector. Name it ThinAir Data and set the URL to https://data.thinair.co/mcp. Press Add.
    Claude Desktop "Add custom connector" dialog prefilled for ThinAir Data
  3. 03
    Authorize on first use
    Ask Claude to do anything data-related. It'll open a browser tab to /authorize — paste a DSN, hit Connect, and Claude will store the bearer token locally. No API key to manage.

Add via the MCP Servers panel. Cursor handles OAuth automatically.

  1. 01
    Add a new MCP Server
    Open Cursor Settings → MCP (or ~/.cursor/mcp.json). Click + New MCP Server.
    Cursor MCP settings showing "New MCP Server — Add a Custom MCP Server"
  2. 02
    Paste the ThinAir Data config
    Paste the three-line JSON snippet. No API key needed — Cursor negotiates OAuth on the first tool call.
    Cursor mcp.json with thinair-data SSE server at https://data.thinair.co/mcp
  3. 03
    Connect to authorize
    Save. Cursor shows Needs authentication next to thinair-data. Click Connect and complete the browser round-trip.
    Cursor showing thinair-data with Connect button
  4. 04
    Tools enabled
    After the round-trip Cursor flips the server to a green toggle with a tool count (26 for ThinAir Data). You can pick and choose which tools are enabled per project.

Perplexity Pro supports custom MCP connectors as of late 2025.

  1. 01
    Open Connectors
    Settings → Connectors in the left sidebar.
    Perplexity settings sidebar with Connectors selected
  2. 02
    Add a custom connector
    Scroll to the Custom connectors area and click + Custom connector.
    Perplexity custom connector button next to All categories
  3. 03
    Fill the form and accept the risk notice
    Name ThinAir Data, MCP server URL https://data.thinair.co/mcp, check I understand custom connectors can introduce risks, then Add.
    Perplexity Add connector form filled in for ThinAir Data
  4. 04
    Authorize, then select in chat
    Click the new ThinAir Data card to authorize via OAuth — Perplexity opens our auth page in a new tab. Sign in (or paste an existing ta_data_… key) and complete the flow. Once authorized, the card flips to a connected state with your account and a green check, and the connector becomes selectable in any chat from + → Connectors and sources.
    Connected ThinAir Data card in Perplexity Custom connectors

Raw JSON config

For anything not covered above (Windsurf, Cline, Zed, Continue, curl, CI) — every MCP-compatible client takes the same 3-line config.

File: ~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "thinair-data": {
      "type": "url",
      "url": "https://data.thinair.co/mcp"
    }
  }
}
Restart the client. On the first tool call you'll see a browser tab open — click through /authorize, paste a DSN, and the client stores a bearer token locally. No manual API key needed.
Need to pass an API key manually? (curl, CI, non-OAuth clients)
{
  "mcpServers": {
    "thinair-data": {
      "type": "url",
      "url": "https://data.thinair.co/mcp",
      "headers": { "x-api-key": "your_api_key_here" }
    }
  }
}

Once connected through any MCP client (Claude, Cursor, Copilot…), ask it for the API key console link (the issue_api_key tool) and create the key there yourself — the assistant never creates or sees a key — or grab one from the Connect page.

Your first query

Show me the 10 largest tables in my production database and
flag any with unusual null rates or stale timestamps.

Your agent will chain describe_schema → analyze_table → detect_anomalies. Because every tool is read-only, there's no way to accidentally drop a table.

Supported databases

EngineNotes
PostgreSQLStandard connection string. Neon, Supabase, RDS, Aurora — all supported.
MySQLStandard DSN. Azure Flexible Server requires ?ssl=true.
SQL ServerMSSQL. Azure SQL append ?encrypt=strict.

Tool catalog

Core
All plans
Tool What it does
query_sqlExecute read-only SELECT / WITH / EXPLAIN — dialect-aware.
describe_schemaFull schema: tables, columns, types, PKs, indexes (MySQL: not yet reported). Cached 1 hour.
analyze_tableRow count, null rates, cardinality, min/max/avg, date ranges.
detect_anomaliesVolume drops/spikes, data gaps, high nulls, stale data — severity ranked.
suggest_queriesSchema-aware SQL suggestions based on a topic or goal.
test_connectionPing + server version + latency.
list_connectionsAll registered connections for your tenant.
quotaCurrent usage, daily limit, plan.
Build
Build+ ($9/mo)
Tool What it does
explain_queryEXPLAIN plan (estimated on pg/mssql; mysql 8.0.18+ executes the query) → plain-English recommendations.
optimize_queryRanked plan findings; index DDL on mssql. No rewrite.
data_profileFull quality report: health score 0–100, PII detection, insight warnings.
query_historyRecent queries with timing, row counts, status.
saved_queriesSave, run, list, delete named queries.
generate_migrationDialect-correct ALTER TABLE + rollback from plain-English intent.
generate_seed_dataRealistic INSERT statements for dev/test, FK-aware.
show_locksActive sessions + blocking locks.
pii_scanSweep string columns for email, SSN, credit card, phone, JWT, bearer tokens.
Architect
Architect+ ($29/mo)
Tool What it does
watch_tableMonitor row count + latest record vs previous snapshot.
find_n_plus_oneDetect N+1 patterns from query history.
query_firewallSQL rules: block patterns, require WHERE, log PII access.
impact_analysisBlast radius of a schema change — FK deps, affected views, risk score.
cross_db_querySame query across 2–4 connections in parallel for diff/drift.

Security & privacy

Connection strings are encrypted at rest and never logged. ThinAir Data does not copy your table rows. It does store your encrypted connection credentials until you remove the connection; the first 200 characters of each query's SQL, encrypted, with timing and row counts, for 7 days (the last 100 queries); schema snapshots for up to 30 days; and saved queries until you delete them.

Read-only enforced
Only SELECT, WITH, and EXPLAIN are permitted. No writes, ever.
No credential storage
Connection strings encrypted at rest, redacted from every log line.
Query firewall
Block dangerous patterns, require WHERE on large tables, log PII access (Architect).
PII detection
Heuristic sweep for email, SSN, credit card, phone, JWT (Build+).
Audit log
Every query logged with timing and row count. Exportable.
Tenant-scoped sessions
Revoke access any time from the Connect page. Per-tenant quota enforced at the edge.

Security → /security — full security & data-handling details.

Upgrading

Need more than 15 queries/day, or the Build/Architect tools? Three upgrade paths — pick the one that matches how you signed up.

  1. Discover (free)OAuth session or email-issued key

    Go to /checkout, pick Build or Architect, pay. Stripe bumps your plan in-place. No config change needed — same client config, more quota and unlocked tools on the next call.

  2. Build / Architect alreadyactive paid subscription

    Swap tiers on /checkout. Plan flips on the next request. Downgrade mid-cycle keeps the paid quota until the billing period ends.

    Cancel, change card, or switch plan from the Stripe portal:

    Manage billing →

    Sign in to update your card, change plan, or cancel.

  3. Enterpriseprivate deploy, SLAs, SSO

    Not in self-serve checkout. Talk to us — we provision an isolated environment with dedicated connection pools, bring-your-own-encryption-key, and audit log export.

Build · $9/mo
500 queries/day · +9 tools
Start Build
Architect · $29/mo
Unlimited · +5 tools
Start Architect
Enterprise · Custom
Unlimited · Private deploys
Talk to sales
If your renewal fails: we flag you past_due for 7 days (grace window). Your access keeps working at the current tier during grace. After 7 days, plan downgrades to Discover. No dropped connections, no surprise ejections.