MCP server for Teradata Vantage — SQL execution and native analytics function reference for AI agents
Server has 6 tools with clear verb-noun naming (execute_query, list_databases, describe_table, etc.). All tools have descriptions (avg ~100 chars, baseline 194). Input schemas are present with type definitions. However, parameter descriptions are sparse or missing entirely, most params lack actionable guidance on format/constraints. Output schemas are documented in code but not exposed in tool definitions. Error handling is minimal; no recovery guidance or categorization. Missing tool annotations (readOnlyHint, destructiveHint). The execute_statement tool lacks input validation warnings despite being destructive.
Describe the columns of a table or view.
Execute a SQL SELECT query and return results as JSON.
Execute a DDL or DML statement (INSERT, UPDATE, DELETE, CREATE, DROP, etc.). Not available when the server is running in read-only mode.
Run EXPLAIN on a SQL query to validate syntax and preview the execution plan. Use this to check whether a query is syntactically correct before executing it.
List all accessible databases/schemas in the Teradata system.
List tables and views in a given database/schema.
Parameter descriptions are minimal or absent. 'max_rows' lacks guidance on practical limits; 'database' and 'table_name' lack format/quoting guidance for Teradata reserved words. LLMs cannot infer whether to quote identifiers or how to handle special characters.
execute_statement is destructive (DDL/DML) but lacks confirmation/dry-run pattern. No warning in description that this modifies state. No error guidance if syntax fails. LLM could accidentally drop tables without safeguards.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). LLM cannot distinguish safe tools from dangerous ones without reading descriptions. execute_statement should be marked destructiveHint=true.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 60 | 2026-07-28+ | v2 |
Output schemas documented in code comments but not exposed in tool definitions. LLM cannot see that execute_query returns {rows, row_count, truncated}. Downstream tool chaining is blind.
Error handling returns raw exceptions or JSON error strings. No recovery guidance (e.g., 'syntax error in query, call explain_query first'). No categorization of retryable vs. fatal errors.