SAP HANA MCP服务器

一个基于FastMCP和SAP HANA Python驱动(hdbcli)构建的Model Context Protocol(MCP)服务器,用于将SAP HANA数据库功能(如表、列查询、运行SQL)暴露为AI助手可用的MCP工具。

  • by Elkhn
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 Elkhn/sap-hana-mcp

使用说明

SAP HANA MCP服务器(Python)

SAP HANA的模型上下文协议(MCP)服务器,使用 FastMCP 以及官方的SAP HANA Python驱动程序(hdbcli).

此服务器将SAP HANA数据库功能(列出表、列、运行查询)作为人工智能助手可以使用的MCP工具公开。

先决条件

  • Python 3.12+
  • 访问SAP HANA实例(内部部署或SAP HANA云)
  • SAP HANA客户端库(随 hdbcli)

安装

# Clone and enter the directory
cd sap-hana-mcp-server-python

# Install dependencies
pip install -r requirements.txt

配置

复制示例环境文件并填写SAP HANA连接详细信息:

cp .env.example .env

编辑 .env 使用您的服务器设置:

变量 描述 默认值
HANA_HOST SAP HANA服务器主机名 (必填)
HANA_PORT SAP HANA服务器端口 443
HANA_SCHEMA 筛选表的默认架构 (可选)
SERVER_PORT MCP服务器HTTP端口 8000

认证

SAP HANA凭据由每个MCP客户端通过以下方式提供 HTTP基本身份验证。服务器不存储数据库凭据——每个请求都必须包含一个 Authorization 标题中包含用户的SAP HANA用户名和密码。

Authorization: Basic <base64(username:password)>

如果标头丢失或无效,服务器将返回错误。这允许不同的用户连接到他们自己的SAP HANA帐户。

运行服务器

本地

python main.py

服务器启动于 http://localhost:8000/sse 使用SSE传输。

使用Docker

docker build -t sap-hana-mcp .
docker run -p 8000:8000 --env-file .env sap-hana-mcp

MCP工具

sap_hana_get_tables

列出SAP HANA实例中可用的表。返回包含列的CSV: Schema, Table, Description.

参数 类型 必填 说明
catalog string 否 目录名称筛选器
schema string 否 架构名称筛选器(默认为 HANA_SCHEMA)

sap_hana_get_columns

列出特定表的列。返回包含列的CSV: Schema, Table, Column, DataType, Remarks.

参数 类型 必填 说明
table string 是 表名
catalog string 否 目录名称筛选器
schema string 否 架构名称筛选器(默认为 HANA_SCHEMA)

sap_hana_run_query

执行SQL SELECT语句。以CSV格式返回结果。SQL方言基于SQL-92。标识符应使用双引号括起来。

参数 类型 必填 说明
sql string Yes 要执行的SELECT语句

sap_hana_lookup_table_info

从以下位置查找SAP表和字段描述 leanx.eu。当SAP HANA系统目录中没有表和列的注释或描述时非常有用。不需要数据库身份验证。

参数 类型 必填 说明
table string Yes SAP表名(例如ANLA、BKPF、MARA)

返回包含列的CSV: Field, Description, DataElement, Datatype, Length, Decimals.

MCP资源

sap_hana://tables/{schema}/{table}

以CSV格式返回给定架构和表的列元数据。

连接到AI客户端

克劳德桌面版

添加到您的 claude_desktop_config.json:

{
  "mcpServers": {
    "sap-hana": {
      "url": "http://localhost:8000/sse",
      "headers": {
        "Authorization": "Basic <base64(username:password)>"
      }
    }
  }
}

游标/其他MCP客户端

使用SSE端点 http://localhost:8000/sse 并配置 Authorization: Basic 带有SAP HANA凭据的标头。

项目结构

sap-hana-mcp-server-python/
  main.py            # MCP server with tools and resources
  requirements.txt   # Python dependencies
  .env.example       # Environment variable template
  Dockerfile         # Docker container build
  pyproject.toml     # Project metadata
  README.md          # This file

许可证

麻省理工学院