Skip to main content
Glama
engoetz

sap-adt-mcp

by engoetz

sap-adt-mcp

tests license python

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+

python --version

SAPシステム

NetWeaver 7.31 SP04+ でICFノード /sap/bc/adt が有効

sap-adt test <ID>

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つのコマンドが登録されます:

コマンド

用途

sap-adt

ターミナルで接続を管理(パスワードは非表示プロンプト)

sap-adt-mcp

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 -q

MCPクライアントでの設定

インストール後、sap-adt-mcp コマンドはすでにPATHにあります。絶対パスは必要ありません:

{
  "mcpServers": {
    "sap-adt": {
      "command": "sap-adt-mcp",
      "args": []
    }
  }
}

このブロックを置く場所:

クライアント

ファイル

Cursor(グローバル)

~/.cursor/mcp.json — Windows: C:\Users\<usuário>\.cursor\mcp.json

Cursor(プロジェクト単位)

プロジェクトルートの .cursor/mcp.json — テンプレートは .cursor/mcp.json.example にあります

Claude Code

claude mcp add sap-adt -- sap-adt-mcp

Claude Desktop

claude_desktop_config.json

パッケージをインストールせずにソースコードから直接実行したい場合は、"command": "python", "args": ["/caminho/para/sap-adt-mcp/scripts/run_mcp.py"] に置き換えてください。

確認

Cursorでは、サーバーは Settings > MCPuser-sap-adt として表示されます。任意のクライアントでテストするには、sap_list_environments() を呼び出してください。保存済み接続の一覧が返されます。

問題

解決方法

サーバーが表示されない

設定ファイルのパスを確認し、クライアントを開き直す

サーバーが赤い

ターミナルで sap-adt-mcp を実行してエラーを確認。通常はPATH上のPythonが誤っている

ModuleNotFoundError: sap_adt

パッケージが別の仮想環境にインストールされている

No password available

sap-adt password <ID> を実行

Missing connection parameter(s)

sap-adt add <ID> で接続を作成


認証情報

ターミナルから(推奨)

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_connect

SAPシステムに認証(保存済み環境をサポート)

sap_disconnect

現在の接続を終了(システムの切り替えを許可)

sap_system_info

診断: システムがサポートするADTエンドポイント

sap_discovery

利用可能なADTサービスを一覧表示

sap_save_password

認証情報をOSの資格情報マネージャーに保存

sap_delete_password

保存済みの認証情報を削除

sap_list_environments

保存済みのSAP環境を一覧表示

リポジトリ

ツール

説明

sap_search

ABAPオブジェクトを検索(CLAS、PROG、INTF、FUGR、TABL)

sap_browse_package

パッケージの内容を一覧表示(名前空間をサポート)

sap_object_metadata

オブジェクトの詳細を取得(名前、種類、パッケージ、責任者)

sap_export_ddic_markdown

DDICメタデータをMarkdownとしてエクスポート

ソースコード

ツール

説明

sap_read_source

ABAPソースコードを読み取る(オプション: ローカルファイルに保存)

sap_write_source

自動ロック、トランスポート、アクティベーション付きでソースを書き込む

sap_activate

オブジェクトをコンパイル/アクティベート

sap_syntax_check

アクティベートせずに構文チェック

トランスポート

ツール

説明

sap_check_lock

オブジェクトのロック状態を確認

sap_list_transports

オープン中のトランスポートリクエストを一覧表示

sap_create_transport

新しいトランスポートリクエストを作成

sap_release_transport

トランスポートリクエストをリリース

sap_transport_check

オブジェクトがトランスポートを必要とするか確認

作成と削除

ツール

説明

sap_create_program

新しいABAPプログラムを作成

sap_create_class

新しいABAPクラスを作成

sap_create_interface

新しいABAPインターフェースを作成

sap_create_package

新しいABAPパッケージ(DEVC)を作成、ローカルまたはトランスポート可能

sap_delete_object

ABAPオブジェクトを削除(confirm='DELETE' が必要)

各ツールのパラメータ、例、戻り値: 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

依存関係

目的

requests

ADT REST APIのHTTPクライアント

mcp

Model Context Protocol SDK(FastMCP)

lxml

XMLパース

keyring

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 の出力を含めてください。


ドキュメント

ドキュメント

内容

docs/MCP_COMMAND_REFERENCE.md

コマンドリファレンス: パラメータ、例、SAP 前提条件、CLI マニュアル

docs/PROJECT_DOCUMENTATION.md

完全な技術ドキュメント (英語)

docs/PROJECT_DOCUMENTATION_PT-BR.md

完全な技術ドキュメント (ポルトガル語)

AGENTS.md

ツールを使用するアシスタントのための作業ルール


ライセンス

Apache-2.0.

独立したプロジェクトであり、SAP SE との提携、スポンサー、または推奨は一切ありません。SAP、ABAP、SAP NetWeaver は SAP SE の商標です。このツールは、公開されている ADT API をユーザー自身の資格情報で利用するだけです。

A
license - permissive license
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

  • A
    license
    C
    quality
    C
    maintenance
    Facilitates interaction with SAP ABAP systems via ADT APIs, enabling object management, transport handling, and code analysis.
    100
    148
    MIT
  • F
    license
    A
    quality
    C
    maintenance
    Enables AI agents to read, write, activate, and transport ABAP code in SAP systems via ABAP ADT REST API, without needing SAP GUI.
    4
    24

View all related MCP servers

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.

View all MCP Connectors

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/engoetz/sap-adt-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server