使用说明
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
许可证
麻省理工学院