MCP server for SAP HANA and HANA Cloud: run read-only SQL, list schemas and tables, and describe table columns.
Five tools with clear verb-noun naming (list_*, describe_*, run_*, execute_*). All have descriptions (194 - 250 chars, within baseline 34 - 392). Input schemas present with types and constraints. Key strengths: parameter constraints (minLength, minimum/maximum), clear risk labels (READ_ONLY, WRITE), and actionable descriptions. Gaps: no output schemas documented, no error recovery guidance, no tool annotations (readOnlyHint/destructiveHint), and execute_statement lacks confirmation/dry-run pattern for destructive operations.
Describe the columns of a table or view using SYS.TABLE_COLUMNS: name, data type, length, scale, nullability and key position, in column order. Read-only.
MUTATING: execute an arbitrary SQL statement (DML or DDL such as INSERT, UPDATE, DELETE, CREATE, DROP). This changes remote state and is disabled by default. It only runs when LOGALI_MCP_ALLOW_WRITE=true. Supports positional parameters (question mark placeholders).
List database schemas from SYS.SCHEMAS. Optionally filter by owner. Read-only.
List tables (SYS.TABLES) and views (SYS.VIEWS) in a schema, with type and a cheap row count estimate for tables. Provide schema or rely on HANA_SCHEMA. Read-only.
Run a read-only SQL query against SAP HANA and return columns and rows. Only a single SELECT or WITH statement is accepted; any DML, DDL, procedure call or multiple statements is rejected. Supports positional parameters (question mark placeholders). Results are truncated to maxRows.
No output schemas documented. LLMs cannot infer what fields to expect from list_schemas, list_tables, describe_table, run_query, or execute_statement. This forces LLMs to guess at response structure and risks failed downstream tool chaining.
execute_statement (WRITE/MUTATING) lacks confirmation or dry-run pattern. Agents can execute arbitrary DDL/DML without a safety gate. No recovery guidance if a DELETE or DROP succeeds unintentionally.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). The MCP spec (2026-07-28) supports tool annotations to signal safety properties. list_schemas, list_tables, describe_table, run_query should be marked readOnly=true; execute_statement should be marked destructive=true.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 62 | 2026-07-28+ | v2 |
Error handling lacks recovery guidance. No indication of which errors are retryable (transient network), user-fixable (invalid SQL syntax), or fatal (permission denied). Agents cannot self-correct or know when to ask the user.
run_query and execute_statement accept arbitrary SQL. No documented SQL validation or injection prevention. Descriptions mention 'read-only' and 'single SELECT' but do not explain how injection is prevented or what happens if a user passes malicious input.