Isaacsim MCP Server
Control NVIDIA Isaac Sim robotics simulator through MCP with 42 tools
Connector by whats2000 · GitHub account verified by the MCP Registry
Chalk Labs
Need help deploying Isaacsim MCP Server?
Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.
Install
Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.
npx agentmarket install connector/whats2000-isaacsim-mcp-server
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: testing
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this server can do and what it asks for, from its tool list, install config and code. Checked Oct 25, 2026.
- Tools
- 14 read · 19 write · 3 delete · 7 not yet classified
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Python package
Tools by what they do 43
Read from the source code; the running server may list different tools.
Read 14 · Look things up without changing anything.
capture_imageget_isaac_logsget_joint_configget_joint_positionsget_lidar_point_cloudget_physics_stateget_prim_infoget_robot_infoget_scene_infoget_simulation_statelist_available_robotslist_environments
Show 2 more tools
list_primssearch_usd
Write 19 · Create, change, send or run things.
apply_materialclone_objectcreate_action_graphcreate_cameracreate_lidarcreate_lightcreate_materialcreate_objectcreate_physics_scenecreate_robotedit_action_graphimport_urdf
Show 7 more tools
modify_lightplay_simulationset_drive_paramsset_joint_positionsset_physics_paramsstop_simulationtransform_object
Delete 3 · Delete, drop, revoke or wipe things.
clear_scenedelete_objectexecute_script
Not yet classified 7 · We could not tell from the name and description.
generate_3dload_environmentload_usdpause_simulationrefresh_robot_libraryreload_scriptstep_simulation
Network hosts it talks to 5
ai.api.nvidia.com· found in codeark.cn-beijing.volces.com· found in codegithub.com· found in codelvlecheng.tos-cn-beijing.volces.com· found in codeomniverse-content-production.s3.us-west-2.amazonaws.com· found in code
Files it touches
- Your home directory (~)
- Any path the agent passes to its tools
Tools (43)
Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].
apply_materialBind a material to an object. Args: material_path: Prim path of the material. target_prim_path: Prim path of the object to apply the material to.
capture_imageCapture an RGB image from a camera sensor. Args: prim_path: Prim path of the camera. output_path: File path to save the image. Returns metadata only if not set.
clear_sceneRemove all prims from the scene. Also empties any environment loaded by load_environment, which removes that environment's collision floor along with it — so a later create_physics_scene finds no floor and supplies its own. The stage's defaultLight is always kept — a stage with no light renders black, which looks like a broken camera. Args: keep_physics: If True, keep physics scene prims. keep_environment: If True, keep the loaded environment. Reloading one costs seconds, so pass this when clearing objects between attempts.
clone_objectDuplicate an existing object to a new prim path. Args: source_path: Prim path of the object to clone. target_path: Prim path for the cloned object. position: [x, y, z] position for the clone. Keeps original position if not set.
create_action_graphCreate and wire an OmniGraph Action Graph. Args: graph_path: USD prim path for the graph (default "/World/ActionGraph"). nodes: [{"path": <path relative to graph>, "type": <node type>}], e.g. {"path": "OnPlaybackTick", "type": "omni.graph.action.OnPlaybackTick"}. connections: [source_attr, target_attr] pairs, each written "NodePath.outputs:attrName" or "NodePath.inputs:attrName". values: [{"attr": "ScriptNode.inputs:script", "value": ...}] overrides. evaluator: Graph evaluator (default "execution", what Action Graphs use). "push" evaluates every app…
create_cameraAdd a camera sensor to the scene. Prefer target= over rotation= for aiming: cameras look down their local -Z and carry a built-in orientation, so hand-computed euler angles are easy to get wrong and give you a picture of the sky. The response echoes the rotation that was applied under "rotation" and the point under "aimed_at". Args: prim_path: Prim path for the camera. position: [x, y, z] world position. rotation: [rx, ry, rz] rotation in degrees. Ignored if target is given. resolution: [width, height] image resolution. Default 1280x720. target: [x, y, z] world point to l…
create_lidarAdd a lidar sensor to the scene. Args: prim_path: Prim path for the lidar. position: [x, y, z] world position. rotation: [rx, ry, rz] rotation in degrees. config: Lidar configuration name (e.g. "Example_Rotary").
create_lightCreate a light in the scene. Args: light_type: Type of light — DistantLight, DomeLight, SphereLight, RectLight, DiskLight, or CylinderLight. position: [x, y, z] world position. intensity: Light intensity. color: [r, g, b] light color (0-1). rotation: [rx, ry, rz] rotation in degrees. prim_path: Custom prim path. Auto-generated if not provided.
create_materialCreate a PBR or physics material. Args: material_type: "pbr" for visual material or "physics" for physics material. prim_path: Prim path for the material. Auto-generated if not set. material_path: Alias for prim_path. apply_material names this argument material_path, and an unknown argument is dropped silently rather than rejected — so asking for material_path="/World/Looks/Red" used to succeed while creating the material somewhere else entirely, and the follow-up apply_material then failed on a path that was never used. color: [r, g, b]…
create_objectCreate a primitive object (Cube, Sphere, Cylinder, Cone, Capsule, Plane). Prefer `size`, which is absolute METERS: `size=0.3` gives a 0.3 m object of any type. `scale` is a RAW MULTIPLIER of the primitive's native size (2 m for Cube/Sphere/Cylinder/Cone/Capsule, 1 m for Plane), so `scale=0.5` on a Cube gives 1 m, not 0.5 m. Use `scale` only for deliberate non-uniform shaping; if both are given, `scale` wins. Returns prim_path, plus — for the geometric prims — actual_size [x, y, z] in meters and bounding_box (world-space min/max corners) for placing other objects relative to this one. A Plane…
create_physics_sceneCreate a physics scene, adding a ground plane only if the stage lacks one. Call load_environment BEFORE this. An environment brings its own collision floor and this skips adding a second one, but it checks only when it runs: the reverse order leaves two floors and the engine decides which one objects land on. load_environment reports that as "collision_floor_warning". Returns "ground_plane" (the floor objects will actually land on) and "ground_plane_created". Read the floor height from that prim rather than assuming z=0. Only a collision-enabled prim of type Plane is recognised, so an enviro…
create_robotCreate a robot in the scene from the Isaac Sim asset library. Supports fuzzy matching — e.g. "franka", "spot", "g1", "go1". Call list_available_robots first to see all available robots. Call create_physics_scene before creating robots. Returns prim_path, robot_key, joint_names, and num_dof so you can immediately use set_joint_positions without a follow-up get_robot_info call. Args: robot_type: Robot name or search term. Fuzzy matched against available robots. position: [x, y, z] world position. name: Custom name for the robot prim. prim_path: Exact USD prim path (e.g. "/Worl…
delete_objectDelete an object from the scene. Args: prim_path: The prim path of the object to delete.
edit_action_graphEdit an existing Action Graph: set attribute values or add connections. Use this to update a ScriptNode's script (inline or file path), change attribute values, or add connections on an already-created graph. For a ScriptNode backed by a file, set usePath alongside the path: values=[ {"attr": "ScriptNode.inputs:usePath", "value": true}, {"attr": "ScriptNode.inputs:scriptPath", "value": "/path/to/script.py"} ] For an inline script, set usePath false and write "inputs:script" instead. Args: graph_path: USD prim path of the existing graph (default "/World/ActionG…
execute_scriptEscape hatch: execute arbitrary Python code in Isaac Sim. PREFER a named tool wherever one exists — joints, prim / physics / joint state, stepping, logs. USE this for what none covers: Action Graphs, IK, physics callbacks, advanced USD properties. CAUTION: touching an articulation controlled by a running ScriptNode / Action Graph silently breaks its control path (no error is raised). Read-only diagnostics stay safe while a graph runs; stop_simulation before any write to the same articulation. For persistent controllers (>20 lines), write a .py file and load it with reload_script instead. A…
Show 28 more tools
generate_3dGenerate a 3D model from text or image using Beaver3D, then load it into the scene. Args: text_prompt: Text description for 3D generation. image_url: URL of an image for 3D generation. position: [x, y, z] world position for the generated model. scale: [sx, sy, sz] scale factors.
get_isaac_logsDiagnostic tool: recent WARN/ERROR logs plus captured print() output. Captures carb.log_*/omni.log WARN+ERROR and stdout from execute_script / reload_script (tagged [PRINT]). Plain print() outside those captured contexts may not appear. Defaults are agent-friendly: non-destructive (clear=False) and scoped to the current run (since_last_play=True) so you see logs from what you just did, not stale entries from previous runs. Args: clear: If True, empty the buffer after reading. Default False. count: Maximum number of log entries to return. since_last_play: If True (default), retur…
get_joint_configDiagnostic tool: get joint drive configuration for a robot articulation. Returns stiffness, damping, limits, target vs actual positions, and position error for each joint. Call this when: - Joint drives are not tracking targets (check position_error) - Joints are oscillating or unstable (check stiffness/damping ratio) - Joints hit limits unexpectedly (check lower_limit/upper_limit) Units: gains are per-radian (angular) or per-meter (linear), per each joint's `gain_units`. Write them back with set_drive_params, which takes the same units. Args: prim_path: USD path to the robot articulati…
get_joint_positionsRead current joint positions from a robot. Units: radians for revolute joints, meters for prismatic joints. Joint order matches the joint_names from get_robot_info. For a combined step-and-read, prefer step_simulation with observe_joints. Args: prim_path: The prim path of the robot.
get_lidar_point_cloudGet point cloud data from a lidar sensor. Requires the timeline to be playing — RTX lidar data is produced by Replicator while the sim runs, and a sweep only completes on some frames, so an empty read means "not this frame", not "saw nothing". By default returns a summary rather than the raw cloud: point_count, bounds, and the nearest hit. A full sweep is tens of thousands of points and megabytes of JSON, which is rarely what you want in a response. Args: prim_path: Prim path of the lidar sensor. max_points: Include this many points in the response, sampled at an even stride…
get_physics_stateDiagnostic tool: get physics state for a prim. Returns rigid body status, velocities, kinematic flag, and collision info. `mass` is included only when the prim carries a UsdPhysics MassAPI — objects created by create_object do not, and take their mass from the collider's density. Velocity units: linear_velocity in m/s, angular_velocity in rad/s. Velocities are only non-zero once the simulation has advanced — step the simulation (or play) before reading them. Call this when: - Objects fall through the ground (check collision enabled) - Objects don't move when expected (check is_kinematic, mass…
get_prim_infoGet detailed information about a specific prim. Returns type, children, and a transform block. There is no bare "position": position_local — parent-relative, the value transform_object writes. position_world — where the prim actually is on the stage. Use this for distance, reach or contact; for a nested prim such as a robot link the two differ by the parent's pose. position_world_source is "usd" (from the authored transform) or "physics" (measured, on Newton). On Newton, position_local_warning means only position_local is the spawn pose (position_worl…
get_robot_infoGet robot joint information including names, DOF count, joint types, and limits. Call this after create_robot to understand the robot's kinematic structure. Returns joint names ordered by DOF index, joint types (revolute/prismatic), and joint limits (radians for revolute, meters for prismatic — each entry carries its own `units`). Args: prim_path: The prim path of the robot.
get_scene_infoPing the Isaac Sim extension server and return scene information including stage path, assets root, and prim count.
get_simulation_stateGet the current simulation state: timeline status (playing/stopped/paused), simulation time, and physics dt. step_simulation does NOT require a running timeline — do not play just to step.
import_urdfImport a robot from a URDF file into the scene. Args: urdf_path: Path to the URDF file. prim_path: Prim path for the imported robot. position: [x, y, z] world position.
list_available_robotsList all available robots discovered from the Isaac Sim asset server. Returns robot keys, descriptions, manufacturers, and asset paths. The list is auto-discovered at startup and reflects the actual assets available in your Isaac Sim version.
list_environmentsList all available environments discovered from the Isaac Sim asset server. Includes warehouses, offices, outdoor scenes, and more.
list_primsList the prims directly under root_path, optionally filtered by type. One level deep by default, so `list_prims("/")` names /World and /Environment rather than everything inside them — a robot alone is hundreds of prims. The response echoes `recursive` so a shallow answer is never mistaken for a complete one. Pass recursive=True to walk the whole subtree. That is the one you want when checking whether something was really deleted, or when hunting a prim nested under a robot: a Camera at /World/Arm/EyeCam does not appear in a shallow listing of /World. Args: root_path: Root path to start…
load_environmentLoad a pre-built environment into the scene. Supports fuzzy matching. Call list_environments first for options, and call this BEFORE create_physics_scene — the reverse order leaves two collision floors, and is reported as "collision_floor_warning". Y-up and/or centimetre environments are rotated and rescaled to match the stage; "corrections" reports what was applied. Read prim_path from the response rather than assuming it. "bounds" carries two heights — use the right one: floor_height — the surface objects rest on. Place with position=[x, y, floor_height]. bounds_min…
load_usdLoad a USD asset from a URL or file path into the scene. Args: usd_url: URL or local path to the USD file. prim_path: Prim path for the loaded asset. position: [x, y, z] world position. scale: [sx, sy, sz] scale factors.
modify_lightModify properties of an existing light. Args: prim_path: The prim path of the light to modify. intensity: New intensity value. color: [r, g, b] new light color (0-1).
pause_simulationPause the physics simulation.
play_simulationStart the physics simulation.
refresh_robot_libraryForce re-scan the asset server for available robots. Use this if new robot assets were added.
reload_scriptReload a Python controller from a file on disk. Two modes, chosen automatically: - If any Action-Graph ScriptNode references this file (inputs:scriptPath), those ScriptNodes are force-recompiled so on-disk edits take effect on the running graph. This is how you iterate on a ScriptNode controller. - Otherwise the file is (re-)executed as a standalone controller. The file's directory is auto-added to sys.path. Args: file_path: Path to the Python file on disk. script_file: Alias for file_path — create_action_graph spells it that way, and both are accepted so neither spellin…
search_usdSearch the NVIDIA USD asset library by text description, then load the best match. Args: text_prompt: Text description of the 3D asset to search for. target_path: Prim path for the loaded result. position: [x, y, z] world position. scale: [sx, sy, sz] scale factors.
set_drive_paramsWrite a joint drive's stiffness, damping and/or max_force. Use after get_joint_config shows a drive not tracking or oscillating. Pass only the fields to change. Gains take the units get_joint_config reports (per-radian or per-meter, its `gain_units`), so a value read there can be passed back unchanged. Values must be >= 0. Errors if the joint has no drive, or its name matches several joints under prim_path. On Newton the stage is updated but the running solver keeps its old gain (`applied_to_solver: false`); tune live gains on PhysX. Args: prim_path: Robot articulation root, as passed t…
set_joint_positionsSet target joint positions on a robot via ArticulationAction. Units: radians for revolute joints, meters for prismatic joints (e.g. gripper fingers). Use get_robot_info to discover joint names, types, and limits first. After calling this, use step_simulation to advance and observe the result — do not use play_simulation + sleep. Args: prim_path: The prim path of the robot. joint_positions: List of target joint position values. joint_indices: Optional list of joint indices to set. Sets all joints if not provided.
set_physics_paramsConfigure physics engine parameters. Args: gravity: Gravity vector [x, y, z]. time_step: Physics time step in seconds. gpu_enabled: Enable GPU-accelerated physics.
step_simulationAdvance the simulation by exactly N physics frames on a FROZEN timeline. Initialises physics on first call and operates on a paused/stopped timeline, so N is exact and observations correlate to a known frame count. Do NOT call play_simulation before or during the debug loop — step is for a frozen timeline and errors if the timeline is already playing. play is only for a final continuous run / ScriptNode demo. Args: num_steps: Number of simulation frames to step. observe_prims: Prim paths to observe. Each returns position_world, or position_local plus position_world_warning w…
stop_simulationStop the physics simulation and reset to spawn state. Resets articulations and rigid bodies to their spawn pose (the state captured at first Play), like the Isaac UI Stop button. Call this to return the scene to a clean starting point before another run.
transform_objectSet the transform (position, rotation, scale) of an existing object. Args: prim_path: The prim path of the object to transform. position: [x, y, z] new world position. rotation: [rx, ry, rz] new rotation in degrees. scale: [sx, sy, sz] new scale factors.
Signals
- Stars
- 69
- Forks
- 15
- Open issues
- 7
- Contributors
- 6
- Weekly downloads
- 68
- Last commit
- Oct 20, 2026 (10 days ago)
- Last release
- Sep 1, 2026 (1 month ago)
- Last package publish
- Sep 1, 2026 (1 month ago)
From GitHub (fetched Oct 24, 2026) and the package registry.
Details
- Registry name
io.github.whats2000/isaacsim-mcp-server- Version
- 0.6.1
- Auth
- No auth
- Packages
- pypi isaacsim-mcp-server
- License
- MIT
- Repository
- github.com/whats2000/isaacsim-mcp-server
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
Done for you
Rather not set it up yourself?
Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.
See how we build AI agents →Read the case studies
Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.
- launches shipped
- 50+
- launches shipped
- media placements
- 500+
- media placements
- founders on every account
- 2
- founders on every account
Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block
Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.
Get Isaacsim MCP Server running in your business
Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.
Cite this page
Isaacsim MCP Server. Agent Mart. https://agentmart.dev/connectors/whats2000-isaacsim-mcp-server (last updated 2026-10-24)