Arduino管理服务

一个基于MCP协议的Arduino管理服务,支持草图、库、板卡管理及WireViz电路图生成。

  • by Volt23
  • Python
  • 本地部署
  • 10 星标
  • 更新于
在 GitHub 查看 Volt23/mcp-arduino-server

使用说明

MCP Arduino服务器(MCP Arduino服务器)

FastMCP供电电桥曝光 arduino-cli 通过模型上下文协议(MCP)实现功能。管理草图、电路板、库、文件,并从YAML或自然语言生成WireViz原理图。

需求

  • Python≥3.10
  • arduino cli inPATH
  • 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": "<your-openai-api-key>"
      }
    }
  }
}

故障排除

  • 集 LOG_LEVEL=DEBUG 查看详细日志。
  • 验证文件和串行端口权限。
  • 安装缺失的核心: arduino-cli core install <spec>.
  • 跑 arduino-cli 手动调试命令。

许可证

麻省理工学院