Arduino MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MCP_SKETCH_DIR | No | Override default sketch directory | OS-specific |
| ARDUINO_CLI_PATH | No | Path to Arduino CLI executable | arduino-cli |
| ARDUINO_CONFIG_FILE | No | Custom Arduino CLI config file path | Auto-detected |
| ARDUINO_SERIAL_BUFFER_SIZE | No | Serial buffer size in MB | 10 |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| 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
| Name | Description |
|---|---|
| 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 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 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:
|
| lint_arduino_projectB | Lint Arduino project for compliance and best practices. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| 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
| Name | Description |
|---|---|
| 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