返回市场
汉纳-MCP服务器

汉纳-MCP服务器

作者:HatriGt27 星标更新:2025-09-24

项目介绍

HANA MCP Server

npm 版本 npm 下载量 Node.js 许可证 MCP

模型上下文协议(MCP)服务器,用于无缝集成SAP HANA数据库与AI代理和开发工具。

🚀 快速开始

1. 安装

npm install -g hana-mcp-server

2. 配置Claude Desktop

更新你的Claude Desktop配置文件:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\claude\claude_desktop_config.json
Linux: ~/.config/claude/claude_desktop_config.json

{
  "mcpServers": {
    "HANA 数据库": {
      "command": "hana-mcp-server",
      "env": {
        "HANA_HOST": "your-hana-host.com",
        "HANA_PORT": "443",
        "HANA_USER": "your-username",
        "HANA_PASSWORD": "your-password",
        "HANA_SCHEMA": "your-schema",
        "HANA_SSL": "true",
        "HANA_ENCRYPT": "true",
        "HANA_VALIDATE_CERT": "true",
        "HANA_CONNECTION_TYPE": "auto",
        "HANA_INSTANCE_NUMBER": "10",
        "HANA_DATABASE_NAME": "HQQ",
        "LOG_LEVEL": "info",
        "ENABLE_FILE_LOGGING": "true",
        "ENABLE_CONSOLE_LOGGING": "false"
      }
    }
  }
}

3. 重启Claude Desktop

关闭并重新打开Claude Desktop以加载配置。

4. 测试它!

询问Claude:"展示我HANA数据库中的可用模式"

🎯 你能得到什么

数据库操作

  • 模式探索:列出模式、表和表结构
  • 查询执行:使用自然语言运行SQL查询
  • 数据采样:从表中获取样本数据
  • 系统信息:监控数据库状态和性能

AI集成

  • 自然语言查询:"展示SYSTEM模式中的所有表"
  • 查询构建:"创建一个查询来查找订单金额大于$1000的客户"
  • 数据分析:"从ORDERS表中获取样本数据"
  • 模式导航:"描述CUSTOMERS表的结构"

🖥️ 可视化配置(推荐)

为了更轻松地设置和管理,请使用HANA MCP UI

npx hana-mcp-ui

这将打开一个Web界面,你可以:

  • 配置多个数据库环境
  • 单击部署配置到Claude Desktop
  • 管理活动连接
  • 测试数据库连接性

HANA MCP UI

🛠️ 配置选项

必需参数

参数描述示例
HANA_HOST数据库主机名或IP地址hana.company.com
HANA_USER数据库用户名DBADMIN
HANA_PASSWORD数据库密码your-secure-password

可选参数

参数描述默认值选项
HANA_PORT数据库端口443任何有效端口号
HANA_SCHEMA默认模式名称-模式名称
HANA_CONNECTION_TYPE连接类型autoauto, single_container, mdc_system, mdc_tenant
HANA_INSTANCE_NUMBER实例号(MDC)-实例号(例如,10
HANA_DATABASE_NAME数据库名称(MDC租户)-数据库名称(例如,HQQ
HANA_SSL启用SSL连接truetrue, false
HANA_ENCRYPT启用加密truetrue, false
HANA_VALIDATE_CERT验证SSL证书truetrue, false
LOG_LEVEL日志级别infoerror, warn, info, debug
ENABLE_FILE_LOGGING启用文件日志truetrue, false
ENABLE_CONSOLE_LOGGING启用控制台日志falsetrue, false

数据库连接类型

1. 单容器数据库

标准的单租户HANA数据库。

必需HANA_HOST, HANA_USER, HANA_PASSWORD
可选HANA_PORT, HANA_SCHEMA

{
  "HANA_HOST": "hana.company.com",
  "HANA_PORT": "443",
  "HANA_USER": "DBADMIN",
  "HANA_PASSWORD": "password",
  "HANA_SCHEMA": "SYSTEM",
  "HANA_CONNECTION_TYPE": "single_container"
}

2. MDC系统数据库

多租户系统数据库(管理租户)。

必需HANA_HOST, HANA_PORT, HANA_INSTANCE_NUMBER, HANA_USER, HANA_PASSWORD
可选HANA_SCHEMA

{
  "HANA_HOST": "192.168.1.100",
  "HANA_PORT": "31013",
  "HANA_INSTANCE_NUMBER": "10",
  "HANA_USER": "SYSTEM",
  "HANA_PASSWORD": "password",
  "HANA_SCHEMA": "SYSTEM",
  "HANA_CONNECTION_TYPE": "mdc_system"
}

3. MDC租户数据库

多租户租户数据库(特定租户)。

必需HANA_HOST, HANA_PORT, HANA_INSTANCE_NUMBER, HANA_DATABASE_NAME, HANA_USER, HANA_PASSWORD
可选HANA_SCHEMA

{
  "HANA_HOST": "192.168.1.100",
  "HANA_PORT": "31013",
  "HANA_INSTANCE_NUMBER": "10",
  "HANA_DATABASE_NAME": "HQQ",
  "HANA_USER": "DBADMIN",
  "HANA_PASSWORD": "password",
  "HANA_SCHEMA": "SYSTEM",
  "HANA_CONNECTION_TYPE": "mdc_tenant"
}

自动检测

HANA_CONNECTION_TYPE设置为auto(默认)时,服务器会自动检测类型:

  • 如果HANA_INSTANCE_NUMBER + HANA_DATABASE_NAMEMDC租户
  • 如果只有HANA_INSTANCE_NUMBERMDC系统
  • 如果两者都没有 → 单容器

🏗️ 架构

系统架构

HANA MCP Server 架构

组件结构

hana-mcp-server/
├── 📁 src/
│   ├── 🏗️ server/           # MCP协议及服务器管理
│   │   ├── index.js         # 主服务器入口点
│   │   ├── mcp-handler.js   # JSON-RPC 2.0实现
│   │   └── lifecycle-manager.js # 服务器生命周期管理
│   ├── 🛠️ tools/            # 工具实现
│   │   ├── index.js         # 工具注册及发现
│   │   ├── config-tools.js  # 配置管理
│   │   ├── schema-tools.js  # 模式探索
│   │   ├── table-tools.js   # 表操作
│   │   ├── index-tools.js   # 索引管理
│   │   └── query-tools.js   # 查询执行
│   ├── 🗄️ database/         # 数据库层
│   │   ├── hana-client.js   # HANA客户端封装
│   │   ├── connection-manager.js # 连接管理
│   │   └── query-executor.js # 查询执行工具
│   ├── 🔧 utils/            # 共享工具
│   │   ├── logger.js        # 结构化日志
│   │   ├── config.js        # 配置管理
│   │   ├── validators.js    # 输入验证
│   │   └── formatters.js    # 响应格式化
│   └── 📋 constants/        # 常量及定义
│       ├── mcp-constants.js # MCP协议常量
│       └── tool-definitions.js # 工具模式
├── 🧪 tests/                # 测试框架
├── 📚 docs/                 # 文档
├── 📦 package.json          # 依赖项及脚本
└── 🚀 hana-mcp-server.js    # 主入口点

📚 可用命令

一旦配置完成,你可以询问Claude:

  • "列出数据库中的所有模式"
  • "展示SYSTEM模式中的表"
  • "描述CUSTOMERS表的结构"
  • "执行:SELECT * FROM SYSTEM.TABLES LIMIT 10"
  • "从ORDERS表中获取样本数据"
  • "计算CUSTOMERS表中的行数"

🔧 故障排除

连接问题

  • "连接被拒绝":检查HANA主机和端口
  • "身份验证失败":验证用户名/密码
  • "SSL证书错误":设置HANA_VALIDATE_CERT=false或安装有效的证书

调试模式

export LOG_LEVEL="debug"
export ENABLE_CONSOLE_LOGGING="true"
hana-mcp-server

📦 包信息

  • 大小:21.7 kB
  • 依赖项:@sap/hana-client, axios
  • Node.js:需要18+
  • 平台:macOS, Linux, Windows

🤝 支持

📄 许可证

MIT许可证 - 详情见LICENSE文件。