Database discovery and query platform with MCP server integration for AI-assisted database exploration and SQL execution
Tablix demonstrates solid foundational quality with 13 well-named tools following verb_noun conventions (discover_, list_, execute_, update_). Tools 1 - 2 and 6 have exceptionally detailed descriptions (200 - 400 chars) with clear guidance on when to use them and pagination patterns. However, tools 3 - 5 and 7 - 8 have minimal descriptions (under 50 chars), violating the baseline that 100% of A+ tools have substantive param annotations. Input schemas are present for most tools but incomplete: tools 3 - 5, 7 - 8, 12 - 13 lack visible schema definitions in the provided source. Tool 9 has no description at all. Error handling is mentioned in tool 6 but not systematized across the suite. Security is well-considered (credentials never exposed, context-based auth), but output schemas are not documented in the source.
Provides agent pack functionality for advanced database operations
Provides AI-assisted database intelligence and analysis
Returns database schema geometry and can be very large. Use only for small databases or when the user explicitly asks for full-database geometry. For reliable large-schema work, use tablix_list_tables to page table summaries, tablix_list_relationships to inspect declared foreign keys, then tablix_discover_table for specific tables. If you call this tool, set maxTables and page with skip/NextSkip when the database may have many tables. Do not assume the response is complete unless EndOfResults is true or no maxTables paging was requested.
Use first in every Tablix workflow. Lists configured databases using redacted metadata, AllowedQueries, crawl state, and user-supplied Context. Credentials are never returned; HasUser and HasPassword only indicate whether credentials are configured. Page through results with maxResults and skip until EndOfResults is true; when EndOfResults is false, call again with skip set to NextSkip. Choose the databaseId from this response and preserve any Context as authoritative user guidance. After selecting a database, prefer tablix_list_tables and tablix_list_relationships before requesting full table geometry.
Returns full geometry for a specific table
Seven tools (list_tables, discover_table, list_relationships, get_database_context, get_table_context, database_intelligence, agent_pack) have no visible input schemas in source code.
Tool tablix_update_context has no description at all (0 chars). This violates the baseline that 100% of A+ tools have docstrings.
Six tools have descriptions under 50 characters (list_tables, discover_table, list_relationships, get_database_context, get_table_context, database_intelligence, agent_pack). These are too brief to guide LLM tool selection. Baseline for A+ tools is 194 chars average.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 54 | <=2025-11-25 | v2 |
Execute one permitted SQL statement against the selected database when the user asks for database data, database contents, row examples, counts, totals, latest/top records, purchases, spending, or an explicit database action. Call this tool instead of merely returning SQL or asking the user to run SQL when execution can answer the user. Return SQL text only when the user explicitly asks for SQL only or execution is unavailable. Use exact table and column names from the context. Never include semicolons or a trailing SQL terminator in the Query value. For counts, use COUNT(*) with a clear alias. For parent/detail questions such as recent orders plus purchased items, limit the parent rows in a CTE or subquery before joining detail rows, and aggregate child rows when one result row per parent is expected. For relative date windows on static sample data, anchor to the latest relevant date in the database if the real current date would return no useful rows.
Retrieves persisted database-level context
Retrieves persisted table-level context
Lists declared foreign key relationships for a database
Lists table summaries for a database with pagination support
Updates persisted context at database or table level
Update persisted database-level context for the selected database when tool results or schema inspection reveal a durable, reusable database-wide relationship, business rule, naming convention, or correction. Use append for incremental observations. Use replace only when explicitly asked to rewrite the saved context or when producing a curated complete replacement. Do not store secrets, credentials, raw result rows, sensitive personal data, unsupported guesses, or one-off answer values. Clearly label inferred relationships.
Update persisted table-level context for the selected database when tool results or schema inspection reveal durable, reusable facts about one exact table, such as purpose, join paths, relationships, important filters, write-safety caveats, or corrections. Use append for incremental observations. Use replace only when explicitly asked to rewrite that table context or when producing a curated complete replacement. Do not store secrets, credentials, raw result rows, sensitive personal data, unsupported guesses, or one-off answer values. Clearly label inferred relationships.
Output schemas are not documented in the provided source code for any tool. LLMs cannot plan downstream calls or extract fields without knowing what each tool returns. This violates the baseline that 100% of A+ tools have documented return types.
Error handling is mentioned only in tool 6 (execute_query) but not systematized. No tools declare error categories (retryable, user-fixable, fatal) or provide recovery guidance. This violates pattern:recovery-guide.