Arduino MCP has 20 tools with complete schemas and descriptions, but quality is inconsistent. Tool names follow verb_noun convention (list_ports, compile_sketch, upload_sketch). Most descriptions are present but generic (10-50 chars for many tools). Parameter descriptions exist but lack constraints, ranges, and format specifications. No output schemas documented. Error handling is minimal, most tools return raw CLI output or generic errors without recovery guidance. The image_to_c_array tool has 11 parameters but lacks enum constraints for format_type, orientation, and rotation despite having fixed valid values. Serial tools (read_serial, write_serial, monitor_serial) lack timeout/retry guidance. No pagination support despite tools that could return large lists (search, list_installed_libraries). Tool composition is reasonable but some tools combine multiple concerns (e.g., arduino_cli_command is a raw passthrough that bypasses safety).
Execute Raw Arduino CLI Command
Clear serial data buffer
Compile Arduino Sketch
Create new Arduino sketch
Dump serial buffer to file
Get buffered serial data
Convert image to C array for Arduino displays
Install Arduino Core
No output schemas documented. Tools return raw JSON or strings without specifying field types, required fields, or structure. LLMs cannot plan downstream calls or extract data reliably.
image_to_c_array has 11 parameters with no enum constraints. format_type, orientation, and rotation accept fixed values (monochrome|grayscale_2bit|..., horizontal|vertical, 0|90|180|270) but are documented as free strings. LLMs will hallucinate invalid values.
Serial tools (read_serial, write_serial, monitor_serial) lack error recovery guidance. No documentation of timeout behavior, retry strategy, or what to do if the port becomes unavailable mid-operation.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 51 | 2026-07-28+ | v2 |
Install Arduino Library
Lint Arduino sketch or library
List connected Arduino boards
List installed Arduino cores
List installed Arduino libraries
List Serial Ports
Monitor serial port output
Read data from serial port
Search Arduino Packages
Upload Arduino Sketch
Verify if a serial port is accessible
Write data to serial port
search tool returns raw CLI output without pagination. Large library searches could return hundreds of results, exhausting context window. No limit, offset, or next_cursor documented.
arduino_cli_command is a raw passthrough that bypasses safety. Accepts arbitrary CLI arguments without validation, allowing injection of destructive commands (e.g., 'core uninstall --all'). No confirmation or dry-run support for irreversible operations.