Skip to main content
Glama
niradler

Arduino MCP Server

by niradler

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
MCP_SKETCH_DIRNoOverride default sketch directoryOS-specific
ARDUINO_CLI_PATHNoPath to Arduino CLI executablearduino-cli
ARDUINO_CONFIG_FILENoCustom Arduino CLI config file pathAuto-detected
ARDUINO_SERIAL_BUFFER_SIZENoSerial buffer size in MB10

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": true
}
logging
{}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
extensions
{
  "io.modelcontextprotocol/ui": {}
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
arduino_cli_commandD
list_portsD
list_connected_boardsD
verify_portD
searchA

Search for Arduino cores or libraries.

Note: Library searches return only latest version details to reduce output size. Use more specific search terms to narrow results (e.g., "Adafruit_SSD1306" instead of "display").

list_installed_coresD
install_coreD
install_libraryD
list_installed_librariesD
compile_sketchA

Compile an Arduino sketch.

TIP: If you used arduino-cli board attach on this sketch, FQBN is optional! The board settings will be read from sketch.yaml automatically.

For project-based workflows, use board attach first: arduino_cli_command("board attach -p COM3 -b arduino:avr:uno MySketch")

Then compile without specifying FQBN each time. See the sketch_project_workflow prompt for details.

upload_sketchA

Upload a compiled sketch to an Arduino board.

TIP: If you used arduino-cli board attach on this sketch, FQBN and port are optional! The settings will be read from sketch.yaml automatically.

For project-based workflows, use board attach first: arduino_cli_command("board attach -p COM3 -b arduino:avr:uno MySketch")

Then upload without specifying FQBN/port each time. See the sketch_project_workflow prompt for details.

create_new_sketchD
clean_cacheD
serial_monitorD
convert_image_to_c_arrayA

Convert images to C arrays for hardware displays (OLED, E-Paper, TFT, LEDs)

Supports: monochrome (1-bit), grayscale_2bit (4-level), grayscale_4bit (16-level), grayscale (8-bit), rgb565 (16-bit color), rgb888 (24-bit color)

Parameters:

  • rotation: 0, 90, 180, or 270 degrees (test all to find correct orientation)

  • threshold: Black/white cutoff for monochrome (e.g., "50%", "60%", "70%")

  • keep_aspect: True to maintain proportions, False to force exact size

lint_arduino_projectB

Lint Arduino project for compliance and best practices.

Prompts

Interactive templates invoked by user choice

NameDescription
blink_led_example
sensor_reading_example
sketch_project_workflow
full_development_workflow
troubleshooting_guide
arduino_lint_workflow

Resources

Contextual data attached and managed by the client

NameDescription
read_arduino_config

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/niradler/arduino-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server