stdio-based Model Context Protocol server for OpenBlink VS Code extension. Provides tools for compiling mruby code, managing BLE device connections, transferring firmware, and accessing device console output and metrics.
OpenBlink MCP server has 13 tools with consistent naming (verb_noun pattern) and basic descriptions. However, descriptions are often terse (10-50 chars), parameter descriptions are minimal or absent, and output schemas are not documented. Input schemas are present but lack detail. Error handling guidance is absent. The server follows a reasonable structure but falls short of production-grade quality expected for agent tool composition.
Compile a .rb file and transfer via BLE
Cancel a pending or in-progress build
Connect to a BLE device by ID
Disconnect from the current device
Return the board API reference (Markdown)
Return detailed build error information
Check the status of an in-progress or recent build
Descriptions are too terse (10-50 chars). Rubric baseline is 194 chars. LLMs cannot determine when/why to select tools without context. E.g., 'get_metrics' has no description at all.
Parameter descriptions are missing or minimal. Rubric requires every parameter to have a non-empty description explaining what it controls. E.g., 'timeout' params lack guidance on units, defaults, or valid ranges.
Output schemas are not documented. Rubric requires 100% of A+ tools to have documented return types. Agents cannot plan downstream calls or extract data without knowing response structure.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 56 | <=2025-11-25 | v2 |
Return recent device console output
Return the current device connection state
Return build/transfer metrics and statistics
Scan for BLE devices and return discovered devices
Execute soft reset on the connected device
Validate Ruby code without building
No error handling guidance. Tools lack recovery hints (e.g., 'If device not found, call scan_devices() first'). Rubric requires error responses to tell LLM what to do next.
Tool 'build_and_blink' violates single-responsibility principle. Name contains 'and', suggesting two actions (compile + transfer). Should split into 'build_ruby_code' + 'transfer_to_device'.