arduino-mcp-server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| ARDUINO_CLI_PATH | No | Path to arduino-cli binary | arduino-cli |
| ARDUINO_SKETCH_ROOT | No | Restrict sketch paths to this directory |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": true
} |
| resources | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_connected_boardsA | List connected boards and serial ports detected by arduino-cli. |
| arduino_cli_doctorA | Check whether arduino-cli is available and return OS-specific installation instructions if missing. |
| install_arduino_cliA | Attempt to install arduino-cli for the current OS using available package managers, then verify and configure CLI path. |
| list_supported_boardsA | List supported/installable boards from the local arduino-cli index. |
| ensure_core_installedA | Ensure the Arduino core required by a board FQBN is installed. Can auto-install via |
| detect_hardwareA | Detect connected Arduino-compatible hardware, infer board/FQBN candidates, and generate next compile/upload commands. |
| list_serial_portsA | List serial ports and any detected board metadata using arduino-cli. Works on Windows/macOS/Linux. |
| compile_sketchB | Compile an Arduino sketch with a specific board FQBN. |
| upload_sketchB | Upload a compiled sketch to a connected board/port. |
| upload_and_wait_readyA | Upload a sketch and wait for a serial readiness pattern, handling post-upload reset/re-enumeration windows. |
| read_serial_snapshotA | Capture serial output for a bounded duration from a given port. |
| safety_preflightA | Run electrical preflight checks (voltage/current/pin risks) before upload or serial write operations. |
| serial_open_sessionB | Open a stateful serial monitor session with port lock ownership. |
| serial_list_sessionsA | List active serial sessions and current port lock state. |
| serial_readA | Read buffered bytes from an open serial session. |
| serial_expectA | Wait for a string pattern in a serial session buffer with timeout. |
| serial_writeB | Write bytes to an open serial session. Safety preflight is enforced unless explicitly skipped. |
| serial_close_sessionB | Close a serial session and release its port lock. |
| get_board_detailsA | Get detailed board metadata from arduino-cli for a specific FQBN. |
| list_board_referenceA | List local board reference entries with pin/spec metadata. |
| search_board_referenceA | Search local board reference by board name, alias, id, or FQBN. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| arduino-cli-bootstrap-policy | Strict setup policy for agents when Arduino CLI is missing. |
| arduino-setup-assistant | Prompt template for wiring/setup guidance based on board + sensor. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| arduino-board-reference | Static board pin/reference metadata for supported boards in this server. |
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/hardware-mcp/arduino-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server