Server data from the Official MCP Registry
Let an AI agent drive a 2D robot rover simulator in the browser: sensors, camera, wiring and code.
About
Let an AI agent drive a 2D robot rover simulator in the browser: sensors, camera, wiring and code.
Security Report
Valid MCP server (2 strong, 3 medium validity signals). No known CVEs in dependencies. Package registry verified. Imported from the Official MCP Registry.
3 files analyzed · 1 issue found
Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.
Permissions Required
This plugin requests these system permissions. Most are normal for its category.
What You'll Need
Set these up before or after installing:
Environment variable: ROVER_SIMULATOR_URL
Environment variable: ROVER_BRIDGE_PORT
Environment variable: ROVER_ALLOWED_ORIGINS
How to Install
Add this to your MCP configuration file:
{
"mcpServers": {
"io-github-taewankung-ai-rover-mcp": {
"env": {
"ROVER_BRIDGE_PORT": "your-rover-bridge-port-here",
"ROVER_SIMULATOR_URL": "your-rover-simulator-url-here",
"ROVER_ALLOWED_ORIGINS": "your-rover-allowed-origins-here"
},
"args": [
"-y",
"ai-rover-mcp"
],
"command": "npx"
}
}
}Documentation
View on GitHubFrom the project's GitHub README.
ai-rover-mcp
MCP server for AI Rover Studio, a 2D robot simulator that runs in the browser. It lets an AI agent (Claude Code, Claude Desktop or any MCP client) observe and drive the rover, change its body, run programs and read the real wiring for an ESP32 / Arduino Uno / Raspberry Pi. Simulation only: nothing is sent to hardware.
MCP client ──stdio──▶ ai-rover-mcp ──WebSocket 127.0.0.1:8765──▶ simulator page in your browser
The page must be open in a browser and the tab must stay visible, because browsers
pause animation frames in background tabs, so the simulation stops there. The badge in
the page header shows MCP ● connected while the bridge is up.
Setup
Needs Node.js 18 or newer.
Claude Code
claude mcp add ai-rover -- npx -y ai-rover-mcp
Then ask Claude to "open the rover simulator". open_simulator opens the hosted simulator
with ?mcp=on, which tells the page to connect to this server.
Claude Desktop / other clients
{
"mcpServers": {
"ai-rover": {
"command": "npx",
"args": ["-y", "ai-rover-mcp"]
}
}
}
From a clone
npm install
claude mcp add ai-rover -- node /path/to/ai-rover-mcp/server.js
Opening the simulator yourself
Open https://ai-rover.app/app/?mcp=on. Without ?mcp=on the hosted page does not
try to reach a local MCP server; you can also press เชื่อมต่อ MCP on its Agent / MCP page.
A copy opened from disk (file://) or from localhost connects on its own.
Tools
| Tool | What it does |
|---|---|
open_simulator | Opens the simulator (hosted, or ROVER_SIMULATOR_URL) in the default browser and waits for it to connect |
connection_status | Whether the page is connected |
get_observation | Pose, velocity, sensor readings, face state and simulation status |
read_sensors | Fresh readings from the enabled sensors, with mounting info and units |
drive | forward / backward / left / right for 0.2–10 s; waits by default and returns the new observation |
turn | Turn on the spot by an exact angle |
stop | Emergency stop: cancels movement, turns autopilot off, pauses |
set_simulation | Start or pause the simulation |
set_autopilot | Rule-based autopilot (seek light, avoid obstacles) on or off |
set_power | Motor power, 10–100 % |
set_head / get_head | Head pan servo: turn to an angle, or track the light |
press_button / get_button_events | Press a push button on the rover / read presses made by a person |
run_program / stop_program / get_program | Run JavaScript that uses the rover library in the page, stop it, read its status and console |
set_emotion | Face expression on the display, with a message in the top line |
display_text | The rover "says" a text: small face + speech bubble on the Face Display (Thai supported) |
set_display | Fit a display module: ssd1306 (128×64 mono OLED), ssd1331 (96×64 colour OLED) or st7789 (240×240 colour TFT) |
draw_display | Show a picture on the Face Display from rows of characters |
read_display | What the display shows: mode, stats and pixels as ASCII art |
move_light | Move the light source |
reset_world | Rover and light back to their start positions |
send_chat | Send text to the in-page Agent Chat parser and get its reply |
get_manifest | Robot Capability Manifest (ai-cartridge/body-v1) |
list_sensors / add_sensor / update_sensor / remove_sensor | Configure the sensors on the robot body |
set_module | Fit or remove wheels, head, display or camera |
capture_camera | Picture from the rover's forward camera (PNG image) plus detections with bearing and distance |
get_sensor_map | Map the rover built from its own sensors: occupancy grid, floor colors, camera landmarks, bump points |
get_wiring | Circuit for the fitted body on esp32, uno or raspberrypi: every pin, power budget, wiring issues, pins.h / pins.py |
get_firmware | Complete firmware for the fitted body: Arduino .ino or Raspberry Pi rover.py |
get_bom | Parts list to build the fitted body for real, with quantities, approximate prices and shop links |
list_world | World layout: light, obstacles, colored floor tape |
add_obstacle / remove_obstacle | Place test objects: cylinder, ball, box or wall, with size and color |
add_color_tape / remove_color_tape | Colored floor tape for the color sensor, line following and the camera |
Example prompts: "Open the rover simulator and drive it to the light without using the autopilot", "Add an IR sensor on each side angled ±45° and tell me the readings", "What parts do I need to build this rover on an ESP32?"
Configuration
ROVER_BRIDGE_PORT(default8765). If you change it, the page needs?mcpPort=<port>(open_simulatoradds this for you).ROVER_SIMULATOR_URL: the pageopen_simulatoropens instead of the hosted one. A URL (http://localhost:5173while developing) or a path to a local build (dist/index.html, relative to the working directory).ROVER_ALLOWED_ORIGINS: extra comma-separatedhttps://origins the bridge accepts (for a self-hosted copy of the simulator).- On the page:
?mcp=onconnects to the server,?mcp=offnever does.
Security
The WebSocket listens on 127.0.0.1 only. It accepts connections only from the page
opened from disk (file://), from localhost, from the hosted simulator, or from the
origin of ROVER_SIMULATOR_URL / ROVER_ALLOWED_ORIGINS, so other websites open in the
same browser cannot pose as the rover. The page only runs the fixed set of methods listed
above; it never evaluates code it receives from the server, except the program you send
with run_program, which runs in a Web Worker.
License
MIT
Reviews
No reviews yet
Be the first to review this server!
More Developer Tools MCP Servers
Rea
Freeby Morluto · Developer Tools
Reverse engineer anything from your terminal or agent with one CLI and MCP server.
Paperclip
Freeby Paperclipai · Developer Tools
Trending hip-hop artist momentum scores across four cultural dimensions.
Fetch
Freeby Modelcontextprotocol · Developer Tools
Web content fetching and conversion for efficient LLM usage
Git
Freeby Modelcontextprotocol · Developer Tools
Read, search, and manipulate Git repositories programmatically
Toleno
Freeby Toleno · Developer Tools
Toleno Network MCP Server — Manage your Toleno mining account with Claude AI using natural language.
MCP Marketplace
Freeby mcp-marketplace · Developer Tools
Search and install MCP servers from inside your AI client.
