Skip to main content
Glama
HatriGt

HANA Cloud MCP Server

by HatriGt

hana_execute_query

Execute custom SQL queries on HANA Cloud database to retrieve, analyze, or modify data through prepared statements.

Instructions

Execute a custom SQL query against the HANA database

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
queryYesThe SQL query to execute
parametersNoOptional parameters for the query (for prepared statements)

Implementation Reference

  • The main handler function QueryTools.executeQuery that validates input, executes the SQL query using QueryExecutor, formats results, and handles errors.
    static async executeQuery(args) {
      logger.tool('hana_execute_query', args);
      
      const { query, parameters = [] } = args || {};
      
      // Validate required parameters
      const validation = Validators.validateRequired(args, ['query'], 'hana_execute_query');
      if (!validation.valid) {
        return Formatters.createErrorResponse('Error: query parameter is required', validation.error);
      }
      
      // Validate query
      const queryValidation = Validators.validateQuery(query);
      if (!queryValidation.valid) {
        return Formatters.createErrorResponse('Invalid query', queryValidation.error);
      }
      
      // Validate parameters
      const paramValidation = Validators.validateParameters(parameters);
      if (!paramValidation.valid) {
        return Formatters.createErrorResponse('Invalid parameters', paramValidation.error);
      }
      
      try {
        const results = await QueryExecutor.executeQuery(query, parameters);
        const formattedResults = Formatters.formatQueryResults(results, query);
        
        return Formatters.createResponse(formattedResults);
      } catch (error) {
        logger.error('Query execution failed:', error.message);
        return Formatters.createErrorResponse('Query execution failed', error.message);
      }
    }
  • The input schema definition for the hana_execute_query tool, specifying the query parameter as required and parameters as optional array.
      name: "hana_execute_query",
      description: "Execute a custom SQL query against the HANA database",
      inputSchema: {
        type: "object",
        properties: {
          query: {
            type: "string",
            description: "The SQL query to execute"
          },
          parameters: {
            type: "array",
            description: "Optional parameters for the query (for prepared statements)",
            items: {
              type: "string"
            }
          }
        },
        required: ["query"]
      }
    }
  • The TOOL_IMPLEMENTATIONS object that registers 'hana_execute_query' mapped to QueryTools.executeQuery for execution via ToolRegistry.
    const TOOL_IMPLEMENTATIONS = {
      hana_show_config: ConfigTools.showConfig,
      hana_test_connection: ConfigTools.testConnection,
      hana_show_env_vars: ConfigTools.showEnvVars,
      hana_list_schemas: SchemaTools.listSchemas,
      hana_list_tables: TableTools.listTables,
      hana_describe_table: TableTools.describeTable,
      hana_list_indexes: IndexTools.listIndexes,
      hana_describe_index: IndexTools.describeIndex,
      hana_execute_query: QueryTools.executeQuery
    };

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/HatriGt/hana-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server