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.

By Rahul Rajelli · updated 2026-07-15 · RSS

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.

How the robosimtools MCP server connects an AI agent to the 12 toolsMCPstdioAI agentClaude Desktop /agent frameworkrobosimtoolsMCP serversame code the browser runs12 toolsrotationDH → URDFvalidateinspectXacro→ MJCF→ SDFSTEP CADmeshparam diffSBOMCRARuns locally on your machine — nothing is uploaded.
View the server on GitHub →Browse the 12 tools →

Install

The server is a small local Node package. Clone the repo and install its dependencies:

Install

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:

claude_desktop_config.json

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:

~/.codex/config.toml

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.

ToolWhat it does
robosim_convert_rotationMathConvert between quaternion, Euler (12 sequences, intrinsic/extrinsic), 3×3 matrix, axis-angle, and URDF roll-pitch-yaw.
robosim_dh_to_urdfKinematicsDenavit-Hartenberg table → a correct URDF joint chain (standard or modified/Craig convention).
robosim_diff_ardupilot_paramsUAVDiff two ArduPilot .param files (auto-detects the 3 real-world formats); changed / added / removed.
robosim_mesh_mass_propertiesGeometrySTL/OBJ → mass, center of mass, and full inertia tensor, integrated from the geometry.
robosim_validate_urdfURDFStructural URDF validation — kinematic tree, inertia sanity, joint limits, parser-divergence pitfalls.
robosim_inspect_urdfURDFParse a URDF → links, joints (type/parent/child/axis), kinematic root links, and degrees of freedom.
robosim_xacro_to_urdfURDFExpand Xacro properties, macros, conditionals, and includes into plain URDF.
robosim_urdf_to_mjcfConvertURDF → MuJoCo MJCF (correct half-extents, radians, nested body tree).
robosim_sdf_to_urdfConvertGazebo SDF → URDF with correct relative joint origins.
robosim_step_to_urdfCADSTEP/IGES CAD → URDF with mass/COM/inertia per solid (via the OCCT WASM kernel).
robosim_generate_sbomComplyLockfile (npm/pip/cargo/go) → CycloneDX 1.6 SBOM.
robosim_cra_readinessComplyEU 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:

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.

Open the repository →Need agent + robotics integration work? →