ThinAir Data
OfficialServer Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| query_sqlA | Execute a read-only SQL query against the target connection. ONLY SELECT / WITH / EXPLAIN permitted. Write dialect-appropriate SQL for the connection's engine — PostgreSQL syntax for postgres, T-SQL for mssql, MySQL for mysql. Response meta includes |
| describe_schemaB | Discover the full database schema: tables, columns, types, primary keys, foreign keys, and indexes. Results cached 1 hour. Call with refresh=true after schema changes. |
| analyze_tableA | QUICK statistical snapshot for ONE table — row count, null rates, cardinality, numeric min/max/avg, date ranges. Optionally drill into a specific column. Use |
| detect_anomaliesA | Scan a table for unusual patterns: volume drops/spikes, data gaps, value concentration, high null rates, stale data. Severity-ranked alerts. Tables > 100k rows use a sampled path (~5%). Dialect-aware sampling. |
| suggest_queriesA | Generate schema-aware query suggestions with ready-to-run SQL. Great for exploring unfamiliar databases or finding useful queries. |
| test_connectionA | Ping a connection (SELECT 1) and return server version + latency. Fast way to confirm credentials and network path without running describe_schema. |
| list_connectionsA | List every database connection registered for your tenant: name, id, dbType (postgres / mysql / mssql), createdAt. Flags duplicate names. Returns nothing sensitive (no DSN, no credentials). |
| quotaA | Check current API usage, daily limit, plan name, and upgrade options. |
| issue_api_keyA | Issue a fresh ta_data_* API key for your current tenant. Useful for pasting into /add-database or configuring a separate integration. Rate-limited to 5 issuances per tenant per day. |
| explain_queryA | Analyze a SQL query's execution plan and return plain-English performance recommendations. Runs EXPLAIN ANALYZE (Postgres) or EXPLAIN FORMAT=JSON (MySQL). [BUILD tier] |
| optimize_queryA | Suggest a rewritten, optimized version of a SQL query with explanations. Identifies sequential scans, missing indexes, sort spills, join inefficiencies, and suggests index DDL. [BUILD tier] |
| data_profileA | FULL data quality + compliance report for a table: per-column stats PLUS a 0-100 health score, type-gated PII detection (email / phone / SSN / etc.), and insight warnings. Use this when the user says 'profile' or 'quality report' or mentions PII/compliance. [BUILD tier] |
| query_historyB | Return recent queries executed through ThinAir with timing, row counts, and status. [BUILD tier] |
| saved_queriesB | Manage your personal library of reusable SELECT queries. action=save stores a query by name; action=run executes a saved query; action=list returns all your saved queries; action=delete removes one. [BUILD tier] |
| generate_migrationA | Generate dialect-correct ALTER TABLE migration SQL + rollback from a plain-English intent. Output uses the connection's exact dialect. Never executes. [BUILD tier] |
| generate_seed_dataA | Generate realistic, schema-aware INSERT statements for development and testing. Respects types, constraints, and FK relationships. Never executes. [BUILD tier] |
| show_locksA | List active sessions + blocking locks. Uses the dialect's own system view: |
| pii_scanA | Sweep string columns across tables for common PII patterns (email, SSN, credit card, phone, JWT, bearer tokens). Heuristic-only — not a compliance guarantee. [BUILD tier] |
| watch_tableA | Monitor a table's row count and latest record. Compares to previous snapshot to show changes. Built-in scheduler. [ARCHITECT tier] |
| find_n_plus_oneB | Detect N+1 query patterns from recent query history. Fingerprints queries and flags repeated patterns. [ARCHITECT tier] |
| query_firewallB | Manage per-connection SQL rules: block dangerous patterns, require WHERE on large tables, log PII access. [ARCHITECT tier] |
| impact_analysisA | Analyze the blast radius of a proposed schema change: FK dependencies, affected views, row count, risk score. [ARCHITECT tier] |
| cross_db_queryA | Run a federated query across multiple connections (different dialects). Returns a unified result set with per-source provenance. [ARCHITECT tier] |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 23 tools
Most tools have clearly distinct purposes (schema, querying, profiling, etc.), though analyze_table and data_profile overlap in table statistics, and explain_query with optimize_query both address performance. Descriptions effectively differentiate them, but ambiguity exists for a couple of pairs.
The majority of tool names follow a verb_noun pattern (analyze_table, describe_schema, etc.), but there are minor deviations like cross_db_query (adjective_noun) and quota (single noun). Overall pattern is consistent and readable.
At 23 tools, the set is on the heavier side for a data management server. While each tool serves a distinct purpose (schema, querying, profiling, security, migrations), the number is borderline and could feel bloated for simpler use cases.
The tool surface is highly comprehensive for a data observability/management server, covering schema discovery, query execution/optimization, profiling, PII scanning, anomaly detection, migrations, security, and admin tasks. No obvious gaps within the intended scope.