MCP Arduino Server (mcp-arduino-server)

MCP Arduino Server (mcp-arduino-server)

site icon
2025.04.16 0
PythonArduino 开发自动化工具电路图生成开发效率
MCP Arduino Server 是一个基于 FastMCP 的服务器,作为 Model Context Protocol (MCP) 与 `arduino-cli` 之间的桥梁,允许 AI 代理或其他 MCP 客户端与 Arduino 开发工作流进行交互。它提供了管理草图、编译代码、上传到开发板、管理库、发现硬件以及在受限环境中执行基本文件操作的工具。
View on GitHub

Overview

基本能力

产品定位

MCP Arduino Server 是一个专为 Arduino 开发设计的服务器,旨在通过 MCP 协议提供 Arduino 开发工作流的自动化管理工具。

核心功能

  • 草图管理:创建、列出、读取和写入 Arduino 草图(.ino, .h 文件)。
  • WireViz 电路图:提供 YAML 编写帮助和电路图生成工具。
  • 代码验证:编译草图而不上传。
  • 上传功能:编译并上传草图到连接的开发板。
  • 库管理:搜索和安装 Arduino 库。
  • 开发板管理:发现连接的开发板及其详细信息。
  • 文件操作:在用户主目录或指定草图目录中执行基本的文件操作。

适用场景

  • Arduino 开发自动化
  • 电路图自动生成
  • 库和开发板管理

工具列表

  • create_new_sketch: 创建新草图。
  • list_sketches: 列出草图。
  • read_file: 读取文件。
  • write_file: 写入文件并自动编译。
  • rename_file: 重命名文件。
  • remove_file: 删除文件。
  • list_boards: 列出连接的开发板。
  • board_search: 在线搜索开发板。
  • verify_code: 验证代码。
  • upload_sketch: 上传草图。
  • lib_search: 搜索库。
  • lib_install: 安装库。
  • list_library_examples: 列出库示例。
  • getWirevizInstructions: 获取 WireViz YAML 编写指南。
  • generate_diagram_from_yaml: 从 YAML 生成电路图。

常见问题解答

  • 权限问题:确保用户有访问串口的权限。
  • 环境 PATH:确保 arduino-cli 和相关工具链在 PATH 中。
  • 核心/工具链缺失:使用 arduino-cli core install 安装缺失的核心。

使用教程

使用依赖

  • Python: 3.8+(推荐 3.10+)。
  • arduino-cli: 必须安装并在系统 PATH 中。
  • WireViz: 必须安装并在系统 PATH 中。
  • MCP SDK: 通过项目依赖安装。
  • Fuzzy Search: 可选但推荐安装。

安装教程

pip install mcp-arduino-server

对于开发或高级用法:

git clone https://github.com/Volt23/mcp-arduino-server.git
cd mcp-arduino-server
pip install .

设置 Python 3.10+:

pyenv install 3.11.6
pyenv local 3.11.6

确保 arduino-cli 已安装并配置:

arduino-cli core install arduino:avr

调试方式

uv run mcp-arduino-server

mcp-arduino-server

检查服务器日志以获取详细错误信息:

export LOG_LEVEL=DEBUG

许可证

该项目遵循 Other 开源许可条款,请参阅 Other 了解完整条款。