mcpField
S
Sapient Mcp

Sapient Mcp

ローカル
github.com/toni-ramchandaniビジネス・マーケティング1335 週間前に更新

Sapient Mcp について

Sapient Mcp は RoboSAPiens を通じて SAP GUI を操作する MCP サーバーで、SAP の画面タスクを実行する AI エージェント向けです。ローカルの stdio と SSE/HTTP 接続に対応し、スクリーンショット、スクリプト生成、画面スナップショットを追加できます。

主な機能

  1. 01SAP GUI のウィンドウとコントロールを操作
  2. 02トランザクション実行とテーブル入力
  3. 03フィールド、テーブル、ステータスの読み取り
  4. 04オプションのスクリーンショットと構造化スナップショット
  5. 05オプションの Robot Framework スクリプト生成

活用シーン

  1. 01GUI を通じて SAP トランザクションを実行
  2. 02購買発注の情報を入力して送信
  3. 03SAP の画面内容とステータス結果を読み取る
  4. 04リモート環境や CI から SAP GUI に接続

MCP 対応

SAP GUI の操作・読み取りツールを MCP クライアントに提供し、stdio または SSE/HTTP で接続します。スクリーンショット、スクリプト生成、高度なスナップショット機能は任意で有効化できます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

SAPient MCP

AI エージェント向けのインテリジェントな SAP GUI 自動化

​RoboSAPiens ライブラリを使用して、LLM(Claude、Copilot、Cursor など)による SAP GUI の自動化を可能にする、本番環境対応の Model Context Protocol(MCP)サーバーです。

互換性のある MCP クライアント
クライアントモード備考
Claude Desktopstdio完全サポート
Claude Codestdio完全サポート
Cursorstdio または SSE完全サポート
VS Code(GitHub Copilot)stdio または SSECopilot のエージェントモードが必要です
Windsurfstdio または SSE完全サポート
任意の MCP クライアントSSE/HTTP--port フラグを使用

前提条件

要件詳細
OSWindows 10/11 のみ(SAP GUI は Windows 専用です)
Python3.10 以降
SAP GUISAP GUI for Windows がインストールされていること
SAP Scriptingサーバー(RZ11:sapgui/user_scripting=TRUE)および SAP Logon クライアントの設定で有効になっていること
SAP GUI Scripting を有効にする(初回のみ)
  1. SAP Logon を開きます → Customize Local Layout (Alt+F12) → Options
  2. Accessibility & Scripting → Scripting に移動します
  3. ✅ スクリプトを有効にします
  4. ❌「スクリプトが実行中の SAP GUI セッションに接続するときに通知する」を無効にします
  5. ❌「スクリプトが接続を開くときに通知する」を無効にします
  6. BASIS 管理者にトランザクション RZ11 を実行し、sapgui/user_scripting = TRUE に設定するよう依頼します

インストール

# Clone the repo
git clone https://github.com/yourorg/sapient-mcp.git
cd sapient-mcp

# Install (using pip or uv)
pip install -e .

# Or with uv (recommended)
uv pip install -e .

クイックスタート

オプション A — stdio モード(ローカルクライアント)

SAPient MCP は任意の MCP 互換クライアントで動作します。以下からお使いのクライアントを選んでください。


Claude Desktop

%APPDATA%\Claude\claude_desktop_config.json を編集します。

{
  "mcpServers": {
    "sapient": {
      "command": "python",
      "args": ["-m", "sapient_mcp"],
      "env": {
        "SAPIENT_MCP_SAPLOGON_PATH": "C:\\Program Files (x86)\\SAP\\FrontEnd\\SAPgui\\saplogon.exe",
        "SAPIENT_MCP_CAPS": "screenshot,codegen,advanced",
        "SAPIENT_MCP_OUTPUT_DIR": "C:\\sapient_output"
      }
    }
  }
}

Claude Code(CLI)
claude mcp add sapient python -m sapient_mcp \
  -- --caps screenshot,codegen,advanced

または、プロジェクトのルートにある ~/.claude/mcp.json / .claude/mcp.json を編集します。

{
  "mcpServers": {
    "sapient": {
      "command": "python",
      "args": ["-m", "sapient_mcp", "--caps", "screenshot,codegen,advanced"],
      "env": {
        "SAPIENT_MCP_SAPLOGON_PATH": "C:\\Program Files (x86)\\SAP\\FrontEnd\\SAPgui\\saplogon.exe",
        "SAPIENT_MCP_OUTPUT_DIR": "C:\\sapient_output"
      }
    }
  }
}

Cursor

Cursor Settings → MCP → Add new MCP Server に移動し、command を入力してから、以下を入力します。

python -m sapient_mcp --caps screenshot,codegen,advanced

または、~/.cursor/mcp.json を編集します。

{
  "mcpServers": {
    "sapient": {
      "command": "python",
      "args": ["-m", "sapient_mcp", "--caps", "screenshot,codegen,advanced"],
      "env": {
        "SAPIENT_MCP_SAPLOGON_PATH": "C:\\Program Files (x86)\\SAP\\FrontEnd\\SAPgui\\saplogon.exe",
        "SAPIENT_MCP_OUTPUT_DIR": "C:\\sapient_output"
      }
    }
  }
}

VS Code(GitHub Copilot)

VS Code CLI を使用して MCP サーバーをインストールします。

code --add-mcp '{"name":"sapient","command":"python","args":["-m","sapient_mcp","--caps","screenshot,codegen,advanced"]}'

または、ワークスペースの .vscode/mcp.json に追加します。

{
  "servers": {
    "sapient": {
      "type": "stdio",
      "command": "python",
      "args": ["-m", "sapient_mcp", "--caps", "screenshot,codegen,advanced"],
      "env": {
        "SAPIENT_MCP_SAPLOGON_PATH": "C:\\Program Files (x86)\\SAP\\FrontEnd\\SAPgui\\saplogon.exe",
        "SAPIENT_MCP_OUTPUT_DIR": "C:\\sapient_output"
      }
    }
  }
}

Windsurf

~/.codeium/windsurf/mcp_config.json を編集します。

{
  "mcpServers": {
    "sapient": {
      "command": "python",
      "args": ["-m", "sapient_mcp", "--caps", "screenshot,codegen,advanced"],
      "env": {
        "SAPIENT_MCP_SAPLOGON_PATH": "C:\\Program Files (x86)\\SAP\\FrontEnd\\SAPgui\\saplogon.exe",
        "SAPIENT_MCP_OUTPUT_DIR": "C:\\sapient_output"
      }
    }
  }
}

注: stdio モードでは、SAPient MCP は stdout にも stderr にも書き込みません。すべてのログはログファイルにのみ出力されます。これは、すべてのクライアントでクリーンな JSON-RPC 通信を行うために必要です。

オプション B — SSE/HTTP モード(リモート/CI/複数ユーザー)

SAP マシンと AI クライアントの実行場所が異なる場合や、複数の開発者で 1 つの SAPient インスタンスを共有する場合に最適です。

Windows の SAP マシンでサーバーを実行します。

python -m sapient_mcp --port 8765 --caps screenshot,codegen,advanced

次に、任意の MCP クライアントで HTTP エンドポイントを指定します。

{
  "mcpServers": {
    "sapient": {
      "url": "http://sap-windows-machine:8765/mcp"
    }
  }
}

Claude Desktop、Claude Code、Cursor、VS Code、Windsurf、およびその他すべての MCP 互換クライアントで同じように動作します。

オプション C — 設定ファイル
python -m sapient_mcp --config C:\sap_config.json

環境変数

すべての設定は、ROBOSAP_MCP_ プレフィックスを付けた環境変数で指定できます。

変数デフォルト説明
ROBOSAP_MCP_SAPLOGON_PATHC:\...\saplogon.exeSAP Logon 実行ファイルへのパス
ROBOSAP_MCP_SAP_SERVERnull自動接続用のサーバーの説明
ROBOSAP_MCP_SAP_CLIENTnull自動ログイン用の SAP クライアント
ROBOSAP_MCP_SAP_USERnull自動ログイン用の SAP ユーザー
ROBOSAP_MCP_SAP_PASSWORDnullSAP パスワード(ログには記録されません)
ROBOSAP_MCP_PORTnull(stdio)SSE モード用のポート
ROBOSAP_MCP_CAPS""カンマ区切りの機能:screenshot,codegen,advanced
ROBOSAP_MCP_OUTPUT_DIR./sap_outputスクリーンショットとログのディレクトリ
ROBOSAP_MCP_SCREENSHOT_ON_ERRORtrueツールの失敗時に自動でスクリーンショットを撮影

利用可能なツール

コア(常に読み込み)
ツール説明
sap_openSAP Logon を起動
sap_connect_to_serverSAP サーバーに接続
sap_connect_to_running実行中の SAP セッションに接続
sap_get_session_info読み取り専用:現在の状態とタイトル
sap_closeSAP を終了
sap_execute_transactionトランザクションコードを実行
sap_activate_tabラベルを指定してタブをクリック
sap_get_window_title読み取り専用:現在のウィンドウタイトル
sap_select_menu_itemメニューバーを操作
sap_send_keyキーを送信(Enter、F3 など)
sap_fill_text_fieldラベルを指定してフィールドに入力
sap_clear_text_fieldフィールドをクリア
sap_set_checkboxチェックボックスをオンにする
sap_unset_checkboxチェックボックスをオフにする
sap_select_radio_buttonラジオボタンを選択
sap_push_buttonラベルを指定してボタンをクリック
sap_button_exists読み取り専用:ボタンの有無を確認
sap_read_text_field読み取り専用:フィールドの値を読み取る
sap_read_text読み取り専用:任意のテキスト要素を読み取る
sap_read_status_bar読み取り専用:SAP ステータスバーのメッセージ
sap_count_table_rows読み取り専用:テーブルの行数
sap_select_table_rowテーブルの行を選択
sap_read_table_cell読み取り専用:セルの値を読み取る
sap_fill_cellテーブルのセルに入力
sap_double_click_cellテーブルのセルをダブルクリック
sap_scroll_tableテーブルを上下にスクロール
--caps screenshot
ツール説明
sap_take_screenshotSAP ウィンドウのスクリーンショットを撮影
--caps codegen
ツール説明
sap_get_generated_script蓄積された Robot Framework スクリプトを取得
sap_clear_scriptスクリプトバッファーをクリア
--caps advanced
ツール説明
sap_get_snapshot現在のウィンドウの構造化 JSON スナップショット

LLM との会話例

あなた: 仕入先 100001、会社コード 1000 で、品目 ABC-001 を 50 個含む購買発注書を作成してください

SAPient は、LLM に次の操作を案内します。

  1. sap_execute_transaction("/nME21N") を呼び出す
  2. sap_get_window_title() を呼び出す → "Create Purchase Order"
  3. sap_fill_text_field("Vendor", "100001") を呼び出す
  4. sap_fill_text_field("Company Code", "1000") を呼び出す
  5. ヘッダーを確定するため sap_send_key("Enter") を呼び出す
  6. sap_activate_tab("Item Overview") を呼び出す
  7. sap_fill_cell("1", "Material", "ABC-001") を呼び出す
  8. sap_fill_cell("1", "Quantity", "50") を呼び出す
  9. sap_push_button("Save") を呼び出す
  10. sap_read_status_bar() を呼び出す → "Purchase order 4500001234 created"

プロジェクト構成

sapient-mcp/
├── pyproject.toml
├── README.md
├── sap_config.json              # Example config file
├── claude_desktop_config.json   # Example Claude Desktop config
└── src/
    └── sapient_mcp/
        ├── __init__.py
        ├── __main__.py          # Entry point + CLI arg parsing
        ├── config.py            # Pydantic settings (env/file/CLI)
        ├── session.py           # SAPSessionManager singleton
        └── server.py            # FastMCP server + all 27 tool definitions

ログ

ログは {output_dir}/sapient_mcp.log に書き込まれます。

stdio モードでは、ログは stdout/stderr に出力されません(JSON-RPC が動作しなくなるためです)。 SSE モードでは、ログは stderr にも出力されます。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。