MCP server for Pangolin BEYOND laser software — show control, cue management, zone configuration, and live parameter control via OSC
BEYOND MCP has clear naming conventions (verb_noun pattern) and comprehensive parameter schemas with type definitions. However, descriptions are inconsistent in depth and quality. Most tool descriptions are adequate (50-150 chars) but lack actionable context for LLM selection. Parameter descriptions are present but often minimal. Error handling is structured via _handle_errors decorator, but recovery guidance is limited. Output schemas are implicit (JSON responses) rather than explicitly documented. The server demonstrates solid foundational quality but falls short of production-grade polish in description depth and error messaging.
Activate blackout — disable all laser output. Set confirm=true when BEYOND_CONFIRM_DESTRUCTIVE is enabled.
Disable laser output. Set confirm=true when BEYOND_CONFIRM_DESTRUCTIVE is enabled.
Enable laser output (undo blackout).
Return current BEYOND MCP server configuration and safety settings.
Check if the BEYOND target is reachable (DNS resolution + UDP socket).
Preview an OSC message without sending it. Returns the packet details for inspection.
Preview an OSC bundle without sending it.
Descriptions lack actionable context for LLM tool selection. Most descriptions state WHAT the tool does but not WHEN to use it or what prerequisites exist. E.g., 'Send a raw OSC message' doesn't explain when to prefer send_osc_raw over send_osc_bundle or named tools.
Output schemas are implicit (JSON responses via _json helper) rather than explicitly documented. LLMs cannot infer the structure of responses (e.g., what fields health_check returns, whether results are paginated). No documented return type schemas.
Error messages are structured but lack recovery guidance. Errors return {ok: false, error: message} but do not suggest next steps. E.g., 'Invalid JSON input' should suggest 'Ensure values_json is a valid JSON array.' Pattern: recovery-guide.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 59 | 2026-07-28+ | v2 |
Send multiple OSC messages as an atomic bundle. messages_json: JSON array of [address, values] pairs. Example: '[["/beyond/general/BlackOut", []], ["/beyond/general/SetBpm", [120]]]'
Send a raw OSC message to BEYOND. Use for any address not wrapped by a named tool.
Set master brightness (0-100).
Destructive operations (blackout, disable_laser_output) require confirm=true when BEYOND_CONFIRM_DESTRUCTIVE is enabled, but descriptions do not clearly state this prerequisite or explain the safety model. LLMs may not understand when confirmation is required.
Parameter descriptions for JSON inputs (values_json, messages_json, type_tags) are minimal. 'JSON array of values' lacks format guidance. Should specify: 'JSON array of OSC values (strings, ints, floats). Example: [120, "text"]'.