OmniSim MCP
The OmniSim MCP server gives an agent 46 robot simulator tools: loading worlds, pausing, single-stepping and debugging.
- 192 ★ on the repository
- Last commit
Extended access
Why this level
- The server drives a local simulator over HTTP and can run robot controllers and machine programs in simulation.
- An installed simulator is required, and it also runs code on your machine.
Install
- Works in
Manual install
{"mcpServers": {"omnisim": {"command": "python", "args": ["-m", "omnisim_mcp"], "env": {"PYTHONPATH": "packages/omnisim-mcp/src", "OMNISIM_HARNESS_URL": "http://127.0.0.1:6789"}}}}The configuration from the repository's `.mcp.json`: Claude Code loads it when the project directory is opened, and the server runs without installation.
Access and checks
How we reviewExtended accessThe tool runs code or makes network calls and only reads external data.
- The server drives a local simulator over HTTP and can run robot controllers and machine programs in simulation.
- An installed simulator is required, and it also runs code on your machine.
This is third-party code. Review the repository files before installing.
What it does
OmniSim is an open robotics workshop where an agent works with a physics simulator. The repository's MCP server `omnisim-mcp` proxies the World Harness tools: load a world, run it, inspect it and find out what happened. Claude Code, Claude Desktop, Cursor and other MCP clients run robots, set `sim_pause` and `sim_break` and read contacts, joint limits and events from one stream. The instruments say when they cannot see: `get_contacts` returns completeness and reasons for an empty result, while `get_capabilities` lists what the simulator refuses to do. Digital twins of a CNC router, laser cutter and 3D printer and a Codex plugin sit alongside.
Who it is for. Roboticists and students who debug robots in simulation together with an agent and have no access to hardware.
Good fit when
- A simulated robot behaves oddly and you need a breakpoint on a contact event.
- An agent builds a world and runs a controller from a plain-language command.
- You need to see which joints hit limits and when.
- A robot part is made on a CNC twin before the real machine.
- A design is tested in a realistic simulator while hardware is unavailable.
Not a fit when
- You need a simple documentation server; these MCP tools drive the simulator itself.
- The computer runs macOS, which the project does not support.
- Verification on a real robot is required; the author has not yet run the bridge on a real GRBL board.
Example request
Load the manipulator world, break on the first contact and show which joints reached their limits.MCP
- Transport
- stdio
- Authentication
- not required
Environment variables
OMNISIM_HARNESS_URL- Simulator harness URL, default http://127.0.0.1:6789
Limitations
The server is only a proxy: the simulator and its harness on port 6789 start first with `python -m omnisim harness`. A prebuilt package exists only for Windows 10 and 11, while on Ubuntu 24.04 and 22.04 the project builds from source in 25–45 minutes, and macOS is unsupported. The `omnisim-mcp` package is not on PyPI at the moment, so the server runs from the project directory through `python -m omnisim_mcp`. Outside a pause, event detection follows the supervisor tick and can miss an event: use `sim_pause` first, then `sim_step`. Some commands require an OmniKey.
How to disable. Remove the `omnisim` entry from the client's MCP configuration and stop the harness. The project is removed with its install directory.
FAQ
How do I connect OmniSim MCP to Claude Code?
Open the project directory: the `.mcp.json` at its root registers the server with no install. First start the harness with `python -m omnisim harness`.
Which clients are supported?
Claude Code, Claude Desktop, Cursor and any MCP client. Cursor and Claude Desktop have separate config snippets in the package documentation.
How many tools does the server have?
46. Each makes one HTTP call to the simulator harness that a human drives too.
How do I pause and step?
`sim_pause` holds the engine across calls under a lease, 30 seconds by default, `sim_step` advances the simulation and `sim_break` stops it on an event.
Does it work on macOS?
No. There is no package or verified build and Newton physics is unverified. Use Windows or Ubuntu 24.04.
Discussion
No questions or reviews yet.
Related
MCP serversAn MCP server for ROS 2: the agent inspects robot topics, services and actions, reads maps and point clouds and can drive it
Robotics skills for Claude Code, Codex, Gemini CLI and Cursor: ROS 2, simulators, navigation and runnable demos.
The openmcp CLI and a VS Code extension for debugging MCP servers: tools, prompts and resources, chat with a model, test cases
MCP server for CODESYS V3.5: Claude reads and edits Structured Text, compiles with the real compiler and runs the simulation.
A transparent proxy between an AI client and an MCP server: shows every JSON-RPC frame in the terminal, checks a capture in CI and exports spans
VS Code extension for finding and installing MCP servers and skills for GitHub Copilot, Claude Code and Codex CLI
README in short
The repository describes the whole simulator: physics, machine digital twins, assembling a robot from a concept sketch and comparison with other simulators. The MCP server is a separate package that only forwards agent calls to the harness.