Use robosimtools from your AI agent — the MCP server
An MCP server that exposes all 12 robosimtools to any AI agent (Claude Desktop, agent frameworks). Same code the browser runs — URDF validation and conversion, CAD-to-URDF, rotation math, ArduPilot diffs — running locally, nothing uploaded.
Model Context Protocol (MCP) lets an AI agent call real tools instead of guessing at the answer. The robosimtools MCP server exposes all 12 tools on this site to any MCP-speaking client — Claude Desktop, an agent framework, whatever you build — so the model can validate a URDF, convert CAD to a robot model, or diff ArduPilot parameters directly. It imports the exact same modules the website ships to your browser, so the agent gets the same verified behavior. Everything runs locally on your machine; nothing is uploaded.
Install
The server is a small local Node package. Clone the repo and install its dependencies:
Then point your MCP client at src/index.js (replace the path with where you cloned it). It talks over stdio, so any client that supports local MCP servers works — the two most common are below.
Claude Desktop
Add this to claude_desktop_config.json, then restart Claude Desktop:
Prefer a file? Download mcp-config.json.
OpenAI Codex CLI
Codex speaks MCP over stdio too. Add this to ~/.codex/config.toml, then restart Codex:
Prefer a file? Download codex-config.toml. Note: ChatGPT's own connectors target remote (HTTP) MCP servers — for this local stdio server, use the Codex CLI or Claude Desktop.
The 12 tools
Every tool is read-only with no side effects. Full input/output schemas are in each tool's description and in the README.
| Tool | What it does | |
|---|---|---|
robosim_convert_rotation | Math | Convert between quaternion, Euler (12 sequences, intrinsic/extrinsic), 3×3 matrix, axis-angle, and URDF roll-pitch-yaw. |
robosim_dh_to_urdf | Kinematics | Denavit-Hartenberg table → a correct URDF joint chain (standard or modified/Craig convention). |
robosim_diff_ardupilot_params | UAV | Diff two ArduPilot .param files (auto-detects the 3 real-world formats); changed / added / removed. |
robosim_mesh_mass_properties | Geometry | STL/OBJ → mass, center of mass, and full inertia tensor, integrated from the geometry. |
robosim_validate_urdf | URDF | Structural URDF validation — kinematic tree, inertia sanity, joint limits, parser-divergence pitfalls. |
robosim_inspect_urdf | URDF | Parse a URDF → links, joints (type/parent/child/axis), kinematic root links, and degrees of freedom. |
robosim_xacro_to_urdf | URDF | Expand Xacro properties, macros, conditionals, and includes into plain URDF. |
robosim_urdf_to_mjcf | Convert | URDF → MuJoCo MJCF (correct half-extents, radians, nested body tree). |
robosim_sdf_to_urdf | Convert | Gazebo SDF → URDF with correct relative joint origins. |
robosim_step_to_urdf | CAD | STEP/IGES CAD → URDF with mass/COM/inertia per solid (via the OCCT WASM kernel). |
robosim_generate_sbom | Comply | Lockfile (npm/pip/cargo/go) → CycloneDX 1.6 SBOM. |
robosim_cra_readiness | Comply | EU Cyber Resilience Act scoping wizard — answer the decision tree, get obligations, dates, penalties. |
Ask your agent
Once connected, you just describe the task — the agent picks the tool. For example:
- "Convert the quaternion (w=0.707, x=0, y=0, z=0.707) to URDF roll-pitch-yaw." →
robosim_convert_rotation - "Diff these two ArduPilot param files and tell me what changed." →
robosim_diff_ardupilot_params - "Turn this STEP file into a URDF with computed inertia." →
robosim_step_to_urdf - "Is my product in scope for the EU Cyber Resilience Act?" →
robosim_cra_readiness
A tool call returns structured JSON. For instance, the rotation example above yields:
{
"rpy_urdf": [0, 0, 1.5708],
"quaternion": { "w": 0.707107, "x": 0, "y": 0, "z": 0.707107 },
"axis_angle": { "axis": [0, 0, 1], "angle": 1.5708 }
}How the browser-only tools run in Node
Four of these tools (the URDF validator and the Xacro/SDF/MJCF converters) parse XML with the browser's DOMParser, and the STEP converter loads a CAD kernel compiled to WebAssembly. Rather than reimplement any of that, the server shims the browser globals (via linkedom) and loads the CAD kernel lazily — so the agent path and the browser path are the same code, not a fork. Fix a bug on the site and it's fixed here too. The whole thing ships with 39 known-answer checks and an end-to-end MCP-client test.