Skip to main content
Glama

mcp-abap-adt: ABAP 開発ツール (ADT) へのゲートウェイ

鍛冶屋のバッジ

このプロジェクトは、モデルコンテキストプロトコル(MCP)を使用してSAP ABAPシステムと連携できるサーバーを提供します。これは、 Cline (VS Codeの拡張機能)などのツールがABAPシステムと通信し、ソースコードやテーブル構造などの情報を取得するためのブリッジと考えてください。まるでABAP開発環境をリモコンで操作できるようなものです。

このガイドは初心者向けに設計されているため、ステップバイステップですべてを解説します。以下の内容をカバーします。

  1. **前提条件:**開始する前に必要なもの。

  2. **インストールとセットアップ:**すべてを稼働させます。

  3. **サーバーの実行:**さまざまなモードでサーバーを起動します。

  4. **Cline との統合:**このサーバーを Cline VS Code 拡張機能に接続します。

  5. **トラブルシューティング:**一般的な問題と解決策。

  6. **使用可能なツール:**使用できるコマンドのリスト。

1. 前提条件

始める前に、いくつか必要なものがあります:

  • **SAP ABAP システム:**このサーバーは既存の ABAP システムに接続します。以下のものが必要です。

    • システムの URL (例: https://my-sap-system.com:8000 )

    • そのシステムの有効なユーザー名とパスワード。

    • SAP クライアント番号 (例: 100 )。

    • SAPシステムがADT(ABAP開発ツール)経由の接続を許可していることを確認してください。通常、必要なサービスがトランザクションSICFで有効化されていることを確認する必要があります。この作業は、Basis管理者にご相談ください。具体的には、以下のサービスが有効化されている必要があります。

      • /sap/bc/adt

    • GetTableContentsツールを使用するには、カスタムサービス/z_mcp_abap_adt/z_tablecontentの実装が必要です。 こちらのガイドに従ってください。

  • **Git(またはGitHub Desktop):**プロジェクトコードのダウンロードにはGitを使用します。以下の2つの方法があります。

    • **Git:**コマンドラインツール。Gitをダウンロードしてください。お使いのオペレーティングシステム(Windows、macOS、Linux)のバージョンを選択してください。インストール手順に従ってください。

    • GitHub Desktop: Gitのグラフィカルユーザーインターフェース。初心者にも使いやすくなりました! GitHub Desktopをダウンロードしてください。インストール手順に従ってください。

  • Node.js と npm: Node.js は、Web ブラウザーの外部で JavaScript コードを実行できる JavaScript ランタイムです。npm (Node Package Manager) は Node.js に含まれており、パッケージ (コードのライブラリ) をインストールするために使用されます。

    • Node.js をダウンロードしてください。LTS **(長期サポート)バージョンを選択してください。**これは最も安定したバージョンです。お使いのオペレーティングシステムのインストール手順に従ってください。インストールには必ず npm を含めてください(通常はデフォルトで含まれています)。

    • インストールの確認: Node.js をインストールした後、新しいターミナル (Windows の場合はコマンド プロンプト、macOS/Linux の場合はターミナル) を開き、次のように入力します。

      node -v npm -v

      Node.jsとnpmの両方のバージョン番号が表示されます。エラーが表示される場合は、Node.jsが正しくインストールされていないか、システムのPATHに存在しない可能性があります。(下記のトラブルシューティングをご覧ください。)

Related MCP server: MCP Server

2. インストールとセットアップ

それでは、プロジェクト コードを取得して設定してみましょう。

Smithery経由でインストール

Smithery経由で Cline 用の MCP ABAP 開発ツール サーバーを自動的にインストールするには:

npx -y @smithery/cli install @mario-andreschak/mcp-abap-adt --client cline

手動インストール

  1. リポジトリをクローンします。

    • Git の使用 (コマンドライン):

      1. ターミナル (コマンド プロンプトまたはターミナル) を開きます。

      2. プロジェクトを保存したいディレクトリに移動します。例えば、デスクトップに保存する場合は以下の手順を実行します。

        cd Desktop
      3. リポジトリをクローンします。

        git clone https://github.com/mario-andreschak/mcp-abap-adt
      4. プロジェクト ディレクトリに変更します。

        cd mcp-abap-adt # Or whatever the folder name is
    • GitHub デスクトップの使用:

      1. GitHub デスクトップを開きます。

      2. 「ファイル」→「リポジトリのクローン作成...」をクリックします。

      3. 「URL」タブにリポジトリの URL を貼り付けます。

      4. ローカル パス (コンピューター上でプロジェクトを保存する場所) を選択します。

      5. 「クローン」をクリックします。

  2. **依存関係のインストール:**プロジェクトに必要なすべてのライブラリをダウンロードします。ターミナルのルートディレクトリで以下を実行します。

    npm install

    これには数分かかる場合があります。

  3. **プロジェクトをビルドします。**これにより、コードが実行可能形式にコンパイルされます。

    npm run build
  4. **.envファイルを作成します。**このファイルには、SAP 認証情報などの機密情報が保存されます。このファイルを安全に保管することは非常に重要です。

    1. ルート ディレクトリに、 .env (拡張子なし) という名前の新しいファイルを作成します。

    2. テキスト エディター (メモ帳、VS Code など) で.envファイルを開きます。

    3. 次の行を追加し、プレースホルダーを実際の SAP システム情報に置き換えます。重要: パスワードに「#」文字が含まれている場合は、パスワードを引用符で囲んでください。

      SAP_URL=https://your-sap-system.com:8000 # Your SAP system URL SAP_USERNAME=your_username # Your SAP username SAP_PASSWORD=your_password # Your SAP password SAP_CLIENT=100 # Your SAP client

      重要: .envファイルを他のユーザーと共有したり、Git リポジトリにコミットしたりしないでください。

3. サーバーの実行

公平を期すために言うと、このサーバーを単独で「実行」することは通常ありません。ClineやClaude DesktopなどのMCPクライアントに統合されることを想定しています。ただし、主に2つの方法で手動でサーバーを実行できます

  • **スタンドアロンモード:**サーバーを直接実行し、ターミナルにメッセージを出力します。サーバーは起動してクライアント接続を待機するため、起動を確認する以外は役に立たない可能性があります。

  • 開発/デバッグモード: MCPインスペクターを使ってサーバーを実行します。出力されたURLをブラウザで開いて、実際に操作してみましょう。

3.1 スタンドアロンモード

サーバーをスタンドアロン モードで実行するには、ターミナル (ルート ディレクトリから) で次のコマンドを使用します。

npm run start

ターミナルにサーバーが起動していることを示すメッセージが表示されます。サーバーはMCPクライアントからの接続を待機します。サーバーは停止するまで(通常はCtrl+Cで停止します)、起動し続けます。

3.2 開発/デバッグモード(インスペクター付き)

このモードはデバッグに役立ちます。

  1. サーバーをデバッグモードで起動します。

    npm run dev

    これによりサーバーが起動し、次のようなメッセージが出力されます: 🔍 MCP Inspector is up and running at http://localhost:5173 🚀 。これは、ブラウザでMCPインスペクターを開くために使用するURLです。

4. Clineとの統合

Clineは、MCPサーバーを使用して言語サポートを提供するVS Code拡張機能です。このABAPサーバーをClineに接続する方法は次のとおりです。

  1. **Cline をインストールします。**まだインストールしていない場合は、VS Code に「Cline」拡張機能をインストールします。

  2. Cline 設定を開きます:

    • VS Code 設定を開きます ([ファイル] -> [設定] -> [設定]、または Ctrl+,)。

    • 「Cline MCP 設定」を検索します。

    • 「settings.jsonで編集」 cline_mcp_settings.jsonクリックします。cline_mcp_settings.jsonファイルが開きます。フルパスは通常、 C:\Users\username\AppData\Roaming\Code\User\globalStorage\saoudrizwan.claude-dev\settings\cline_mcp_settings.jsonusername Windowsユーザー名に置き換えてください)のようになります。

  3. サーバー設定の追加: cline_mcp_settings.jsonファイルのservers配列にエントリを追加する必要があります。以下に例を示します。

    { "mcpServers": { "mcp-abap-adt": { "command": "node", "args": [ "C:/PATH_TO/mcp-abap-adt/dist/index.js" ], "disabled": true, "autoApprove": [] } // ... other server configurations ... } }
  4. 接続をテストします:

    • Clineは自動的にサーバーに接続します。「MCPサーバー」パネルにサーバーが表示されます(Cline拡張機能では、上部に別のボタンがあります)。

    • Clineにプログラムのソースコードを取得するように依頼すると、MCPサーバーについて言及され、対応するツールを使用するように求められる。

5. トラブルシューティング

  • node -v

    • Node.jsが正しくインストールされていることを確認してください。再インストールしてみてください。

    • Node.jsのインストールディレクトリがシステムのPATH環境変数に含まれていることを確認してください。Windowsでは、システムプロパティから環境変数を編集できます(スタートメニューで「環境変数」を検索してください)。

  • npm install

    • インターネット接続があることを確認してください。

    • node_modulesフォルダを削除して、 npm install再度実行してみてください。

    • プロキシを使用している場合は、npm でプロキシを使用するように設定する必要があるかもしれません。「npm proxy 設定」でオンライン検索してください。

  • Cline がサーバーに接続できません:

    • cline_mcp_settings.jsonの設定を再確認してください。 root-serverディレクトリへの正しい絶対パスを指定し、Windowsの場合は二重のバックスラッシュを使用する必要があります

    • サーバーが実行中であることを確認します (確認するにはnpm run startを使用します)。

    • VS Code を再起動します。

    • あるいは:

    • エクスプローラーでmcp-abap-adtのルートフォルダに移動し、Shiftキーを押しながら右クリックして「Powershellをここで開く」を選択します。(またはPowershellを開き、 cd C:/PATH_TO/mcp-abap-adt/使用してフォルダに移動します。

    • 「npm install」を実行します

    • 「npm run build」を実行します

    • 「npx @modelcontextprotocol/inspector node dist/index.js」を実行します。

    • 出力されたURLでブラウザを開き、左側の「接続」をクリックします。

    • 上部の「ツール」をクリックし、「ツール一覧」をクリックします

    • GetProgramをクリックし、右側のプログラム名として「SAPMV45A」またはその他のレポート名を入力します。

    • テストして出力を確認する

  • SAP 接続エラー:

    • .envファイルで SAP 資格情報を確認します。

    • SAP システムが実行中であり、ネットワークからアクセスできることを確認します。

    • SAP ユーザーが ADT サービスにアクセスするために必要な権限を持っていることを確認してください。

    • トランザクションSICFで必要な ADT サービスが有効化されていることを確認します。

    • 自己署名証明書を使用している場合、または SAP システムの http 構成に問題がある場合は、上記のように TLS_REJECT_UNAUTHORIZED を必ず設定してください。

6. 利用可能なツール

このサーバーは、Cline (またはその他の MCP クライアント) を通じて使用できる次のツールを提供します。

ツール名

説明

入力パラメータ

使用例(Cline の場合)

GetProgram

ABAP プログラムのソース コードを取得します。

program_name

(文字列): ABAP プログラムの名前。

@tool GetProgram program_name=ZMY_PROGRAM

GetClass

ABAP クラスのソースコードを取得します。

class_name

(文字列): ABAP クラスの名前。

@tool GetClass class_name=ZCL_MY_CLASS

GetFunctionGroup

ABAP 関数グループのソース コードを取得します。

function_group

(文字列): 関数グループの名前

@tool GetFunctionGroup function_group=ZMY_FUNCTION_GROUP

GetFunction

ABAP ファンクション モジュールのソース コードを取得します。

function_name

(文字列)、

function_group

(文字列)

@tool GetFunction function_name=ZMY_FUNCTION function_group=ZFG

GetStructure

ABAP 構造を取得します。

structure_name

(文字列): DDIC 構造の名前。

@tool GetStructure structure_name=ZMY_STRUCT

GetTable

ABAP テーブル構造を取得します。

table_name

(文字列): ABAP DB テーブルの名前。

@tool GetTable table_name=ZMY_TABLE

GetTableContents

ABAP テーブルの内容を取得します。

table_name

(文字列)、

max_rows

(数値、オプション、デフォルト100)

@tool GetTableContents table_name=ZMY_TABLE max_rows=50

GetPackage

ABAP パッケージの詳細を取得します。

package_name

(文字列): ABAP パッケージの名前。

@tool GetPackage package_name=ZMY_PACKAGE

GetTypeInfo

ABAP 型情報を取得します。

type_name

(文字列): ABAP タイプの名前。

@tool GetTypeInfo type_name=ZMY_TYPE

GetInclude

ABAPインクルードソースコードを取得する

include_name

(文字列): ABAP includeの名前

@tool GetInclude include\_name=ZMY\_INCLUDE

SearchObject

クイック検索を使用して ABAP オブジェクトを検索します。

query

(文字列)、

maxResults

(数値、オプション、デフォルト100)

@tool SearchObject query=ZMY\* maxResults=20

GetInterface

ABAP インターフェースのソースコードを取得します。

interface\_name

(文字列): ABAP インターフェースの名前。

@tool GetInterface interface\_name=ZIF\_MY\_INTERFACE

GetTransaction

ABAP トランザクションの詳細を取得します。

transaction\_name

(文字列): ABAP トランザクションの名前。

@tool GetTransaction transaction\_name=ZMY\_TRANSACTION\

One-click Deploy
A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

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/mario-andreschak/mcp-abap-adt'

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