关于 Arduino MCP Server
Arduino MCP Server 通过 arduino-cli 将 AI 助手连接到 Arduino 开发板,支持环境设置、程序编译上传、串口交互和电气安全检查。
主要功能
- 01检测开发板和串口
- 02安装并管理核心与库
- 03编译并上传草图
- 04管理有状态串口会话
- 05检查电气安全和引脚信息
适用场景
- 01为开发板设置 arduino-cli
- 02向已连接的开发板上传草图
- 03等待串口输出就绪消息
- 04发送硬件命令前检查引脚安全
MCP 相关
它向 MCP 客户端提供 Arduino CLI 操作、串口会话控制、安全检查、开发板参考资源和设置提示词。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
npx -y arduino-mcp-serverARDUINO_CLI_PATHOptional path to arduino-cli binary. Defaults to arduino-cli on PATH.ARDUINO_SKETCH_ROOTOptional absolute path restricting sketch operations to this directory.本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
21收录的工具列表 · 更新于 3 周前
此工具无需参数。
详细介绍
arduino-mcp-server
让你的 AI 助手全面控制 Arduino——通过自然语言编译、上传、监控串口并验证接线安全。
这是 HardwareMCP 生态系统的一部分——一组连接 AI 与实体硬件的开源 MCP 服务。
功能介绍
AI 助手可以控制 Jira、GitHub 和数据库,却无法与微控制器通信——现在,这一切成为可能。
arduino-mcp-server 将 arduino-cli 封装为 MCP 服务,让你的 AI 可以:
- 检测已连接的开发板和端口
- 无需使用终端即可编译和上传草图
- 监控串口输出并管理有状态会话(打开、读取、等待、写入、关闭)
- 向硬件发送命令前运行电气安全检查
- 管理依赖项——核心、库和 CLI 安装
快速开始
安装:
npm install -g arduino-mcp-server
添加到 Claude Desktop(claude_desktop_config.json):
{
"mcpServers": {
"arduino": {
"command": "npx",
"args": ["-y", "arduino-mcp-server"],
"env": {
"ARDUINO_CLI_PATH": "arduino-cli",
"ARDUINO_SKETCH_ROOT": "/path/to/your/sketches"
}
}
}
}
需要在 PATH 中安装 arduino-cli,也可以让该服务为你安装。
你可以这样说
从头开始初始化:
“检查是否已安装 Arduino CLI,并为 Arduino Uno 配置好一切。”
编译和上传:
“编译我的 Blink 草图,并将其上传到 COM6 上的 Uno。”
监控串口:
“以 115200 的波特率打开 COM6 上的串口,并等待设备输出 READY。”
安全优先的工作流:
“在我发送命令之前,针对 Arduino Uno 的 13 号引脚执行安全预检,电压为 5V,电流为 25mA。”
工具
| 工具 | 功能 |
|---|---|
arduino_cli_doctor | 检查 Arduino CLI 的安装情况和版本 |
install_arduino_cli | 指引完成 arduino-cli 安装 |
detect_hardware | 检测已连接的开发板并推断 FQBN |
list_connected_boards | 列出所有已连接的 Arduino 开发板 |
list_serial_ports | 列出可用串口 |
ensure_core_installed | 检查/安装开发板核心 |
compile_sketch | 为目标开发板编译草图 |
upload_sketch | 将已编译的草图上传到开发板 |
upload_and_wait_ready | 上传并等待设备就绪信号 |
serial_open_session | 打开有状态串口会话 |
serial_read | 读取已缓冲的串口数据 |
serial_expect | 等待串口输出中出现指定模式 |
serial_write | 通过串口发送数据 |
serial_close_session | 关闭串口会话 |
serial_list_sessions | 列出活动的串口会话 |
read_serial_snapshot | 快速读取一次串口数据 |
safety_preflight | 硬件操作前执行电气安全检查 |
get_board_details | 获取开发板的引脚和能力详情 |
list_supported_boards | 列出 arduino-cli 支持的所有开发板 |
list_board_reference | 浏览开发板引脚参考资料 |
search_board_reference | 按关键字搜索开发板参考资料 |
资源:
arduino://boards/reference— 结构化的开发板引脚/能力参考资料
提示词:
arduino-cli-bootstrap-policy— arduino-cli 设置行为策略arduino-setup-assistant— 引导式 Arduino 环境设置
配置
| 变量 | 默认值 | 描述 |
|---|---|---|
ARDUINO_CLI_PATH | arduino-cli | arduino-cli 二进制文件的路径 |
ARDUINO_SKETCH_ROOT | (none) | 将草图路径限制在此目录下 |
开发
git clone https://github.com/hardware-mcp/arduino-mcp-server
cd arduino-mcp-server
npm install
npm run typecheck
npm run build
npm run dev
HardwareMCP 的一部分
该服务是 HardwareMCP 生态系统的一部分。该生态系统汇集了一组 MCP 服务,让 AI 助手能够真正控制实体硬件。
许可证
MIT——请参阅 LICENSE。
支持
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。