ARC-1
ARC-1 — SAP ADT MCPサーバー
ARC-1(読み方:arc one [ɑːrk wʌn])は、SAP ABAPシステム向けのエンタープライズ対応MCPサーバーです。デフォルトでセキュアであり、BTPまたはオンプレミスへのデプロイが可能で、大規模なユニットテスト、統合テスト、E2Eテストによって堅牢性が確保されています。
ARC-1は、AIアシスタント(Claude、GitHub Copilot、Copilot Studio、およびその他のMCPクライアント)をADT REST API経由でSAPシステムに接続します。npmパッケージおよびDockerイメージとして提供されています。
完全なドキュメント | セットアップガイド | ツールリファレンス
なぜARC-1なのか?
ガードレール付きのAI支援によるSAP開発を必要とする組織のために構築されました。abap-adt-api、mcp-abap-adt、vibing-steampunkといった先駆的な取り組みに触発され、ARC-1は本番環境での運用に必要な機能を追加しています。
セキュリティと管理コントロール
デフォルトで安全 — デフォルトでは読み取り専用であり、自由なSQL実行、テーブルプレビュー、移送は許可されていません。
--profile developerまたは明示的なフラグを使用して機能を有効にします。操作の許可リスト/拒否リスト — どの操作タイプ(読み取り、書き込み、検索、クエリ、有効化、移送)を許可するかを正確に制御します。
パッケージ制限 — AIの書き込み操作(作成、更新、削除)を特定のパッケージに制限します(ワイルドカード使用可能:
--allowed-packages "Z*,$TMP")。読み取り操作はパッケージによる制限を受けません。読み取りレベルのアクセス制御にはSAPのネイティブな権限設定を使用してください。データアクセス制御 — テーブルデータのプレビュー(
--block-data=false)や自由形式のSQL(--block-free-sql=false)を有効にします。移送の安全性 — 移送割り当てを必須にする、特定の移送に制限する、または移送を読み取り専用に設定できます。更新/削除操作では、明示的な移送が指定されていない場合、自動的にロック修正番号が使用されます。
安全プロファイル — 事前設定されたロール:
viewer、viewer-data、viewer-sql、developer、developer-data、developer-sql有効時の書き込みは
$TMPに制限 — ローカル/一時オブジェクトのみ。移送可能なパッケージへの書き込みには明示的な--allowed-packagesが必要です。
認証
APIキー — 内部デプロイメント用のシンプルなBearerトークン
OIDC / JWT — Entra ID、Keycloak、または任意のOpenID Connectプロバイダー
OAuth 2.0 — BTP ABAP環境向けのブラウザベースのログイン
XSUAA — MCPクライアント用の自動トークンプロキシを備えたSAP BTPネイティブ認証
プリンシパル伝播 — Cloud Connector経由で転送されるユーザーごとのID(すべてのSAPアクションは技術アカウントではなく、実際のユーザーとして実行されます)
BTP Cloud Foundryデプロイメント
ARC-1をSAP BTP上のCloud Foundryアプリとして、完全なプラットフォーム統合とともにデプロイします。
Destinationサービス — 管理された宛先経由でSAPシステムに接続
Cloud Connector — コネクティビティプロキシ経由でオンプレミスシステムに到達
プリンシパル伝播 — X.509証明書を介してエンドツーエンドで転送されるユーザーID
XSUAA OAuthプロキシ — MCPクライアントは標準のOAuthで認証し、ARC-1がBTPトークン交換を処理
監査ログ — stderr、ファイル、またはBTP監査ログサービスへの構造化イベント
トークン効率
11個のインテントベースのツール(約5Kスキーマトークン) — 200個以上の個別ツールではなく、LLMのコンテキストウィンドウを小さく保ちます。
メソッドレベルの読み取り/編集 — ソース全体ではなく、単一のクラスメソッドを読み取りまたは更新(トークンを最大20倍削減)
コンテキスト圧縮 —
SAPContextは、すべての依存関係のパブリックAPIコントラクトを1回の呼び出しで返します(7〜30倍の圧縮)
ビルトインオブジェクトキャッシュ
自動ソースキャッシュ — 読み取られたすべてのSAPオブジェクトはメモリ(stdio)またはSQLite(http-streamable)にキャッシュされます。繰り返し読み取っても、SAPを呼び出さずに即座に返されます。
依存関係グラフキャッシュ — ソースハッシュでキー付けされた
SAPContextの依存関係解決。変更されていないオブジェクトは、後続の実行でADT呼び出しをすべてスキップします。プリウォーマー —
ARC1_CACHE_WARMUP=trueで起動し、起動時にすべてのカスタムオブジェクトを事前インデックス化することで、逆依存関係ルックアップ(SAPContext(action="usages"))を可能にします。書き込み無効化 —
SAPWriteがオブジェクトを変更すると、そのキャッシュエントリは自動的に破棄され、次の読み取りで最新のソースが取得されます。
詳細なドキュメントは docs/caching.md を参照してください。
テスト
1,367件以上のユニットテスト(
53個のユニットテストファイル、HTTPモック)約160件の統合テスト(ライブSAPシステムに対して実行。資格情報やフィクスチャがない場合はスキップ理由を明示)
約70件のE2Eテスト(実行中のARC-1サーバーとライブSAPシステムに対して実際のMCPツール呼び出しを実行)
CRUDライフサイクルおよびBTPスモークレーンが含まれています(
test:integration:crud、test:integration:btp:smoke)CIマトリックス(Node
22および24)。統合テストとE2Eテストはmainへのpushおよび内部PRで実行信頼性テレメトリ + カバレッジ(情報提供用のCIシグナルとして公開、非ブロッキング)
実運用向けに洗練されたツール
11個のツールは、実際のLLMインタラクションのフィードバックに基づいて設計されています。
ツール | 内容 |
SAPRead | ABAPソース、テーブルデータ、CDSビュー、メタデータ拡張(DDLX)、サービスバインディング(SRVB)、メッセージクラス、BORオブジェクト、デプロイされたUI5/Fioriアプリ(BSP, BSP_DEPLOY)の読み取り。クラス用の構造化フォーマットは、メタデータと分解されたインクルードをJSONとして返します |
SAPSearch | システム全体でのオブジェクト検索 + ソースコードの全文検索 |
SAPWrite | 自動ロック/ロック解除を伴うABAPソースおよびDDICメタデータの作成/更新/削除(PROG, CLAS, INTF, FUNC, INCL, DDLS, DDLX, BDEF, SRVD, DOMA, DTEL)。マルチオブジェクトワークフロー(例:RAPスタックやドメイン+データエレメントの1回での作成)のためのバッチ作成 |
SAPActivate | ABAPオブジェクトの有効化 — 単一またはバッチ(RAPスタックに不可欠)。ODataサービスバインディング(SRVB)の公開/非公開 |
SAPNavigate | 定義への移動、参照の検索、コード補完 |
SAPQuery | テーブルが見つからない場合の提案付きABAP SQLの実行 |
SAPTransport | CTS移送管理(一覧表示、作成、リリース) |
SAPContext | 圧縮された依存関係コンテキスト — 1回の呼び出しでN回のSAPRead呼び出しを置き換え |
SAPLint | ローカルABAPリンター(システム対応プリセット、自動修正、書き込み前の検証) |
SAPDiagnose | 構文チェック、ABAPユニットテスト、ATCコード品質、ショートダンプ、プロファイラトレース |
SAPManage | 機能プローブ — アクションを実行する前にシステムが何をサポートしているかを検出 |
ツール定義はターゲットシステム(BTP vs オンプレミス)に自動的に適応し、利用できないタイプを削除し、説明を調整するため、LLMがサポートされていない操作を試みることはありません。
機能検出
ARC-1は起動時にSAPシステムをプローブし、動作を適応させます。
HANA、abapGit、RAP/CDS、AMDP、UI5、および移送の可用性を検出
BTPシステムとオンプレミスシステムを自動検出
SAP_BASISリリースを正しいABAP言語バージョンにマッピング
各機能は強制的にオン/オフにするか、自動検出のままにすることができます
クイックスタート
npx arc-1@latest --url https://your-sap-host:44300 --user YOUR_USERDocker、BTPデプロイメント、クライアント設定(Claude Desktop、Claude Code、VS Code、Copilot Studio)、およびすべての認証方法については、**セットアップガイド**を参照してください。
ドキュメント
完全なドキュメントは marianfoo.github.io/arc-1 で入手可能です。
ガイド | 説明 |
デプロイメントオプション、認証方法、クライアント設定 | |
11個の全ツールの完全なリファレンス | |
図解付きのシステムアーキテクチャ | |
Dockerデプロイメントリファレンス | |
すべての認証方法 | |
SAP BTP上でのCloud Foundryデプロイメント | |
エージェントワークフローのパターンとベストプラクティス |
開発
npm ci && npm run build && npm testコードベースの構造、テストコマンド、貢献ガイドラインについては CLAUDE.md を参照してください。
クレジット
プロジェクト | 作者 | 貢献 |
oisee | オリジナルのGo MCPサーバー — ARC-1の出発点 | |
Marcello Urbani | TypeScript ADTライブラリ、決定的なAPIリファレンス | |
Mario Andreschak | ABAP ADT用の最初のMCPサーバー | |
Lars Hvam | ABAPパーサー/リンター(@abaplint/core経由で使用) |
ライセンス
MIT
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/marianfoo/arc-1'
If you have feedback or need assistance with the MCP directory API, please join our Discord server