RobotMCP
🤖 RobotMCP - AI 기반 테스트 자동화 브리지
평범한 영어를 입력하면 실제 Robot Framework 테스트가 출력됩니다 — AI 에이전트가 타이핑을 대신합니다.
RobotMCP(rf-mcp)는 코딩 에이전트에게 Robot Framework의 열쇠를 쥐여주는 Model Context Protocol (MCP) 서버입니다. 에이전트는 키워드를 발견하고, Browser, Selenium, Appium, Requests, 데이터베이스 또는 데스크톱을 대상으로 단계를 실시간으로 실행하며 실제로 어떤 일이 일어나는지 확인하고, 단계가 통과하면 깔끔한 .robot 스위트를 작성합니다. 추측한 로케이터, 환각된 키워드, "내 컴퓨터에서는 작동해요"는 없습니다. Robot Framework 기반으로 구축되었으며, 오픈 소스이고 항상 진화합니다.
rf-mcp가 처음이신가요? **Getting Started**로 이동하세요. 전체 그림을 보려면 MCP 도구 참조, 구성, **작동 예제**를 확인하세요.
📺 비디오 튜토리얼

소개
https://github.com/user-attachments/assets/ad89064f-cab3-4ae6-a4c4-5e8c241301a1
✨ 빠른 시작
세 개의 명령과 한 문장. 그것이 전체 설정입니다.
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에 추가됩니다. 추가 기능(extras)은 어떤 테스트 라이브러리가 함께 제공되는지 결정합니다 — 설치 아래의 extras 표를 참조하세요.
2️⃣ 코딩 에이전트에 연결
robotmcp init # detects libraries, prints the MCP config to paste
robotmcp install # registers rf-mcp into the agents it findsrobotmcp 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-mcp3️⃣ 테스트 시작 — 그냥 요청하세요
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
📚 문서
가이드 | 내용 |
설치, 에이전트 연결, 첫 테스트 실행 | |
rf-mcp가 에이전트에 노출하는 모든 도구 — 매개변수, 반환 값, 사용 시기 | |
모든 | |
복사하여 사용할 수 있는 웹 / API / 모바일 / 데스크톱 / BDD / 데이터 기반 워크스루 | |
rf-mcp에 자신의 Robot Framework 라이브러리를 가르치기 | |
프로젝트별 에이전트 동작 제어 |
🛠️ 설치
빠른 시작은 권장 경로(uv tool install)를 다룹니다. 이
섹션에는 extras 표, 대체 설치 방법, 전체 에이전트 등록 세부 정보가 있습니다.
Extras
Extras는 어떤 Robot Framework 라이브러리가 함께 제공되는지 결정합니다:
Extra | 추가되는 것 | 설치 후 |
| RequestsLibrary | 없음 |
| SeleniumLibrary + Browser | Selenium: 없음 (Selenium Manager가 드라이버를 가져옴); Browser: |
| AppiumLibrary | Appium 서버 (외부) |
| DatabaseLibrary | DB 드라이버 |
| PlatynUI 네이티브 데스크톱 (Windows/Linux) | Python 3.12+ |
| Django 대시보드 | — |
| 영구 의미 메모리 (sqlite-vec + model2vec) |
|
| 위의 모든 Robot Framework 라이브러리 (Python 3.12+에서 | 위와 동일 |
Browser Library에는 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 --devDocker
사전 빌드된 이미지 (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를 확장하세요. 두 가지 검색 모드를 사용할 수 있습니다:
엔트리 포인트 (
robotmcp.library_plugins) — 패키지된 플러그인용.매니페스트 파일 (JSON) —
.robotmcp/plugins/아래의 작업 영역 재정의용.
자세한 지침은 라이브러리 플러그인 작성 가이드를 참조하고, examples/plugins/sample_plugin의 샘플 플러그인을 탐색하여 빠르게 시작하세요.
🖥️ 프론트엔드 대시보드
RobotMCP에는 활성 세션, 키워드 및 도구 활동을 미러링하는 선택적 Django 기반 대시보드가 포함되어 있습니다.

프론트엔드 extras 설치
pip install rf-mcp[frontend]프론트엔드를 활성화한 상태로 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=1,ROBOTMCP_FRONTEND_HOST,ROBOTMCP_FRONTEND_PORT,ROBOTMCP_FRONTEND_BASE_PATH,ROBOTMCP_FRONTEND_DEBUG
MCP 클라이언트 연결 (Cline, Claude Desktop 등)을 동일한 서버 프로세스에 연결 — 세션이 활성화되면 대시보드가 자동으로 이벤트를 스트리밍합니다.
특정 실행에서 대시보드를 비활성화하려면 플래그를 생략하거나 --without-frontend를 전달하세요.
📋 지침 템플릿
RobotMCP는 MCP initialize 응답을 통해 서버 수준 지침을 LLM에 보내어 키워드를 실행하기 전에 발견하도록 안내합니다. 이는 특히 작은 LLM에서 실패한 도구 호출과 낭비되는 토큰을 크게 줄여줍니다.
구성
세 가지 환경 변수가 지침 동작을 제어합니다:
변수 | 값 | 기본값 |
|
|
|
|
|
|
|
| (없음, mode=custom일 때 필수) |
|
|
|
|
| (꺼짐) |
출력 및 로깅. MCP stdio 채널(stdout)은 JSON-RPC만 전달합니다. 모든 로그와 한 줄 준비 배너는 stderr로 이동합니다. 로깅은 기본적으로
WARNING이므로 클라이언트가 넘치지 않습니다 — 문제 해결을 위해ROBOTMCP_LOG_LEVEL=INFO/DEBUG를 설정하세요. 로깅은 실행을 차단하지 않습니다 (오버플로 시 드롭되는 백그라운드 스레드에서 배출됨), fd 1은 전송에서 절대 리디렉션되지 않습니다.
내장 템플릿
템플릿 | ~토큰 | 최적 용도 |
| ~40 | 고성능 LLM(Claude Opus, GPT-4) — 간단한 알림만 |
| ~400 | 중급 LLM(Claude Sonnet, GPT-4o) — 균형 잡힌 워크플로우 가이드 |
| ~600 | 소형 LLM(Claude Haiku, GPT-4o-mini) — 예제 포함 단계별 가이드 |
| ~350 | 웹 전용 테스트 시나리오 |
| ~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는 localhost HTTP 브리지를 통해 라이브 ExecutionContext를 노출하는 경량 Robot Framework 라이브러리인 robotmcp.attach.McpAttach를 제공합니다. VS Code(RobotCode) 또는 다른 IDE에서 스위트를 디버깅할 때 브리지를 통해 RobotMCP가 별도의 컨텍스트를 생성하는 대신 프로세스 내 변수, 임포트 및 키워드 검색 순서를 재사용할 수 있습니다.
MCP 서버 설정
Debug Bridge에 전달된 환경 변수가 포함된 예제 구성
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 StopMCP Serve port=7317 token=${TOKEN} mode=blocking|step poll_ms=100— HTTP 서버를 시작하고(실행 중이 아닌 경우) 브리지 명령을 처리합니다. 키워드 본문 실행 중에는mode=step을 사용하여 대기 중인 요청을 정확히 하나만 처리합니다.MCP Stop— 서브 루프 종료를 알립니다(스위트에서 또는 RobotMCPattach_stop_bridge를 통해 원격으로 사용).MCP Process Once— 대기 중인 요청 하나를 처리하고 즉시 반환합니다. 스위트가 테스트 작업 사이에 폴링할 때 유용합니다.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.serverROBOTMCP_ATTACH_HOST가 설정되면 execute_step(..., use_context=true) 및 기타 컨텍스트 인식 도구는 먼저 라이브 디버그 세션 내에서 실행을 시도합니다. 새 MCP 도구를 사용하여 모든 에이전트에서 브리지를 관리합니다:
attach_status— 브리지의 구성, 연결 가능성 및 진단 정보를 보고합니다(/diagnostics).attach_stop_bridge—/stop명령을 보내며, 이는 디버깅 중인 스위트에서MCP Stop을 트리거합니다.
🎪 예제 워크플로우
🌐 웹 애플리케이션 테스트(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 테스트 스위트.
🌐 웹 애플리케이션 테스트(데이터 기반)
프롬프트:
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_step에서 bdd_group 및 bdd_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 matchmanage_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_exec, api_exec, discovery, minimal_exec, full. 도구 설명 오버헤드를 ~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: true 및 fallback_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를 사용하여 수정 단계를 삽입하고 실패 지점부터 재시도할 수 있습니다.
엄격 모드 힌트
선택자가 여러 요소와 일치하여(Playwright 엄격 모드) Browser Library 키워드가 실패하면 오류 응답에 >> nth=0(0 기반 인덱스) 또는 >> visible=true 선택자 체인을 제안하는 힌트가 실제 키워드 이름과 요소 수를 사용한 구체적인 예제와 함께 포함됩니다.
타입 제약 매개변수
모든 action/mode/strategy 매개변수는 Literal 타입을 사용하여 JSON Schema에서 enum 제약 조건을 생성합니다. 이는 환각된 값(예: action="init" 대신 action="setup")을 제거합니다. 모든 값은 대소문자를 구분하지 않는 입력을 허용합니다.
자동 매개변수 변환
소형 LLM의 일반적인 실수는 서버 측에서 수정됩니다:
JSON 문자열화된 배열(
"[\"Browser\"]")은 네이티브 배열로 파싱됩니다쉼표로 구분된 문자열(
"Browser,BuiltIn")은 목록으로 분할됩니다더 이상 사용되지 않는 키워드(
GET)는 현재 동등한 키워드(GET On Session)로 매핑됩니다
지침 템플릿
구성 가능한 서버 수준 지침은 LLM이 "discover-then-act" 패턴을 따르도록 안내합니다. LLM의 성능에 맞는 크기의 템플릿을 선택하세요 — Claude Opus용 minimal(~40 토큰)부터 Claude Haiku용 detailed(~600 토큰)까지. 위의 지침 템플릿을 참조하세요.
🧠 영구 의미 메모리
RobotMCP는 과거 세션에서 학습하고 성공적인 패턴, 로케이터 및 오류 수정을 기억하여 반복 테스트 시나리오의 시행착오를 줄일 수 있습니다.
작동 방식
메모리는 sqlite-vec(벡터 검색) 및 model2vec(256차원 임베딩)으로 구동됩니다. 활성화되면 서버는:
저장: 각 도구 호출 후 성공적인 단계 시퀀스, 작동하는 로케이터 및 오류→수정 매핑을 저장합니다
기억: 관련 메모리를 기억하고 도구 응답에 힌트로 주입합니다(예:
execute_step실패에 이전 수정 사항 포함,get_session_state에 이전에 성공한 단계 패턴 포함)학습: 세션 간에 학습합니다 — 웜 데이터베이스는 서버 재시작 사이에도 유지됩니다
설치
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개의 추가 도구를 사용할 수 있습니다:
도구 | 설명 |
| 이전에 성공한 단계 시퀀스를 기억합니다. 검증된 패턴을 재사용하기 위해 새 테스트 단계를 구축하기 전에 호출합니다. |
| 오류에 대한 알려진 수정 사항을 기억합니다. |
| UI 요소에 대한 작동하는 로케이터를 기억합니다. 익숙한 요소에 대한 DOM 검사 전에 호출합니다. |
| 향후 기억을 위해 도메인 지식(예: 사이트 구조, 인증 흐름)을 저장합니다. |
| 세션 시작 시 메모리 가용성 및 통계를 확인합니다. |
응답 증강
메모리 힌트는 기존 도구 응답에 자동으로 주입됩니다 — LLM 협력이 필요 없습니다:
execute_step실패: 이전 수정 사항과 작동하는 로케이터가 오류 응답에 포함됩니다get_session_state: 시나리오에 대해 이전에 성공한 단계 패턴이 포함됩니다analyze_scenario: 과거 세션에서 기억된 단계 시퀀스가 제안됩니다
모든 메모리 조회는 응답 지연 시간에 영향을 주지 않도록 50ms 타임아웃이 있습니다.
벤치마크 결과
qwen/qwen3-coder로 8개 시나리오(각 3회 반복, 총 72회 opencode 호출)에 걸쳐 테스트되었습니다:
시나리오 유형 | 최상의 결과 | 메모리 회상률 |
복잡한 웹 흐름(체크아웃) | 호출 -23%, 토큰 -22% | 3/3 반복 |
탐색 중심 브라우징 | 최적 반복에서 호출 -44% | 3/3 반복 |
API 오류 복구 | 호출 -3% ±3%(가장 좁은 CI) | 3/3 반복 |
메모리 이점은 과거 로케이터와 단계 시퀀스가 탐색적 도구 호출을 줄여주는 복잡한 다단계 시나리오에서 가장 큽니다.
⚙️ 구성
rf-mcp는 합리적인 기본값으로 실행됩니다. 조정이 필요할 때는 모든 것이 환경 변수로 해결됩니다 — 명령 템플릿, attach 브리지, 출력/토큰 효율, 메모리, 프론트엔드 대시보드, PlatynUI 데스크톱 안전 등.
전체 참조: docs/CONFIGURATION.md — 모든 ROBOTMCP_* 변수의 허용 값과 기본값, 그리고 robotmcp CLI 플래그 및 하위 명령.
🤝 기여
기여를 환영합니다! 시작하는 방법은 다음과 같습니다:
저장소 포크
로컬에 포크 클론
개발 의존성 설치:
uv sync기능 브랜치 생성
새 기능에 대한 포괄적인 테스트 추가
테스트 실행:
uv run pytest tests/풀 리퀘스트 제출
📝 변경 로그
v0.34.0 – 네이티브 데스크톱 자동화(
rf-mcp[desktop], PlatynUI, Windows 지원); 프로젝트 자체 라이브러리를 사용하는 프로젝트 인식 설치 프로그램; 더 간결한 에이전트 지침; 콜드 스타트 중단, Windows dry-run 교착 상태 및 생성된 스위트 경로 수정; FastMCP 3에서 도구 프로필 복원v0.31.1 – 패키징 정리(sdist에서 테스트/예제 제외)
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에서 Star를 눌러주세요!
Robot Framework 및 AI 자동화 커뮤니티를 위해 ❤️로 제작되었습니다.
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
- AlicenseAqualityAmaintenanceRobotMCP 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.19112Apache 2.0
- AlicenseNot gradedqualityDmaintenanceEnables generating Robot Framework test cases with SeleniumLibrary, creating page object models, and performing performance monitoring through natural language.19MIT
- FlicenseNot gradedqualityCmaintenanceEnables AI assistants to execute browser automation, perform QA tasks, and generate test code through natural language commands using Playwright.5
- AlicenseNot gradedqualityDmaintenanceEnables 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.7MIT
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).
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/carlos-eduardo-1984/RobotFrameworkMCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server