Skip to main content
Glama
hardware-mcp

arduino-mcp-server

by hardware-mcp

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
ARDUINO_CLI_PATHNoPath to arduino-cli binaryarduino-cli
ARDUINO_SKETCH_ROOTNoRestrict sketch paths to this directory

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}
prompts
{
  "listChanged": true
}
resources
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
list_connected_boardsA

List connected boards and serial ports detected by arduino-cli.

arduino_cli_doctorA

Check whether arduino-cli is available and return OS-specific installation instructions if missing.

install_arduino_cliA

Attempt to install arduino-cli for the current OS using available package managers, then verify and configure CLI path.

list_supported_boardsA

List supported/installable boards from the local arduino-cli index.

ensure_core_installedA

Ensure the Arduino core required by a board FQBN is installed. Can auto-install via arduino-cli core install.

detect_hardwareB

Detect connected Arduino-compatible hardware, infer board/FQBN candidates, and generate next compile/upload commands.

list_serial_portsA

List serial ports and any detected board metadata using arduino-cli. Works on Windows/macOS/Linux.

compile_sketchA

Compile an Arduino sketch with a specific board FQBN.

upload_sketchB

Upload a compiled sketch to a connected board/port.

upload_and_wait_readyA

Upload a sketch and wait for a serial readiness pattern, handling post-upload reset/re-enumeration windows.

read_serial_snapshotB

Capture serial output for a bounded duration from a given port.

safety_preflightA

Run electrical preflight checks (voltage/current/pin risks) before upload or serial write operations.

serial_open_sessionA

Open a stateful serial monitor session with port lock ownership.

serial_list_sessionsA

List active serial sessions and current port lock state.

serial_readA

Read buffered bytes from an open serial session.

serial_expectA

Wait for a string pattern in a serial session buffer with timeout.

serial_writeA

Write bytes to an open serial session. Safety preflight is enforced unless explicitly skipped.

serial_close_sessionA

Close a serial session and release its port lock.

get_board_detailsA

Get detailed board metadata from arduino-cli for a specific FQBN.

list_board_referenceA

List local board reference entries with pin/spec metadata.

search_board_referenceA

Search local board reference by board name, alias, id, or FQBN.

Prompts

Interactive templates invoked by user choice

NameDescription
arduino-cli-bootstrap-policyStrict setup policy for agents when Arduino CLI is missing.
arduino-setup-assistantPrompt template for wiring/setup guidance based on board + sensor.

Resources

Contextual data attached and managed by the client

NameDescription
arduino-board-referenceStatic board pin/reference metadata for supported boards in this server.

TDQS

A3.8/5.0

Scored across 21 tools

Disambiguation5/5

Each tool targets a distinct aspect of the Arduino workflow: installation, board info, compilation, upload, serial operations, and safety checks. Even seemingly overlapping tools like list_connected_boards and list_serial_ports have different purposes (board detection vs port listing). No ambiguity.

Naming Consistency4/5

Most tools follow verb_noun pattern using underscores (e.g., compile_sketch, detect_hardware). However, a few tools like arduino_cli_doctor and safety_preflight break the pattern by starting with a server-specific prefix or using a verb+noun without underscore. Overall consistent but with minor deviations.

Tool Count5/5

21 tools cover the full Arduino development lifecycle—installation, board management, compilation, upload, serial monitoring, and safety checks. Each tool has a clear role, and the count is appropriate for the domain without being excessive.

Completeness4/5

The tool surface covers core Arduino CLI operations: installation, board detection, compilation, upload, and serial communication. Minor gaps exist, such as library management (install/list libraries) and core updates, but these are secondary to the main workflow. No critical dead ends.

Maintenance

ActivitySlowing
ResponsivenessNo issues