使用说明

项目简介

Arduino CLI MCP Server 是一个基于 Model Context Protocol (MCP) 构建的后端服务,它充当 LLM 客户端和 Arduino CLI 工具之间的桥梁。该服务器允许大型语言模型(LLM)通过标准化的 MCP 协议,调用 Arduino CLI 的功能,从而实现对 Arduino 项目的自动化控制,例如编译代码、上传固件、安装库和管理开发板等。这为 AI 驱动的 Arduino 开发工具,如 AI IDE 和智能助手,提供了强大的后端支持。

主要功能点

  • 代码编译: 允许 LLM 客户端请求服务器编译 Arduino Sketch 代码,并返回编译结果,包括编译是否成功、错误信息、构建目录和 hex 文件路径。
  • 固件上传: 支持 LLM 客户端指示服务器将编译好的 Sketch 或预先存在的 hex 文件上传到指定的 Arduino 开发板。
  • 开发板管理: 提供安装和列出 Arduino 开发板平台的功能,使 LLM 能够管理支持的硬件平台。
  • 库管理: 允许 LLM 客户端搜索、安装、列出和卸载 Arduino 库,方便进行代码的功能扩展和依赖管理。
  • 版本检查: 提供检查 Arduino CLI 版本的功能,确保环境配置正确。
  • 错误诊断: 具备初步的编译错误诊断能力,辅助 LLM 理解和解决编译问题。
  • 串行监视器: 支持启动串行监视器,用于调试 Arduino 代码的运行时输出。(注意: 实际的串行监视器需要客户端配合终端模拟器才能实现交互,服务器仅返回启动命令)
  • 开发板选项配置: 允许配置开发板的特定选项。
  • 库示例加载: 支持获取和加载库的示例代码到工作区。

安装步骤

  1. 确保已安装 Arduino CLI: Arduino CLI MCP Server 依赖 Arduino CLI 工具。请先确保你的系统中已经安装并配置好 Arduino CLI,并且 'arduino-cli' 命令可以在终端中直接运行。
  2. 安装 Python 包: 使用 pip 命令安装 'arduino-cli-mcp' 包:
    pip install arduino-cli-mcp
    前提条件: 确保你的 Python 环境为 3.11 或更高版本。

服务器配置

MCP 客户端需要配置 MCP 服务器的启动命令和参数才能连接。以下是配置示例,客户端需要配置 'command' 和 'args' 字段。

Claude 客户端配置示例:

"mcpServers": {
  "arduino": {
    "command": "python",
    "args": ["-m", "arduino_cli_mcp"]
  }
}
  • 'server name': 'arduino' (用户自定义,用于在Claude中标识该服务器)
  • 'command': 'python' (启动服务器的命令,这里使用 Python 解释器)
  • 'args': '["-m", "arduino_cli_mcp"]' (传递给 Python 解释器的参数,'-m arduino_cli_mcp' 表示运行 'arduino_cli_mcp' 包作为模块)

Zed 客户端配置示例:

"context_servers": {
  "arduino-cli-mcp": {
    "command": "python",
    "args": ["-m", "arduino_cli_mcp"]
  }
},
  • 'server name': 'arduino-cli-mcp' (用户自定义,用于在Zed中标识该服务器)
  • 'command': 'python' (启动服务器的命令,这里使用 Python 解释器)
  • 'args': '["-m", "arduino_cli_mcp"]' (传递给 Python 解释器的参数,'-m arduino_cli_mcp' 表示运行 'arduino_cli_mcp' 包作为模块)

通用配置说明:

  • 大部分 MCP 客户端配置类似,关键在于提供正确的 'command' 和 'args',以确保客户端能够启动并连接到 MCP 服务器。
  • 如果 Arduino CLI 没有添加到系统 PATH 环境变量中,或者需要指定工作目录,请参考仓库 README.md 文档进行更详细的配置,例如自定义 Arduino CLI 路径和工作目录。
  • 默认情况下,服务器会在当前工作目录或用户指定的工作目录下进行 Arduino 项目操作。

基本使用方法

  1. 启动服务器: 在终端中运行以下命令启动 Arduino CLI MCP Server:

    python -m arduino_cli_mcp --workdir /path/to/your/arduino/projects
    • '--workdir' 参数是可选的,用于指定 Arduino 项目的工作目录。如果不指定,则默认为当前终端的工作目录。
  2. 在 MCP 客户端中使用: 配置好 MCP 客户端(如 Claude 或 Zed)后,客户端即可通过 MCP 协议与 Arduino CLI MCP Server 进行通信,并调用服务器提供的各项工具,例如:

    • 在 Claude 中,你可以提问类似 "帮我编译 Blink 草图,目标是 Arduino Uno" 的问题,Claude 会调用 'compile' 工具,并传递 'sketch_path' 和 'fqbn' 参数给服务器。
    • 服务器执行编译操作后,会将结果以 JSON 格式返回给 Claude,Claude 即可将结果展示给你。

    更多示例问题 (可以复制到 Claude 等 MCP 客户端中使用):

    列出所有可用的 Arduino 開發板和平台
    幫我編譯 Blink 草圖,目標是 Arduino Uno
    將我的 LED 專案上傳到連接在 /dev/ttyACM0 的 Arduino Mega
    搜尋關於 OLED 顯示器的函式庫
    安裝 Servo 函式庫
    列出所有已安裝的函式庫
    啟動 /dev/ttyACM0 的串行監視器

    注意: 实际使用时,你需要根据 MCP 客户端的具体操作方式来调用这些工具。通常,LLM 会根据你的自然语言指令,智能地选择合适的工具并传递参数。

信息

分类

桌面与硬件