MCP Arduino Server MCP Server

A FastMCP-powered bridge exposing `arduino-cli` functionality via the Model Context Protocol (MCP). Manage sketches, boards, libraries, files, plus

Local serverstdioPython

What is the MCP Arduino Server MCP server?

MCP Arduino Server becomes available to MCP clients through the mcp arduino server mcp server. A FastMCP-powered bridge exposing arduino-cli functionality via the Model Context Protocol (MCP). Manage sketches, boards, libraries, files, plus generate WireViz schematics from YAML or natural language.

What MCP Arduino Server does

A FastMCP-powered bridge exposing arduino-cli functionality via the Model Context Protocol (MCP). Manage sketches, boards, libraries, files, plus generate WireViz schematics from YAML or natural language.

Tools it exposes

Once connected, the assistant can call these 13 tools directly:

  • arduino — cli** in PATH
  • Variable — Default / Description
  • ARDUINO_CLI_PATH — auto-detected
  • WIREVIZ_PATH — auto-detected
  • MCP_SKETCH_DIR — ~/Documents/Arduino_MCP_Sketches/
  • LOG_LEVEL — INFO
  • OPENAI_API_KEY — your OpenAI API key (required for AI‑powered WireViz)
  • OPENROUTER_API_KEY — optional alternative to OPENAI_API_KEY
  • ARDUINO_SERIAL_LOG_MAX_BYTES — max size per serial log file (bytes; 0 disables)
  • ARDUINO_SERIAL_LOG_ROTATE_COUNT — number of rotated serial logs to keep
  • Sketches — The Sketches tool exposed by this server
  • Libraries — The Libraries tool exposed by this server
  • Boards — The Boards tool exposed by this server

Installing the mcp arduino server mcp server

The server is distributed via PyPI as mcp-arduino-server, so most clients can run it without a manual build step. Add it to your MCP client's configuration and restart the client to pick it up — the copy-paste configs for Claude Desktop, Claude Code and Cursor are on this page.

Configuration

Before the server will start you need to supply 4 environment variables: WIREVIZ_PATH, OPENAI_API_KEY, ARDUINO_CLI_PATH, OPENROUTER_API_KEY. Keep credentials in your client's env block or a secrets manager rather than committing them.

Requirements

  • Python ≥3.10 - arduino-cli in PATH - MCP SDK (mcp[cli]) - WireViz (optional; for diagram generation) - OPENAI_API_KEY (for AI‑powered WireViz) - thefuzz[speedup] (optional; enables fuzzy local library search)

Where it fits

Monitoring servers replace the paste-the-stack-trace ritual with an assistant that reads the real event, with all its surrounding context intact. MCP Arduino Server sits in that group, and the shape of its toolset — arduino, Variable, ARDUINO_CLI_PATH among others — tells you what it is really for. Worth comparing against the other monitoring security servers in this directory before you commit to one, since several overlap in scope but differ sharply in setup cost and permissions.

Practical notes

  • This server runs locally, so it operates with whatever access your machine and its credentials already have. Scope that deliberately rather than by default.
  • It will not start until its required credentials are present, so set those before wondering why the tools never appear.
  • With 13 tools exposed, expect a noticeable bump in prompt size — disable it in projects that never use MCP Arduino Server.
  • Maintained by Volt23, written in Python.
  • MCP clients ask for confirmation before each tool call by default. Keep that on while you learn what the mcp arduino server mcp server actually does with your data.
  • Every entry in this directory is reviewed by hand before it goes live, and details are checked against the project's own documentation.

Available tools

ToolWhat it does
arduinocli** in PATH
VariableDefault / Description
ARDUINO_CLI_PATHauto-detected
WIREVIZ_PATHauto-detected
MCP_SKETCH_DIR~/Documents/Arduino_MCP_Sketches/
LOG_LEVELINFO
OPENAI_API_KEYyour OpenAI API key (required for AI‑powered WireViz)
OPENROUTER_API_KEYoptional alternative to OPENAI_API_KEY
ARDUINO_SERIAL_LOG_MAX_BYTESmax size per serial log file (bytes; 0 disables)
ARDUINO_SERIAL_LOG_ROTATE_COUNTnumber of rotated serial logs to keep
SketchesThe Sketches tool exposed by this server.
LibrariesThe Libraries tool exposed by this server.
BoardsThe Boards tool exposed by this server.

How to install the MCP Arduino Server MCP server

{
  "mcpServers": {
    "arduino-server": {
      "command": "uvx",
      "args": ["mcp-arduino-server"],
      "env": {
        "WIREVIZ_PATH": "your-value",
        "OPENAI_API_KEY": "your-value",
        "ARDUINO_CLI_PATH": "your-value",
        "OPENROUTER_API_KEY": "your-value"
      }
    }
  }
}

Add to claude_desktop_config.json, then restart Claude Desktop.

Configuration

  • Python ≥3.10 - arduino-cli in PATH - MCP SDK (mcp[cli]) - WireViz (optional; for diagram generation) - OPENAI_API_KEY (for AI‑powered WireViz) - thefuzz[speedup] (optional; enables fuzzy local library search)
VariableDescriptionRequired
WIREVIZ_PATHFilesystem location the server is allowed to use.Optional
OPENAI_API_KEYCredential the server authenticates with.Yes
ARDUINO_CLI_PATHFilesystem location the server is allowed to use.Optional
OPENROUTER_API_KEYCredential the server authenticates with.Yes

Example prompts to try

  • Use MCP Arduino Server to arduino.
  • Use MCP Arduino Server to Variable.
  • Use MCP Arduino Server to ARDUINO CLI PATH.

Frequently asked questions

It connects MCP Arduino Server to MCP-compatible AI assistants such as Claude and Cursor, exposing 13 tools (arduino, Variable, ARDUINO_CLI_PATH, and more) that the assistant can call on your behalf. Instead of copying data back and forth by hand, the assistant works with MCP Arduino Server directly.