# arduino-mcp-server

Arduino CLI wrapper MCP server

- **Type:** MCP server
- **Trust:** 60/100 (B), scored on the package rubric
- **Verification:** community-indexed — nobody has claimed this listing
- **Version:** 0.2.8
- **Author:** Unknown
- **License:** MIT
- **npm:** arduino-mcp-server
- **Source:** https://github.com/hardware-mcp/arduino-mcp-server
- **Compatible clients:** claude-code, cursor, copilot, gemini (basis: transport)

## Trust

60/100 (B), scored on the package rubric
- Publisher verified: no
- Install scripts: nothing suspicious found
- Prompt-injection scan: not run
- Obfuscation scan: not run
- Evidence age: 3 days

## Security scan

- **Status:** clean
- **Scanned:** 2026-08-30T06:37:01.176Z
- **Version scanned:** 0.2.8
- **CVEs:** none found by OSV at scan time

## Tools

21 declared. Statically extracted from the shipped source — a floor on the surface, not a census.
- `list_connected_boards` — List connected boards and serial ports detected by arduino-cli.
- `arduino_cli_doctor` — Check whether arduino-cli is available and return OS-specific installation instructions if missing.
- `install_arduino_cli` — Attempt to install arduino-cli for the current OS using available package managers, then verify and configure CLI path.
- `list_supported_boards` — List supported/installable boards from the local arduino-cli index.
- `ensure_core_installed` — Ensure the Arduino core required by a board FQBN is installed. Can auto-install via `arduino-cli core install`.
- `detect_hardware` — Detect connected Arduino-compatible hardware, infer board/FQBN candidates, and generate next compile/upload commands.
- `list_serial_ports` — List serial ports and any detected board metadata using arduino-cli. Works on Windows/macOS/Linux.
- `compile_sketch` — Compile an Arduino sketch with a specific board FQBN.
- `upload_sketch` — Upload a compiled sketch to a connected board/port.
- `upload_and_wait_ready` — Upload a sketch and wait for a serial readiness pattern, handling post-upload reset/re-enumeration windows.
- `read_serial_snapshot` — Capture serial output for a bounded duration from a given port.
- `safety_preflight` — Run electrical preflight checks (voltage/current/pin risks) before upload or serial write operations.
- `serial_open_session` — Open a stateful serial monitor session with port lock ownership.
- `serial_list_sessions` — List active serial sessions and current port lock state.
- `serial_read` — Read buffered bytes from an open serial session.
- `serial_expect` — Wait for a string pattern in a serial session buffer with timeout.
- `serial_write` — Write bytes to an open serial session. Safety preflight is enforced unless explicitly skipped.
- `serial_close_session` — Close a serial session and release its port lock.
- `get_board_details` — Get detailed board metadata from arduino-cli for a specific FQBN.
- `list_board_reference` — List local board reference entries with pin/spec metadata.
- `search_board_reference` — Search local board reference by board name, alias, id, or FQBN.

## Install

**Verdict: review** — Installable, but 1 thing to check first: No publisher has proved control of this listing; it is indexed, not vouched for.
**Cautions** (coverage gaps and advisories — never blocking)
- No publisher has proved control of this listing; it is indexed, not vouched for.
**Config** (claude-code):
```json
"{\n  \"mcpServers\": {\n    \"arduino-mcp-server\": {\n      \"command\": \"npx\",\n      \"args\": [\n        \"-y\",\n        \"arduino-mcp-server\"\n      ]\n    }\n  }\n}"
```

## Blast radius

Moderate to extensive — no credential declaration found, from the publisher, the upstream registry, or the README. Known so far: mutates data; runs on your machine.
- Floor 33, ceiling 57 (tier: unknown)
- `unknown` means the floor and ceiling land in different bands — not measured enough to name one. It does not mean low.
- This is impact, not likelihood. A high radius is not a defect: a filesystem server is supposed to write files. It is never part of the trust score.

## Machine-readable views of this entry

- Signed JSON: https://forgeregistry.com/api/v1/packages/arduino-mcp-server
- Install plan: https://forgeregistry.com/api/v1/packages/arduino-mcp-server/install-plan
- Alternatives: https://forgeregistry.com/api/v1/alternatives/arduino-mcp-server
- HTML page: https://forgeregistry.com/registry/arduino-mcp-server
- MCP: POST https://forgeregistry.com/api/mcp → `forge_get_package` / `forge_install_plan`

## About this document

Generated by Forge (https://forgeregistry.com) — a compact rendering of the same record served, signed, at the JSON URL above. Trust and scan facts are the registry's own measurements; anything Forge did not measure is named as unmeasured rather than omitted.
