CoppeliaSim MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| coppelia_stepB | 🚨 STRICT SUPREME DIRECTIVE FOR AI AGENT (READ THIS FIRST): NEVER CONCLUDE OR REPORT SUCCESS BASED SOLELY ON CODE LOGS OR EXIT STATUS! You are interacting with a physical 3D simulation environment. Code that executes without error often produces physically broken scenes (e.g. walls collapsing under gravity, objects intersecting, robots falling through floors or flipped upside-down). THEREFORE, YOU ARE STRICTLY REQUIRED TO USE YOUR EYES: Every call returns TWO visual snapshots:
MANDATORY PROTOCOL AFTER EVERY CALL:
TOOL SUMMARY: Execute Python code directly inside CoppeliaSim simulator. Auto-launches simulator if closed, runs physics/scene code, auto-captures dual camera snapshots, and returns execution result in ONE single call. SCENE HIERARCHY AWARENESS RULE (PREVENT DUPLICATE MODELS):
Every call returns
WALLS & ENCLOSURE VISIBILITY RULE (PREVENT GREY VOID BLINDNESS): NEVER build solid block labyrinths or closed rooms that entomb the camera/robot in solid gray geometry!
INJECTED OBJECTS IN CODE:
EXACT API CHEAT-SHEET (DO NOT SEARCH OR GUESS - USE THESE DIRECTLY):
Optional
|
| coppelia_simulateC | Step CoppeliaSim N times (or until a diagnostic issue). Returns positions and proximity sensor samples as JSON. until: {kind: collision|distance|floor_bounds, objects, threshold?}. export_path: .json file to write results. |
| coppelia_catalogB | Search CoppeliaSim model (.ttm) and scene (.ttt) files by space-separated terms matched against relative path and robot alias. kind: all|model|scene. |
| coppelia_sceneB | Save or load a CoppeliaSim scene. action: save|load. path: absolute .ttt path. load stops the running simulation and replaces the current scene. |
| coppelia_healthB | Check active ZeroMQ connection, simulator version, and runtime availability of simIK and simOMPL. Does not launch or modify the scene. |
| coppelia_motionB | Typed motion operations: operation='ik' uses base, tip, target, constraints and method; operation='plan' uses joints, goal, collision_pairs, algorithm, max_time, simplify_time and path_states. Planning returns a path and never applies it to robot joints. |
| coppelia_trajectoryC | Execute a joint path with velocity and optional acceleration/jerk limits, per-step collision checks, dynamic-contact grasp checks with post-lift retention and slip limits, and distance-based place checks. |
| coppelia_sensorsC | Read selected proximity, vision RGB, metric depth, force/torque, or sampled vision point-cloud data from typed sensor paths. |
| coppelia_record_datasetC | Record bounded, per-step synchronized simulation state and typed sensor samples to JSON. |
| coppelia_mechanismB | Inspect a robot subtree and report joint types, limits, current/target positions, sensors, base candidate, and end-effector candidates. |
| coppelia_experimentsB | Run up to 20 simulation episodes in an explicit scene with per-episode scene reload, joint positions, diagnostics, and success conditions; combined steps are capped at 10000. |
| coppelia_import_modelC | Import a URDF, SDF, STL, OBJ, or DAE file and report newly created roots and joint counts. |
| coppelia_ros2_statusB | Check whether the installed CoppeliaSim simROS2 plugin loads. This tool does not start ROS 2 or alter the scene. |
| coppelia_ros2C | Publish, echo, capture, or stream ROS 2 topics, call services, or send action goals through CoppeliaSim ROS 2 Humble runtime. |
| coppelia_signalsC | Read or write a named integer, float, or string CoppeliaSim signal. This is not a PLC network adapter. |
| coppelia_import_floorplanC | Create static cuboid segments from grayscale floor-plan pixels classified as walls, doors, and windows. |
| coppelia_physics_engineA | Inspect or set the scene physics engine property and dynamics step size. Changes require simulation stopped; engine_property is [index, version]. |
| coppelia_physics_benchmarkC | Run identical bounded episodes on 2–5 caller-prepared scenes and compare task outcomes; each scene retains its configured physics engine. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 18 tools
Most tool families are distinct (scene, sensors, ROS 2, mechanisms, physics), but coppelia_step is a mega-tool that can execute arbitrary simulator code and overlaps with simulate, motion, trajectory, sensors, imports, and scene operations. Close pairs like experiments vs. physics_benchmark and ros2 vs. ros2_status further blur boundaries, though descriptions provide guidance.
All tools use the same coppelia_ prefix and lower snake_case style, making names predictable and easy to scan. The mix of noun-like and verb-like stems (scene, health, step, import_model) is still consistent with the namespace convention.
At 18 tools, the server is in the borderline-heavy range for a single MCP surface. While the domain is broad, several tools overlap in practice, and some pairs could likely be consolidated without losing capability.
The surface covers execution, simulation stepping, scene save/load, model and floorplan import, sensors, motion planning/IK, trajectory execution, ROS 2 integration, datasets, experiments, physics engine configuration, signals, and health checks. No obvious lifecycle gap remains for a CoppeliaSim robotics simulation server.