关于 AI Rover Studio
AI Rover Studio 是在浏览器中运行的 2D 机器人模拟器,其 MCP 服务让 AI Agent 观察和操控漫游车、配置模块并运行程序。它还可读取 ESP32、Arduino Uno 或 Raspberry Pi 的接线信息;模拟操作不会发送到真实硬件。
主要功能
- 01读取姿态、速度和传感器数据
- 02驱动、转向并控制自动驾驶
- 03配置传感器、模块和显示屏
- 04运行及查看 JavaScript 程序
- 05获取摄像头画面与传感器地图
- 06读取接线图、固件和物料清单
适用场景
- 01在模拟器中测试漫游车移动和避障
- 02配置传感器并查看读数
- 03为 ESP32 等平台查看接线和固件
- 04依据模拟车体整理所需零件
MCP 相关
MCP 服务通过 stdio 接收客户端调用,再经本地 WebSocket 连接浏览器中的模拟器页面,提供观测、控制和配置工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
npx -y ai-rover-mcpROVER_SIMULATOR_URLSimulator page that open_simulator opens: a URL or a path to a local build. Default: https://ai-rover.app/app/?mcp=onROVER_BRIDGE_PORTLocal WebSocket port the simulator page connects to. Default: 8765ROVER_ALLOWED_ORIGINSExtra comma-separated https origins the bridge accepts本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
41收录的工具列表 · 更新于 1 周前
此工具无需参数。
详细介绍
ai-rover-mcp
适用于 AI Rover Studio 的 MCP 服务。这是一款在浏览器中运行的 2D 机器人模拟器。它允许 AI Agent(Claude Code、Claude Desktop 或任何 MCP 客户端)观察并操控漫游车、更改车身、运行程序,以及读取 ESP32 / Arduino Uno / Raspberry Pi 的真实接线信息。仅供模拟:不会向硬件发送任何内容。
MCP client ──stdio──▶ ai-rover-mcp ──WebSocket 127.0.0.1:8765──▶ simulator page in your browser
页面必须在浏览器中打开,且标签页必须保持可见,因为浏览器会暂停后台标签页中的动画帧,导致模拟停止。桥接服务运行时,页面标题栏中的徽标会显示 MCP ● connected。
设置
需要 Node.js 18 或更高版本。
Claude Code
claude mcp add ai-rover -- npx -y ai-rover-mcp
然后让 Claude “打开漫游车模拟器”。open_simulator 会打开带有 ?mcp=on 的托管模拟器,页面会据此连接到此服务。
Claude Desktop / 其他客户端
{
"mcpServers": {
"ai-rover": {
"command": "npx",
"args": ["-y", "ai-rover-mcp"]
}
}
}
从克隆的仓库运行
npm install
claude mcp add ai-rover -- node /path/to/ai-rover-mcp/server.js
自行打开模拟器
打开 https://ai-rover.app/app/?mcp=on。如果没有 ?mcp=on,托管页面不会尝试连接本地 MCP 服务;你也可以在其 Agent / MCP 页面中按下 连接 MCP。从磁盘(file://)或 localhost 打开的副本会自动连接。
工具
| 工具 | 功能 |
|---|---|
open_simulator | 在默认浏览器中打开模拟器(托管版本,或 ROVER_SIMULATOR_URL),并等待其连接 |
connection_status | 页面是否已连接 |
get_observation | 位姿、速度、传感器读数、面部状态和模拟状态 |
read_sensors | 已启用传感器的最新读数,以及安装信息和单位 |
drive | forward / backward / left / right,持续 0.2–10 s;默认等待并返回新的观测结果 |
turn | 按精确角度原地转向 |
stop | 紧急停止:取消移动、关闭自动驾驶并暂停 |
set_simulation | 启动或暂停模拟 |
set_autopilot | 开启或关闭基于规则的自动驾驶(寻找光源、避开障碍物) |
set_power | 电机功率,10–100 % |
set_head / get_head | 头部平移舵机:转到指定角度,或跟踪光源 |
press_button / get_button_events | 按下漫游车上的按钮 / 读取用户按下按钮的事件 |
run_program / stop_program / get_program | 在页面中运行使用 rover 库的 JavaScript、停止程序、读取程序状态和控制台内容 |
set_emotion | 设置显示屏上的面部表情,并在顶行显示消息 |
display_text | 漫游车“说出”一段文本:在面部显示屏上显示小脸和对话气泡(支持泰语) |
set_display | 安装显示模块:ssd1306(128×64 单色 OLED)、ssd1331(96×64 彩色 OLED)或 st7789(240×240 彩色 TFT) |
draw_display | 根据字符行在面部显示屏上显示图片 |
read_display | 读取显示屏内容:模式、统计信息和 ASCII 艺术像素图 |
move_light | 移动光源 |
reset_world | 将漫游车和光源重置到起始位置 |
send_chat | 向页面内的 Agent Chat 解析器发送文本并获取回复 |
get_manifest | 机器人能力清单(ai-cartridge/body-v1) |
list_sensors / add_sensor / update_sensor / remove_sensor | 配置机器人机身上的传感器 |
set_module | 安装或移除 wheels、head、display 或 camera |
capture_camera | 获取漫游车前置摄像头拍摄的图片(PNG 图像),以及包含方位角和距离的检测结果 |
get_sensor_map | 根据漫游车自身传感器构建的地图:占用栅格、地面颜色、摄像头地标和碰撞点 |
get_wiring | 为安装的机身生成 esp32、uno 或 raspberrypi 电路信息:每个引脚、电源预算、接线问题、pins.h / pins.py |
get_firmware | 为安装的机身生成完整固件:Arduino .ino 或 Raspberry Pi rover.py |
get_bom | 实际组装安装的机身所需的零件清单,包括数量、大致价格和商店链接 |
list_world | 世界布局:光源、障碍物、彩色地面胶带 |
add_obstacle / remove_obstacle | 放置测试物体:cylinder、ball、box 或 wall,并指定尺寸和颜色 |
add_color_tape / remove_color_tape | 为颜色传感器、循线和摄像头添加彩色地面胶带 |
提示词示例:“打开漫游车模拟器,不使用自动驾驶,让它驶向光源”、“在两侧各添加一个倾斜 ±45° 的 IR 传感器,并告诉我读数”、 “在 ESP32 上组装这辆漫游车需要哪些零件?”
配置
ROVER_BRIDGE_PORT(默认值为8765)。如果更改此值,页面需要添加?mcpPort=<port>(open_simulator会自动为你添加)。ROVER_SIMULATOR_URL:open_simulator打开的页面,用来替代托管版本。可以是 URL (开发时使用http://localhost:5173),也可以是本地构建的路径(dist/index.html, 相对于工作目录)。ROVER_ALLOWED_ORIGINS:桥接服务接受的额外逗号分隔https://源 (用于自托管的模拟器副本)。- 在页面上:
?mcp=on会连接到服务器,?mcp=off则始终不连接。
安全性
WebSocket 仅监听 127.0.0.1。它只接受来自从磁盘打开的页面
(file://)、localhost、托管模拟器或 ROVER_SIMULATOR_URL /
ROVER_ALLOWED_ORIGINS 来源的连接,因此,在同一浏览器中打开的其他网站无法冒充
Rover。页面只会运行上面列出的固定方法集;它绝不会执行从服务端收到的代码,但你通过
run_program 发送的程序除外,该程序会在 Web Worker 中运行。
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。