Roblox Studio integration through the Model Context Protocol with SSE transport and companion plugin communication
Server has 6 tools with basic schemas and descriptions, but significant gaps prevent production use. Tool names lack clear verb-noun structure (queue_studio_command vs send_studio_command). Descriptions exist but are generic (10-50 chars for most params). Input schemas present but incomplete, many parameters lack type constraints and validation guidance. No output schemas documented. Error handling is absent; tools do not guide recovery. Parameters like 'command' and 'command_batch' are underspecified (what structure? what fields?). No enum constraints, no format validation, no dependency documentation between tools. Composition is weak: queue_studio_command and queue_studio_command_batch are similar but not clearly differentiated. execute_luau_script and call_luau appear to do the same thing. Security: no evidence of permission gates, audit logging, or secret injection patterns.
Async calls the Luau Execution API and waits for the result.
Executes a Luau script in the target Roblox place and returns the result.
Retrieves the result of a command executed by the Studio plugin, with optional timeout.
Retrieves captured logs from the Roblox Studio plugin, optionally filtered by log type or time range.
Queues a command to be picked up by the companion Studio plugin via the /plugin_command endpoint.
Queues a batch of commands to be picked up sequentially by the companion Studio plugin. Useful for sending multi-step instructions generated by the LLM.
Underspecified command parameters: 'command' and 'command_batch' lack schema details. What fields must the command object contain? What are valid command types? LLMs cannot construct valid payloads without this.
Duplicate/overlapping tools: execute_luau_script and call_luau both execute Luau code with nearly identical parameters. LLMs cannot distinguish when to use each. Merge or clearly document the difference.
No output schemas documented. Tools return results but LLMs do not know what fields to expect. This breaks downstream tool chaining and forces LLMs to guess field names.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 45 | <=2025-11-25 | v2 |
No error handling guidance. Tools do not describe what errors can occur, whether they are retryable, or what the LLM should do next. A failed script execution returns nothing actionable.
Parameter descriptions too short (<20 chars for most). 'The command dictionary to send' does not explain what fields the command must have, what types are valid, or what happens on invalid input.