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

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

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