Skip to content
Back to thinair-data

Card snapshot

data.thinair.co · 2026-10-02 05:50:41 UTC · 79cf6e28374829e86cb12680d71dd6d844a17d00be52cdaca8ec4e238c518327

This is a frozen copy of the agent's agent-card.json as we observed it at the timestamp above. We capture a new snapshot every time the card's content hash changes. Useful for: forensic drift analysis, verifying downstream callers see the right version, reproducing routing decisions made historically.

{
  "protocolVersion": "0.3.0",
  "name": "thinair-data",
  "description": "ThinAir Data \u2014 PostgreSQL, MySQL, and SQL Server in a single MCP session. 26 dialect-aware tools across 4 tiers: schema introspection, cross-database compare, query firewall, anomaly detection, PII scanning, N+1 detection, EXPLAIN/optimization, query history. Connects to public databases or to private ones that have no public IP, without opening an inbound firewall port (Architect plan and above). Read-only enforced at three independent layers (SQL guard, session READ ONLY, optional per-connection custom firewall). OAuth 2.1 + API key auth.",
  "version": "2.2.0",
  "url": "https://data.thinair.co/mcp",
  "preferredTransport": "JSONRPC",
  "provider": {
    "organization": "ThinAir",
    "url": "https://thinair.co"
  },
  "documentationUrl": "https://data.thinair.co/developers",
  "iconUrl": "https://data.thinair.co/favicon.ico",
  "capabilities": {
    "streaming": true,
    "pushNotifications": false,
    "stateTransitionHistory": false
  },
  "defaultInputModes": [
    "application/json",
    "text/plain"
  ],
  "defaultOutputModes": [
    "application/json",
    "text/plain"
  ],
  "skills": [
    {
      "id": "query_sql",
      "name": "query_sql",
      "description": "Available on every plan. Full input/output schema via MCP tools/list at https://data.thinair.co/mcp.",
      "tags": [
        "all-plans"
      ]
    },
    {
      "id": "describe_schema",
      "name": "describe_schema",
      "description": "Available on every plan. Full input/output schema via MCP tools/list at https://data.thinair.co/mcp.",
      "tags": [
        "all-plans"
      ]
    },
    {
      "id": "analyze_table",
      "name": "analyze_table",
      "description": "Available on every plan. Full input/output schema via MCP tools/list at https://data.thinair.co/mcp.",
      "tags": [
        "all-plans"
      ]
    },
    {
      "id": "detect_anomalies",
      "name": "detect_anomalies",
      "description": "Available on every plan. Full input/output schema via MCP tools/list at https://data.thinair.co/mcp.",
      "tags": [
        "all-plans"
      ]
    },
    {
      "id": "suggest_queries",
      "name": "suggest_queries",
      "description": "Available on every plan. Full input/output schema via MCP tools/list at https://data.thinair.co/mcp.",
      "tags": [
        "all-plans"
      ]
    },
    {
      "id": "test_connection",
      "name": "test_connection",
      "description": "Available on every plan. Full input/output schema via MCP tools/list at https://data.thinair.co/mcp.",
      "tags": [
        "all-plans"
      ]
    },
    {
      "id": "list_connections",
      "name": "list_connections",
      "description": "Available on every plan. Full input/output schema via MCP tools/list at https://data.thinair.co/mcp.",
      "tags": [
        "all-plans"
      ]
    },
    {
      "id": "add_connection",
      "name": "add_connection",
      "description": "Available on every plan. Full input/output schema via MCP tools/list at https://data.thinair.co/mcp.",
      "tags": [
        "all-plans"
      ]
    },
    {
      "id": "remove_connection",
      "name": "remove_connection",
      "description": "Available on every plan. Full input/output schema via MCP tools/list at https://data.thinair.co/mcp.",
      "tags": [
        "all-plans"
      ]
    },
    {
      "id": "quota",
      "name": "quota",
      "description": "Available on every plan. Full input/output schema via MCP tools/list at https://data.thinair.co/mcp.",
      "tags": [
        "all-plans"
      ]
    },
    {
      "id": "issue_api_key",
      "name": "issue_api_key",
      "description": "Available on every plan. Full input/output schema via MCP tools/list at https://data.thinair.co/mcp.",
      "tags": [
        "all-plans"
      ]
    },
    {
      "id": "explain_query",
      "name": "explain_query",
      "description": "Requires the build plan or higher. Full input/output schema via MCP tools/list at https://data.thinair.co/mcp.",
      "tags": [
        "build"
      ]
    },
    {
      "id": "optimize_query",
      "name": "optimize_query",
      "description": "Requires the build plan or higher. Full input/output schema via MCP tools/list at https://data.thinair.co/mcp.",
      "tags": [
        "build"
      ]
    },
    {
      "id": "data_profile",
      "name": "data_profile",
      "description": "Requires the build plan or higher. Full input/output schema via MCP tools/list at https://data.thinair.co/mcp.",
      "tags": [
        "build"
      ]
    },
    {
      "id": "query_history",
      "name": "query_history",
      "description": "Requires the build plan or higher. Full input/output schema via MCP tools/list at https://data.thinair.co/mcp.",
      "tags": [
        "build"
      ]
    },
    {
      "id": "saved_queries",
      "name": "saved_queries",
      "description": "Requires the build plan or higher. Full input/output schema via MCP tools/list at https://data.thinair.co/mcp.",
      "tags": [
        "build"
      ]
    },
    {
      "id": "generate_migration",
      "name": "generate_migration",
      "description": "Requires the build plan or higher. Full input/output schema via MCP tools/list at https://data.thinair.co/mcp.",
      "tags": [
        "build"
      ]
    },
    {
      "id": "generate_seed_data",
      "name": "generate_seed_data",
      "description": "Requires the build plan or higher. Full input/output schema via MCP tools/list at https://data.thinair.co/mcp.",
      "tags": [
        "build"
      ]
    },
    {
      "id": "show_locks",
      "name": "show_locks",
      "description": "Requires the build plan or higher. Full input/output schema via MCP tools/list at https://data.thinair.co/mcp.",
      "tags": [
        "build"
      ]
    },
    {
      "id": "pii_scan",
      "name": "pii_scan",
      "description": "Requires the build plan or higher. Full input/output schema via MCP tools/list at https://data.thinair.co/mcp.",
      "tags": [
        "build"
      ]
    },
    {
      "id": "watch_table",
      "name": "watch_table",
      "description": "Requires the architect plan or higher. Full input/output schema via MCP tools/list at https://data.thinair.co/mcp.",
      "tags": [
        "architect"
      ]
    },
    {
      "id": "find_n_plus_one",
      "name": "find_n_plus_one",
      "description": "Requires the architect plan or higher. Full input/output schema via MCP tools/list at https://data.thinair.co/mcp.",
      "tags": [
        "architect"
      ]
    },
    {
      "id": "query_firewall",
      "name": "query_firewall",
      "description": "Requires the architect plan or higher. Full input/output schema via MCP tools/list at https://data.thinair.co/mcp.",
      "tags": [
        "architect"
      ]
    },
    {
      "id": "impact_analysis",
      "name": "impact_analysis",
      "description": "Requires the architect plan or higher. Full input/output schema via MCP tools/list at https://data.thinair.co/mcp.",
      "tags": [
        "architect"
      ]
    },
    {
      "id": "cross_db_query",
      "name": "cross_db_query",
      "description": "Requires the architect plan or higher. Full input/output schema via MCP tools/list at https://data.thinair.co/mcp.",
      "tags": [
        "architect"
      ]
    },
    {
      "id": "configure_allowlist",
      "name": "configure_allowlist",
      "description": "Requires the enterprise plan or higher. Full input/output schema via MCP tools/list at https://data.thinair.co/mcp.",
      "tags": [
        "enterprise"
      ]
    }
  ],
  "securitySchemes": {
    "oauth2": {
      "type": "oauth2",
      "description": "OAuth 2.1 with PKCE. Dynamic client registration is open; the consent screen names the requesting client.",
      "flows": {
        "authorizationCode": {
          "authorizationUrl": "https://data.thinair.co/authorize",
          "tokenUrl": "https://data.thinair.co/token",
          "scopes": {
            "tools:read": "tools:read",
            "tools:write": "tools:write",
            "keys:write": "keys:write"
          }
        }
      }
    },
    "apiKey": {
      "type": "apiKey",
      "in": "header",
      "name": "Authorization",
      "description": "Bearer ta_data_\u2026 key."
    }
  },
  "security": [
    {
      "oauth2": [
        "tools:read",
        "tools:write",
        "keys:write"
      ]
    },
    {
      "apiKey": []
    }
  ],
  "x-thinair": {
    "organization": {
      "name": "ThinAir",
      "url": "https://thinair.co"
    },
    "siblingProducts": [
      {
        "name": "ThinAir Geo",
        "description": "Geocoding, routing, places and truck-aware navigation over MCP and REST.",
        "url": "https://geo.thinair.co",
        "mcp": "https://geo.thinair.co/mcp",
        "agentCard": "https://geo.thinair.co/.well-known/agent-card.json"
      }
    ],
    "plans": [
      {
        "plan": "discover",
        "daily_request_limit": 15,
        "price": "Free"
      },
      {
        "plan": "dev_trial",
        "daily_request_limit": 1000,
        "price": "Free (time-limited trial)"
      },
      {
        "plan": "build",
        "daily_request_limit": 500,
        "price": "Build ($9/mo)"
      },
      {
        "plan": "architect",
        "daily_request_limit": null,
        "price": "Architect ($29/mo)"
      },
      {
        "plan": "business",
        "daily_request_limit": null,
        "price": "Business ($99/mo)"
      },
      {
        "plan": "enterprise",
        "daily_request_limit": null,
        "price": "Custom (contact sales)"
      }
    ],
    "billing": {
      "model": "human-approved subscription",
      "checkout_url": "https://data.thinair.co/checkout",
      "note": "Agents do not pay autonomously. A quota, tier-denied, or 429 response carries an upgrade_url; present it to the user, who completes payment. The same OAuth session or API key continues with the new limits."
    }
  }
}