Back to Browse

Ai Rover MCP Server

Developer ToolsLow Risk10.0MCP RegistryLocal
Free

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

10.0
Low Risk10.0Low Risk

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.

file_system

Check that this permission is expected for this type of plugin.

env_vars

Check that this permission is expected for this type of plugin.

Shell Command Execution

Runs commands on your machine. Be cautious — only use if you trust this plugin.

network_websocket

Check that this permission is expected for this type of plugin.

What You'll Need

Set these up before or after installing:

Simulator page that open_simulator opens: a URL or a path to a local build. Default: https://ai-rover.app/app/?mcp=onOptional

Environment variable: ROVER_SIMULATOR_URL

Local WebSocket port the simulator page connects to. Default: 8765Optional

Environment variable: ROVER_BRIDGE_PORT

Extra comma-separated https origins the bridge acceptsOptional

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 GitHub

From 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

ToolWhat it does
open_simulatorOpens the simulator (hosted, or ROVER_SIMULATOR_URL) in the default browser and waits for it to connect
connection_statusWhether the page is connected
get_observationPose, velocity, sensor readings, face state and simulation status
read_sensorsFresh readings from the enabled sensors, with mounting info and units
driveforward / backward / left / right for 0.2–10 s; waits by default and returns the new observation
turnTurn on the spot by an exact angle
stopEmergency stop: cancels movement, turns autopilot off, pauses
set_simulationStart or pause the simulation
set_autopilotRule-based autopilot (seek light, avoid obstacles) on or off
set_powerMotor power, 10–100 %
set_head / get_headHead pan servo: turn to an angle, or track the light
press_button / get_button_eventsPress a push button on the rover / read presses made by a person
run_program / stop_program / get_programRun JavaScript that uses the rover library in the page, stop it, read its status and console
set_emotionFace expression on the display, with a message in the top line
display_textThe rover "says" a text: small face + speech bubble on the Face Display (Thai supported)
set_displayFit a display module: ssd1306 (128×64 mono OLED), ssd1331 (96×64 colour OLED) or st7789 (240×240 colour TFT)
draw_displayShow a picture on the Face Display from rows of characters
read_displayWhat the display shows: mode, stats and pixels as ASCII art
move_lightMove the light source
reset_worldRover and light back to their start positions
send_chatSend text to the in-page Agent Chat parser and get its reply
get_manifestRobot Capability Manifest (ai-cartridge/body-v1)
list_sensors / add_sensor / update_sensor / remove_sensorConfigure the sensors on the robot body
set_moduleFit or remove wheels, head, display or camera
capture_cameraPicture from the rover's forward camera (PNG image) plus detections with bearing and distance
get_sensor_mapMap the rover built from its own sensors: occupancy grid, floor colors, camera landmarks, bump points
get_wiringCircuit for the fitted body on esp32, uno or raspberrypi: every pin, power budget, wiring issues, pins.h / pins.py
get_firmwareComplete firmware for the fitted body: Arduino .ino or Raspberry Pi rover.py
get_bomParts list to build the fitted body for real, with quantities, approximate prices and shop links
list_worldWorld layout: light, obstacles, colored floor tape
add_obstacle / remove_obstaclePlace test objects: cylinder, ball, box or wall, with size and color
add_color_tape / remove_color_tapeColored 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 (default 8765). If you change it, the page needs ?mcpPort=<port> (open_simulator adds this for you).
  • ROVER_SIMULATOR_URL: the page open_simulator opens instead of the hosted one. A URL (http://localhost:5173 while developing) or a path to a local build (dist/index.html, relative to the working directory).
  • ROVER_ALLOWED_ORIGINS: extra comma-separated https:// origins the bridge accepts (for a self-hosted copy of the simulator).
  • On the page: ?mcp=on connects to the server, ?mcp=off never 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!