Foundation for LLM integration with Dremio - provides MCP tools for querying data, analyzing semantic layers, and interacting with Dremio's AI tools
Server implements 10 tools with functional schemas and descriptions, but quality is uneven. All tools are read-only and well-intentioned, but descriptions lack LLM-optimization detail, parameter constraints are minimal, output schemas are not documented, and error handling guidance is absent. Average tool name length is reasonable (18 chars), but naming could be more action-oriented in places. Tool descriptions average ~100 chars, acceptable but below the 194-char production baseline. No tool has an enum constraint or detailed parameter validation rules. No parameter descriptions in the schema (type fields present, but 'description' key missing from most parameter definitions in the visible schema). This is typical of mid-tier servers that work but don't guide LLM reasoning effectively.
Invoke a remote AI tool from Dremio by name with provided arguments
List all available remote AI tools from Dremio server
Retrieve schema information for a Prometheus metric including labels and type
Retrieve data lineage information for a table showing sources and downstream dependencies
Retrieve join relationships between tables in the semantic layer with cardinality and usage metrics
Retrieve detailed schema information for a table or view including field types and metadata
Execute a PromQL query against a Prometheus instance and return time series results
Parameter descriptions missing from schema definitions. Input schemas show type and constraint structure but lack 'description' fields for individual parameters. LLMs cannot determine what 'limit', 'offset', 'category', 'by_id', and other parameters actually control, they must infer from the parameter name alone.
Output schemas not documented. Tool descriptions explain what each tool does but do not specify what fields the response contains. LLMs cannot plan downstream calls or extract data without knowing the structure (e.g., what fields does GetTableSchema return? Are they typed?). This violates the 'Document the output schema' rule.
Inferred effective spec: 2025-06-18+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-21 | D | 59 | 2025-06-18+ | v2 |
| 2026-03-09 | F | 43 | - | v1 |
Execute SQL queries against Dremio and return results with pagination support
Search for metrics in the semantic layer by query term
Search for tables and views in Dremio catalog using semantic search
No enum constraints on categorical parameters. 'category' in SearchTableAndViews accepts an array but does not enumerate valid categories. 'by_id' in GetTableSchema is documented as boolean but has no validation hint. LLMs may pass invalid values without guidance.
No error recovery guidance. Tool descriptions do not explain what the LLM should do if a call fails (e.g., 'If the query times out, try reducing the limit parameter' or 'If no tables found, try SearchTableAndViews with a broader term'). Error responses appear to lack actionable guidance.
DiscoverDynamicTools and CallDynamicTool have ambiguous naming. 'Discover' is weaker than 'list' or 'enumerate'. 'CallDynamicTool' is generic; a more specific name like 'invoke_remote_ai_tool' or 'execute_dremio_ai_tool' would better clarify purpose. Names should start with strong action verbs.
No pagination documented for search/discovery tools. SearchTableAndViews, SearchMetrics, and DiscoverDynamicTools may return large result sets, but no limit/offset or page parameters are evident. Large result sets waste tokens and risk context window exhaustion.
Descriptions below LLM-optimization baseline. Average description length is ~100 chars; production baseline is 194 chars (p10=34, p90=392). Descriptions like 'Search for metrics in the semantic layer by query term' are functional but lack 'WHEN to use', 'prerequisite', or 'what to do next' context that guides LLM planning.