摘要
面向 Claude、ChatGPT 和 Copilot 的开源 SAP HANA MCP 服务器:以 SAP 数据字典和 CDS 视图作为工具,只读 SQL,通过 Docker 自托管。
试试这样问
SAP S/4HANA (HANA SQL) 的示例提示
点击任意提示即可复制,然后粘贴到 Claude、ChatGPT、Cursor、Gemini、Copilot 或 OpenClaw 中,在该连接器上运行。
Claude 是 AI,可能会出错。请核对回答。
摘要: AnythingMCP 是一个可读取 SAP HANA 的开源 MCP 服务器。任何 HANA 数据库都可以作为普通数据库连接器使用;针对 SAP S/4HANA,还有一个专用连接器,它将 SAP 自身的数据字典和 CDS 视图转换为工具,让模型在编写 SQL 之前就知道 BUKRS、HSL 或 VBRK 的含义。每个会话在 HANA 内部即为只读,最多返回 1,000 行,并有超时限制。它通过 Docker Compose 在能访问 HANA 的网络内运行,Claude、ChatGPT、Copilot、Cursor 和 Claude Code 通过 MCP 连接到它。
- 10 个 sap_* 工具
- 角色与工具权限
- 默认只读
- 审计日志
使用 HANA 的两种方式
数据库连接器(hana://) | SAP S/4HANA (HANA SQL) 连接器 | |
|---|---|---|
| 适用于 | 任何 SAP HANA 数据库 | S/4HANA 底层的 HANA 数据库 |
| 工具 | 根据数据库生成的 schema、示例和查询工具,或您自己的参数化查询 | 10 个现成工具:sap_guide、SAP 数据字典、CDS 视图、组织结构、sap_query |
| 模型看到的内容 | 表名和列名 | SAP 的业务标签、货币字段、代码值、关联、已发布视图 |
| 设置 | 连接字符串和一个用户 | 连接信息、一个只读用户,以及设置指南中的授权 |
快速开始
在一台能访问 HANA SQL 端口的主机上:
mkdir anythingmcp && cd anythingmcp
curl -fsSLo docker-compose.yml \
https://raw.githubusercontent.com/HelpCode-ai/anythingmcp/main/docker-compose.quickstart.yml
printf 'JWT_SECRET=%s\nENCRYPTION_KEY=%s\n' "$(openssl rand -hex 32)" "$(openssl rand -hex 32)" > .env
echo 'SSRF_ALLOWED_HOSTS=hana.internal' >> .env # 否则私有主机会被拒绝
docker compose up -d # → http://localhost:3000
然后选择 Connectors → Marketplace → SAP S/4HANA (HANA SQL);对于其他 HANA 数据库,使用 Add Connector → Database 并填写 hana:// 连接字符串。sap-hana-mcp-server 仓库打包了同一个连接器,并附带安装脚本和冒烟测试。
连接字符串
hana://host:port/?databaseName=TENANT¤tSchema=SCHEMA&sapClient=100&tls=verify
| 选项 | 含义 |
|---|---|
| host, port | 租户数据库的 SQL 端口:第一个租户为 3<instance>15,其他租户为 3<instance>41 及以上。系统数据库端口 3<instance>13 配合 databaseName 也可使用,但可能会重定向到内部主机名。 |
databaseName | 多容器系统中的租户名称。也可以写在路径中:hana://host:30013/S4P。 |
currentSchema | 未限定名称所使用的 schema,例如 SAPHANADB 或 SAPABAP1。 |
sapClient | 三位数的 SAP 集团编号。它会设置会话变量 CDS_CLIENT,没有它,SAP 的 CDS 视图不会返回任何行。 |
tls | verify(默认);自签名证书使用 no-verify;或 off。 |
statementTimeout | 语句被取消前的秒数。默认 60,最大 600。 |
driver | hdb(默认,内置)或 hana-client。 |
用户名和密码填写在连接器的凭据中并加密存储,绝不写入 URL。
Claude 如何找到数据
sap_guide按主题讲解面向 SQL 的 SAP 数据模型:基础、财务、销售、库存、采购、运营、常见陷阱和查询范例。sap_org_structure限定问题范围:公司代码及其货币和会计年度变式、工厂、销售组织和采购组织。sap_search_cds_views和sap_search_tables查找数据所在位置,并标记普通 SQL 会读错的兼容视图。sap_describe_table、sap_find_fields、sap_field_values和sap_table_relations提供标签、货币字段、代码含义和关联。sap_query执行一条只读SELECT。
数据字典工具是针对 SAP 自身表(DD02L、DD03L、DD04T、DD07T、DD08L、DDHEADANNO、DDFIELDANNO)的固定只读查询。每个工具及其 SQL 都可以在连接器页面上查看。
保障
数据库授权仍是真正的边界:SQL 不会应用 SAP 的应用层权限,因此请创建一个只能读取模型可见内容的用户。第三方应用直接通过 SQL 访问 ABAP schema 受您的 HANA 许可约束:随 S/4HANA 捆绑的运行时许可通常不涵盖这种访问,完全使用许可则涵盖。
驱动
AnythingMCP 内置 hdb,即 SAP 的纯 JavaScript HANA 驱动(Apache-2.0):支持用户名和密码、TLS、多租户系统。SAP 的原生驱动 @sap/hana-client 额外支持 Kerberos、hdbuserstore 和连接池,但其许可不允许再分发,因此需要您自行安装到自己的部署中,并通过 driver=hana-client 或 HANA_DRIVER=hana-client 选择它。详情:AnythingMCP 文档中的 SAP HANA。
与通用 HANA MCP 服务器的比较
通用 HANA MCP 服务器会列出 schema 并执行 SQL。在 S/4HANA 系统上,这远远不够:模型看到的是数万张名称缩写的表、缺少货币字段的金额,以及会返回错误合计的兼容视图。S/4HANA 连接器增加了 SAP 数据字典、CDS 视图和数据模型指南,让模型选对表并说明其假设。它还可以在任何 MCP 客户端中使用,并提供角色、审计日志和上述只读保障。
FAQ
有 SAP MCP 服务器吗? 有。AnythingMCP 包含用于 SAP S/4HANA(HANA SQL 和 OData)、S/4HANA Cloud、SAP Business One 和 SAP Concur 的 MCP 连接器,开源且自托管。本页介绍 HANA 连接器;将 SAP 连接到 Claude列出了全部连接器。
如何开始使用 HANA MCP 服务器?
在能访问 HANA SQL 端口的主机上用 Docker Compose 运行 AnythingMCP,将该主机添加到 SSRF_ALLOWED_HOSTS,使用只读数据库用户安装 SAP S/4HANA (HANA SQL) 连接器,再将 MCP 服务器添加到您的客户端。设置指南提供了创建用户及授权的 SQL。
模型能写入 HANA 吗?
不能。会话在 HANA 中是只读的,只执行单条 SELECT,写入和加锁读取都会被拒绝。
支持 SAP ECC 或 Business One 吗? 这个连接器不支持:它读取的是 S/4HANA 的表和 CDS 视图。ECC 通过其 SAP Gateway 的 OData 服务连接,Business One 通过其 Service Layer 连接。
哪些 MCP 客户端可以使用? Claude(claude.ai、Desktop 和 Code)、ChatGPT(付费套餐)、GitHub Copilot、Cursor,以及任何通过 HTTP 使用 MCP 的客户端。
下一步
- 通过 SAP HANA 将 SAP S/4HANA 连接到 Claude:分步设置,附示例问题
- 将 SAP 连接到 Claude:所有 SAP 接入方式一览
- OData 转 MCP:通过 SAP Gateway 访问 S/4HANA 和 ECC
- 数据库转 MCP:HANA 与 SQL Server、PostgreSQL 和 Oracle 并列
这份指南对你有帮助吗?