Skip to main content
Glama
RahulRajelli

robosimtools-mcp

by RahulRajelli

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

robosim_convert_rotation

Quaternion ↔ Euler (12 sequences) ↔ 3×3 matrix ↔ axis-angle ↔ URDF roll-pitch-yaw.

robosim_dh_to_urdf

Denavit-Hartenberg table → URDF joint chain (standard or modified/Craig).

robosim_diff_ardupilot_params

Diff two ArduPilot .param files; changed / added / removed.

robosim_mesh_mass_properties

STL/OBJ → mass, center of mass, full inertia tensor.

robosim_validate_urdf

Structural URDF validation — tree, inertia sanity, joint limits.

robosim_inspect_urdf

URDF → links, joints, kinematic roots, degrees of freedom.

robosim_xacro_to_urdf

Expand Xacro properties, macros, conditionals, includes → URDF.

robosim_urdf_to_mjcf

URDF → MuJoCo MJCF.

robosim_sdf_to_urdf

Gazebo SDF → URDF with correct relative joint origins.

robosim_step_to_urdf

STEP/IGES CAD → URDF with per-solid inertia (OCCT WASM kernel).

robosim_generate_sbom

Lockfile (npm/pip/cargo/go) → CycloneDX 1.6 SBOM.

robosim_cra_readiness

EU Cyber Resilience Act scoping wizard.

Every tool is read-only with no side effects.

Related MCP server: Botverse

Install

git clone https://github.com/RahulRajelli/robosimtools-mcp
cd robosimtools-mcp
npm install

Use 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 copy

test: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/js

Design notes

  • DOM in Node. Four tools (URDF validator, Xacro, MJCF, SDF converters) use the browser DOMParser/XMLSerializer. src/browser-globals.js provides those via linkedom so the modules run unchanged (its XMLSerializer strips the XML prolog linkedom adds, to match browsers).

  • CAD kernel. robosim_step_to_urdf loads occt-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 tools
robosim_convert_rotationConvert 3D RotationA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
fromYesWhich representation the input is in.
eulerNoRequired when from='euler'.
matrixNoRequired when from='matrix' (row-major).
degreesNoInterpret and report angles in degrees (else radians).
axis_angleNoRequired when from='axis_angle'.
quaternionNoRequired when from='quaternion' (auto-normalized).
output_euler_orderNoEuler order to report (default ZYX).ZYX
output_euler_intrinsicNoIntrinsic vs extrinsic for the reported Euler.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnly, idempotent, non-destructive. The description adds that quaternion is auto-normalized and that all representations are returned, providing useful behavioral context beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences long, front-loaded with the core purpose, and every word adds value. No unnecessary information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description adequately states that it returns all representations, including URDF roll-pitch-yaw. It could specify the output format more precisely, but overall it is complete for a conversion tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for each parameter. The tool description does not add extra meaning beyond what the schema provides, so a baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it converts between quaternion, Euler (12 sequences), 3x3 matrix, and axis-angle, and reports URDF roll-pitch-yaw. It distinguishes itself from all sibling tools, none of which are rotation converters.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says to provide input via `from` and that it returns all representations. It implies when to use (for rotation conversion) but doesn't list alternatives or exclusions, though none exist among siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

robosim_cra_readinessEU Cyber Resilience Act ReadinessA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
answersNoMap of { questionId: chosenOptionIndex }. Omit or leave empty to get the first question.

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnly, idempotent, non-destructive. Description adds context: it's informational (not legal advice), and explains the exact behavior (returns next question or final outcome with obligations/dates/penalties). No contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with purpose, no wasted words. Every sentence adds value: what it does, input format, output expectations, and disclaimer.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite no output schema, the description adequately covers input format, starting state, and output types (next question or final outcome). The tool is simple with one parameter, and the description covers all needed context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, but description adds significant meaning: explains the format { questionId: optionIndex } and that omitting answers gets the first question. This goes beyond the schema's generic description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool walks the CRA scoping decision tree, takes answers, and returns next question or final outcome. It uses specific verb+resource and distinguishes from sibling tools which focus on robotics simulation conversions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear guidance: start with no answers to get first question, and specifies the answers format. The informational disclaimer is helpful. While it doesn't explicitly state when not to use, sibling tools are unrelated so no confusion.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

robosim_dh_to_urdfDH Parameters to URDFA
Read-onlyIdempotent

Generate a correct URDF joint chain from a Denavit-Hartenberg table. Handles standard (trailing 'flange' term) vs modified (Craig) conventions correctly.

ParametersJSON Schema
NameRequiredDescriptionDefault
rowsYesOrdered DH rows, base to tip.
degreesNoIf true, alpha and theta are in degrees.
robotNameNodh_robot
conventionNostandard

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds behavioral info beyond annotations by stating it handles standard and modified conventions correctly, which is critical for domain-specific usage. Annotations already indicate safety (readOnly, idempotent, non-destructive).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise (one short sentence) and front-loaded with the core purpose. Every word is necessary.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a domain-specific conversion tool, the description is minimal. It lacks details about output format, validation, error handling, and usage examples. With no output schema, more context would be beneficial.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description does not add any meaning beyond the input schema. With 50% schema description coverage, the description fails to clarify parameters like robotName and convention, which have no schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's action ('Generate') and the specific resource ('URDF joint chain from a Denavit-Hartenberg table'), and distinguishes it from sibling tools by focusing on DH tables and convention handling.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

While the description implies usage when DH parameters are available, it does not explicitly state when not to use it or mention alternatives among siblings (e.g., sdf_to_urdf, step_to_urdf).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

robosim_diff_ardupilot_paramsDiff ArduPilot Param FilesA
Read-onlyIdempotent

Compare two ArduPilot .param files (auto-detects the 3 real-world formats) and report changed / added / removed parameters, with float-epsilon equality.

ParametersJSON Schema
NameRequiredDescriptionDefault
afterYes
beforeYes

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare safe, idempotent, non-destructive behavior. The description adds value by specifying float-epsilon equality and auto-detection of three real-world formats, enhancing behavioral understanding beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, front-loaded with core action, no wasted words. All information is relevant and efficiently presented.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers main purpose, format detection, comparison method, and output categories. However, without an output schema, it omits details on return format and error conditions, leaving some gaps for a moderately complex tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Parameters 'before' and 'after' are self-explanatory but the description adds no additional semantics (e.g., file path vs content, expected format). With 0% schema coverage, the description should compensate but does not, leaving ambiguity.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb (compare), resource (ArduPilot .param files), and outputs (changed/added/removed parameters with float-epsilon equality). It distinguishes from sibling tools, which handle different operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use (comparing param files) but offers no explicit guidance on when not to use or alternatives. Sibling tools are distinct, so context helps, but direct instruction is missing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

robosim_generate_sbomGenerate CycloneDX SBOMA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
appNameNoapplication
contentYesLockfile contents.
filenameYesLockfile name (used to detect format).
appVersionNo0.0.0

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint, idempotentHint, and destructiveHint, which cover safety. The description adds context by specifying the exact SBOM standard version (CycloneDX 1.6) and the input restriction that only lockfiles with resolved versions are accepted.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the core function, followed by a key constraint. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool that generates an SBOM, the description specifies the input constraints and output format standard. There is no output schema but the return value is implied. Adequate for the tool's simplicity, though lacks details on error handling or output location.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 50% (parameters filename and content have descriptions). The description adds meaning by explaining that filename is used to detect format and content is lockfile contents. However, appName and appVersion are not explained, so the description does not fully compensate for the low coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool produces a CycloneDX 1.6 SBOM from specific lockfiles, using a specific verb 'Produce' and resource 'SBOM', and distinguishes it from sibling tools that deal with robot model conversions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use (when you have a lockfile and need an SBOM) and lists acceptable lockfile formats, but does not provide explicit when-not-to-use or alternatives. The constraint 'Manifests without resolved versions are refused' is a limitation, not usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

robosim_inspect_urdfInspect URDF StructureA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
urdfYesThe URDF XML text.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint true, idempotentHint true, and destructiveHint false. The description adds context about the tool returning structure for the 3D viewer, aligning with annotations. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, zero wasted words. First sentence immediately states purpose and output. Second sentence provides context. Front-loaded effectively.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (single param, no output schema), the description adequately explains what is returned and its purpose. Could be slightly more explicit about the response format, but sufficient for agent reasoning.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description covers 100% of the single parameter ('The URDF XML text.'). The tool description adds no further detail, so baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the verb 'parse' and resource 'URDF structure', listing specific elements returned (links, joints, kinematic root links, degrees of freedom). It distinguishes from sibling tools (e.g., conversion, validation) by focusing on structural inspection.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Description implies usage for reasoning about robot structure but does not explicitly state when to use this tool versus alternatives like robosim_validate_urdf or robosim_urdf_to_mjcf. No when-not-to-use guidance is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

robosim_mesh_mass_propertiesMesh Mass PropertiesA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
densityNo
filenameYes
content_base64YesMesh bytes, base64 (binary STL, ASCII STL, or OBJ).

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint, idempotentHint, and destructiveHint. The description adds useful behavioral details: units (meters, kg/m^3), integration method, and mesh closure requirement, going beyond what annotations provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no wasted words. First sentence states purpose, second adds critical units. Front-loaded and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Explains what is computed and units, but does not specify return format (e.g., JSON object). For a computation tool with no output schema, this is a notable omission. Annotations cover safety but not output structure.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 33% with only content_base64 described. The description adds meaning for density unit but does not clarify filename pattern or required parameters beyond schema. Provides some value but incomplete.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Compute' and the resource 'mass, center of mass, and inertia tensor of a closed STL/OBJ mesh'. It distinguishes from sibling tools that deal with rotations, URDF conversions, etc.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for closed STL/OBJ meshes but does not explicitly state when to use vs alternatives or when not to use. No exclusions or context for selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

robosim_sdf_to_urdfSDF to URDFA
Read-onlyIdempotent

Convert a Gazebo SDF model to URDF, resolving model-frame poses into correct relative joint origins.

ParametersJSON Schema
NameRequiredDescriptionDefault
sdfYesThe SDF XML text.

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is clear. The description adds the behavior of resolving pose frames, which is valuable context beyond annotations, but does not disclose any other behavioral traits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-structured sentence that captures the core purpose and a key technical detail. It is appropriately sized with no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple converter tool with one parameter, no output schema, and comprehensive annotations, the description sufficiently covers the purpose, input, and a critical behavioral aspect. It could briefly mention the output format (URDF) but that is obvious from the name.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% coverage for the single parameter 'sdf', with its description 'The SDF XML text.' The tool description does not add additional parameter semantics beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool converts a Gazebo SDF model to URDF, with a specific detail about resolving model-frame poses into correct relative joint origins. This differentiates it from sibling tools that convert other formats (e.g., STEP, Xacro) to URDF.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not explicitly state when to use this tool versus alternatives like robosim_step_to_urdf or robosim_xacro_to_urdf. The input format (SDF) is implied by the name and description, but no contextual guidance is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

robosim_step_to_urdfSTEP/IGES CAD to URDFA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
mmNoIf true, source units are millimeters (scaled to meters).
densityNo
filenameYes
content_base64YesCAD file bytes, base64-encoded.

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses that solids are welded with fixed joints and that the first call loads a 7.6 MB OCCT kernel, adding valuable context beyond annotations (readOnlyHint, idempotentHint, destructiveHint). No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two-sentence description is highly concise, front-loads the core purpose, and every sentence adds value without extraneous text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers input and computation but omits description of the tool's output or return value. No output schema is present, so the description should clarify how results are returned.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 50%; description does not add parameter-specific information. Does not compensate for missing schema descriptions on filename and density.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Explicitly states conversion from STEP/IGES CAD to URDF, with specific details about computing mass properties and joining solids. Clearly distinguishes from sibling conversion tools targeting other formats.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives like sdf_to_urdf or xacro_to_urdf. Agent must infer based solely on input format.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

robosim_urdf_to_mjcfURDF to MJCFA
Read-onlyIdempotent

Convert a URDF to MuJoCo MJCF XML (correct half-extents, radians, nested body tree).

ParametersJSON Schema
NameRequiredDescriptionDefault
urdfYesThe URDF XML text.

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true, destructiveHint=false, and idempotentHint=true, so safety profile is clear. The description adds context about transformation specifics (half-extents, radians, nested body tree), but does not disclose output format (no output schema) or error behavior, which are relevant beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that efficiently conveys the core purpose and key transformation details with zero wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (1 parameter, no output schema) and the presence of annotations, the description is adequate but could be improved by mentioning the output format (MJCF XML) or any constraints (e.g., validation, file size limits). The lack of output schema increases the need for such information.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already describes the sole parameter 'urdf' as 'The URDF XML text.' (100% schema coverage). The description adds no additional semantics beyond what the schema provides, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool converts a URDF to MJCF XML, uses a specific verb ('Convert'), and adds transformation details ('correct half-extents, radians, nested body tree'). This clearly distinguishes it from sibling tools like robosim_inspect_urdf or robosim_validate_urdf.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives (e.g., when to prefer it over robosim_sdf_to_urdf or robosim_step_to_urdf). There is no mention of prerequisites, limitations, or when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

robosim_validate_urdfValidate URDFA
Read-onlyIdempotent

Check a URDF for structural problems: kinematic tree, inertia sanity, joint limits, and parser-divergence pitfalls. Returns issues by severity.

ParametersJSON Schema
NameRequiredDescriptionDefault
urdfYesThe URDF XML text.

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is clear. The description adds context about what checks are performed and that results are returned by severity, but it lacks detail on the output format (e.g., fields in each issue) and does not mention performance or parsing requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, consisting of two sentences. The first sentence front-loads the purpose and what is checked, and the second briefly mentions the output format. No unnecessary words or details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one parameter, clear annotations), the description is mostly complete. However, the output schema is missing, and the description only says 'issues by severity' without specifying the structure of each issue (e.g., severity level, message, location). This gap reduces completeness for an agent needing to parse the result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single parameter 'urdf' is well-described in the schema ('The URDF XML text.'). The description adds minimal additional meaning beyond stating it checks 'a URDF'. With 100% schema coverage, a baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it checks a URDF for structural problems, listing specific areas like kinematic tree, inertia sanity, joint limits, and parser-divergence pitfalls. It distinguishes from siblings like 'inspect_urdf' by focusing on validation rather than general inspection.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives such as 'robosim_inspect_urdf'. The description does not specify when not to use it or mention any prerequisites or limitations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

robosim_xacro_to_urdfXacro to URDFA
Read-onlyIdempotent

Expand Xacro properties, macros, conditionals, and includes into plain URDF. Provide included files by basename in includes.

ParametersJSON Schema
NameRequiredDescriptionDefault
xacroYesThe main .xacro XML text.
includesNoMap of { basename: fileContents } for any xacro:include.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Description adds behavioral context beyond annotations: it explains the expansion process and the need to supply included files. Annotations already indicate read-only, idempotent, non-destructive behavior, but description provides the actual mechanism.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences, no redundancy. First sentence states main action, second clarifies key parameter. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers main behavior and parameter usage. No output schema, so return values not needed. Could mention error handling or requirements for included files, but overall sufficient for a straightforward preprocessing tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, providing full parameter definitions. Description reinforces the includes parameter by explaining how to provide included files (by basename). Does not add new meaning beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool's action (expand Xacro to URDF) and resource (Xacro properties, macros, conditionals, includes). It distinguishes itself from sibling conversion tools like sdf_to_urdf or step_to_urdf.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit when-to-use or when-not-to-use guidance. However, the purpose implies it's specifically for Xacro preprocessing, and siblings cover other formats. Could benefit from mentioning alternatives for non-Xacro inputs.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 12 tool updatesv0.2.0
    • First observedrobosim_convert_rotation
    • First observedrobosim_cra_readiness
    • First observedrobosim_dh_to_urdf
    • First observedrobosim_diff_ardupilot_params
    • First observedrobosim_generate_sbom
    • First observedrobosim_inspect_urdf
    • First observedrobosim_mesh_mass_properties
    • First observedrobosim_sdf_to_urdf
    • First observedrobosim_step_to_urdf
    • First observedrobosim_urdf_to_mjcf
    • First observedrobosim_validate_urdf
    • First observedrobosim_xacro_to_urdf

TDQS

A4.1/5.0

Scored across 12 tools

Disambiguation5/5

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.

Naming Consistency5/5

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.

Tool Count5/5

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.

Completeness5/5

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

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Exposes MuJoCo physics simulation to AI assistants via 65 MCP tools, enabling natural language control of robotics simulation, trajectory optimization, contact analysis, and video export.
    8
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    MCP tools for video transcoding, document conversion, and multi-step pipelines — callable by any AI agent.
    12
    429
    1
    MIT
  • F
    license
    Not graded
    quality
    B
    maintenance
    Exposes NVIDIA Sionna RT ray-tracing as 15 structured tools for AI agents, enabling wireless channel simulation (scene loading, antenna array setup, ray tracing, CSI extraction) through MCP.
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    Exposes OpenSCAD CLI as MCP tools for validating, rendering, and exporting parametric 3D models. Enables LLM clients to interactively create and manipulate OpenSCAD designs.
    4
    MIT