Arduino MCP Server logo

Arduino MCP Server

Connects AI assistants to Arduino CLI workflows for board detection, sketch deployment, serial monitoring, and hardware safety checks.

Install Arduino MCP Server

Pick your client, then add it in one click or paste the config.

STDIONode.js
~/Library/Application Support/Claude/claude_desktop_config.json
claude_desktop_config.json
{
  "mcpServers": {
    "arduino-mcp-server-2": {
      "command": "npx",
      "args": [
        "-y",
        "arduino-mcp-server"
      ],
      "env": {
        "ARDUINO_CLI_PATH": "YOUR_VALUE_HERE",
        "ARDUINO_SKETCH_ROOT": "YOUR_VALUE_HERE"
      }
    }
  }
}

Settings → Developer → Edit Config, merge this into mcpServers, then fully quit and reopen Claude Desktop.

Values are written into the snippet above so you can paste it as is. They never leave your browser.

Automated check passed— started and listed 21 tools correctly (4d ago).

Overview

Arduino MCP Server MCP server exposes Arduino CLI workflows through MCP for detecting boards, compiling sketches, uploading firmware, and monitoring serial output. It can check or install Arduino CLI, ensure board cores are available, and inspect board capabilities and pin references. Stateful serial sessions support reading, writing, and waiting for output patterns. Reach for it when an AI client needs to work with connected Arduino hardware while applying electrical safety checks before operations.

Use cases

  • Detect connected Arduino boards and serial ports
  • Compile and upload a sketch to a target board
  • Open a serial session and wait for a device-ready message
  • Check board pins before wiring or sending hardware commands

Key features

  • Arduino CLI installation and version checks
  • Board, port, core, and FQBN discovery
  • Sketch compilation and firmware upload
  • Stateful serial monitoring and control
  • Electrical safety preflight checks
  • Board pin and capability references

Tools21

What Arduino MCP Server lets your agent do. Expand a tool for its parameters.

Verified live~3.0k tokens of context

Security & health

What it can reach and how reliably it runs — from our own checks, not the maintainer’s claims.

ActiveLast checked 1d ago

Recent health check succeeded.

9/9 checks healthy over the last 47d

What it can do

From the 21 tools this server returned when we ran it; 21 declare their own safety hints.

Can delete or modify data · 8Makes network requests · 1Read-only tools · 13
Network at startup3 connections
Files written at startupNone
Install scriptsNone
npm provenanceNot published
Package age239 days
Maintainers1

Observed 2026-10-25 in an isolated sandbox. A description of reach, not a security audit.

Supply-chain signal

No high-severity advisories surfaced by our automated scan.

Critical 0High 0Medium 0Low 0

Scanned 5d ago via OSV.dev · arduino-mcp-server (npm)

Adoption & maintenance

Factual signals from GitHub, npm, and our automated checks — not a rating.

GitHub stars23Stargazers on the source repository.
npm downloads462Package downloads in the last 30 days.
Last commit2mo agoMost recent push to the default branch.
Availability100%Our rolling endpoint + install checks that succeeded.
Install checkPassedOur sandbox started it and listed its tools.
Tools exposed21Callable tools this server registers over MCP.

How Arduino MCP Server works

What Arduino MCP Server MCP server does

Arduino MCP Server MCP server connects an MCP-compatible AI client to Arduino hardware through arduino-cli. It covers the workflow from environment checks through deployment and device communication:

  • Verify the installed Arduino CLI and guide its installation.
  • Find connected boards, serial ports, and likely fully qualified board names (FQBNs).
  • Check or install the core required by a target board.
  • Compile sketches and upload them to a selected device.
  • Open serial sessions, read buffered output, wait for matching text, send data, and close sessions.
  • Inspect supported boards, board details, pin capabilities, and searchable board references.

The server also provides an arduino://boards/reference resource and setup-oriented prompts for Arduino CLI bootstrapping and environment configuration.

How it works

The server wraps Arduino CLI commands and exposes them as MCP tools. An AI client can first inspect the local environment, identify a connected board, and determine its port or FQBN. It can then prepare the required core, compile a sketch, and upload it.

For device interaction, stateful serial sessions preserve an open connection across separate read, expect, and write operations. A one-shot serial snapshot is available when a persistent session is unnecessary. The upload-and-wait workflow can pause until the device reports its ready signal.

Safety checks can run before hardware operations. safety_preflight, along with safety context supplied to uploads and serial writes, evaluates electrical details such as voltage and current. The documented checks include battery charge rate and polarity, classic ESP32 flash and boot pins, input-only pins without internal pull resistors, and board-specific details for Seeed XIAO ESP32S3 pins.

Setup and configuration

Install the package globally with npm or run it through npx from an MCP client configuration. The documented runtime requires Node.js 20 or newer. Arduino CLI must be available on the system path unless the server installs or guides its installation.

Configuration supports these environment variables:

  • ARDUINO_CLI_PATH selects the Arduino CLI executable and defaults to arduino-cli.
  • ARDUINO_SKETCH_ROOT optionally restricts sketch paths to a specified directory.

Source development uses npm installation followed by type checking, tests, build, or development commands.

Tools and capabilities

The tool set supports both discovery and execution. Hardware discovery includes connected-board listing, serial-port listing, automatic detection, board detail lookup, and a catalog of boards supported by Arduino CLI. Reference tools expose pin and capability information and allow keyword searches.

Build and deployment tools compile sketches, upload them, or upload while waiting for a readiness message. Serial tools provide session creation, buffered reads, pattern matching, writes, session listing, and closure. The safety preflight is table-driven for the documented board data, so its checks can distinguish blocking conditions from cautions.

Use Arduino MCP Server MCP server when an agent needs to coordinate board setup, firmware deployment, and serial verification without switching manually between an AI client and Arduino CLI. It is intended for connected hardware workflows, so the target board, port, sketch, and electrical context still need to be identified correctly.

Reviews

No reviews yet — be the first to share how it worked for you.

Frequently Asked Questions about Arduino MCP Server

Arduino MCP Server is an MCP server that connects AI assistants to Arduino hardware through arduino-cli. Its main tools detect boards and ports, check or install the CLI and board cores, compile and upload sketches, run safety preflights, and manage serial sessions for reading, waiting on output, and writing data.

Install it with `npm install -g arduino-mcp-server`, or configure an MCP client to run `npx -y arduino-mcp-server`. Node.js 20 or newer is required, and Arduino CLI must be on the path or installed through the server's setup workflow.

Set `ARDUINO_CLI_PATH` to the Arduino CLI executable and optionally set `ARDUINO_SKETCH_ROOT` to restrict sketch paths. The default CLI path is `arduino-cli`; the sketch-root variable has no default.

Add an `arduino` entry that runs `npx` with `-y arduino-mcp-server`, then provide the optional CLI path and sketch-root environment variables.

Open a stateful serial session, then use serial read or pattern-wait tools to inspect output; serial write can send data to the device. For a single read without a persistent session, use the serial snapshot tool.

Related MCP servers

Add a badge to your READMEShow it’s listed — live SVG, Markdown or HTML.

AllMCPs Directory Badge

Full Badge Customizer

Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.

Badge Style:
Live Dynamic SVG PreviewArduino MCP Server AllMCPs Directory Badge
Markdown (GitHub README)
[![AllMCPs](https://allmcps.com/api/badge/arduino-mcp-server-2?style=directory)](https://allmcps.com/mcp/arduino-mcp-server-2)
HTML Embed
<a href="https://allmcps.com/mcp/arduino-mcp-server-2"><img src="https://allmcps.com/api/badge/arduino-mcp-server-2?style=directory" alt="Arduino MCP Server on AllMCPs" /></a>