Skip to main content
Glama

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-apimcp-abap-adtvibing-steampunkといった先駆的な取り組みに触発され、ARC-1は本番環境での運用に必要な機能を追加しています。

セキュリティと管理コントロール

  • デフォルトで安全 — デフォルトでは読み取り専用であり、自由なSQL実行、テーブルプレビュー、移送は許可されていません。--profile developerまたは明示的なフラグを使用して機能を有効にします。

  • 操作の許可リスト/拒否リスト — どの操作タイプ(読み取り、書き込み、検索、クエリ、有効化、移送)を許可するかを正確に制御します。

  • パッケージ制限 — AIの書き込み操作(作成、更新、削除)を特定のパッケージに制限します(ワイルドカード使用可能:--allowed-packages "Z*,$TMP")。読み取り操作はパッケージによる制限を受けません。読み取りレベルのアクセス制御にはSAPのネイティブな権限設定を使用してください。

  • データアクセス制御 — テーブルデータのプレビュー(--block-data=false)や自由形式のSQL(--block-free-sql=false)を有効にします。

  • 移送の安全性 — 移送割り当てを必須にする、特定の移送に制限する、または移送を読み取り専用に設定できます。更新/削除操作では、明示的な移送が指定されていない場合、自動的にロック修正番号が使用されます。

  • 安全プロファイル — 事前設定されたロール:viewerviewer-dataviewer-sqldeveloperdeveloper-datadeveloper-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:crudtest: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_USER

Docker、BTPデプロイメント、クライアント設定(Claude Desktop、Claude Code、VS Code、Copilot Studio)、およびすべての認証方法については、**セットアップガイド**を参照してください。

ドキュメント

完全なドキュメントは marianfoo.github.io/arc-1 で入手可能です。

ガイド

説明

セットアップガイド

デプロイメントオプション、認証方法、クライアント設定

ツールリファレンス

11個の全ツールの完全なリファレンス

アーキテクチャ

図解付きのシステムアーキテクチャ

Dockerガイド

Dockerデプロイメントリファレンス

エンタープライズ認証

すべての認証方法

BTPデプロイメント

SAP BTP上でのCloud Foundryデプロイメント

AI使用パターン

エージェントワークフローのパターンとベストプラクティス

開発

npm ci && npm run build && npm test

コードベースの構造、テストコマンド、貢献ガイドラインについては CLAUDE.md を参照してください。

クレジット

プロジェクト

作者

貢献

vibing-steampunk

oisee

オリジナルのGo MCPサーバー — ARC-1の出発点

abap-adt-api

Marcello Urbani

TypeScript ADTライブラリ、決定的なAPIリファレンス

mcp-abap-adt

Mario Andreschak

ABAP ADT用の最初のMCPサーバー

abaplint

Lars Hvam

ABAPパーサー/リンター(@abaplint/core経由で使用)

ライセンス

MIT

Install Server
A
security – no known vulnerabilities
A
license - permissive license
A
quality - A tier

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