gazebo-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@gazebo-mcplist models in the world"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
gazebo-mcp
gazebo-mcp is an MCP server so AI agents can drive Gazebo / gz-sim: worlds, models, poses, pause/step — with a full offline mock for CI and demos (no Gazebo install required).
Product: mergeos-bounties/gazebo-mcp
Install (one command)
Grok — recommended
pip install "git+https://github.com/mergeos-bounties/gazebo-mcp.git" && grok plugin install mergeos-bounties/gazebo-mcp --trustThis installs the Python CLI (gazebo-mcp) and the Grok plugin (skill + MCP server from .mcp.json).
Check:
gazebo-mcp version
gazebo-mcp doctor
gazebo-mcp demo
grok plugin list
grok mcp listLocal clone:
git clone https://github.com/mergeos-bounties/gazebo-mcp.git
cd gazebo-mcp
pip install -e ".[dev]"
grok plugin install . --trustOther agents (stdio MCP)
After pip install "git+https://github.com/mergeos-bounties/gazebo-mcp.git", point any MCP host at:
Field | Value |
command |
|
args |
|
env |
|
Claude Desktop — merge examples/claude_desktop_config.json into Claude MCP config.
Cursor — merge examples/cursor_mcp.json.
Grok config.toml (manual, without plugin):
[mcp_servers.gazebo_mcp]
command = "gazebo-mcp"
args = ["serve"]
env = { GAZEBO_MCP_MODE = "mock" }
enabled = trueOne-liner via Grok CLI:
pip install "git+https://github.com/mergeos-bounties/gazebo-mcp.git"
grok mcp add gazebo-mcp -- gazebo-mcp serveRelated MCP server: rviz-mcp
Supported AI agents / hosts
Host | Support | Install |
Grok (CLI / TUI / Build) | Yes |
|
Claude Desktop | Yes | Copy examples/claude_desktop_config.json into Claude MCP settings |
Cursor | Yes | Merge examples/cursor_mcp.json into Cursor MCP config |
Claude Code | Yes | stdio MCP: same |
VS Code (MCP / Continue / Cline) | Yes | Generic stdio server config pointing at |
Windsurf / Cascade | Yes | stdio MCP entry with |
Codex CLI | Yes (stdio) | Register MCP server command |
ChatGPT Desktop | Partial | Only if host supports custom MCP stdio servers |
Gemini CLI | Partial | Only if MCP stdio plugins are enabled |
All packages speak MCP over stdio (gazebo-mcp serve). Default mode is mock (offline, no simulator/terminal/GIMP required).
Highlights
Capability | Description |
Offline mock | Seeded world + models; spawn/delete/pose without Gazebo |
Live bridge | Optional HTTP/file bridge when |
MCP stdio | Cursor / Claude / Grok host integration |
CLI |
|
Quick start
cd gazebo-mcp
python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -e ".[dev]"
gazebo-mcp demo
gazebo-mcp demo --profile fleet
gazebo-mcp doctor
pytest -qgazebo-mcp serveDocker mock image
Build a slim container that runs the MCP server in offline mock mode:
docker build -t gazebo-mcp:mock .Run the server over stdio:
docker run --rm -i -e GAZEBO_MCP_MODE=mock gazebo-mcp:mockUse Docker Compose for host integrations that expect a long-running stdio process:
docker compose up --build gazebo-mcpOffline smoke check without privileged host Gazebo:
docker run --rm -e GAZEBO_MCP_MODE=mock gazebo-mcp:mock gazebo-mcp demoThe image installs only the Python package and its dependencies. It does not install Gazebo, mount host devices, or require privileged container settings.
Modes
Mode | Env | Behavior |
mock (default) |
| In-memory world graph |
live |
| Forwards to local Gazebo bridge |
Live mode can restrict spawn model types before reaching the bridge:
$env:GAZEBO_MCP_SPAWN_ALLOWLIST = "box,sphere,cylinder"Tools
Tool | Purpose |
| Connectivity / sim health |
| Reset mock shapes world |
| World name, paused, sim time |
| Available mock/live worlds and active world |
| Models in the world |
| Model lifecycle |
| Pose control |
| Clock control |
Velocity metadata
Mock pose updates can store linear and angular velocity metadata alongside the
pose. The metadata is returned by gazebo_get_pose, gazebo_list_models, and
gazebo://world snapshots:
gazebo-mcp call set_pose name=box_1 x=1 y=2 z=0.5 yaw=0.25 linear_x=0.2 angular_z=0.1Demo profiles
The default mock seed includes a ground plane, box, and sphere. The fleet
profile seeds ground_plane plus robot_0, robot_1, and robot_2 with
distinct poses for multi-robot demos:
gazebo-mcp demo --profile fleetResources
Resource URI | Purpose |
| JSON snapshot of the current world: models + poses, sim time, paused state, physics params |
The gazebo://world resource returns the live mock world state (or the live-bridge
state in live mode). Example payload:
{
"ok": true,
"world": "shapes_demo",
"paused": false,
"sim_time_sec": 1.234,
"model_count": 3,
"models": [
{"name": "ground_plane", "type": "plane", "pose": {"x": 0.0, "y": 0.0, "z": 0.0, "yaw": 0.0}},
{"name": "box_1", "type": "box", "pose": {"x": 1.0, "y": 0.0, "z": 0.5, "yaw": 0.0}},
{"name": "sphere_1", "type": "sphere", "pose": {"x": -1.0, "y": 0.5, "z": 0.5, "yaw": 0.0}}
],
"physics": {
"engine": "ode-mock",
"max_step_size": 0.001,
"real_time_factor": 1.0,
"gravity": {"x": 0.0, "y": 0.0, "z": -9.8}
}
}Smoke it offline via the CLI:
gazebo-mcp call snapshotOne-shot calls can read tool arguments from a JSON object file:
{
"name": "json_box",
"model_type": "box",
"x": 2,
"y": 3,
"z": 0.5
}gazebo-mcp call spawn --json-file args.jsonExamples
docs/HOST_SETUP.md for Cursor, Claude Desktop, and Grok setup
docs/LIVE_BRIDGE.md for the live bridge health/world_info contract
Development
ruff check src tests
pytest -q
gazebo-mcp tools listMergeOS bounties
Star → claim issue → PR to master → MRG 25–200.
See mergeos.
License
MIT · MergeOS / ThanhTrucSolutions
This server cannot be deployed
Maintenance
Related MCP Connectors
MCP server for building and testing AI agents with multi-model experimentation and insights.
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to control Unreal E…
MCP server for OpenMM — exposes market data, account, trading, and strategy tools to AI agents
- UnifAPIOAuthcom.unifapi
Hosted MCP server for live public-data APIs and Skills for AI agents.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceMCP server for AI agents to inspect and control ROS2 graphs, enabling topic listing, node info, service calls, parameter management, and pub/echo without manual ROS2 CLI usage.11MIT
- AlicenseNot gradedqualityBmaintenanceMCP server enabling AI agents to control RViz2 displays, fixed frames, and views, with offline mock support for CI and demos.5MIT
- FlicenseNot gradedqualityCmaintenanceMCP server for controlling a simulated robot arm with vision-based pick-and-place, driven by LLM or manual control.1-

simliverse-mcpofficial
AlicenseNot gradedqualityBmaintenanceProvides a unified MCP server for the SimLiverse Physical AI Platform, enabling LLM copilots to access Isaac Sim knowledge via NVIDIA NIM and execute/control simulation through a TCP socket.MIT