ABAPilot について
ABAPilotは、AIコーディングクライアントとSAP ECCおよびオンプレミスのS/4HANAをつなぐABAP開発用MCPコネクターです。ソースやディクショナリー情報の参照、構文チェックなどを提供し、SAP接続には別途ライセンス付きバックエンドが必要です。
主な機能
- 01ABAPソースとディクショナリー情報の参照
- 02ABAP構文チェック
- 03SAPデータとメタデータの検索
- 04ダンプ、ログ、ジョブの確認
- 05クライアントに表示するツールの絞り込み
活用シーン
- 01既存ABAPプログラムと依存関係の把握
- 02変更案の構文エラー確認
- 03SAPテーブル構造とデータの調査
- 04SAPダンプとシステムログの調査
MCP 対応
コネクターはSAP外部で動作し、ライセンス付きのSAP側バックエンドを介してMCP対応クライアントにツールを提供します。利用可能な操作は、コネクターのバージョン、バックエンド、稼働中のエンドポイントによって異なります。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y abapilotABAPILOT_URLURL of the ABAPilot SICF endpoint in your SAP system, e.g. https://sap-host:8443/sap/bc/abapilotABAPILOT_USERSAP user for basic authenticationABAPILOT_PASSWORDシークレットSAP password for basic authenticationABAPILOT_TOKENシークレットBearer token, alternative to basic authenticationABAPILOT_CLIENTSAP client number, e.g. 100ABAPILOT_TOOLSComma-separated allowlist of tool names to expose to the client. Optional; default is the full catalog.ABAPILOT_TLS_INSECURESet to 1 to skip TLS certificate verification (development systems only)ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
49掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| query | string | はい | 自然言語クエリ(例:'top 10 customers by sales in 2024') |
| fetch_metadata | boolean | いいえ | true の場合、特定されたテーブルのフィールドメタデータも取得して分類します(デフォルト:true) |
詳細
ABAPilot — SAP ECC および S/4HANA での ABAP 開発向け MCP コネクター
Crimson Consulting の ABAPilot は、AI コーディングアシスタントを SAP ECC およびオンプレミスの S/4HANA に接続します。SAP のソースコードとディクショナリーのコンテキストを使って既存の ABAP を理解し、変更案をレビューして、お好みの MCP 対応コーディングクライアントでの開発を支援します。
コネクターは無料で、MIT ライセンスです。SAP に接続するには、システムにライセンス済みの ABAPilot バックエンドをインストールする必要があります。
確認可能なエビデンス
- 4 つのインストール環境での運用チェック、2026 年 9 月 9 日:2 つの ECC と 2 つの S/4HANA のインストール環境で、ディクショナリーの読み取り、コンポーネントの読み取り、ディスパッチャーのソース読み取り、および肯定/否定の構文チェックに合格しました。書き込み、アクティベーション、移送、認可の境界、または本番環境への適合性はテストしていません。
- 公開されている MIT ライセンスの ABAP REST フレームワーク:テーブル駆動型のエンドポイントレジストリー、ディスパッチャー、ハンドラーの例を確認できます。このフレームワークはライセンス済みの ABAPilot バックエンドとは別のものであり、確認済みのインストール環境で同一の公開コミットが実行されていることを示す証拠ではありません。
- 公開済み MCP カタログ:npm 1.0.6 コネクターは 49 個のツールを公開しています。カタログでの検出は、特定の SAP インストール環境ですべての操作が動作することを示す証拠ではありません。
既存の ABAP プログラムから始める
SAP から取得したソースとディクショナリー定義を使って、プログラムを説明するようアシスタントに依頼してください。変更案に進む前に、アシスタントが使用した参照を確認してください。利用できる操作は、コネクターのバージョン、インストール済みバックエンド、有効化されているエンドポイントによって異なります。
アーキテクチャと前提条件
MCP コネクターは SAP の外部で実行され、ライセンス済みの SAP 側バックエンドを呼び出します。顧客環境で試用する前に、SAP チームと SAP リリース、バックエンドのバージョン、HTTPS エンドポイント、個々のユーザー権限、および許可する操作について合意してください。
npx -y abapilot を使ってコネクターを起動します。このコマンドでは SAP バックエンドはインストールされません。クライアント固有の設定とシークレットの取り扱いについては、リンク先のセットアップガイドに従ってください。チームで再現可能な展開を行うには、レビュー済みのコネクターのバージョンを固定してください。
技術リファレンス:アーキテクチャ
ツール
現在のリポジトリーカタログには 49 個のツールが掲載されています。利用可否は、インストール済みのコネクター、バックエンドのバージョン、および有効化されているエンドポイントによって異なります。
ビジネスデータ
sap_read_table_data— 任意の WHERE 句によるフィルタリングとメタデータの取得を含め、SAP テーブルの実データを読み取りますsap_read_table_data_enhanced— 任意の WHERE 句によるフィルタリングを指定して、SAP テーブルのデータをクエリしますsap_read_table_paginated— 大規模な結果セットに対応するページネーションを使ってテーブルデータを読み取りますsap_stream_table_data— オフセットベースのページネーションを使って、大量のテーブルデータをストリーミングしますsap_smart_table_query— メタデータに基づく拡張を自動的に適用して、テーブルクエリを実行しますsap_multi_table_query— 適切な結合と任意の集計を使って、複数テーブルのクエリを実行しますsap_count_rows— データを取得する前に、テーブルの行数を推定しますsap_analyze_query— 自然言語のクエリを分析し、SAP クエリの構築に役立つインテリジェントなガイダンスを返しますsap_search_tables— キーワードに一致するテーブルをデータディクショナリーで検索します
データディクショナリーとメタデータ
sap_read_table_structure— フィールド定義、データ型、キー、説明など、データディクショナリテーブルのメタデータを取得しますsap_read_object_details— SAP リポジトリまたは DDIC オブジェクトの詳細情報を取得しますsap_read_object_info— 作成日、最終変更日、作成者、パッケージなど、ABAP オブジェクトのメタデータを取得しますsap_check_type_exists— SAP データディクショナリに型が存在するかを確認し、その種別を返しますsap_read_domain_values— ドメインに定義された固定値を取得しますsap_read_field_domain_values— 特定のテーブルフィールドに対するドメインの固定値を取得しますsap_read_foreign_keys— データディクショナリ(DD08L)からテーブルの外部キー関係を読み取りますsap_infer_joins— ドメインの一致に基づいて、2つのテーブル間の結合キーを自動的に検出しますsap_get_field_metadata— 意味的な分類を含む、SAP テーブルフィールドの拡充されたメタデータを取得しますsap_list_package_objects— 開発パッケージ(DEVCLASS)内のすべての ABAP リポジトリオブジェクトを一覧表示します
ABAP コード
sap_read_code— ABAP オブジェクト(プログラム、クラス、または関数グループ)のソースコードを取得しますsap_read_includes— プログラムのすべてのインクルードファイルとそのソースコードを取得しますsap_read_dynpros— フィールド一覧を含む、プログラムの画面定義を取得しますsap_read_texts— プログラムのテキスト要素(選択テキスト、テキストシンボル)を取得しますsap_read_where_used— SAP の相互参照テーブル(WBCROSSGT/WBCROSSI)を検索し、指定したオブジェクトを使用しているオブジェクト(順方向)、または指定したオブジェクトが使用しているオブジェクト(逆方向)を見つけますsap_get_enhancements— 1回の呼び出しで、SAP トランザクションまたはプログラムのすべての拡張を一覧表示しますsap_syntax_check— ABAP ソースコードを作成または有効化せずに、構文エラーがないか検証しますsap_write_code— ソースコード書き込みリクエストを転送します。オブジェクトのサポート、検証、有効化は、インストールされているバックエンドによって異なりますsap_write_code_safe— リクエストをバックエンドに転送します。セーフガードはパブリック Node コネクタに実装されておらず、入力スキーマも不完全ですsap_patch_code— ソースコードのパッチ適用リクエストを転送します。サポートされるパッチ引数と検証は、バックエンドによって異なります
運用とトラブルシューティング
sap_read_dumps— SAP の ST22 トランザクションから ABAP ランタイムエラー(ショートダンプ)を照会しますsap_read_dump_details— 完全なエラーテキスト、原因、解決策など、特定のショートダンプの詳細情報を取得しますsap_read_syslog— SAP の SM21 トランザクションからシステムログエントリを照会しますsap_read_jobs— SAP の SM37 トランザクションからバックグラウンドジョブ情報を照会しますsap_run_program— レポートの実行をリクエストします。出力はバックエンドによって異なり、このコネクタにはタイムアウトやバックグラウンドジョブへのフォールバックは実装されていませんsap_run_transaction— レポートトランザクションコードに対応する ABAP レポートを実行します。必要に応じて選択画面のバリアントを指定し、リスト出力を返しますsap_save_variant— レポート用の ABAP 選択画面 VARIANT を作成または上書きし、sap_run_program(およびパフォーマンストレース/ヘッドレス…sap_read_user_locks— USR02 テーブルからユーザーロックの状態を照会しますsap_diagnose_message— SAP のエラー/警告/情報メッセージをエンドツーエンドで診断しますsap_lookup_t100— メッセージクラスと番号を指定して、特定の SAP T100 メッセージを検索しますsap_lookup_error— 利用可能なすべての外部ナレッジソースを使って、SAP のエラーメッセージを分析します
監査とコンプライアンス
sap_read_change_docs— CDHDR/CDPOS テーブルから変更文書を照会しますsap_read_change_docs_v2— 関数モジュールを使用した最適化済みの変更文書クエリですsap_discover_change_object— TCDOB を照会して、テーブルの変更文書 OBJECTCLAS を見つけますsap_scan_security_notes— SAP のパッチデー対象月の ABAP Security/HotNews ノートを検出し、このシステムとの関連性に基づいて順位付けしますsap_check_notes_relevancy— 1つ以上の SAP Note 番号について、このシステムとの関連性(コンポーネント/SP レベル、ダウンロード状態、実装準備状況)を確認します
翻訳
sap_read_translations— SAP オブジェクトから翻訳可能なテキストをソース言語と、必要に応じてターゲット言語で読み取りますsap_write_translations— 翻訳済みテキストを SAP オブジェクトに書き戻しますsap_translate— 複合ツール:SAP オブジェクトから翻訳可能なテキストを読み取り、AI を使用して翻訳し、必要に応じて書き戻します
ナレッジ
sap_search_knowledge— SAP に関するあらゆるトピックについて、SAP のドキュメントやコミュニティを検索します
カタログは 2 か所で制御されています。システムでは、/ABAPILOT/CONFIG(または /TSRA/CONFIG)エンドポイントレジストリによって有効なエンドポイントが決まります。エンドポイントを 1 つ無効にすると、クライアントを変更せずにツールが動作しなくなります。クライアント側では、ABAPILOT_TOOLS によって各 MCP クライアントに表示されるツールを絞り込みます。
"env": { "ABAPILOT_TOOLS": "sap_read_table_data,sap_read_code,sap_syntax_check" }
ライセンス対象のバックエンドでは、この公開カタログに含まれない操作が公開される場合があります。トライアルの前に、必要な機能について合意し、導入済みバージョンで動作を確認してください。
検証とデータの取り扱い
公開コネクターでは、ソースおよび辞書の読み取り、構文チェック、書き込みエンドポイントが提供されます。検証やデプロイの安全対策は、インストールされているバックエンドによって異なります。すべての書き込みで構文チェックが行われるとは限りません。導入済みバージョンで、有効なエンドポイント、検証の動作、認可エラー、ログの帰属先を確認してください。
選択した AI クライアントとモデルプロバイダーが、どの SAP コンテキストを受け取るか確認してください。独自の API キーを使用しても、それだけでローカル処理や特定のデータ保持ポリシーが保証されるわけではありません。
ワークフローを評価する
2026 年 9 月の解説では、Claude Code、ABAPilot、ライフサイクルスキルを使用し、既存の品目説明レポートのサンドボックスコピーを変更した後、技術仕様書とテストシナリオを更新します。長さと無効な文字のチェックは独立して実行されます。また、正規表現キャッシュの回帰テストでは、パターンを変更したときに古い式が再利用されないことを確認します。
最後に記録された ABAP Unit の実行では、14 個のテストメソッドが合格しました。シナリオ文書では、16 シナリオ中 15 件の合格が記録されています。内訳は、14 件のユニットテストシナリオとドキュメントレビューで、レポートの手動統合テストは実施されていません。品目選択、SALV のレンダリング、MM03 のナビゲーション、データ選択前の実行時終了は、ユニットテストでは検証されていません。元のレポートと品目マスターデータは変更されていません。これは構成済みのサンドボックス環境 1 つでの事例であり、本番環境への対応可否を示すものでも、すべての SAP リリースで同一のサポートを保証するものでもありません。
技術事例には、スクリーンショットとカバレッジの範囲が掲載されています。以前の 4 分間の作成デモもご覧いただけます。
収録デモでは、サンドボックスでのワークフローを 1 つ紹介しています。ライブデモでは、お客様のトライアルについて合意する前に、お客様のシステム、IDE、要件についてご相談いただけます。日時を選択してください。
関連資料
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。