robosimtools-mcp
This server exposes 12 robotics and simulation tools to AI agents, enabling local (no-upload) computation across a wide range of robotics engineering tasks.
Convert 3D Rotations (
robosim_convert_rotation): Convert between quaternions, Euler angles (12 sequences, intrinsic/extrinsic), 3×3 rotation matrices, and axis-angle representations, including URDF roll-pitch-yaw output.DH Parameters to URDF (
robosim_dh_to_urdf): Generate a URDF joint chain from a Denavit-Hartenberg table, supporting both standard and modified (Craig) conventions.Diff ArduPilot Param Files (
robosim_diff_ardupilot_params): Compare two ArduPilot.paramfiles and report changed, added, and removed parameters with float-epsilon equality.Mesh Mass Properties (
robosim_mesh_mass_properties): Compute mass, center of mass, and full inertia tensor from a closed STL or OBJ mesh file.Validate URDF (
robosim_validate_urdf): Check a URDF for structural problems including kinematic tree integrity, inertia sanity, joint limits, and parser-divergence pitfalls.Inspect URDF Structure (
robosim_inspect_urdf): Parse a URDF and extract its links, joints, kinematic root links, and degrees of freedom.Xacro to URDF (
robosim_xacro_to_urdf): Expand Xacro properties, macros, conditionals, and includes into plain URDF XML.URDF to MJCF (
robosim_urdf_to_mjcf): Convert a URDF to MuJoCo MJCF XML with correct half-extents, radians, and nested body tree.SDF to URDF (
robosim_sdf_to_urdf): Convert a Gazebo SDF model to URDF, resolving model-frame poses into correct relative joint origins.STEP/IGES CAD to URDF (
robosim_step_to_urdf): Convert STEP or IGES CAD files to URDF with per-solid mass, center of mass, and inertia computed via the OpenCascade (OCCT) WASM kernel.Generate CycloneDX SBOM (
robosim_generate_sbom): Produce a CycloneDX 1.6 Software Bill of Materials from lockfiles (npm, pip, Cargo, or Go).EU Cyber Resilience Act Readiness (
robosim_cra_readiness): Walk through the CRA scoping decision tree (Regulation (EU) 2024/2847) to determine obligations, key dates, and penalties.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@robosimtools-mcp Convert quaternion (w=0.707, x=0, y=0, z=0.707) to roll-pitch-yaw"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
robosimtools-mcp
An MCP server that exposes
robosimtools.com's 12 robotics/simulation tools to
AI agents. The tool logic here is the same code robosimtools.com serves to
your browser — vendored into lib/ so this server is self-contained. All
computation is local; nothing is uploaded.
This is the open-source MCP server for robosimtools.com. The website itself is a separate project; only the browser tools it already ships publicly are included here (see Vendored modules).
Tools
Tool | What it does |
| Quaternion ↔ Euler (12 sequences) ↔ 3×3 matrix ↔ axis-angle ↔ URDF roll-pitch-yaw. |
| Denavit-Hartenberg table → URDF joint chain (standard or modified/Craig). |
| Diff two ArduPilot |
| STL/OBJ → mass, center of mass, full inertia tensor. |
| Structural URDF validation — tree, inertia sanity, joint limits. |
| URDF → links, joints, kinematic roots, degrees of freedom. |
| Expand Xacro properties, macros, conditionals, includes → URDF. |
| URDF → MuJoCo MJCF. |
| Gazebo SDF → URDF with correct relative joint origins. |
| STEP/IGES CAD → URDF with per-solid inertia (OCCT WASM kernel). |
| Lockfile (npm/pip/cargo/go) → CycloneDX 1.6 SBOM. |
| EU Cyber Resilience Act scoping wizard. |
Every tool is read-only with no side effects.
Related MCP server: openscad-mcp
Install
git clone https://github.com/RahulRajelli/robosimtools-mcp
cd robosimtools-mcp
npm installUse it
The server talks over stdio, so any client that supports local MCP servers works. Replace the path below with wherever you cloned the repo.
Claude Desktop
Add to claude_desktop_config.json and restart:
{
"mcpServers": {
"robosimtools": {
"command": "node",
"args": ["ABSOLUTE/PATH/TO/robosimtools-mcp/src/index.js"]
}
}
}OpenAI Codex CLI
Add to ~/.codex/config.toml and restart Codex:
[mcp_servers.robosimtools]
command = "node"
args = ["ABSOLUTE/PATH/TO/robosimtools-mcp/src/index.js"]ChatGPT's own connectors target remote (HTTP) MCP servers — for this local stdio server, use the Codex CLI or Claude Desktop.
Then ask, e.g.: "Convert the quaternion (w=0.707, x=0, y=0, z=0.707) to URDF roll-pitch-yaw", or "Turn this STEP file into a URDF with computed inertia."
Test
npm test # 39 known-answer checks across all 12 tools
npm run test:e2e # connects a real MCP client over stdio
npm run test:install # packs, installs to a temp dir, drives the installed copytest:install is the one that matters before a release: it verifies the published artifact —
that the files allowlist is complete, the bin shebang works, and the lazily-imported OCCT
WASM kernel still resolves once the package is inside someone else's node_modules.
Vendored modules
lib/ holds the tool logic — the same ES modules robosimtools.com serves at
robosimtools.com/js/*.js. They are vendored (not fetched at runtime) so the
package is self-contained. To refresh them from a local site checkout:
node scripts/sync-from-site.mjs /path/to/site/public/jsDesign notes
DOM in Node. Four tools (URDF validator, Xacro, MJCF, SDF converters) use the browser
DOMParser/XMLSerializer.src/browser-globals.jsprovides those via linkedom so the modules run unchanged (itsXMLSerializerstrips the XML prolog linkedom adds, to match browsers).CAD kernel.
robosim_step_to_urdfloadsocct-import-js(a 7.6 MB WASM build of OpenCascade) lazily on first use.Plain JS ESM, zero build step.
Contributing
Bug reports and PRs are welcome — see CONTRIBUTING.md for scope, setup and the AI-assisted contribution policy (disclosure required). Security issues go through SECURITY.md, not the public issue tracker. Participation is governed by the Code of Conduct.
One thing worth knowing up front: lib/ is synced from robosimtools.com and PRs editing it
directly will be closed — the next sync overwrites them. Report tool-logic bugs as issues here
and they get fixed upstream, then synced down.
License
MIT © 2026 Rahul Rajelli. All code in src/ and lib/ is first-party.
The robosim_step_to_urdf tool depends on occt-import-js
(a WASM build of Open CASCADE), which is LGPL-2.1. It is consumed unmodified as a separate npm
dependency and loaded dynamically at runtime — no part of it is redistributed in this package.
Full details, and the conditions a fork must preserve, are in
THIRD-PARTY-NOTICES.md.
Available Tools
12 toolsrobosim_convert_rotationConvert 3D RotationARead-onlyIdempotent
Convert a rotation between quaternion, Euler (12 sequences, intrinsic/extrinsic), 3x3 matrix, and axis-angle, and report URDF roll-pitch-yaw. Give it in any one representation via from; returns ALL of them.
Inputs: from (required), euler, matrix, degrees, +4 more.
robosim_cra_readinessEU Cyber Resilience Act ReadinessARead-onlyIdempotent
Walk the CRA scoping decision tree (Reg. (EU) 2024/2847). Provide answers as { questionId: optionIndex }; the tool returns either the next question to answer or the final outcome with obligations, dates, and penalties. Informational, not legal advice. Start with no answers to get the first question.
Inputs: answers.
robosim_dh_to_urdfDH Parameters to URDFARead-onlyIdempotent
Generate a correct URDF joint chain from a Denavit-Hartenberg table. Handles standard (trailing 'flange' term) vs modified (Craig) conventions correctly.
Inputs: rows (required), degrees, robotName, convention.
robosim_diff_ardupilot_paramsDiff ArduPilot Param FilesARead-onlyIdempotent
Compare two ArduPilot .param files (auto-detects the 3 real-world formats) and report changed / added / removed parameters, with float-epsilon equality.
Inputs: after (required), before (required).
robosim_generate_sbomGenerate CycloneDX SBOMARead-onlyIdempotent
Produce a CycloneDX 1.6 SBOM from a LOCKFILE (package-lock.json, pinned requirements.txt, Cargo.lock, or go.sum). Manifests without resolved versions are refused.
Inputs: content (required), filename (required), appName, appVersion.
robosim_inspect_urdfInspect URDF StructureARead-onlyIdempotent
Parse a URDF and return its structure — links, joints (type/parent/child/axis), kinematic root links, and degrees of freedom. The 3D viewer's underlying data, for an agent to reason about.
Inputs: urdf (required).
robosim_mesh_mass_propertiesMesh Mass PropertiesARead-onlyIdempotent
Compute mass, center of mass, and inertia tensor of a closed STL/OBJ mesh, integrated from the geometry. Coordinates in meters, density in kg/m^3.
Inputs: filename (required), content_base64 (required), density.
robosim_sdf_to_urdfSDF to URDFARead-onlyIdempotent
Convert a Gazebo SDF model to URDF, resolving model-frame poses into correct relative joint origins.
Inputs: sdf (required).
robosim_step_to_urdfSTEP/IGES CAD to URDFARead-onlyIdempotent
Convert a STEP or IGES CAD file to URDF, computing mass/COM/inertia per solid from the tessellated geometry (via the OCCT CAD kernel). Solids are welded with fixed joints. First call loads a 7.6 MB kernel.
Inputs: filename (required), content_base64 (required), mm, density.
robosim_urdf_to_mjcfURDF to MJCFARead-onlyIdempotent
Convert a URDF to MuJoCo MJCF XML (correct half-extents, radians, nested body tree).
Inputs: urdf (required).
robosim_validate_urdfValidate URDFARead-onlyIdempotent
Check a URDF for structural problems: kinematic tree, inertia sanity, joint limits, and parser-divergence pitfalls. Returns issues by severity.
Inputs: urdf (required).
robosim_xacro_to_urdfXacro to URDFARead-onlyIdempotent
Expand Xacro properties, macros, conditionals, and includes into plain URDF. Provide included files by basename in includes.
Inputs: xacro (required), includes.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 12 tools
Each tool has a clearly distinct purpose, covering different aspects of robotic simulation like rotation conversion, URDF manipulation, mesh processing, and compliance checking. There is no overlap or ambiguity between tool functionalities.
All tools follow a consistent verb_noun pattern prefixed with 'robosim_', e.g., 'robosim_convert_rotation', 'robosim_inspect_urdf'. This makes the tool set predictable and easy for an agent to navigate.
With 12 tools, the server offers a well-scoped set for robotics simulation utilities. The number is within the ideal range (3-15) and each tool contributes to a cohesive workflow without unnecessary redundancy.
The tool surface covers a broad range of robotics simulation tasks: conversion from multiple formats (SDF, STEP, DH table), validation, inspection, and even regulatory compliance. There are no major gaps for the intended domain.
Maintenance
Related MCP Connectors
214 tools for AI agents over one MCP endpoint: image, video, audio, 3D, data, storage, mail, GPUs.
OCR, transcription, file extraction, and image generation for AI agents via MCP.
MCP tools for AI agents: render URLs to image/PDF, check link health, convert HTML/CSV/JSON.
MCP server for your apps' tools and custom tools, plus hosted AI agents and approval-gated workflows
Related MCP Servers
- AlicenseAqualityCmaintenanceMCP tools for video transcoding, document conversion, and multi-step pipelines — callable by any AI agent.1260 npm1MIT
- AlicenseNot gradedqualityDmaintenanceExposes OpenSCAD CLI as MCP tools for validating, rendering, and exporting parametric 3D models. Enables LLM clients to interactively create and manipulate OpenSCAD designs.4MIT

Fusion Agent Harness MCPofficial
AlicenseBqualityCmaintenanceExposes CAD design tools (box, cylinder, shell, etc.) via MCP, allowing AI agents and clients like Claude to create and manipulate parametric CAD models in Autodesk Fusion or a simulator.61Apache 2.0- AlicenseAqualityCmaintenanceEnables AI agents and MCP clients to perform 3D asset creation and verification: exact b-rep CAD, GLB validation with embedded certificates, mesh inspection, and physics scenes, with most tools running without Blender.3648 npmMIT