这是一个基于 FastMCP 的桥梁工具,借助 Model Context Protocol (MCP) 来暴露 arduino-cli 的功能。它能够管理代码 sketches、电路板、库文件、文件,还能从 YAML 或自然语言输入生成 WireViz 电路图。
在命令行中输入以下命令启动服务器:
mcp-arduino-server
服务器会监听 STDIO 上的 JSON-RPC MCP 调用。关键方法如下:
create_new_sketch(name):创建新 sketchlist_sketches():列出所有 sketchesread_file(path):读取文件内容write_file(path, content[, board_fqbn]):自动编译并打开 .inoverify_code(sketch, board_fqbn):验证代码upload_sketch(sketch, port, board_fqbn):上传 sketchlib_search(name[, limit]):搜索库文件lib_install(name):安装库文件list_library_examples(name):列出库示例list_boards():列出所有电路板board_search(query):搜索电路板rename_file(src, dest):重命名文件remove_file(path):破坏性操作,仅限于家目录及 sketch 目录generate_circuit_diagram_from_description(desc, sketch="", output_base="circuit"):AI 驱动,需要 OPENAI_API_KEY,自动打开 PNG 文件arduino-cli 功能。pip install mcp-arduino-server
git clone https://github.com/Volt23/mcp-arduino-server.git
cd mcp-arduino-server
pip install .
以下是启动服务器的基本命令:
mcp-arduino-server
要使用 AI 驱动的 WireViz 电路图生成功能,需要设置 OPENAI_API_KEY 环境变量,然后调用相应方法:
export OPENAI_API_KEY=
mcp-arduino-server
# 调用生成电路图方法
generate_circuit_diagram_from_description(desc, sketch="", output_base="circuit")
环境变量可覆盖默认值,具体如下:
| 变量名 | 默认值 / 描述 |
|---|---|
| ARDUINO_CLI_PATH | 自动检测 |
| WIREVIZ_PATH | 自动检测 |
| MCP_SKETCH_DIR | ~/Documents/Arduino_MCP_Sketches/ |
| LOG_LEVEL | INFO |
| OPENAI_API_KEY | 你的 OpenAI API 密钥(对 AI‑powered WireViz 必须提供) |
| OPENROUTER_API_KEY | 可选的 OpenRouter API 密钥替代 OPENAI_API_KEY |
要与 MCP 客户端(如 Claude Desktop)集成,请在环境变量中设置 OpenAI API 密钥:
{
"mcpServers": {
"arduino": {
"command": "/path/to/mcp-arduino-server",
"args": [],
"env": {
"WIREVIZ_PATH": "/path/to/wireviz",
"OPENAI_API_KEY": ""
}
}
}
}
LOG_LEVEL=DEBUG 以启用详细日志。本项目采用 MIT License。