mcpField
M
MCP Arduino Server (mcp-arduino-server)

MCP Arduino Server (mcp-arduino-server)

Local
github.com/Volt23Developer Tools10Updated 39w ago

About MCP Arduino Server (mcp-arduino-server)

MCP Arduino Server exposes arduino-cli operations for managing sketches, boards, libraries, files, and serial monitoring. It can also generate WireViz circuit diagrams from descriptions, with AI-assisted generation requiring an API key.

Key features

  1. 01Create, read, and edit sketches
  2. 02Compile and upload sketches
  3. 03Search boards and manage libraries
  4. 04Monitor serial output
  5. 05Generate WireViz circuit diagrams

Use cases

  1. 01Create and edit Arduino sketches
  2. 02Verify or upload a sketch to a board
  3. 03Inspect serial output during testing
  4. 04Generate a circuit diagram from a description

MCP support

It exposes arduino-cli and related sketch, board, library, file, and serial-monitor operations as tools for MCP clients. WireViz diagram generation is also available.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

No install method listed yet

We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.

Repository

Tools

No tool list yet

Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.

Details

From the project README

MCP Arduino Server (mcp-arduino-server)

License: MIT PyPI version

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.

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)

Installation

From PyPI:

pip install mcp-arduino-server

From source:

git clone https://github.com/Volt23/mcp-arduino-server.git
cd mcp-arduino-server
pip install .

Configuration

Environment variables override defaults:

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

Quick Start

mcp-arduino-server

Server listens on STDIO for JSON-RPC MCP calls. Key methods:

Sketches
  • create_new_sketch(name)
  • list_sketches()
  • read_file(path)
  • write_file(path, content[, board_fqbn]) (auto-compiles & opens .ino)
Build & Deploy
  • verify_code(sketch, board_fqbn)
  • upload_sketch(sketch, port, board_fqbn)
Libraries
  • lib_search(name[, limit])
  • lib_install(name)
  • list_library_examples(name)
Boards
  • list_boards()
  • board_search(query)
Serial Monitor
  • serial_monitor_start(port, baud, buffer_lines, log_to_file, ...)
  • serial_monitor_read(monitor_id, lines)
  • serial_monitor_list()
  • serial_monitor_stop(monitor_id)
File Ops
  • rename_file(src, dest)
  • remove_file(path) (destructive; operations sandboxed to home & sketch directories)
WireViz Diagrams
  • generate_circuit_diagram_from_description(desc, sketch="", output_base="circuit") (AI‑powered; requires OPENAI_API_KEY, opens PNG automatically)

MCP Client Configuration

To integrate with MCP clients (e.g., Claude Desktop), set your OpenAI API key in the environment (or alternatively OPENROUTER_API_KEY for OpenRouter):

{
  "mcpServers": {
    "arduino": {
      "command": "/path/to/mcp-arduino-server",
      "args": [],
      "env": {
        "WIREVIZ_PATH": "/path/to/wireviz",
        "OPENAI_API_KEY": "<your-openai-api-key>"
      }
    }
  }
}

Troubleshooting

  • Set LOG_LEVEL=DEBUG for verbose logs.
  • Verify file and serial-port permissions.
  • Install missing cores: arduino-cli core install <spec>.
  • Run arduino-cli commands manually to debug.

License

MIT

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.