Skip to main content
Glama
blame-me

mcp-for-arduino

by blame-me

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
ARDUINO_CLI_PATHNoPoint at a non-PATH arduino-cli binary (the installer sets this to its portable copy automatically).

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
board-listA

List connected Arduino boards (port, protocol, detected FQBN). Run this first to find the upload port and FQBN.

board-listallA

List all supported boards and their FQBNs. Optionally filter by name (e.g. 'uno', 'esp32', 'nano').

board-detailsB

Show details for an FQBN: required core, board options, default programmer.

compileA

Compile an Arduino sketch for a board. Verifies code without needing hardware. Returns memory usage and errors.

uploadA

Compile (if needed) and flash a sketch to a connected board. fqbn/port can be omitted if saved with board-attach. Close Serial Monitor first — it locks the port.

core-listA

List installed board platforms/cores (e.g. arduino:avr) with versions.

core-searchC

Search available cores in Boards Manager (e.g. 'esp32', 'samd').

core-installA

Install a board core, e.g. 'arduino:avr' (Uno) or 'esp32:esp32' (needs additional URL). Takes a while on first install.

core-upgradeA

Upgrade installed cores. Omit coreId to upgrade all.

lib-listB

List installed Arduino libraries.

lib-searchB

Search the Arduino Library Manager (e.g. 'Servo', 'DHT sensor', 'WiFi').

lib-installB

Install a library from Library Manager, e.g. 'Servo' or 'DHT sensor library'.

lib-upgradeA

Upgrade libraries. Omit name to upgrade all.

lib-examplesA

List the bundled examples for installed libraries. Omit name to list examples for all libraries. Great for finding starter code for a sensor/module.

lib-depsA

Check the dependency status of a library (what it needs, what's missing). Run before compile when a library install seems incomplete.

outdatedA

Show installed cores and libraries that have upgrades available. Empty output means everything is current. Follow up with core-upgrade / lib-upgrade.

export-binaryA

Compile a sketch and export the firmware files (.hex/.bin/.elf) to a folder. Use for flashing with external tools, OTA updates, or archiving builds.

preprocessA

Print the preprocessed sketch source (macros expanded, headers resolved) instead of compiling. Useful for debugging #define / conditional-compile issues.

board-attachA

Save default port + FQBN (+ optional programmer) into a sketch's profile (sketch.yaml), so later compile/upload calls can omit them. With no sketchPath, shows current defaults.

burn-bootloaderA

Burn the bootloader onto a board using an EXTERNAL PROGRAMMER (e.g. USBasp, atmel_ice). Requires extra hardware — this is not a normal upload. Double-check fqbn + programmer before running.

sketch-newA

Create a new Arduino sketch (folder + .ino file with setup()/loop() boilerplate).

sketch-validateA

Check a sketch folder layout (/.ino) and list its files. Run before compile to catch layout mistakes.

sketch-archiveB

Zip a sketch (optionally including build artifacts).

monitor-snapshotA

Read serial output from a board for a few seconds (non-blocking snapshot). Use for Serial.println debugging. NOT a live stream — returns what arrived within timeoutMs.

upload-and-monitorA

Flash a sketch and immediately show its serial output — one call from new code to visible result. Uploads, waits for the board to reboot, then captures a serial snapshot.

doctorA

Health check for the whole Arduino setup: CLI, cores, libraries, connected boards, pending updates. Run first when anything behaves oddly.

Prompts

Interactive templates invoked by user choice

NameDescription
new-sketchScaffold a sketch plan: board, libraries, wiring, and code outline
fix-compile-errorSystematic recipe for diagnosing an arduino-cli compile failure
migrate-boardChecklist for moving a sketch between boards (e.g. Uno → ESP32): pins, voltage, libraries, memory
optimize-sramRecipe for fixing 'not enough memory' / unstable sketches on AVR boards
wiring-reviewSanity-check a wiring/circuit plan before anyone powers it up

Resources

Contextual data attached and managed by the client

NameDescription
arduino-configarduino-cli version + active configuration (data dir, board manager URLs)
arduino-boardsCurrently connected boards (arduino-cli board list JSON)
arduino-cheatsheetRecommended tool order for AI agents: detect → details → compile → upload → monitor
arduino-librariesLibraries currently installed in the Arduino environment (lib list JSON)
arduino-coresBoard cores/platforms currently installed (core list JSON)

TDQS

A3.5/5.0

Scored across 26 tools

Disambiguation4/5

Most tools target a distinct stage of the Arduino workflow, and descriptions clarify pairs like board-listall (supported boards) vs board-list (connected boards). A few pairs remain close enough to cause occasional misselection, especially compile vs export-binary and monitor-snapshot vs upload-and-monitor, but overall boundaries are clear.

Naming Consistency4/5

Names generally follow a predictable resource-action kebab-case pattern (core-install, lib-search, sketch-new, board-attach). However, exceptions like bare compile/upload, noun-style doctor/outdated, and the awkward board-listall vs board-list prevent a perfect score.

Tool Count3/5

26 tools is above the ideal range and the server splits the workflow into many narrow endpoints, such as export-binary and preprocess alongside compile. The breadth maps to the real Arduino CLI, so it feels heavy but not bloated.

Completeness4/5

The set covers board discovery, core/library management, sketch lifecycle, compile/upload, bootloader burning, and serial diagnostics, so the main development loop is well supported. Obvious gaps are core-uninstall/lib-uninstall and managing extra Boards Manager URLs, but agents can usually work around these.

Maintenance

ActivityMaintained
ResponsivenessNo issues