FastMCP wrapper for Unitree Robotics open-source stack (Go2, H1, G1, B2, etc.) with MuJoCo simulations and ROS 2 integration
Server has 5 tools with basic descriptions and input schemas, but significant gaps in parameter documentation and output schema clarity. All tools lack parameter descriptions, critical for LLM understanding. Naming is verb-forward (sim_status, load_model, start_sim, stop_sim, get_state) but descriptions are terse (34-194 chars, below the 50-200 char LLM-optimized range). No error handling guidance, no output schemas documented, no tool annotations (readOnlyHint/destructiveHint). Input schemas present but sparse: most parameters lack descriptions. No pagination, no batch operations. This is typical of early-stage community servers.
Get current sim state - joint positions, velocities, actuator forces, body positions. Reads from the shared memory state file if available, or returns the last known state from the job's state cache.
Load and validate a Unitree MuJoCo model file without starting the simulator. Returns model metadata (joint count, actuator count, mesh paths).
Health check: Unitree repos, available models, running jobs.
Start a Unitree MuJoCo simulation as a managed background process. Launches the Unitree MuJoCo Python simulator (which opens a viewer by default). Returns a job_id for stop_sim / list_jobs / get_state.
Stop a running simulation job.
No parameter descriptions in any tool. LLMs cannot infer what 'robot' or 'job_id' parameters control without explicit text. All 5 tools affected.
No output schemas documented. Callers cannot know what fields sim_status, load_model, start_sim, stop_sim, get_state return. Breaks downstream tool chaining and LLM planning.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). start_sim and stop_sim are WRITE operations but lack destructiveHint. LLMs cannot distinguish safe from risky calls.
No error handling guidance. If start_sim fails (e.g., model not found, port in use), no recovery hint provided. LLMs left guessing what to do next.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 51 | 2026-07-28+ | v2 |
Descriptions are terse (34-194 chars). LLM-optimized range is 50-200 chars. sim_status (34 chars) and stop_sim (45 chars) are too brief to guide tool selection.