概要
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 行で、タイムアウトがあります。HANA に到達できるネットワーク内で Docker Compose により動作し、Claude、ChatGPT、Copilot、Cursor、Claude Code は MCP で接続します。
- sap_* ツール 10 個
- ロールとツール権限
- 既定で読み取り専用
- 監査ログ
HANA の 2 つの使い方
データベースコネクタ(hana://) | SAP S/4HANA (HANA SQL) コネクタ | |
|---|---|---|
| 対象 | あらゆる SAP HANA データベース | S/4HANA の基盤となる HANA データベース |
| ツール | データベースから生成されるスキーマ、例、クエリ用のツール、または独自のパラメータ化クエリ | 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 | 修飾されていない名前に使うスキーマ(例:SAPHANADB、SAPABAP1)。 |
sapClient | 3 桁の 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を 1 文実行します。
ディクショナリ用ツールは、SAP 自身のテーブル(DD02L、DD03L、DD04T、DD07T、DD08L、DDHEADANNO、DDFIELDANNO)に対する固定の読み取り専用クエリです。すべてのツールとその SQL は、コネクタのページで確認できます。
保証
本当の境界は、引き続きデータベースの権限付与です。SQL では SAP のアプリケーション権限が適用されないため、モデルに見せてよいものだけを読めるユーザーを作成してください。サードパーティのアプリケーションから ABAP スキーマへ直接 SQL を実行できるかどうかは、HANA のライセンスによって決まります。S/4HANA に付属するランタイムライセンスでは通常認められず、フルユースライセンスなら認められます。
ドライバ
AnythingMCP には、SAP の純 JavaScript 製 HANA ドライバ hdb(Apache-2.0)が同梱されており、ユーザーとパスワード、TLS、マルチテナントシステムに対応します。SAP のネイティブドライバ @sap/hana-client は Kerberos、hdbuserstore、コネクションプーリングにも対応しますが、ライセンス上再配布できないため、自分のデプロイ環境にインストールし、driver=hana-client または HANA_DRIVER=hana-client で選択します。詳細:AnythingMCP ドキュメントの SAP HANA。
汎用 HANA MCP サーバーとの比較
汎用の HANA MCP サーバーは、スキーマを一覧表示して 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 ポートに到達できるホストで AnythingMCP を Docker Compose により起動し、そのホストを SSRF_ALLOWED_HOSTS に追加します。次に、読み取り専用のデータベースユーザーで SAP S/4HANA (HANA SQL) コネクタをインストールし、MCP サーバーをクライアントに追加します。ユーザーと権限付与用の SQL はセットアップガイドに記載しています。
モデルが HANA に書き込むことはできますか?
いいえ。セッションは HANA 側で読み取り専用で、実行されるのは SELECT 1 文だけです。書き込みとロックを伴う読み取りは拒否されます。
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 に:SQL Server、PostgreSQL、Oracle と並ぶ HANA
このガイドは役に立ちましたか?