MCP server for OpenSimulator metaverse bot control and management, providing tools for bot lifecycle management, avatar animation, appearance repair, RLV (Restrained Love) command processing, and inventory operations
19 tools with explicit schemas and descriptions, but significant gaps in parameter documentation and output schema clarity. Tool names follow verb_noun convention (GetStatus, BotList, BotCreate, etc.), which is good. However, many parameter descriptions are minimal (e.g., 'Bot first name' lacks context on format/constraints). Output schemas are not documented, LLMs cannot predict what fields to expect from responses. Error handling is absent from descriptions. No enum constraints on parameters like 'level' (GOVERNOR, BUILDER, ACTOR) or 'gender' (male, female, neutral), these should be formal enums, not free-form strings. RLV tools have better descriptions but still lack output schema documentation. Overall, definitions are functional but below production quality.
Start playing an animation by built-in name (e.g. DANCE1, WAVE, SIT) or UUID.
Stop playing an animation by built-in name or UUID.
Create a new bot through opensim-spawner.
Delete a bot through opensim-spawner (stops/removes its containers).
Get one bot instance and container status from the opensim-spawner API.
List bot instances from the opensim-spawner API.
Restart a bot through opensim-spawner (self or descendant bots only).
Start a bot through opensim-spawner (self or descendant bots only).
Output schemas not documented. LLMs cannot predict response structure (fields, types, nesting). Tools return DataToolResult or BotStatus but no schema is visible in definitions.
Enum constraints missing. Parameters like 'level' (GOVERNOR, BUILDER, ACTOR), 'gender' (male, female, neutral), and 'behavior' (detach, sendim, tplure) are free-form strings. Should be formal enums to prevent hallucinated values.
Minimal parameter descriptions. Many params lack context on format, constraints, or valid ranges. E.g., 'Bot first name' does not explain length limits, character restrictions, or case sensitivity.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 51 | 2026-07-28+ | v2 |
Stop a bot through opensim-spawner (self or descendant bots only).
Start or stop flying.
Get bot's own connection and location status.
Jump once.
Get current RLV policy/runtime status and active restrictions affecting this bot.
List active RLV restrictions with optional behavior/sender filters.
Submit one RLV command string for processing through MCP. Requires ALLOW_RLV=true and runtime enabled.
Enable or disable IM-driven RLV command intake from object IM messages. Requires ALLOW_RLV=true.
Enable or disable RLV runtime processing for this bot session. Requires ALLOW_RLV=true at startup.
Sit on the ground.
Stand up.
No error handling guidance in descriptions. Tools do not document what errors can occur, whether they are retryable, or what the LLM should do next (e.g., 'If bot not found, call BotList to discover available bots').
Generic action names for avatar control. 'Sit', 'Stand', 'Jump' are too vague, do they affect the bot's own avatar or a target? Descriptions do not clarify scope or prerequisites (e.g., must be connected to a region).