abap-mcp について
abap-mcpは、SAP ABAP・RAPのソースコードを扱う決定論的なツールをコーディングエージェントに提供する、ローカル優先のMCPサーバーです。SAPシステムや認証情報なしで、Lint、修正、Cloud対応度評価、移行計画、コード生成を行えます。
主な機能
- 01ABAPのLintとルール指摘の説明
- 02ソースコードの決定論的な修正
- 03ABAP Cloud対応度の評価と移行計画
- 04リリース済みAPIとオブジェクト依存関係の確認
- 05RAPビジネスオブジェクトとABAP Unitテストの生成
- 06コード変更の比較とクラス構造の表示
活用シーン
- 01SAPシステムに反映する前のABAP変更レビュー
- 02リポジトリのABAP Cloud対応度の評価
- 03段階的なCloud移行バックログの作成
- 04検証済みRAPビジネスオブジェクトのひな型生成
MCP 対応
ABAPの分析・生成ツールとガイド付きワークフロープロンプトをMCPクライアントに公開します。既定ではstdioでローカル実行し、オプションで保護されたHTTP版も利用できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
18掲載時のツール一覧 · 4 日前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| files | array | はい | 解析するソースファイル。1 回の呼び出しにつき最大 32 個、各ファイル最大 100k 文字。 |
| focus | enum | いいえ | 厳選されたルールパックの観点:この abaplint タグが付いたルールのみを報告します。"Performance" はパフォーマンス調整、"Security" はセキュリティ確認、"Styleguide" は Clean ABAP への準拠を確認します。パーサーエラーは常に報告されます。プリセット "syntax-only" では無視されます。rules と組み合わせて、パック内の個々のルールを再調整できます。Performance | Security | Styleguide |
| rules | object | いいえ | プリセット(およびフォーカスフィルター)に統合する abaplint ルールの上書きです。例:{ "line_length": { "length": 120 }, "7bit_ascii": false }。組織のベストプラクティスルールパックをここで指定します。 |
| preset | enum | いいえ | "style"(デフォルト):abaplint のデフォルトルールからプログラム全体の意味チェックを除いたもの。単独のコード断片に適しています。"full":すべてのデフォルトルールを適用し、参照されるすべてのオブジェクトの指定が必要です。"syntax-only":パーサーエラーのみ。style | full | syntax-only |
| rapCheck | boolean | いいえ | 呼び出しに .bdef.asbdef または .srvd.srvdsrv ファイルが含まれる場合、abap-mcp 独自の RAP 動作/サービス定義チェッカーも実行し、検出結果を "rap/RAP026" 形式の名前空間付きルールキーで統合します。デフォルトは true です。abaplint はこれらのファイル形式に対して結果をまったく返しません。abaplint のみの出力にするには false を設定します(例:バージョン間の検出数を比較する CI)。 |
| abapVersion | enum | いいえ | 解析に使用する ABAP 言語バージョンです。"v758"(デフォルト)は現在のオンプレミス版、"Cloud" は ABAP Cloud / Steampunk です。Cloud | v750 | v751 | v752 | v753 | v754 | v755 | v756 | v757 | v758 |
詳細
abap-mcp
AI コーディングエージェントを、SAP ABAP と RAP のエキスパートコンサルタントにしましょう。デフォルトでローカル動作します。SAP システムも認証情報も不要で、コマンド 1 つでインストールできます。
abap-mcp は、あらゆる AI コーディングエージェント(Claude Code、GitHub Copilot、Cursor、Codex、Windsurf)に、abaplint(オープンソースの ABAP パーサー/リンター)を基盤とする ABAP の実践的な知見を提供する Model Context Protocol サーバーです。エージェントが推論を担い、abap-mcp は信頼できる事実を提供します。決定論的なパーサー、客観的なスコア、AI の誤りを防ぐ検証済みジェネレーターです。エージェントが作業する場所であればどこでも ABAP ソースに対応します。git チェックアウト、abapGit エクスポート、コードレビュー、CI など、システムに到達するずっと前から利用できます。
- ABAP または RAP は初めてですか? エージェントが、あなたの作業を見守るシニアコンサルタントになります。作成中のコードスニペットはすべて Clean ABAP に照らして lint され(
lint_abap)、検出結果は根拠と例を添えて説明され(explain_abap_rule)、scaffold_rap_boを使えば、空のエディターではなく、標準的な自己検証済み RAP ビジネスオブジェクトから始められます。 - シニア ABAP コンサルタントですか? 評価とタスク管理のエンジンとして活用できます。エージェントにリポジトリを指定すると、A~D の技術的負債グレード付きで、スコアとカテゴリ別の ABAP Cloud 対応状況レポート(
check_cloud_readiness)、作業量と完了基準を含む段階的な移行バックログ(plan_cloud_migration)、各リファクタリングの客観的な変更前後の評価(compare_abap)、リリース済み API への置き換え案(check_released_api)を取得できます。移行の進行中に方針を守る CI ゲートも利用できます。
デフォルトの stdio 版は 100% ローカルで動作します。分析エンジンはネットワーク呼び出しを一切行わず、ユーザーファイルも読み取りません。ソースはテキストとして入力し、構造化された検出結果を受け取ります。リリース済み API の一覧と abaplint のルールデータはパッケージに同梱されています。オプションの保護機能付き Streamable HTTP 版では、ChatGPT web などのリモートクライアントから同じツールを利用できます。このモードでは、ソーステキストがホストしているマシンに送信されます。プライバシーとデータの取り扱いをご覧ください。
このツールが作られた理由
他の ABAP MCP サーバーは、稼働中の SAP システムへのブリッジ(ADT/RFC。認証情報、システム、信頼が必要)か、ドキュメント検索のいずれかです。しかし、AI コーディングエージェントがほとんどの時間を過ごすのは、ファイルがある場所です。abapGit リポジトリの編集、差分のレビュー、コード生成など、システムに到達するずっと前から作業しています。このサーバーは、その段階でエージェントに欠けていたフィードバックループを提供します。
- 「この ABAP は構文解析できますか?クリーンですか?パフォーマンスはどうですか?」 →
lint_abap(フォーカスパックも利用可能) - 「このブロックを自動修正してください。大文字・小文字や古い構文などです。」 →
fix_abap(決定論的で、パーサーにより保証) - 「このクラシックレポートは ABAP Cloud からどれくらい離れていますか?評価してください。」 →
check_cloud_readiness(A~D) - 「移行を計画してください。まず何に取り組みますか?」 →
plan_cloud_migration(段階的なバックログ) - 「このクラスにはテストがありません。テスト用のひな型を作成してください。」 →
scaffold_abap_unit(デフォルトでは失敗する構成) - 「何が何に依存していますか?どのオブジェクトから移行しますか?」 →
get_object_dependencies(Mermaid も利用可能) - 「このリファクタリングでコードは良くなりましたか、それとも悪くなりましたか?」 →
compare_abap - 「MARA はリリース済み API ですか?代わりに何を使えばよいですか?」 →
check_released_api - 「正しい RAP ビジネスオブジェクトを作成してください。」 →
scaffold_rap_bo - 「この 4,000 行のクラスには何がありますか?図にしてください。」 →
get_abap_outline(Mermaid も利用可能)
インストール — 60 秒
必要なのは Node.js 22+ だけです。SAP システムも、認証情報も、 API キーも必要ありません。AI ツール(または ABAP)は初めてですか? ゼロから始める手順は docs/INSTALL.md をご覧ください。または、インストーラーに任せることもできます。
npx abap-mcp setup # detects VS Code / Claude Code and registers the server; guides Eclipse
それ以外の場合は、クライアントを選択してください。
Codex CLI · Codex IDE 拡張機能 · ChatGPT デスクトップアプリ — 1 つのコマンドで、同じ Codex ホスト上の 3 つすべてを設定できます。
codex mcp add abap-mcp -- npx -y abap-mcp
ChatGPT デスクトップアプリまたは IDE 拡張機能を再起動し、/mcp を使って abap-mcp が接続されていることを確認してください。
ChatGPT デスクトップアプリでは、代わりに Settings → MCP servers → Add server を開き、
STDIO を選択して、コマンドに npx、引数に -y abap-mcp を入力することもできます。
Codex プラグイン(MCP サーバー + レビュー/メンター/移行スキル)
codex plugin marketplace add palimkarakshay/abap-mcp
codex plugin add abap-mcp@abap-mcp
ChatGPT ウェブ版では、ローカルの npx プロセスを起動できません。デプロイ済みの HTTPS /mcp エンドポイント、または
セキュアな開発用トンネルが必要です。このリポジトリには HTTP エントリーポイントとセキュリティ強化機能が含まれていますが、
公開サービスは運用していません。OpenAI セットアップおよびセルフホスティングガイドをご覧ください。
Claude Code
claude mcp add abap-mcp -- npx -y abap-mcp
VS Code(Copilot エージェントモード) — 上にある Install in VS Code バッジをワンクリックするか、次のコマンドを実行します。
code --add-mcp '{"name":"abap-mcp","command":"npx","args":["-y","abap-mcp"]}'
チーム全体で利用する場合は、examples/vscode/mcp.json を abapGit リポジトリ内の .vscode/mcp.json
としてコミットしてください。フォルダーを開いた全員に、サーバーが自動的に提示されます。
Eclipse(GitHub Copilot プラグイン経由) — Eclipse の Copilot Chat は MCP に対応しています。Copilot メニューを開き、
Edit preferences → MCP の順に選択して、同じ "abap-mcp" サーバーブロックを追加します
(コマンド npx、引数 ["-y", "abap-mcp"])。手順と前提条件:
GitHub の MCP ドキュメント、Eclipse タブ。
Copilot を搭載していない標準の ADT には、現時点で MCP クライアントがありません。
Cursor · Windsurf · その他の MCP クライアント — mcp.json / .mcp.json(プロジェクトまたはグローバル)の設定に
次の内容を追加します。
{
"mcpServers": {
"abap-mcp": { "command": "npx", "args": ["-y", "abap-mcp"] }
}
}
Claude Desktop — Settings → Developer → Edit Config の順に開き、同じ mcpServers ブロックを
claude_desktop_config.json に追加して、再起動します。
クローンから(コントリビュート/開発作業):
npm install && npm run build
claude mcp add abap-mcp -- node /path/to/abap-mcp/dist/cli.js
接続できましたか? エージェントに 「ABAP ツールを一覧表示して」 と尋ねてください。デフォルトでは、
lint_abap から check_rap_behavior までの 18 個に加えて、
ABAP_MCP_ENABLE_RUN=1 を設定するとオプトインの run_abap_unit が表示されます。
最初に試す質問
- 「この機能仕様をもとに、RAP の実装を作成して。」(または
/mcp__abap-mcp__abap-from-specを実行) - 「このクラスを ABAP Cloud に照らして lint し、ABAP 初心者にも分かるように最も重大な指摘を説明して。」
- 「このリポジトリのクラウド対応度はどのくらい?評価して、段階的な移行計画を立てて。」
- 「MARA はリリース済み API?代わりに何を使えばいい?」
- 「テーブル zbooking 上に、ドラフト有効のエンティティ Booking 用 RAP BO のひな形を作成して。」
- 「zcl_pricing を作り直した。旧版と新版を比較して、実際に改善したか確認して。」
組み込みのガイド付きワークフロー(MCP プロンプト)
コンサルタントのプレイブックには、4 つの MCP プロンプトと 4 つの Codex プラグインスキルが含まれています。Claude Code では、プロンプトはスラッシュコマンド(/mcp__abap-mcp__…)として表示されます。プロンプトに対応したクライアントではネイティブに一覧表示され、Codex プラグインでは対応するスキルが検出されます。
| プロンプト | 準備する内容 |
|---|---|
abap-from-spec | 白紙から始める苦労を解消します。 機能仕様/技術仕様、または平易な言葉で書かれた要件を渡すと、エージェントが動作確認済みのモダンな ABAP/RAP を構築します。仕様 → ASSUMPTION レジスターを含むビルド計画 → 決定論的な scaffold_rap_bo の基盤 → ビヘイビアロジック → すべてのファイルがクリーンになるまで fix_abap と lint_abap で検証 → ユニットテストの作成 → 有効化順での納品、という流れです。lint を通過していないものが納品されることはありません。 |
abap-review | シニアコンサルタントによる包括的なコードレビューです。lint → トリアージ → 各指摘の 理由 の説明 → 最小限の修正 → compare_abap による修正の検証を行います。任意の focus(Performance / Security / Styleguide)を指定できます。 |
abap-mentor | セッションの残りの間、肩越しに支援するメンタリングモードです。すべてのコードスニペットを目立たない形で lint し、準備状況を確認します。指摘事項は平易な言葉でのガイダンスになり、新しいオブジェクトは検証済みのスキャフォールドから始まります。 |
abap-migration-plan | plan_cloud_migration を使って、クライアントに提示できる段階的な移行計画を作成します。現状、S/M/L の工数と完了基準を含むフェーズ、分離されたリリース済み API の作業をまとめたうえで、フェーズ 1 の実行を提案します。 |
CLI — 同じエンジンを AI なしで利用
すべてのツールはサブコマンドとしても利用できるため、MCP クライアントがないターミナルや CI でも動作します。
npx abap-mcp lint src/ # lint files or whole directories
npx abap-mcp fix src/ --write # apply abaplint's deterministic auto-fixes in place
npx abap-mcp lint src/ --focus Performance # themed pass: Performance | Security | Styleguide
npx abap-mcp lint src/ --rules-file org.json # your org's abaplint rule pack, same engine
npx abap-mcp readiness src/ --fail-below 80 # repo-level ABAP Cloud readiness, scored + graded A–D
npx abap-mcp plan src/ # phased migration backlog: work items, S/M/L efforts, exit criteria
npx abap-mcp unittest src/ --out tests/ # failing-by-default ABAP Unit skeletons for untested classes
npx abap-mcp deps src/ --mermaid # dependency graph (+released-API flags) as a Mermaid diagram
npx abap-mcp compare old/ new/ # rework verdict: findings resolved/introduced, grade movement
npx abap-mcp scaffold --entity Travel --table ztravel --key travel_id --out ./out
npx abap-mcp outline src/zcl_monster.clas.abap # navigate big objects (--mermaid for a diagram)
npx abap-mcp released MARA I_Product --edition btp # released-API status + successor, per edition (s4hc|btp|pce)
npx abap-mcp explain exit_or_check # rule rationale
npx abap-mcp release --since 2605 rap # bundled ABAP Cloud/RAP release-delta knowledge (dated, sourced)
npx abap-mcp knowledge "clean core level C" # search the bundled SAP knowledge base (Clean Core, ATC, SAP-AI)
npx abap-mcp aisdk --scenario ZDEMO_AI --interaction string --out ./out # scaffold a Generative AI Hub call
npx abap-mcp agent-rules --target Cloud --paired sap-adt-mcp --run # print the AGENTS.md rules block
npx abap-mcp rapcheck src/ --release 2508 # check RAP behavior/service definitions (BDEF/SRVD); exit 1 on errors
npx abap-mcp unittest --run src/ # EXECUTE ABAP Unit tests offline (open-abap kernel, no DB/CDS/EML); exit 1 on failure
ディレクトリは再帰的に走査され(abapGit の命名規則に対応)、自動的にバッチ処理されます。readiness はバッチを 1 つのスコア付きカテゴリ別リポジトリレポートに統合します。終了コードは CI で扱いやすい形式です(エラー指摘またはしきい値未達の場合は 1)。
エージェント型ワークフロー、レシピ、CI
docs/examples/abap2xlsx-assessment.md — 実際の有名なオープンソースリポジトリで、この機能がどのような結果を生み出すかを紹介します(100 ファイル、3 つのコマンド、システム不要)。
docs/COOKBOOK.md — 実践的なレシピを紹介します。クリーンになるまで修正するループ、移送なしでの PR レビュー、リポジトリ全体の移行トリアージ、CI ゲート、ペルソナ別のユースケースを扱います。
examples/claude-code/ — ツールを肩越しに支援するコンサルタント役にする、すぐに使えるエージェント型ワークフローです。abap-code-reviewer サブエージェント、準備状況スコアをループ条件にする abap-cloud-migrator の一括処理ループ、評価結果を A〜D で示すクライアント向け成果物を作成する abap-tech-debt-assessor、リポジトリごとの .mcp.json、abapGit リポジトリ向けの GitHub Actions 品質ゲートが含まれています。
エージェント型ループ
エージェントが、何かがシステムに送られる前に実行できる、完全なオフラインループです。
- スキャフォールド — 空のエディターから始める代わりに、
scaffold_rap_bo、scaffold_abap_unit、またはscaffold_abap_ai_sdkを使って、検証済みの開始点を用意します。 - 修正してから lint —
fix_abap(決定論的な機械処理)を実行し、指摘がゼロになるか、意識的に免除されるまでlint_abapを続けます。 - 実行 —
run_abap_unit(ABAP_MCP_ENABLE_RUN=1によるオプトイン、またはabap-mcp unittest --runにより常時実行)で ABAP Unit テストを実行し、実際の合否結果をループに返します。TH Köln の ABAP ベンチマーク(arXiv 2601.15188)では、フィードバックを重ねることで Claude Opus 4.5 のタスク成功率が 31.6% から 78.7% に上昇しました。 - 準備状況の確認 —
check_cloud_readiness/plan_cloud_migrationで結果を評価し、残作業の規模を見積もります。compare_abapで修正によるデグレードがないことを検証します。 - 引き継ぎ — SAP の公式 ADT MCP サーバーまたは
abap-adt-mcpと組み合わせて、システム内での作業(書き込み、有効化、ATC、実際の ABAP Unit 実行)を行います。関連プロジェクトを参照してください。
ツール
| ツール | 機能 |
|---|---|
lint_abap | ABAP/CDS/BDEF ソースに対する abaplint の静的解析を行い、ルールドキュメントへのリンク付きの構造化された指摘事項を返します。プリセットは style(デフォルト。スニペット向け)、full、syntax-only です。組織のルールパックに合わせてルールごとに上書きでき、テーマ別レビュー用の focus レンズ(Performance / Security / Styleguide)も指定できます。 |
check_cloud_readiness | 差分を二重解析します(従来のベースラインと Cloud)。現在は有効でも ABAP Cloud では無効な文を分類済みのブロッカー(dynpro、リスト出力、ネイティブ SQL など)として示し、透明性の高いスコアと密度に応じて段階分けされた A~D の技術的負債グレードを返します。ベースラインで既に壊れているコードは別途報告し、移行作業には算入しません。また、日付付きの別個のリリース済み API 照合結果(releasedApiFindings)も表示します。ソース内で見つかった、リリースされていない従来のテーブルへの直接アクセスや非推奨 API の使用を、CDS の後継候補とともに示します。これは参考情報であり、スコアには含まれません。 |
fix_abap | abaplint が機械的に適用できる修正を適用し、検証します。キーワードの大文字・小文字の統一や、明確な現代的置換がある古い文(MOVE → = など)が対象です。各パスの後にバッチを再解析し、解析エラーを引き起こすバッチは破棄するため、出力は推測ではなくパーサーによって保証されます。修正できない指摘事項は、判断を要する再作業用の remaining として返されます(compare_abap で検証してください)。 |
plan_cloud_migration | 準備状況に基づいてタスク管理を行います。すべてのブロッカーを、コンサルティングの順序に沿った段階的なバックログに整理します。まずベースラインの修復、次に機械的に処理できる迅速な対応、主要な再作業、UI の再設計、そしてスナップショットの日付を明記したリリース済み API の独立フェーズです。各作業項目には S/M/L の工数区分、修正手順、サンプル箇所が含まれ、各フェーズには目的と再確認可能な終了基準が含まれます。同じ準備状況の数値を並べ替えるだけで、新たな判断は加えません。 |
compare_abap | 再作業前後の評価を返します。解消された lint 指摘事項と新たに発生した指摘事項(移動したコードがノイズにならないよう、内容で照合)、ブロッカー/スコア/グレードの変化、追加または削除されたクラス/メソッド/FORM を確認できます。リファクタリングと AI による書き換えを客観的に評価します。 |
check_released_api | SAP のエディション別 Cloudification スナップショット(edition: s4hc | btp | pce、デフォルトは s4hc)を参照し、オブジェクト(テーブル、CDS ビュー、関数モジュール、クラスなど)ごとに released / deprecated / not-released を返します。公開されている場合は SAP 自身が示す後継候補も返し、一般的な従来テーブル向けに厳選した CDS 後継候補のフォールバックと、classicAPI/noAPI/internalAPI の分類も提供します。準備状況チェックのリリース済み API 部分をオフラインで実行します。 |
scaffold_rap_bo | 標準的な RAP managed-BO スタック(ルートビュー、strict(2) と省略可能な draft を含むビヘイビア定義、ビヘイビアクラスとハンドラーのローカル定義、プロジェクション、メタデータ拡張、OData V4 サービス定義)に加え、推奨テーブル DDL、有効化順序、次の手順を生成します。 |
scaffold_abap_unit | 各グローバルクラスのローカル ABAP Unit テストクラスを生成します。setup と、各パブリックメソッドに対するスケルトンテストが含まれます。生成されたものの空のテストがカバレッジとして扱われないよう、すべてのスケルトンテストは TODO を明示して確実に失敗します。テスト対象クラスとともに abaplint で往復検証します。 |
get_object_dependencies | 提供されたソースの依存関係グラフを生成します。パーサーレベルのテーブル/関数参照(リリース済み API の状態と CDS 後継候補を注記)、継承/実装の構造、そして明示的にテキストベースと表示された相互参照を含みます。Mermaid のフローチャートも任意で出力できます。plan_cloud_migration と連携して作業順序を決めるツールです。 |
list_abap_rules | abaplint の約 180 個のルールを一覧表示します(テキストまたはタグで絞り込み可能)。 |
explain_abap_rule | 1 つのルールを詳しく説明します。根拠(多くの場合 Clean ABAP)、例、ドキュメント URL を含みます。 |
format_abap | オフラインの整形ツールです(キーワードの大文字・小文字とインデント)。 |
get_abap_outline | ソースのクラス/メソッド/可視性/インターフェース/FORM を表示し、大きなオブジェクト全体を読まずに内容を把握できます。構造をすぐに視覚化できる Mermaid の classDiagram 出力も任意で利用できます。 |
explain_abap_release | 日付付きの同梱ナレッジベース(厳選版、2026-09-10)です。2502~2608 の各リリース系列と ABAP Platform 2025 にわたる ABAP Cloud/CDS/RAP/EML/ATC のリリース差分を収録し、各行に SAP の出典 URL と confirmed / reported の信頼度フラグを付けています。sinceRelease、product、kind で絞り込めます。 |
search_sap_knowledge | 同じナレッジベースに加え、Clean Core ガバナンス(レベル A~D、リリース契約 C0~C3、実際の ATC 用語)と SAP の AI に関する 7 つの判断カード(SAP-ABAP-1、Generative AI Hub、ABAP AI SDK、SAP 公式 ADT MCP サーバーなど)をフリーテキストで検索します。すべての検索結果に出典と信頼度が付いています。 |
scaffold_abap_ai_sdk | ABAP AI SDK(ISLM)を通じて Generative AI Hub を呼び出す、検証済みの ABAP クラスを生成します。7 種類のやり取り形式(文字列、メッセージ、プロンプトテンプレート、関数呼び出し、構造化出力、ストリーミング、オーケストレーション)に対応し、abap-mcp に同梱された IF_AIC_* スタブを使って abaplint で往復検証します(validated: "abaplint-syntax")。ツール単独では実行できない ISLM の手動セットアップ手順も返します。 |
get_abap_agent_rules | ABAP リポジトリ向けの AGENTS.md / CLAUDE.md ルールブロックを出力します。コミット前の lint、準備状況のゲート、リリース済み API の利用方針、スキャフォールド優先、オフラインの単体テストサイクル、オンライン ADT MCP サーバーとの役割分担が含まれます。 |
check_rap_behavior | abap-mcp 独自の BDL/SDL パーサーと 48 個のルール(構造レベルを含むビヘイビアルール 40 個、サービス定義ルール 7 個、リリースゲート 1 個)を使い、RAP ビヘイビア定義(.bdef.asbdef)と CDS サービス定義(.srvd.srvdsrv)をチェックします。abaplint はどちらのファイル形式も深く解析しないため、システムなしで得られる静的フィードバックはこれだけです。draft/etag/lock/認可/採番の整合性、strict モードの要件、アクション/操作/バリデーション/判定/副作用の整合性、ベース BDEF に対するプロジェクションの use、同じ呼び出しで渡された CDS エンティティに対するサービスの expose を対象とします。abapRelease を指定すると、そのリリースより新しい構文もゲートします。設計上、2 段階で判定します。句読点の崩れはエラーになり、文法で認識できない構文は、その旨を示す情報になります。 |
run_abap_unit (オプトイン — ABAP_MCP_ENABLE_RUN=1) | ABAP Unit テストをオフラインで実行します。バンドルされた open-abap カーネルを使い、@abaplint/transpiler 経由で JavaScript に変換したうえで、サンドボックス化されたサブプロセスで実行します(サーバー管理の一時ディレクトリ、厳密なタイムアウト、ファイルアクセスはそのディレクトリ内に限定。ネットワークは使用しませんが、遮断はされません)。メソッドごとに成功/失敗/エラー/スキップを 1 行で返し、正直な静的 lint も併記します。純粋なロジックに関する証拠のみを対象とし、DB/CDS/EML/AMDP/認可は対象外です。CLI では常に abap-mcp unittest --run で利用できます。 |
ナレッジベースとリソース
日付と出典を明記した SAP ナレッジバンドルがパッケージに含まれています(2026-09-10 に精選)。ABAP Cloud/RAP のリリース差分 100 件(2502~2608 のリリース系列と ABAP Platform 2025 に加え、確立済みの機能をエージェントが 2025~26 年の新機能として提示しないようにする、2502 より前の年表の修正)、Clean Core の項目 55 件(レベル A~D、リリース契約 C0~C3、実際の ATC 用語)、SAP AI の判断カード 7 件(SAP-ABAP-1、Generative AI Hub のオーケストレーション、ABAP AI SDK、Joule for Developers、SAP の公式 ADT MCP サーバーなど)。各項目は、出典を引用した上で abap-mcp 独自の要約を記載し、信頼度を confirmed/reported のフラグで示しています。SAP の文章をコピーしたものではありません(docs/DESIGN.md のライセンス上の境界をご覧ください)。
ツール(explain_abap_release、search_sap_knowledge。CLI では release/knowledge)として利用するか、ホストが会話に直接添付できる MCP リソースとして利用できます。abap-mcp://knowledge/manifest(バンドル内の各ファイルの出典情報)、.../release-deltas、.../clean-core、.../sap-ai(ファイル全体)、および .../release/{id}、.../clean-core/{id}、.../sap-ai/{id}(個別のカード。それぞれ application/json と text/markdown の両方で返されます)があります。
正直にお伝えします — これは 何ではないか
- ATC ではありません。 客観的な準備状況 スコア は、依然として言語レベルのものです。つまり、ABAP Cloud で削除されたステートメントを対象とします。リリース済み API のカバレッジは、現在 部分的、オフライン、エディション対応 です。
check_released_apiと、準備状況レポートのreleasedApiFindingsは、SAP が公開している Cloudification リストを 同梱スナップショットの日付時点 で反映しています。SAP の各エディション(s4hcPublic Edition、btp、pcePrivate Edition/オンプレミス)ごとに用意されており(editionパラメーターのデフォルトはs4hc)、ソースで参照されているテーブルと関数モジュールを対象としますが、すべての API を対象とするわけではなく、スナップショットの時点までの情報に限られます。対象システム自体の ATC チェック(Public Edition では"Usage of Released APIs (Cloudification Repository)"、Private Edition とオンプレミスでは"Usage of APIs (Cloudification Repository)"。ABAP_CLEAN_CORE_DEVELOPMENT/ABAP_CLEAN_CORE_READINESSなどのチェックバリアントを使用)は引き続き正式な判定基準です。「リストにない」という結果は「スナップショット時点でリリースされていない」と解釈し、証明とみなさないでください。準備状況レポートのgradeは、独自の ブロッカー密度の区分(gradeMeaning: "blocker-density")であり、SAP の Clean Core Level A–D ではありません。実際の ATC 用語については、レポートのcleanCoreVocabulary(src/data/atc-vocabulary.json)を参照してください。 - スキャフォールドの検証は段階的です。 生成されたクラスと CDS ビューは、返される前に Cloud レベルの abaplint で往復検証されます(ジェネレーターとリンターは同じパーサーを共有します)。Behavior とサービス定義は abaplint のチェック対象外であるため、代わりに abap-mcp 独自の RAP チェッカーで検証され、エラーまたは警告レベルの指摘がない場合は
validated: "rap-checker"とラベル付けされます。メタデータ拡張にはチェッカーがないため、"template"のままです。生成される各ファイルにはvalidated: "abaplint" | "rap-checker" | "template"のラベルが付きますが、最終的な判定は引き続き ADT のアクティベーションで行われます。 - RAP チェッカーは独自の文法を使用しており、SAP のパーサーではありません。
check_rap_behavior(およびlint_abapに統合されるrap/…の指摘)は、SAP が公開している RAP BDL 機能表、ABAP キーワードのドキュメント、Apache-2.0 の SAP サンプルソース 102 ファイルのコーパスを基に、このプロジェクトが作成したトークナイザーと文法で BDEF/SRVD を読み取ります。各レポートにはgrammarVersion、rulesVersion、および何を証明し、何を証明しないかを示すscopeNoteが含まれます。DDIC テーブル、Behavior-pool クラス、CDS フィールド型は確認できず、認識できない構文はエラーではなく、必ず info として報告されます。SAP のドキュメントより信頼性の低い情報に基づくルールはすべてwarningが上限となり、メッセージにその出典が記載されます。提供される各ルールはdocs/RAP-RULES.mdに記載されています。 run_abap_unitは SAP のカーネルではありません。 JavaScript にトランスパイルし、open-abap カーネル上で実行します(オプトインで有効化するにはABAP_MCP_ENABLE_RUN=1を指定します。CLI ではunittest --runにより常に有効です)。データベースはなく(ABAP SQL を実行するとメソッドは中断します)、CDS、EML/RAP ランタイム、AMDP、権限チェック、ロック、ATC、アクティベーションにも対応していません。実行が成功しても確認できるのは純粋なロジックであり、システム上の動作を証明するものではありません。実行できない構文は、暗黙に成功扱いされず、unsupportedとして返されます。scaffold_abap_ai_sdkは SAP の実際の API ではなく、abap-mcp 独自のスタブを使って検証されます。 生成されたクラスは、SAP のソースではなく SAP のドキュメントを基にこのプロジェクトが作成したIF_AIC_*/CL_AIC_*宣言を使用して、abaplint で往復検証されます。validated: "abaplint-syntax"のラベルは、ABAP の構文を解析できることを意味しますが、SAP の実際の ABAP AI SDK のシグネチャと完全に一致することを意味するものではありません。依存する ISLM の手動セットアップ(SAP_COM_0A69、INTS/INTM)はsetupStepsに記載されていますが、実行はされません。- 設計上、テキスト入力のみを扱います。 分析エンジンはユーザーのファイルシステムを走査せず、外部ネットワークにもアクセスしません。明示的に渡された文字列のみを解析します。stdio の場合、これらの文字列はローカルの子プロセスによって処理されます。Streamable HTTP の場合、文字列はエンドポイントの運用者に送信されるため、HTTPS、認証、および文書化されたプライバシー管理機能を使用してください。ディレクトリ全体を対象とする場合は、以下の CLI、CI での abaplint、または mcp-kit
wrap-abaplintレシピを使用してください。
開発
npm install
npm run check # typecheck + tests + build + routing eval — the CI gate
node dist/cli.js # stdio MCP server
npm run start:http # guarded Streamable HTTP on http://127.0.0.1:3000/mcp
npx @modelcontextprotocol/inspector --cli node dist/cli.js --method tools/list
ツールとプロンプトの説明は CI で採点されます(ルーブリックテストで、動詞から始まる名前、使用する状況、対象外事項、説明付きのパラメーター、実例を検証します。mcp-kit の規律に従っています)。
設計
オフラインを選んだ理由、abaplint を選んだ理由、二重解析による準備状況の差分を採用した理由、スキャフォルダーが自身の出力を検証する理由、意図的に対象外としたものなどの判断記録は、docs/DESIGN.md にあります。
オンラインの関連ツール:abap-mcp-genai
別個のオプトイン型バイナリである abap-mcp-genai は、デフォルトのサーバーからインポートされることはありません。独自の SAP AI Core テナントを使用して、SAP の Generative AI Hub オーケストレーションサービスをラップします。機能は explain_with_sap_abap_1(SAP 独自の ABAP 向けに調整されたモデルにクラス、メソッド、またはスニペットの説明を依頼)と list_genai_hub_models です。このツールを使用すると、ABAP ソースはこのマシンの外に送信されます。送信先は、お客様の組織独自の SAP AI Core 契約に基づく SAP のインフラストラクチャであり、abap-mcp の開発者に送られることはありません。有効にする前に、docs/GENAI.md を最後までお読みください。
関連プロジェクト
- Furkan Coşgun による abap-kit(MIT)— 完全なオフライン ABAP プロジェクト(abapGit のレイアウト、abaplint とトランスパイラーの設定、open-abap ランタイム)をスキャフォールドできる CLI です。また、abaplint トランスパイラーを使って ABAP Unit テストをローカルで実行できます。設計上、相互を補完するプロジェクトです。abap-kit はプロジェクトのハーネスを構築して実行し、abap-mcp はその中で AI エージェントに分析、計画、スキャフォールディングのツールを提供します。
abap-kit create+abap-mcp setupで、オフラインの ABAP+AI ワークスペースが完成します。そのトランスパイルおよび実行パイプラインは、同じ abaplint トランスパイラーと open-abap-core の基盤を用いて、このサーバーにrun_abap_unit(v0.11)がネイティブ搭載される前段階となりました。 - SAP 公式 ADT MCP サーバー(GA、Eclipse および VS Code 用 ADT に同梱。8 つのツールセットにまたがる 20 個のツール、うち 18 個はライセンス不要)— 実システム上で ABAP を書き込み、有効化し、テストします(
abap_creation-create_object、abap_activate_objects、abap_run_unit_tests、abap_run_atcなど)。独自のオフライン lint、準備状況の評価、リリース済み API の相互チェックはありません。 - Willian Saez による abap-adt-mcp(MIT)— 同じ ADT REST API を使い、同じライブシステムの信頼モデルに基づく、コミュニティ版の同等ツールです。オンラインツールを 173 個提供します。
- 併用。 abap-mcp は書き込み前と書き込み後にオフラインで検証します。コードをシステムに書き込む前に
lint_abap/check_cloud_readiness/compare_abapを実行し、さらに SAP 公式サーバーまたはabap-adt-mcpが書き込み、有効化、または ATC を実行した後にも、同じ検証を行います。どちらのオンラインサーバーも abap-mcp を必要とせず、abap-mcp も認証情報を必要としません。docs/COOKBOOK.md のレシピと、リポジトリの AGENTS.md に貼り付けるルール文を確認するためのget_abap_agent_rulesをご覧ください。
クレジット
- Lars Hvam による abaplint — ここにあるすべてのツールの基盤となるパーサーとルールエンジンです(MIT)。
- SAP/abap-atc-cr-cv-s4hc — SAP 公式の ABAP Cloudification Repository(オブジェクトのリリース一覧)で、Apache-2.0 ライセンスです。同梱のリリース済み API スナップショット(
src/data/released-apis.json。毎週のリリースごとに更新され、ツールの出力にはsnapshotDateが含まれます)は、そのデータを簡潔に変換したもので、クレジットを表示したうえで Apache-2.0 ライセンスに基づき再配布されています。パイプラインについては、docs/DESIGN.md とscripts/build-released-api-index.mjsをご覧ください。 - mcp-kit — このサーバーが準拠する本番環境向け MCP のパターン(型付きツール仕様、トランスポートの規律、説明の lint)です。
MIT © Akshay Palimkar。SAP SE とは提携しておらず、SAP SE による推奨も受けていません。「SAP」、「ABAP」、「RAP」は SAP SE の商標です。このプロジェクトは、それらを扱う開発者向けの独立したオープンソースツールです。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。