Arduino MCP Server

io.github.akshatnerellaPublished by GitHub account akshatnerellav0.2.7Updated Nov 10, 2026

Arduino MCP server for CLI setup, board detection, compile/upload, serial monitoring, and pin refs.

VerifiedSTDIODesktop onlyDeveloper ToolsSecurity & Monitoring

Overview

AI-generated overview

Wraps arduino-cli so an assistant can detect boards, compile and upload sketches, monitor serial output, and run wiring safety checks.

What you can do
  • Check and install arduino-cli, install board cores and libraries
  • Detect connected boards, serial ports and board pin references
  • Compile sketches and upload them to a target board, optionally waiting for a ready signal
  • Open, read, expect, write and close stateful serial sessions, or take one-shot serial snapshots
  • Run electrical safety preflight checks and look up board capabilities
When to use it
Useful when you work with Arduino hardware and want an assistant to handle the compile-upload-monitor loop, set up a toolchain from scratch, or sanity-check voltage and current before sending commands to a board.
Requirements
Runs locally over stdio as an npm package (arduino-mcp-server), typically via npx in a desktop client. Needs arduino-cli on the PATH or the ARDUINO_CLI_PATH variable pointing to it; the server can also guide installation. ARDUINO_SKETCH_ROOT optionally restricts sketch operations to one directory. A connected board and USB serial access are needed for upload and monitoring.
Before you install
Uploading sketches writes firmware to connected hardware, and serial_write sends data to the device, so actions can change physical state. Safety preflight is advisory only and does not guarantee correct wiring. Installing arduino-cli, cores or libraries downloads software from third parties. Set ARDUINO_SKETCH_ROOT to limit which sketch directories the assistant can touch.

Installation

In SourceWeft

  1. Open Arduino MCP Server in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

arduino-mcp-server

[npm version] [License: MIT] [Node.js 20+]

Give your AI assistant full control over Arduino — compile, upload, monitor serial, and verify wiring safety, all through natural language.

Part of the HardwareMCP ecosystem — open-source MCP servers that bridge AI to physical hardware.


What this does

AI assistants can control Jira, GitHub, and databases. They can't talk to a microcontroller — until now.

arduino-mcp-server wraps arduino-cli into an MCP server so your AI can:

  • Detect connected boards and ports automatically
  • Compile and upload sketches without touching the terminal
  • Monitor serial output with stateful sessions (open, read, expect, write, close)
  • Run electrical safety checks before sending commands to hardware
  • Manage dependencies — cores, libraries, and CLI installation

Quick Start

Install:

bash
npm install -g arduino-mcp-server

Add to Claude Desktop (claude_desktop_config.json):

json
{  "mcpServers": {    "arduino": {      "command": "npx",      "args": ["-y", "arduino-mcp-server"],      "env": {        "ARDUINO_CLI_PATH": "arduino-cli",        "ARDUINO_SKETCH_ROOT": "/path/to/your/sketches"      }    }  }}

Requires arduino-cli on your PATH, or let the server install it for you.


What you can say

Bootstrap from scratch:

"Check if Arduino CLI is installed and set everything up for an Arduino Uno."

Compile and upload:

"Compile my Blink sketch and upload it to the Uno on COM6."

Serial monitoring:

"Open serial on COM6 at 115200 and wait until the device prints READY."

Safety-first workflows:

"Run a safety preflight for an Arduino Uno with 5V on pin 13 at 25mA before I send commands."


Tools

ToolWhat it does
arduino_cli_doctorCheck Arduino CLI installation and version
install_arduino_cliGuide through arduino-cli installation
detect_hardwareDetect connected boards and infer FQBNs
list_connected_boardsList all connected Arduino boards
list_serial_portsList available serial ports
ensure_core_installedCheck/install board cores
compile_sketchCompile a sketch for a target board
upload_sketchUpload compiled sketch to a board
upload_and_wait_readyUpload and wait for device ready signal
serial_open_sessionOpen a stateful serial session
serial_readRead buffered serial data
serial_expectWait for a pattern in serial output
serial_writeSend data over serial
serial_close_sessionClose a serial session
serial_list_sessionsList active serial sessions
read_serial_snapshotQuick one-shot serial read
safety_preflightElectrical safety check before hardware ops
get_board_detailsGet pin/capability details for a board
list_supported_boardsList all boards arduino-cli supports
list_board_referenceBrowse board pin reference
search_board_referenceSearch board reference by keyword

Resources:

  • arduino://boards/reference — structured board pin/capability reference

Prompts:

  • arduino-cli-bootstrap-policy — policy for arduino-cli setup behavior
  • arduino-setup-assistant — guided Arduino environment setup

Configuration

VariableDefaultDescription
ARDUINO_CLI_PATHarduino-cliPath to arduino-cli binary
ARDUINO_SKETCH_ROOT(none)Restrict sketch paths to this directory

Development

bash
git clone https://github.com/hardware-mcp/arduino-mcp-servercd arduino-mcp-servernpm installnpm run typechecknpm run buildnpm run dev

Part of HardwareMCP

This server is part of the HardwareMCP ecosystem — a collection of MCP servers that give AI assistants real control over physical hardware.


License

MIT — see LICENSE.

Support

Open an issue

Source: README.md at commit 37ea038

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v0.2.7LatestSep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts