SAP HANA MCP server — Model Context Protocol server for SAP HANA and HANA Cloud. Use with Claude Code, VS Code, and other AI agents.
HANA MCP Server has comprehensive tool coverage with well-structured schemas and tool annotations. Most tools have clear descriptions, proper parameter schemas with types, and documented output schemas. However, there are several gaps: (1) 14 of 15 tools lack output schemas defined in the tool definition itself (only input schemas are declared); (2) parameter descriptions could be more specific about format constraints and ranges; (3) error handling guidance is minimal; (4) some descriptions are adequate but not optimized for LLM selection. The server demonstrates enterprise-grade patterns like tool annotations (readOnlyHint, destructiveHint, idempotentHint), pagination support, and security-conscious parameter design (no secrets exposed). Strengths: consistent naming convention (verb_noun, all start with 'hana_'), comprehensive input validation infrastructure, explicit permission gates (e.g., HANA_ALLOW_INSERT/UPDATE/DELETE flags), and rich metadata (catalog_database for multi-tenant HANA). Weaknesses: output schemas missing from tool definitions; some parameters lack granular format/range documentation; error messages not visible in tool definitions.
Describe the structure of a specific index
Describe the structure of a specific table
Describe view definition and columns
Execute SQL against HANA. When HANA_QUERY_LIMITS_ENABLED=true, SELECT/WITH queries are wrapped with LIMIT/OFFSET (HANA_MAX_RESULT_ROWS) and row/column/cell caps apply; results are returned as-is otherwise. INSERT/UPDATE/DELETE are blocked by default; set HANA_ALLOW_INSERT, HANA_ALLOW_UPDATE, HANA_ALLOW_DELETE=true individually to permit each. Use limit, offset, maxRows, includeTotal as needed. If truncated, snapshotId may be returned for hana_query_next_page.
Return column metadata merged with optional business semantics from HANA_SEMANTICS_PATH or HANA_SEMANTICS_URL (JSON keys: SCHEMA.TABLE or DB.SCHEMA.TABLE when catalog_database is set). Optional catalog_database reads SYS.* from another MDC database (e.g. HSP).
Get table statistics (row count, type, disk size)
Most tools lack output schemas in tool definitions. Only hana_list_schemas, hana_execute_query, and hana_explain_table define outputSchema in tool-definitions.js. The remaining 12 tools have no declared output schema, making it impossible for LLMs to understand what fields they will receive. Per the rubric: '100% of A+ tools have documented return types' and 'Document the output schema. LLMs need to know what fields to expect so they can plan downstream tool calls and extract the right data.' This forces LLMs to guess at response structure.
Parameter descriptions lack granular format constraints. Parameters like 'limit' and 'offset' are described generically ('Max schemas to return', 'Skip this many schemas') without stating minimum/maximum values, default behavior, or server-side caps. Unbounded numbers let LLMs pass absurd values that break APIs or cause timeouts.' The descriptions mention 'capped by server' but do not state the actual caps (HANA_LIST_DEFAULT_LIMIT value).
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 68 | 2025-06-18+ | v2 |
| 2026-03-09 | F | 0 | - | v1 |
List all constraints (primary key, unique, check, foreign key) for a table
List all indexes for a specific table
List schemas in the HANA database with optional prefix filter and pagination (HANA_LIST_DEFAULT_LIMIT / offset).
List tables in a schema with optional name prefix and pagination (HANA_LIST_DEFAULT_LIMIT / offset).
List views in a schema with optional prefix filter and pagination
Continue a paged SELECT using a snapshot id.
Show the HANA database configuration
Show all HANA-related environment variables (for debugging)
Test connection to HANA database
hana_show_config and hana_test_connection have trivial descriptions (<20 chars: 'Show the HANA database configuration', 'Test connection to HANA database'). What does it return? What are prerequisites?). Descriptions should be 50 - 200 chars for LLM optimization and include recovery hints.
No visible error handling guidance in tool definitions. The code references error scenarios (e.g., 'INSERT/UPDATE/DELETE are blocked by default') but tool definitions do not declare what errors are possible, when they are retryable, or what the LLM should do next.
catalog_database parameter is present on multiple tools but descriptions do not explain when/why to use it or what the default behavior is when omitted. This is a domain-specific multi-tenant feature that requires context. Description should clarify: 'When omitted, uses the currently-connected HANA database. Use this parameter to query metadata from a different HANA database (MDC cross-tenant scenarios). Example: catalog_database="HSP" when connected to a different tenant.' Current description is terse and assumes domain knowledge.
Pagination behavior is inconsistent across list tools. hana_list_schemas and hana_list_tables accept 'limit' and 'offset', but hana_execute_query accepts 'limit', 'maxRows', and 'offset' (with aliases). Tools returning lists should use consistent pagination parameter names.