Arduino MCP Server

Official registry Other

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

What can you do with Arduino MCP Server?

  • 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

Install

Add this to your client's MCP configuration (Claude Desktop: claude_desktop_config.json; Cursor: .cursor/mcp.json; VS Code and others use the same "mcpServers" shape).

NPM package arduino-mcp-server
Claude Code
claude mcp add arduino-mcp-server -e 'ARDUINO_CLI_PATH=<ARDUINO_CLI_PATH>' -e 'ARDUINO_SKETCH_ROOT=<ARDUINO_SKETCH_ROOT>' -- npx -y arduino-mcp-server@0.2.7
JSON configuration (Claude Desktop, Cursor, VS Code)
{
    "mcpServers": {
        "arduino-mcp-server": {
            "command": "npx",
            "args": [
                "-y",
                "arduino-mcp-server@0.2.7"
            ],
            "env": {
                "ARDUINO_CLI_PATH": "<ARDUINO_CLI_PATH>",
                "ARDUINO_SKETCH_ROOT": "<ARDUINO_SKETCH_ROOT>"
            }
        }
    }
}

Environment variables

  • ARDUINO_CLI_PATH Optional path to arduino-cli binary. Defaults to arduino-cli on PATH.
  • ARDUINO_SKETCH_ROOT Optional absolute path restricting sketch operations to this directory.

Documentation

From the project's README on GitHub, refreshed weekly. Links open on GitHub.

Contents
  1. arduino-mcp-server
  2. What this does
  3. Quick Start
  4. What you can say
  5. Tools
  6. Configuration
  7. Development
  8. Part of HardwareMCP
  9. License
  10. Support

arduino-mcp-server

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:

npm install -g arduino-mcp-server

Add to Claude Desktop (claude_desktop_config.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

git clone https://github.com/hardware-mcp/arduino-mcp-server
cd arduino-mcp-server
npm install
npm run typecheck
npm run build
npm 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

Frequently asked questions

What is Arduino MCP Server?

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

How do I install Arduino MCP Server?

It runs on your machine. In Claude Code: claude mcp add arduino-mcp-server -e 'ARDUINO_CLI_PATH=<ARDUINO_CLI_PATH>' -e 'ARDUINO_SKETCH_ROOT=<ARDUINO_SKETCH_ROOT>' -- npx -y arduino-mcp-server@0.2.7. For other clients, paste the JSON configuration from this page into their MCP settings.

Does Arduino MCP Server need an API key?

Its registry entry lists no required key or secret. Some features may still need an account with the service it connects to.

Is Arduino MCP Server open source?

Yes. Its code is on GitHub under the MIT license.

Who maintains Arduino MCP Server?

It is published by akshatnerella. AI.tn lists it but does not maintain or endorse it.

From the official MCP Registry. Listing is not an endorsement: review a server's code and permissions before giving it access to your data.