mcpField
M
MCP Arduino Server (mcp-arduino-server)

MCP Arduino Server (mcp-arduino-server)

本地服务
github.com/Volt23开发工具1039 周前更新

关于 MCP Arduino Server (mcp-arduino-server)

MCP Arduino Server 通过 arduino-cli 管理草图、开发板、库、文件和串口监视。它还可根据描述生成 WireViz 电路图;AI 辅助生成需要 API 密钥。

主要功能

  1. 01创建、读取和编辑草图
  2. 02编译并上传草图
  3. 03搜索开发板并管理库
  4. 04监视串口输出
  5. 05生成 WireViz 电路图

适用场景

  1. 01创建和编辑 Arduino 草图
  2. 02验证草图或将其上传至开发板
  3. 03测试时查看串口输出
  4. 04根据描述生成电路图

MCP 相关

它将 arduino-cli 及相关草图、开发板、库、文件和串口监视操作作为工具提供给 MCP 客户端,也支持 WireViz 电路图生成。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

MCP Arduino Server (mcp-arduino-server)

License: MIT PyPI version

这是一个由 FastMCP 驱动的桥接工具,通过模型上下文协议(MCP)提供 arduino-cli 功能。可管理草图、开发板、库和文件,还能根据 YAML 或自然语言生成 WireViz 原理图。

要求

  • Python ≥3.10
  • PATH 中的 arduino-cli
  • MCP SDK(mcp[cli])
  • WireViz(可选;用于生成图表)
  • OPENAI_API_KEY(用于 AI 驱动的 WireViz)
  • thefuzz[speedup](可选;启用本地模糊库搜索)

安装

从 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自动检测
MCP_SKETCH_DIR~/Documents/Arduino_MCP_Sketches/
LOG_LEVELINFO
OPENAI_API_KEY你的 OpenAI API 密钥(AI 驱动的 WireViz 必需)
OPENROUTER_API_KEYOPENAI_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 命令进行调试。

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。