Skip to main content
Glama

🤖 RobotMCP - AI駆動のテスト自動化ブリッジ

Python Robot Framework FastMCP License

平易な英語を入力すれば、実際のRobot Frameworkテストが出来上がる——AIエージェントが入力作業を行います。

RobotMCP (rf-mcp) はModel Context Protocol (MCP) サーバーであり、あなたのコーディング エージェントにRobot Frameworkの操作権限を渡します。エージェントはキーワードを発見し、Browser、 Selenium、Appium、Requests、データベース、またはデスクトップに対してステップをライブで実行し、 実際に何が起こるかを確認し、ステップが成功したら、きれいな.robotスイートを書き出します。 推測によるロケーター、幻覚キーワード、「私のマシンでは動く」はありません。Robot Framework 上に構築されており、オープンソースで常に進化しています。

rf-mcpを初めてお使いですか? はじめに へ移動してください。全体像を 確認したい場合は、MCPツールリファレンス設定実例 を参照してください。

📺 ビデオチュートリアル

RobotMCP Tutorial

イントロ

https://github.com/user-attachments/assets/ad89064f-cab3-4ae6-a4c4-5e8c241301a1


✨ クイックスタート

3つのコマンドと1つの文章。それが設定全体です。

1️⃣ ツールとしてインストール

事前要件は?

  • Python +v3.12をインストール

  • 管理者としてPowerShellで winget install astral-sh.uv を実行 # uvコマンドを有効にするため

  • VSCodeと拡張機能(GitHub Copilot、ログインも)をインストール # エージェントターミナルを有効にするため

  • VSCode拡張機能 Material Icon themes、Save Typing、Dracula、Robocorp をインストール # Robot Frameworkを有効にするため

# Everything (Browser, Selenium, Appium, Requests, Database)
uv tool install "rf-mcp[all]"

# ...or just what you need — API testing is pure Python, nothing else to do:
uv tool install "rf-mcp[api]"

これでrobotmcpコマンドがPATHに追加されます。エクストラによって、どのテストライブラリが 同梱されるかが決まります——エクストラ表(インストールの項)を参照してください。

2️⃣ コーディングエージェントに接続

robotmcp init            # detects libraries, prints the MCP config to paste
robotmcp install         # registers rf-mcp into the agents it finds

robotmcp install は、Claude Code、Codex、GitHub Copilot、opencode、Gemini CLI、Kilo Code、goose、Cursor に対応するMCP設定をそれぞれの 形式で書き込みます。他のサーバーには影響しません。手動で設定したい場合は、すべてのエージェントで 以下を受け付けます:

{ "mcpServers": { "robotmcp": { "command": "robotmcp" } } }
{
  "servers": {
    "robotmcp": {
      "type": "stdio",
      "command": "uv",
      "args": ["run", "-m", "robotmcp.server"],
      "env": { "UV_COMPILE_BYTECODE": "1" }
    }
  }
}

UV_COMPILE_BYTECODE=1 はインストール時に依存関係ツリーを事前コンパイルします。これがないと、 インストール/アップグレード後の最初のサーバー起動時に、MCPハンドシェイクが完了する前に数秒の .pyc コンパイル時間がかかります(一部のクライアントはタイムアウトしてサーバーが利用不可と表示します)。 これはインストール時の一度きりのコストです。

HTTP

HTTPトランスポートでMCPサーバーを起動:

uv run -m robotmcp.server --transport http --host 127.0.0.1 --port 8000

次にAIエージェントを設定:

{
  "servers": {
    "robotmcp": {
      "type": "http",
      "url": "http://localhost:8000/mcp"
    }
  }
}

Claude Code

claude mcp add rf-mcp -- uvx rf-mcp

3️⃣ テストを開始——頼むだけでOK

Use #robotmcp to create a TestSuite and execute it step wise.
Create a test for https://www.saucedemo.com/ that:
- Logs in to https://www.saucedemo.com/ with valid credentials
- Adds two items to cart
- Completes checkout process
- Verifies success message

Use Selenium Library.
Execute the test suite stepwise and build the final version afterwards.

これで完了です。 rf-mcpはエージェントを発見、ライブ実行、スイート生成のプロセスに導きます—— テストを説明するだけでよいのです。


Related MCP server: robotframework-mcp

📚 ドキュメント

ガイド

内容

はじめに

インストール、エージェントへの接続、最初のテストの実行

MCPツールリファレンス

rf-mcpがエージェントに公開するすべてのツール——パラメータ、戻り値、使用すべき場面

設定

すべてのROBOTMCP_*環境変数とCLIフラグ

実例

コピペ可能なWeb / API / モバイル / デスクトップ / BDD / データ駆動のウォークスルー

ライブラリプラグイン

独自のRobot Frameworkライブラリをrf-mcpに教える方法

指示テンプレート

プロジェクトごとにエージェントの動作を制御


🛠️ インストール

クイックスタートでは推奨パス(uv tool install)を説明しています。この セクションでは、エクストラ表、代替インストール方法、および完全なエージェント登録の詳細を説明します。

エクストラ

エクストラによって、どのRobot Frameworkライブラリが同梱されるかが決まります:

エクストラ

追加されるもの

インストール後

api

RequestsLibrary

なし

web

SeleniumLibrary + Browser

Selenium: なし(Selenium Managerがドライバを取得); Browser: robotmcp init --browsers

mobile

AppiumLibrary

Appiumサーバー(外部)

database

DatabaseLibrary

DBドライバ

desktop

PlatynUIネイティブデスクトップ(Windows/Linux)

Python 3.12+

frontend

Djangoダッシュボード

memory

永続的なセマンティックメモリ(sqlite-vec + model2vec)

ROBOTMCP_MEMORY_ENABLED=true

all

上記のすべてのRobot Frameworkライブラリ(Python 3.12+ではdesktopを含む)

上記のとおり

BrowserライブラリにはPlaywrightブラウザも必要です。rf-mcp独自の環境内で、robotmcp init --browsers(または rfbrowser init)を一度実行してください。Node.jsはBrowserでのみ必要です。

その他のインストール方法

pip install "rf-mcp[all]"                 # pip instead of uv
uv add "rf-mcp[all]" && uv sync           # into an existing uv project

# From source (development)
git clone https://github.com/manykarim/rf-mcp.git && cd rf-mcp
uv sync --all-extras --dev

Docker

事前構築済みイメージ(CI用のヘッドレス、および視覚的デバッグ用のVNCイメージ):

docker pull ghcr.io/manykarim/rf-mcp:latest          # headless
docker run -p 8000:8000 -p 8001:8001 ghcr.io/manykarim/rf-mcp:latest    # HTTP + frontend
docker run -it --rm ghcr.io/manykarim/rf-mcp:latest uv run robotmcp     # STDIO

docker pull ghcr.io/manykarim/rf-mcp-vnc:latest      # X11 desktop over VNC/noVNC
docker run -p 8000:8000 -p 8001:8001 -p 5900:5900 -p 6080:6080 ghcr.io/manykarim/rf-mcp-vnc:latest

ヘッドレスにはChromium、Firefox ESR、Playwrightブラウザがバンドルされています。VNCポート:8000(MCP HTTP)、8001(フロントエンド)、5900(VNC)、6080(noVNC — http://localhost:6080/vnc.html)。

コーディングエージェントへの登録

robotmcp list                              # supported agents + what's detected/registered
robotmcp install                           # interactive: registers into detected agents
robotmcp install --agents claude-code,codex,gemini
robotmcp install --agents all --scope user
robotmcp install --dry-run                 # show the plan, write nothing
robotmcp uninstall                         # safe, reversible removal

対応エージェント(それぞれ独自のファイル/形式で書き込まれ、他のMCPサーバーは保持されます): Claude Code、OpenAI Codex、GitHub Copilot、opencode、Gemini CLI、Kilo Code、goose、 Cursor(さらにpiは、その設定規約が確認されるまで計画中として記載)。

プロジェクトの環境を使用。 独自のセットアップ環境(uv、poetry、pdm、pipenv、rye、hatch、またはプレーンな.venv)を持つプロジェクトにインストールすると、rf-mcpはその環境に対して実行されるように配線されます——つまり、バンドルされているライブラリだけでなく、プロジェクトのライブラリ、キーワード、リソースも認識します。解決されたコマンドを起動し、設定を書き込む前にライブラリに到達可能かどうかを検証します。盲目的または壊れたコマンドは拒否されます。グローバルなuvx / uv toolインストールは、プロジェクトごとの設定なしですべてのプロジェクトにサービスを提供します。-C <dir>で指定し、--into-projectでrf-mcpをプロジェクト環境にインストールすることを選択し、robotmcp doctor --project-dir <dir>を実行して、起動がどのライブラリに到達するかを確認できます。

スコープ。 インストールはデフォルトで--scope project(現在のプロジェクト内に書き込み、例:./.mcp.json)で、エージェントがサポートする場合に使用されます。グローバル(ホームディレクトリ)インストールには--scope userを使用してください。gooseはユーザースコープのみをサポートし、GitHub Copilotはプロジェクトスコープのみをサポートします。

安全で元に戻せる。 すべての変更はハッシュ追跡されるマニフェスト(~/.local/state/robotmcp/install-manifest.json)に記録されます。robotmcp uninstallは、インストール以降変更されていないエントリのみを削除します。手動で編集されたエントリはそのまま残され、報告されます。関連のないサーバーは決して触れられません。設定を自分で編集したい場合は、{ "mcpServers": { "robotmcp": { "command": "robotmcp" } } }を追加してください。

🔌 ライブラリプラグイン

プラグインシステムを介してカスタムライブラリでRobotMCPを拡張します。2つの検出モードが利用可能です:

  • エントリポイントrobotmcp.library_plugins)— パッケージ化されたプラグイン用。

  • マニフェストファイル(JSON)— .robotmcp/plugins/ 下のワークスペースオーバーライド用。

詳細な手順はライブラリプラグイン作成ガイドを参照し、examples/plugins/sample_pluginにあるサンプルプラグインを確認してすぐに始めましょう。


🖥️ フロントエンドダッシュボード

RobotMCPには、オプションのDjangoベースのダッシュボードが付属しており、アクティブなセッション、キーワード、ツールアクティビティをミラーリングします。

RobotMCP Frontend Dashboard

  1. フロントエンドのエクストラをインストール

    pip install rf-mcp[frontend]
  2. フロントエンドを有効にしてMCPサーバーを起動

    uv run -m robotmcp.server --with-frontend
    • デフォルトURL:http://127.0.0.1:8001/

    • クイックトグル:--frontend-host--frontend-port--frontend-base-path

    • 環境変数での同等設定:ROBOTMCP_ENABLE_FRONTEND=1ROBOTMCP_FRONTEND_HOSTROBOTMCP_FRONTEND_PORTROBOTMCP_FRONTEND_BASE_PATHROBOTMCP_FRONTEND_DEBUG

  3. MCPクライアント(Cline、Claude Desktopなど)を同じサーバープロセスに接続——セッションがアクティブになると、ダッシュボードは自動的にイベントをストリーミングします。

特定の実行でダッシュボードを無効にするには、フラグを省略するか--without-frontendを渡します。


📋 指示テンプレート

RobotMCPはMCPのinitializeレスポンスを介してサーバーレベルの指示をLLMに送信し、キーワードを実行する前に発見するように導きます。これにより、特に小さなLLMでの失敗したツール呼び出しと無駄なトークンが大幅に削減されます。

設定

3つの環境変数が指示の動作を制御します:

変数

デフォルト

ROBOTMCP_INSTRUCTIONS

off / default / custom

default

ROBOTMCP_INSTRUCTIONS_TEMPLATE

minimal / standard / detailed / browser-focused / api-focused

standard

ROBOTMCP_INSTRUCTIONS_FILE

.txtまたは.mdファイルへのパス

(なし、mode=customの場合必須)

ROBOTMCP_LOG_LEVEL

DEBUG / INFO / WARNING / ERROR — stderrのログ冗長性

WARNING

ROBOTMCP_MCP_LOG_NOTIFICATIONS

1に設定すると、ログもMCP notifications/message(構造化、レベルタグ付き)としてクライアントに転送

(オフ)

出力とログ。 MCP stdioチャネル(stdout)はJSON-RPCのみを運びます。すべての ログと1行の起動バナーはstderrに送られます。ログはデフォルトでWARNINGであるため、 クライアントが氾濫することはありません。トラブルシューティングにはROBOTMCP_LOG_LEVEL=INFO/DEBUGを 設定してください。ログは実行をブロックしません(バックグラウンドスレッドでドロップオンオーバーフロー方式で排出されます)。また、fd 1がトランスポートの下からリダイレクトされることはありません。

組み込みテンプレート

テンプレート

~トークン数

最適な用途

minimal

~40

高性能LLM(Claude Opus、GPT-4)— 簡潔なリマインダーのみ

standard

~400

中級LLM(Claude Sonnet、GPT-4o)— バランスの取れたワークフローガイド

detailed

~600

小型LLM(Claude Haiku、GPT-4o-mini)— 例付きのステップバイステップ

browser-focused

~350

Webのみのテストシナリオ

api-focused

~300

APIのみのテストシナリオ

{
  "servers": {
    "robotmcp": {
      "type": "stdio",
      "command": "uv",
      "args": ["run", "-m", "robotmcp.server"],
      "env": {
        "ROBOTMCP_INSTRUCTIONS": "default",
        "ROBOTMCP_INSTRUCTIONS_TEMPLATE": "detailed"
      }
    }
  }
}

カスタム指示

ROBOTMCP_INSTRUCTIONS=custom を設定し、ROBOTMCP_INSTRUCTIONS_FILE でファイルを指定します。カスタムファイルは {available_tools} プレースホルダー置換に対応しています。許可される拡張子: .txt.md.instruction.instructions。ファイルが存在しないか検証に失敗した場合、サーバーは自動的に standard テンプレートにフォールバックします。

完全なガイドは docs/INSTRUCTION_TEMPLATES_GUIDE.md を参照してください。


🪝 デバッグアタッチブリッジ

https://github.com/user-attachments/assets/8d87cd6e-c32e-4481-9f37-48b83f69f72f

RobotMCP には、軽量な Robot Framework ライブラリである robotmcp.attach.McpAttach が同梱されており、実行中の ExecutionContext を localhost HTTP ブリッジ経由で公開します。VS Code(RobotCode)や他の IDE からスイートをデバッグする際、ブリッジにより RobotMCP は別のコンテキストを作成する代わりに、プロセス内の変数、インポート、キーワード検索順序を再利用できます。

MCP サーバー設定

デバッグブリッジ用に環境変数を渡す設定例

UV を使用する場合

{
  "servers": {
    "RobotMCP": {
      "type": "stdio",
      "command": "uv",
      "args": ["run", "src/robotmcp/server.py"],
      "env": {
        "ROBOTMCP_ATTACH_HOST": "127.0.0.1",
        "ROBOTMCP_ATTACH_PORT": "7317",
        "ROBOTMCP_ATTACH_TOKEN": "change-me",
        "ROBOTMCP_ATTACH_DEFAULT": "auto"
      }
    }
  }
}

Docker を使用する場合

{
  "servers": {
    "RobotMCP": {
      "command": "docker",
      "args": ["run", "-i", "--rm", "ghcr.io/manykarim/rf-mcp:latest", "uv", "run", "robotmcp"],
      "env": {
        "ROBOTMCP_ATTACH_HOST": "127.0.0.1",
        "ROBOTMCP_ATTACH_PORT": "7317",
        "ROBOTMCP_ATTACH_TOKEN": "change-me",
        "ROBOTMCP_ATTACH_DEFAULT": "auto"
      }
    }
  }
}

Robot Framework の設定

デバッグ対象のスイート内でライブラリをインポートし、サーバーループを開始します:

*** Settings ***
Library    robotmcp.attach.McpAttach    token=${DEBUG_TOKEN}

*** Variables ***
${DEBUG_TOKEN}    change-me

*** Test Cases ***
Serve From Debugger
    MCP Serve    port=7317    token=${DEBUG_TOKEN}    mode=blocking    poll_ms=100
    [Teardown]    MCP Stop
  • MCP Serve port=7317 token=${TOKEN} mode=blocking|step poll_ms=100 — HTTP サーバーを(未実行の場合)起動し、ブリッジコマンドを処理します。キーワード本体の実行中は mode=step を使用して、キューに入ったリクエストを正確に1つ処理します。

  • MCP Stop — サーバーループの終了を通知します(スイートから、または RobotMCP の attach_stop_bridge 経由でリモートから使用)。

  • MCP Process Once — 保留中のリクエストを1つ処理して即座に戻ります。スイートがテストアクション間でポーリングする場合に便利です。

  • MCP Start — 後方互換性のための MCP Serve のエイリアス。

ブリッジはデフォルトで 127.0.0.1 にバインドされ、クライアントが共有トークンを X-MCP-Token ヘッダーで送信することを期待します。

RobotMCP をアタッチするように設定

環境変数でブリッジ接続情報を指定して、アタッチルーティング付きで robotmcp.server を起動します(トークンはスイートと一致している必要があります):

export ROBOTMCP_ATTACH_HOST=127.0.0.1
export ROBOTMCP_ATTACH_PORT=7317          # optional, defaults to 7317
export ROBOTMCP_ATTACH_TOKEN=change-me    # optional, defaults to 'change-me'
export ROBOTMCP_ATTACH_DEFAULT=auto       # auto|force|off (auto routes when reachable)
export ROBOTMCP_ATTACH_STRICT=0           # set to 1/true to fail when bridge is unreachable
uv run python -m robotmcp.server

ROBOTMCP_ATTACH_HOST が設定されている場合、execute_step(..., use_context=true) およびその他のコンテキスト認識ツールは、まずライブデバッグセッション内での実行を試みます。新しい MCP ツールを使用して、任意のエージェントからブリッジを管理します:

  • attach_status — ブリッジからの設定、到達可能性、診断情報を報告します(/diagnostics)。

  • attach_stop_bridge/stop コマンドを送信し、デバッグ中のスイートで MCP Stop をトリガーします。


🎪 ワークフロー例

🌐 Web アプリケーションテスト(BDD)

プロンプト:

Use RobotMCP to create a test suite and execute it step wise.
It shall:

- Open https://demoshop.makrocode.de/
- Add item to cart
- Assert item was added to cart
- Add another item to cart
- Assert another item was added to cart
- Checkout
- Assert checkout was successful

Execute step by step and build final test suite afterwards
Create in BDD style and use Keywords with embedded arguments when applicable

結果: Given/When/Then キーワード、埋め込み引数、抽出された変数を使用した BDD スタイルの Robot Framework テストスイート。

🌐 Web アプリケーションテスト(データ駆動)

プロンプト:

Use RobotMCP to create a test suite and execute it step wise.
It shall:

- Open https://saucedemo.com
- Login with different user/password combinations
- Assert message or login

Execute step by step and build final test suite afterwards
Create in datadriven style and add multiple test rows with different scenarios
Use Test Template setting in suite

結果: Test Template と各ログインシナリオのパラメータ化された行を使用したデータ駆動型 Robot Framework テストスイート。

📱 モバイルアプリテスト

プロンプト:

Use RobotMCP to create a TestSuite and execute it step wise.
It shall:
- Launch app from tests/appium/SauceLabs.apk
- Perform login flow
- Add products to cart
- Complete purchase

Appium server is running at http://localhost:4723
Execute the test suite stepwise and build the final version afterwards.

結果: AppiumLibrary キーワードとデバイスケイパビリティを使用したモバイルテストスイート。

🔌 API テスト

プロンプト:

Read the Restful Booker API documentation at https://restful-booker.herokuapp.com.
Use RobotMCP to create a TestSuite and execute it step wise.
It shall:

- Create a new booking
- Authenticate as admin
- Update the booking
- Delete the booking
- Verify each response

Execute the test suite stepwise and build the final version afterwards.

結果: 適切なエラーハンドリングを備えた RequestsLibrary を使用した API テストスイート。

🧪 XML/データベーステスト

プロンプト:

Create a xml file with books and authors.
Use RobotMCP to create a TestSuite and execute it step wise.
It shall:
- Parse XML structure
- Validate specific nodes and attributes
- Assert content values
- Check XML schema compliance

Execute the test suite stepwise and build the final version afterwards.

結果: Robot Framework の XML ライブラリを使用した XML 処理テスト。


🔍 MCP ツール

rf-mcp はその機能を MCP ツールとしてエージェントに公開し、目的別にグループ化されています: 計画とオーケストレーション、セッションと実行、発見とドキュメント、 可観測性と診断、スイートライフサイクル、ロケーターガイダンス、ビジュアル検証、 およびオプションの永続メモリ。

完全なリファレンス: docs/MCP_TOOLS.md — すべてのツールとその パラメータ、戻り値、使用すべきタイミング。エージェントはこれらの説明を直接読み取ります。 手動で呼び出す必要はほとんどありません。

🧪 BDD およびデータ駆動テスト生成

BDD スタイル(Given/When/Then)

プロンプト:

Use RobotMCP to create a test suite and execute it step wise.
It shall:

- Open https://demoshop.makrocode.de/
- Add item to cart
- Assert item was added to cart
- Add another item to cart
- Assert another item was added to cart
- Checkout
- Assert checkout was successful

Execute step by step and build final test suite afterwards
Create in BDD style and use Keywords with embedded arguments when applicable

結果: RobotMCP は各ステップを実行し、アクション間で DOM を検査し、Given/When/Then キーワードを使用した BDD スタイルのスイートを生成します:

*** Test Cases ***
Demoshop BDD Purchase Workflow
    Given the demoshop is open
    When the user adds the first product to cart
    Then the cart should contain 1 item
    When the user adds the second product to cart
    Then the cart should contain 2 items
    When the user proceeds to checkout
    And the user fills in the checkout form
    And the user places the order
    Then the order confirmation should be displayed

*** Keywords ***
the demoshop is open
    New Browser    chromium
    New Context
    New Page    ${DEMOSHOP_URL}

the user adds the first product to cart
    Click    ${FIRST_PRODUCT_BUTTON}

ステップ単位の実行中は、execute_stepbdd_groupbdd_intent を使用して、ステップを動作キーワードにグループ化する方法を制御します。最後に build_test_suite(bdd_style=True) を呼び出します。

データ駆動テンプレート

プロンプト:

Use RobotMCP to create a test suite and execute it step wise.
It shall:

- Open https://saucedemo.com
- Login with different user/password combinations
- Assert message or login

Execute step by step and build final test suite afterwards
Create in datadriven style and add multiple test rows with different scenarios
Use Test Template setting in suite

結果: RobotMCP は、名前付きデータ行を持つ Test Template を使用してパラメータ化されたスイートを構築します:

*** Settings ***
Library         Browser
Test Template   Verify Login

*** Test Cases ***          USERNAME            PASSWORD        EXPECTED
Valid User                  standard_user       secret_sauce    Products
Locked Out User             locked_out_user     secret_sauce    locked out
Invalid Password            standard_user       wrong_pass      Username and password do not match

manage_session(action="start_test", template="Verify Login") を使用してテンプレートキーワードを設定し、次に manage_session(action="add_data_row", test_name="Valid User", args=["standard_user", "secret_sauce", "Products"]) を使用して各行を追加します。


🧠 小型 LLM 最適化

RobotMCP には、小型および中型の LLM(8K〜32K コンテキストウィンドウ)向けの最適化が含まれており、トークンオーバーヘッドを削減し、ツール呼び出しの精度を向上させます。

動的ツールプロファイル

ワークフローフェーズに基づいて、LLM に表示されるツールを制御します。小型モデルでは、より少なく、よりコンパクトなツールが表示されます:

manage_session(action="set_tool_profile", tool_profile="browser_exec")

プロファイル: browser_execapi_execdiscoveryminimal_execfull。ツールの説明オーバーヘッドを ~7,000 トークンから ~1,000 トークンに削減します。ROBOTMCP_TOOL_PROFILE 環境変数でも設定できます。

レスポンスの冗長性

トークン消費を削減するためにレスポンスの詳細レベルを制御します。ほとんどのツールで detail_level パラメータを使用して利用可能です:

  • minimal – 必須出力のみ(トークン削減 60〜80%)

  • standard – バランスの取れた出力(デフォルト)

  • full – 完全な詳細出力

ROBOTMCP_OUTPUT_VERBOSITY=compact|standard|verbose でデフォルトを設定します。

デルタ状態レスポンス

get_session_state は、前回の呼び出し以降に変更されたセクションのみを返す増分レスポンスをサポートしています:

# First call returns full state (version 1):
get_session_state(session_id="...", sections=["variables", "page_source"])

# Subsequent calls return only what changed:
get_session_state(session_id="...", mode="delta", since_version=1)

mode="auto"(デフォルト)では、以前のバージョンが存在する場合、サーバーは自動的にデルタレスポンスを返します。これにより、ステップ間で変数やページコンテンツのみが変更されるマルチステップワークフローでは、トークン使用量が 50〜80% 削減されます。

アーティファクト外部化

大きな出力(HTML ページソース、実行ログ、スタックトレース)は、レスポンスにインライン化する代わりに、自動的に取得可能なアーティファクトに外部化されます:

# Response includes artifact_id instead of full content:
{"result": "...", "artifact_id": "abc123", "artifact_hint": "Full page source available via fetch_artifact"}

# Fetch when needed:
fetch_artifact(artifact_id="abc123")

これにより、ツールのレスポンスをコンパクトに保ちながら、必要に応じて完全な出力へのアクセスを維持します。

インテントアクション

intent_action ツールは、一般的なテストアクションのためのライブラリ非依存のエントリポイントを提供します。LLM がライブラリ固有のキーワード名やロケーター構文を知る必要なく、インテントを表現します:

intent_action(intent="click", target="text=Login", session_id="...")
intent_action(intent="fill", target="#username", value="testuser", session_id="...")

サーバーは、インテント + ターゲットを、セッションのアクティブなライブラリ(Browser、SeleniumLibrary、または AppiumLibrary)の正しいキーワードとロケーターフォーマットに解決します。

ナビゲートフォールバック

intent_action(intent="navigate") がブラウザまたはページが開いていないために失敗した場合、サーバーは自動的にブラウザ/ページを開いて再試行します:

  • Browser ライブラリ: New Browser + New Page を実行します(ブラウザが存在する場合は New Page のみ)

  • SeleniumLibrary: Open Browser about:blank chrome を実行します

レスポンスには fallback_applied: truefallback_steps 数が含まれます。セッションあたり 2〜4 回のツール呼び出しを節約します。

バッチ実行

execute_batch ツールは、単一の MCP 呼び出しで複数のキーワードを実行し、N 回のラウンドトリップを 1 回に削減します。ステップは ${STEP_N} 変数を介して以前のステップの結果を参照できます:

execute_batch(session_id="...", steps=[
    {"keyword": "Go To", "args": ["https://example.com"]},
    {"keyword": "Get Title", "assign_to": "title"},
    {"keyword": "Should Be Equal", "args": ["${STEP_2}", "Example Domain"]}
], on_failure="recover")

ステップが失敗した場合、resume_batch を使用して修正ステップを挿入し、失敗ポイントから再試行できます。

厳密モードヒント

Browser Library のキーワードがセレクターが複数の要素に一致するために失敗した場合(Playwright の厳密モード)、エラーレスポンスには >> nth=0(ゼロベースのインデックス)または >> visible=true セレクターチェーンを提案するヒントが、実際のキーワード名と要素数を使用した具体的な例とともに含まれます。

型制約パラメータ

すべてのアクション/モード/ストラテジーパラメータは Literal 型を使用し、JSON スキーマで enum 制約を生成します。これにより、幻覚による値(例: action="setup" の代わりに action="init")が排除されます。すべての値は大文字小文字を区別しない入力を受け付けます。

自動パラメータ強制変換

一般的な小型 LLM の誤りはサーバー側で修正されます:

  • JSON 文字列化された配列("[\"Browser\"]")はネイティブ配列に解析されます

  • カンマ区切りの文字列("Browser,BuiltIn")はリストに分割されます

  • 非推奨のキーワード(GET)は現在の同等のもの(GET On Session)にマッピングされます

指示テンプレート

設定可能なサーバーレベルの指示により、LLM が「発見してから実行」パターンに従うように導きます。LLM の能力に合わせてテンプレートを選択してください — Claude Opus 用の minimal~40 トークン)から Claude Haiku 用の detailed~600 トークン)まで。上記の 指示テンプレート を参照してください。


🧠 永続セマンティックメモリ

RobotMCP は過去のセッションから学習し、成功したパターン、ロケーター、エラー修正を呼び出すことができ、繰り返しのテストシナリオでの試行錯誤を削減します。

仕組み

メモリは sqlite-vec(ベクトル検索)と model2vec(256 次元埋め込み)によって実現されています。有効にすると、サーバーは:

  1. 保存: 各ツール呼び出し後に、成功したステップシーケンス、動作するロケーター、エラー→修正のマッピングを保存します

  2. 呼び出し: 関連するメモリを呼び出し、ツールレスポンスにヒントとして注入します(例: execute_step の失敗には以前の修正が含まれ、get_session_state には以前に成功したステップパターンが含まれます)

  3. 学習: セッションをまたいで学習します — ウォームデータベースはサーバー再起動後も保持されます

インストール

pip install rf-mcp[memory]
# or
uv pip install rf-mcp[memory]

設定

環境変数で有効にします:

{
  "servers": {
    "robotmcp": {
      "type": "stdio",
      "command": "uv",
      "args": ["run", "-m", "robotmcp.server"],
      "env": {
        "ROBOTMCP_MEMORY_ENABLED": "true",
        "ROBOTMCP_MEMORY_DB_PATH": "./memory.db"
      }
    }
  }
}

メモリ MCP ツール

メモリが有効な場合、追加の 5 つのツールが利用可能になります:

ツール

説明

recall_step

以前に成功したステップシーケンスを呼び出します。新しいテストステップを構築する前に呼び出して、実証済みのパターンを再利用します。

recall_fix

エラーの既知の修正を呼び出します。execute_step が失敗した直後、再試行する前に呼び出します。

recall_locator

UI 要素の動作するロケーターを呼び出します。既知の要素の DOM 検査の前に呼び出します。

store_knowledge

ドメイン知識(例: サイト構造、認証フロー)を将来の呼び出しのために保存します。

get_memory_status

セッション開始時にメモリの可用性と統計を確認します。

レスポンス拡張

メモリヒントは既存のツールレスポンスに自動的に注入されます — LLM の協力は不要です:

  • execute_step の失敗: 以前の修正と動作するロケーターがエラーレスポンスに含まれます

  • get_session_state: シナリオに対して以前に成功したステップパターンが含まれます

  • analyze_scenario: 過去のセッションから呼び出されたステップシーケンスが提案されます

すべてのメモリルックアップには 50ms のタイムアウトがあり、レスポンスのレイテンシーに影響を与えません。

ベンチマーク結果

qwen/qwen3-coder を使用して 8 つのシナリオ(72 回の opencode 呼び出し、各 3 回の反復)でテスト済み:

シナリオタイプ

最良結果

メモリ再現率

複雑なWebフロー(チェックアウト)

-23% コール、-22% トークン

3/3 イテレーション

探索中心のブラウジング

最良イテレーションで -44% コール

3/3 イテレーション

APIエラー復旧

-3% コール ±3%(最も狭い信頼区間)

3/3 イテレーション

メモリの利点は、過去のロケーターとステップシーケンスが探索的なツールコールを削減する複雑なマルチステップシナリオで最も顕著です。


⚙️ 設定

rf-mcp は適切なデフォルト設定で動作します。調整が必要な場合は、すべて環境変数で対応できます — 指示テンプレート、アタッチブリッジ、出力/トークン効率、メモリ、フロントエンドダッシュボード、PlatynUI デスクトップセーフティなど。

完全なリファレンス: docs/CONFIGURATION.md — すべての ROBOTMCP_* 変数とその許容値・デフォルト値、さらに robotmcp CLI フラグとサブコマンド。

🤝 コントリビューション

コントリビューションを歓迎します!始め方は以下のとおりです:

  1. リポジトリをフォーク

  2. フォークをローカルにクローン

  3. 開発依存関係をインストール: uv sync

  4. フィーチャーブランチを作成

  5. 新機能の包括的なテストを追加

  6. テストを実行: uv run pytest tests/

  7. プルリクエストを提出

📝 変更履歴

  • v0.34.0 – ネイティブデスクトップ自動化(rf-mcp[desktop]、PlatynUI、Windows対応); プロジェクト自身のライブラリを使用するプロジェクト認識型インストーラー; よりスリムなエージェント指示; コールドスタート時のハング、Windows ドライラン時のデッドロック、生成スイートのパス問題の修正; FastMCP 3 でツールプロファイルを復元

  • v0.31.1 – パッケージングのクリーンアップ(sdist から tests/examples を除外)

  • v0.31.0 – BDD/データ駆動生成、名前空間アーキテクチャの修正、永続メモリ、71〜88% のトークン削減

  • v0.30.1 – FastMCP 3.x 互換レイヤー

  • v0.30.0 – 小規模 LLM 最適化(ツールプロファイル、インテントアクション、レスポンス最適化、型制約)

  • v0.29.0 – 指示テンプレート、マルチテストセッション、バッチ実行、スマートタイムアウト

📄 ライセンス

Apache 2.0 ライセンス - 詳細は LICENSE ファイルを参照してください。


⭐ RobotMCP がテスト自動化の旅に役立ったら、GitHub でスターをお願いします!

Robot Framework と AI 自動化コミュニティのために ❤️ を込めて作られました。

Install Server
A
license - permissive license
B
quality
B
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
    A
    quality
    A
    maintenance
    RobotMCP is a comprehensive Model Context Protocol (MCP) server that bridges the gap between human language and Robot Framework automation. It enables AI agents to understand test intentions, execute steps interactively, and generate complete test suites from successful executions.
    19
    112
    Apache 2.0
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables generating Robot Framework test cases with SeleniumLibrary, creating page object models, and performing performance monitoring through natural language.
    19
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI models (Claude, ChatGPT, GitHub Copilot) to run and analyze local tests, rerun failures, and orchestrate QA workflows using existing UI and API test frameworks.
    7
    MIT

View all related MCP servers

Related MCP Connectors

  • AI-powered browser automation — navigate, click, fill forms, and extract data from any website.

  • AI QA tester — real browsers scan sites for bugs, SEO, perf, and accessibility issues via chat.

  • AI Agent with Architectural Memory. Impact analysis (free), tests and code from the graph (pro).

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/carlos-eduardo-1984/RobotFrameworkMCP'

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