plugins/sap-hana-cli/skills/sap-hana-cli/SKILL.md
Assists with SAP HANA Developer CLI (hana-cli) for database development and administration. Use when: installing hana-cli, connecting to SAP HANA databases, inspecting database objects (tables, views, procedures, functions), managing HDI containers, executing SQL queries, converting metadata to CDS/EDMX/OpenAPI formats, managing SAP HANA Cloud instances, working with BTP CLI integration, or troubleshooting hana-cli commands. Covers: 91 commands, 17+ output formats, HDI container management, cloud operations.
npx skillsauth add secondsky/sap-skills sap-hana-cliInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
A developer-centric command-line interface for SAP HANA database development, particularly useful in non-SAP tooling environments like VS Code.
Repository: https://github.com/SAP-samples/hana-developer-cli-tool-example npm Package: https://www.npmjs.com/package/hana-cli Current Version: 3.202405.1 (April 2024) Node.js Requirement: ≥20.19.0
# Install globally via npm (recommended)
npm install -g hana-cli
# Verify installation
hana-cli version
# Interactive connection setup
hana-cli connect
# Or specify connection directly
hana-cli connect -n "hostname:port" -u DBUSER -p PASSWORD --save
# Using service key (HANA Cloud)
hana-cli connectViaServiceKey
The hana-mcp-server integration enables natural language database operations through Claude's Model Context Protocol. Use conversational queries alongside traditional CLI commands for a complete development workflow.
The bundled MCP config pins [email protected]. Use sap-dependency-security before changing this pin because the server receives HANA tenant connection environment variables.
Required configuration (add to ~/.zshrc, ~/.bashrc, or project .env):
export HANA_HOST="your-hana-host.hanacloud.ondemand.com"
export HANA_PORT="443"
export HANA_USER="DBADMIN"
export HANA_PASSWORD="your-password"
export HANA_ENCRYPT="true" # Optional, defaults to true
export HANA_DATABASE="" # Optional, for MDC tenant
export HANA_CONNECTION_TYPE="single-container" # Optional
| Scenario | Recommended Tool | Why | |----------|------------------|-----| | Exploratory queries, ad-hoc analysis | MCP | Natural language, no syntax needed | | Automation scripts, CI/CD pipelines | CLI | Scriptable, consistent output | | Learning database structure | MCP | Conversational discovery | | Generating CDS/EDMX/OpenAPI output | CLI | Supports 17+ formats | | Complex multi-step workflows | CLI | Fine-grained control | | Quick data sampling and inspection | MCP | Faster for one-off queries |
The hana-mcp-server provides these MCP tools:
list_schemas: Enumerate all schemaslist_tables: Show tables in a schemadescribe_table: Get table structure and metadataquery: Execute SQL queries from natural languagesample_data: Retrieve sample rowssystem_info: Database status and performance# 1. Use MCP to explore (natural language)
"Show me all tables in the PRODUCTS schema"
# 2. Use MCP to understand structure
"Describe the PRODUCTS.INVENTORY table"
# 3. Use CLI for format conversion (precise output)
hana-cli inspectTable -t INVENTORY -s PRODUCTS -o cds
# 4. Use CLI for HDI operations
hana-cli createContainer -c MY_CONTAINER
| Command | Aliases | Purpose |
|---------|---------|---------|
| inspectTable | it, table | Inspect table structure |
| inspectView | - | Inspect view definition |
| inspectProcedure | - | Inspect stored procedure |
| inspectFunction | - | Inspect function definition |
| tables | - | List all tables in schema |
| views | - | List all views in schema |
| procedures | - | List stored procedures |
| functions | - | List functions |
| Command | Aliases | Purpose |
|---------|---------|---------|
| querySimple | qs | Execute SQL query |
| callProcedure | cp | Execute stored procedure |
| hdbsql | - | Direct SQL execution |
| Command | Aliases | Purpose |
|---------|---------|---------|
| containers | cont | List HDI containers |
| createContainer | - | Create new container |
| dropContainer | - | Remove container |
| activateHDI | - | Enable HDI service |
| adminHDI | - | Administer HDI privileges |
| Command | Aliases | Purpose |
|---------|---------|---------|
| hanaCloudInstances | - | List HANA Cloud instances |
| hanaCloudStart | - | Start cloud instance |
| hanaCloudStop | - | Stop cloud instance |
| btp | - | Configure BTP CLI |
| btpInfo | - | Display BTP target info |
The --output / -o option supports 17+ formats:
| Format | Use Case |
|--------|----------|
| tbl | Human-readable table (default) |
| json | JSON data |
| yaml | YAML format |
| csv | CSV export |
| excel | Excel file |
| cds | CAP CDS definitions |
| hdbcds | HANA CDS format |
| hdbtable | HDB Table definitions |
| sql | SQL DDL statements |
| edmx | OData EDMX metadata |
| openapi | OpenAPI/Swagger spec |
| graphql | GraphQL schema |
Connection credentials are searched in priority order:
default-env-admin.json (with --admin flag).cdsrc-private.json (via cds bind).env file with VCAP_SERVICES--conn parameterdefault-env.json in current/parent directories~/.hana-cli/default.jsonFor connection templates, see templates/default-env.json.
# Inspect table structure
hana-cli inspectTable -s MYSCHEMA -t MYTABLE
# Convert to CDS format
hana-cli inspectTable -s MYSCHEMA -t MYTABLE -o cds
# Convert all objects in schema to CDS
hana-cli massConvert -s MYSCHEMA
# Run query and export to JSON
hana-cli querySimple -q "SELECT * FROM MYTABLE" -o json
# Export to Excel file
hana-cli querySimple -q "SELECT * FROM MYTABLE" -o excel -f ./output -n report
# List all containers
hana-cli containers
# Create new container
hana-cli createContainer -c MY_CONTAINER -g MY_GROUP
# Create container users
hana-cli createContainerUsers -c MY_CONTAINER
Many commands have browser-based UI alternatives (suffix UI):
tablesUI - Browse tables visuallycontainersUI - Manage containers in browsermassConvertUI - Visual mass conversionquerySimpleUI - Query builder interfacesystemInfoUI - System dashboardFor comprehensive documentation:
references/command-reference.mdreferences/connection-security.mdreferences/hdi-management.mdreferences/output-formats.mdreferences/cloud-operations.mdreferences/db-inspection.mdreferences/mass-operations.mdreferences/system-admin.mdreferences/web-ui.mdreferences/troubleshooting.mdreferences/development-environment.mdreferences/abap-programming.md# Check current connection status
hana-cli status
# Test with explicit credentials
hana-cli connect -n "host:443" -u USER -p PASS --encrypt true
# Use SSL trust store
hana-cli connect --trustStore /path/to/certificate.pem
# Diagnose privilege errors
hana-cli privilegeError
# View current user info
hana-cli inspectUser
references/command-reference.md - Complete command reference with all optionsreferences/abap-programming.md - ABAP-specific programming patternsreferences/development-environment.md - Development setup and environment guidancereferences/connection-security.md - Secure connection and credential handlingreferences/troubleshooting.md - Common errors and recovery stepstemplates/default-env.json - Local connection template for CAP-style bindingstemplates/cdsrc-private.json - CAP private configuration templateLast Updated: 2025-11-26 | Version: 1.1.0
tools
Use when automating SAP BW query inspection, InfoProvider metadata reads (characteristics, key figures), metadata-verified specification review, unsaved draft preparation, or human-confirmed query draft population through Eclipse or HANA Studio with BW Modeling Tools.
tools
Use when an agent must inspect or operate an authenticated SAP web UI through an in-app Browser, Microsoft Edge CDP, or an existing Playwright client, especially when SAP SSO reuse, isolated Edge profiles, deterministic target selection, screenshots, or browser bootstrap recovery is required.
tools
Evidence-based assessment of whether an SAP API/interface usage scenario aligns with the SAP API Policy (v.4.2026a). Use whenever someone asks whether a way of calling SAP is allowed/compliant — e.g. Published API vs internal/private/"confidential" API status, "Documented Use", whether a third-party tool / iPaaS / middleware / RPA bot / AI agent / MCP server may call SAP APIs, agentic or generative-AI access to SAP, bulk data extraction or replication into a lake/warehouse, custom Z/Y OData or RFC/BAPI wrappers and Clean Core, ADT/developer-tooling boundaries, ODP-RFC and other "not permitted" interfaces, partner Integration Certification, or RISE integration remediation. Trigger even when the policy is not named, e.g. "are we allowed to…", "is it compliant to…", "can we connect X to SAP…", "will this break under the new API policy". Produces a sourced technical assessment with a confidence level — explicitly NOT legal advice and NOT a final SAP compliance decision.
development
SAP-RPT-1-OSS local tabular prediction workflows for FI/CO prototype datasets. Use when preparing SAP finance CSV exports for classification or regression experiments with source-verified setup, leakage checks, and governance review.