MCP Arduino服务器(MCP Arduino服务器)
 ](https://pypi.org/project/mcp-arduino-server/)
FastMCP供电电桥曝光 arduino-cli 通过模型上下文协议(MCP)实现功能。管理草图、电路板、库、文件,并从YAML或自然语言生成WireViz原理图。
需求
- Python≥3.10
- arduino cli in
PATH - MCP-SDK (
mcp[cli]) - WireViz (可选;用于生成图表)
- OPENAI_API密钥 (适用于AI驱动的WireViz)
- thefuzz\[加速\] (可选;启用模糊本地库搜索)
安装
来自PyPI:
pip install mcp-arduino-server来源:
git clone https://github.com/Volt23/mcp-arduino-server.git
cd mcp-arduino-server
pip install .配置
环境变量覆盖默认值:
| 变量 | 默认值/描述 |
|---|---|
| ARDUINO_CLI_PATH | 自动检测到 |
| WIREVIZ_PATH | 自动检测到 |
| mcpsketch_DIR | ~/Documents/Arduino_MCP_Sketches/ |
| LOG_LEVEL | INFO |
| OPENAI_API_KEY | 您的OPENAI API密钥(AI驱动的WireViz需要) |
| OPENROUTER_API_KEY | 可选替代 OPENAI_API_KEY |
| ARDUINO_SERIAL_LOG_MAX_BYTES | 每个串行日志文件的最大大小(字节;0禁用) |
| ARDUINO_SERIAL_LOG_ROTATE_COUNT | 要保留的旋转串行日志的数量 |
快速开始
mcp-arduino-server服务器在STDIO上监听JSON-RPC MCP调用。关键方法:
草图
create_new_sketch(name)list_sketches()read_file(path)write_file(path, content[, board_fqbn])_(自动编译并打开.ino)_
构建和部署
verify_code(sketch, board_fqbn)upload_sketch(sketch, port, board_fqbn)
图书馆
lib_search(name[, limit])lib_install(name)list_library_examples(name)
板子
list_boards()board_search(query)
串行监视器
serial_monitor_start(port, baud, buffer_lines, log_to_file, ...)serial_monitor_read(monitor_id, lines)serial_monitor_list()serial_monitor_stop(monitor_id)
文件操作
rename_file(src, dest)remove_file(path)_(破坏性;操作沙盒到主目录和草图目录)_
WireViz图
generate_circuit_diagram_from_description(desc, sketch="", output_base="circuit")_(AI驱动;需要OPENAI_API_KEY,自动打开PNG)_
MCP客户端配置
要与MCP客户端(例如Claude Desktop)集成,请在环境中设置OpenAI API密钥(或者 OPENROUTER_API_KEY 对于OpenRouter):
{
"mcpServers": {
"arduino": {
"command": "/path/to/mcp-arduino-server",
"args": [],
"env": {
"WIREVIZ_PATH": "/path/to/wireviz",
"OPENAI_API_KEY": ""
}
}
}
}故障排除
- 集
LOG_LEVEL=DEBUG查看详细日志。 - 验证文件和串行端口权限。
- 安装缺失的核心:
arduino-cli core install. - 跑
arduino-cli手动调试命令。
许可证
麻省理工学院
