sap-adt-mcp
sap-adt-mcp
SAP ADT(ABAP Development Tools)のREST API向けMCPサーバーおよびPythonクライアントです。Eclipse ADTが使用するのと同じ操作(リポジトリ検索、ソースコードの読み書き、アクティベーション、構文チェック、トランスポートリクエストの処理)を、同じ /sap/bc/adt/* エンドポイントに対して行うことで、AIアシスタントに提供します。
完全な技術ドキュメント(英語): docs/PROJECT_DOCUMENTATION.md。
できること
検索とナビゲーション — ワイルドカード(
Z*、ZCL_*)によるオブジェクト検索、パッケージの内容(名前空間/ACME/PKGを含む)、メタデータソースの読み書き — ロック、トランスポート割り当て、アクティベーションを1回の呼び出しで実行。ローカルファイルの保存/読み込みも任意で可能
アクティベーションと構文チェック — 行・列単位のエラーメッセージ付き
トランスポート — 一覧表示、作成、リリース、オブジェクトがトランスポートを必要とするかの確認
オブジェクト作成 — プログラム、クラス、インターフェース、パッケージ(ローカルまたはトランスポート可能)
DDICのMarkdownエクスポート — テーブル、データ要素、ドメイン、ビューをAIが読み取り可能なコンテキストに変換
古いリリースでの動作 — メディアタイプはエンドポイントごとにネゴシエーションされ、
sap_system_infoがそのシステムでサポートされている内容を示します
認証情報はOSの資格情報マネージャーに保存され、パスワードがプロジェクトのファイルに書き込まれることはありません。
Related MCP server: mcp-abap-abap-adt-api
必要条件
必要条件 | 最小要件 | 確認方法 |
Python | 3.10+ |
|
SAPシステム | NetWeaver 7.31 SP04+ でICFノード |
|
MCPクライアント | Cursor、Claude Code、Claude Desktop、VS Code、その他MCP対応クライアント | — |
ネットワーク | SAPのホストとポートへのアクセス | — |
SAP側の前提条件(ICFサービス、ロール、権限オブジェクト)の詳細は、コマンドリファレンスのセクション6 を参照してください。
インストール
GitHubから直接(推奨)
pip install git+https://github.com/engoetz/sap-adt-mcpこれによりPATHに2つのコマンドが登録されます:
コマンド | 用途 |
| ターミナルで接続を管理(パスワードは非表示プロンプト) |
| MCPサーバー(stdio)を実行 |
何も恒久的にインストールせずに、uv を使う場合:
uvx --from git+https://github.com/engoetz/sap-adt-mcp sap-adt-mcpソースコードから(開発用)
git clone https://github.com/engoetz/sap-adt-mcp
cd sap-adt-mcp
python -m venv .venv && .venv/Scripts/activate # Linux/macOS: source .venv/bin/activate
pip install -e ".[dev]"
python -m pytest tests -qMCPクライアントでの設定
インストール後、sap-adt-mcp コマンドはすでにPATHにあります。絶対パスは必要ありません:
{
"mcpServers": {
"sap-adt": {
"command": "sap-adt-mcp",
"args": []
}
}
}このブロックを置く場所:
クライアント | ファイル |
Cursor(グローバル) |
|
Cursor(プロジェクト単位) | プロジェクトルートの |
Claude Code |
|
Claude Desktop |
|
パッケージをインストールせずにソースコードから直接実行したい場合は、"command": "python", "args": ["/caminho/para/sap-adt-mcp/scripts/run_mcp.py"] に置き換えてください。
確認
Cursorでは、サーバーは Settings > MCP の user-sap-adt として表示されます。任意のクライアントでテストするには、sap_list_environments() を呼び出してください。保存済み接続の一覧が返されます。
問題 | 解決方法 |
サーバーが表示されない | 設定ファイルのパスを確認し、クライアントを開き直す |
サーバーが赤い | ターミナルで |
| パッケージが別の仮想環境にインストールされている |
|
|
|
|
認証情報
ターミナルから(推奨)
sap-adt add DEVこのコマンドは、ホスト、ポート、クライアント、ユーザー、言語、HTTPSを尋ねます(Enterで提案値を承認)。最後にパスワードを尋ねます——画面にエコーされずに2回入力します。これにより、パスワードはシェルの履歴やAIとの会話履歴に残りません。
sap-adt list # conexões salvas e se têm senha
sap-adt edit DEV --port 8020 # alterar campos sem tocar na senha
sap-adt password DEV # trocar apenas a senha
sap-adt test DEV # conectar e sondar os endpoints ADT
sap-adt delete DEV # remover conexão e senha
--passwordパラメータは存在しません。仕様上、パスワードはプロンプトでのみ入力します。自動化の場合は、SAP_PASSWORD環境変数が使用できます。
パスワードはOSのキーリング(Windows Credential Manager、macOS Keychain、Linux Secret Service)に保存されます。その他のパラメータは ~/.sap-adt/environments.json に保存され、プロジェクトの外部に置かれます。
チャットから
sap_save_password(system_id="DEV", host="...", port=8000, client="100", user="username", password="...") でも同じことができますが、パスワードが会話に記録されます。ターミナルを優先してください。
初回使用
sap_connect(system_id="DEV")
sap_system_info() # o que este sistema suporta (rode em release antiga)
sap_search(query="Z*", object_type="CLAS")
sap_read_source(object_name="ZCL_MINHA_CLASSE", object_type="CLAS")
sap_write_source(
object_name="ZCL_MINHA_CLASSE",
object_type="CLAS",
source_code="...",
transport_request="DEVK900123"
)MCPクライアントの外部では、sap-adt test DEV がターミナルで同じ診断を実行します。
リリース間の互換性
古いシステム(ECC、NetWeaver 7.3x)はADTのサブセットしか公開しておらず、同じメディアタイプのバージョンを常に理解するとは限りません。クライアントはこれを自動的に処理します:
メディアタイプのネゴシエーションをエンドポイントごとに、新しいものから古いものへと行い、機能したものを記憶
代替手段によるディスカバリ(
/sap/bc/adt/discoveryがSICFで有効でない場合)トランスポートを2つの形式で送信(クエリの
corrNrとヘッダーsap-transportrequest)sap_system_infoがエンドポイントを調査し、どのツールがそこで機能しないかを示す
詳細はリファレンスのセクション6.7 を参照してください。
MCPツール(25)
接続と認証情報
ツール | 説明 |
| SAPシステムに認証(保存済み環境をサポート) |
| 現在の接続を終了(システムの切り替えを許可) |
| 診断: システムがサポートするADTエンドポイント |
| 利用可能なADTサービスを一覧表示 |
| 認証情報をOSの資格情報マネージャーに保存 |
| 保存済みの認証情報を削除 |
| 保存済みのSAP環境を一覧表示 |
リポジトリ
ツール | 説明 |
| ABAPオブジェクトを検索(CLAS、PROG、INTF、FUGR、TABL) |
| パッケージの内容を一覧表示(名前空間をサポート) |
| オブジェクトの詳細を取得(名前、種類、パッケージ、責任者) |
| DDICメタデータをMarkdownとしてエクスポート |
ソースコード
ツール | 説明 |
| ABAPソースコードを読み取る(オプション: ローカルファイルに保存) |
| 自動ロック、トランスポート、アクティベーション付きでソースを書き込む |
| オブジェクトをコンパイル/アクティベート |
| アクティベートせずに構文チェック |
トランスポート
ツール | 説明 |
| オブジェクトのロック状態を確認 |
| オープン中のトランスポートリクエストを一覧表示 |
| 新しいトランスポートリクエストを作成 |
| トランスポートリクエストをリリース |
| オブジェクトがトランスポートを必要とするか確認 |
作成と削除
ツール | 説明 |
| 新しいABAPプログラムを作成 |
| 新しいABAPクラスを作成 |
| 新しいABAPインターフェースを作成 |
| 新しいABAPパッケージ(DEVC)を作成、ローカルまたはトランスポート可能 |
| ABAPオブジェクトを削除( |
各ツールのパラメータ、例、戻り値: docs/MCP_COMMAND_REFERENCE.md
アーキテクチャ
Cliente MCP → servidor MCP (stdio/JSON-RPC) → cliente REST ADT → SAP /sap/bc/adt/*src/sap_adt/
├── client.py # HTTP: autenticação, CSRF, sessões stateful, negociação de media type
├── credential_store.py # ~/.sap-adt/environments.json + keyring do SO
├── repository.py # pesquisa, navegação de pacotes, metadados
├── source.py # leitura/escrita de fonte com bloqueio
├── activation.py # ativação e verificação de sintaxe
├── transport.py # transport requests (CTS)
├── ddic_export.py # DDIC → Markdown
├── cli.py # comando `sap-adt`
├── models.py # dataclasses
├── exceptions.py # hierarquia de exceções
└── mcp_server.py # servidor MCP com as 25 ferramentas依存関係 | 目的 |
| ADT REST APIのHTTPクライアント |
| Model Context Protocol SDK(FastMCP) |
| XMLパース |
| OSの管理ツールに資格情報を保存 |
開発
pip install -e ".[dev]"
python -m pytest tests -qテストはオフラインです。SAPシステムもネットワークも必要ありません。URI解決、静的レスポンス(古いリリースの形式を含む)を使ったXMLパーサー、CLIをカバーしています。CIはLinuxとWindows、Python 3.10と3.13でスイートを実行し、パッケージがビルドされることを確認します。
貢献や問題報告は、issues から歓迎します。issueを開くときは、ホスト名、ユーザー、クライアント、またはプロプライエタリなコードの断片を貼り付けないでください。動作を説明し、可能であれば sap_system_info の出力を含めてください。
ドキュメント
ドキュメント | 内容 |
コマンドリファレンス: パラメータ、例、SAP 前提条件、CLI マニュアル | |
完全な技術ドキュメント (英語) | |
完全な技術ドキュメント (ポルトガル語) | |
ツールを使用するアシスタントのための作業ルール |
ライセンス
独立したプロジェクトであり、SAP SE との提携、スポンサー、または推奨は一切ありません。SAP、ABAP、SAP NetWeaver は SAP SE の商標です。このツールは、公開されている ADT API をユーザー自身の資格情報で利用するだけです。
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables AI assistants to access SAP ADT APIs for reading, writing, debugging, deploying, and testing ABAP code through natural language or DSL automation.448MIT
- AlicenseCqualityCmaintenanceEnables interaction with SAP ABAP systems through ADT APIs, allowing management of ABAP objects, transport requests, and code analysis via natural language.100148MIT
- AlicenseCqualityCmaintenanceFacilitates interaction with SAP ABAP systems via ADT APIs, enabling object management, transport handling, and code analysis.100148MIT
- FlicenseAqualityCmaintenanceEnables AI agents to read, write, activate, and transport ABAP code in SAP systems via ABAP ADT REST API, without needing SAP GUI.424
Related MCP Connectors
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
Connect AI assistants to your GitHub-hosted Obsidian vault to seamlessly access, search, and analy…
Code intelligence for coding agents: semantic, AST, graph, and full-text search. 279+ languages.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/engoetz/sap-adt-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server