SuperAPI AI 工具集

esp-mcp

esp-mcp 是一个面向 ESP-IDF 工作流的 MCP(Model Context Protocol)服务器概念验证项目,旨在集中管理 ESP32 系列芯片相关的开发命令,并通过 LLM 驱动的交互简化上手流程。它提供安装 ESP-IDF 依赖、创建项目、设置目标芯片、构建项目、列出串口、烧录固件以及运行 pytest 测试等工具,支持按项目指定 ESP-IDF 路径和自定义 sdkconfig 配置文件,并包含基于构建日志的自动问题修复实验性功能。

访问官网

工具介绍

esp-mcp 是一个针对 ESP-IDF 工作流的 MCP(Model Context Protocol)服务器概念验证(PoC)项目。其目标是集中管理 ESP-IDF 及相关项目命令,并简化仅通过 LLM 通信即可上手的使用方式。

主要能力:

  • run_esp_idf_install:通过 install.sh 安装 ESP-IDF 依赖和工具链。
  • create_esp_project:创建新的 ESP-IDF 项目。
  • setup_project_esp_target:为 ESP-IDF 项目设置目标芯片(如 esp32、esp32c3、esp32s3 等)。
  • build_esp_project:构建 ESP-IDF 项目,支持增量构建。
  • list_esp_serial_ports:列出 ESP 设备可用的串口。
  • flash_esp_project:将已构建的固件烧录到连接的 ESP 设备。
  • run_pytest:为 ESP-IDF 项目运行支持 pytest-embedded 的 pytest 测试。

附加功能:

  • 灵活的 ESP-IDF 路径管理:通过 idf_path 参数支持按项目使用不同 ESP-IDF 版本。
  • SDK 配置管理:支持自定义 sdkconfig_defaults 文件用于构建配置(可指定多个文件,以分号分隔)。
  • 构建时间跟踪,用于性能监控。
  • 烧录操作可选指定端口。
  • 包含基于构建日志的自动问题修复实验性支持。

使用方式: 首先克隆该 MCP 仓库,然后在聊天机器人中配置。配置 JSON 片段示例中,command 应为 uv 可执行文件的完整路径,或直接运行 main.py 时使用的 Python 解释器路径(如 /usr/bin/python3 或 C:\Python39\python.exe)。args 中 --directory 的第一个参数应为克隆 esp-mcp 仓库的绝对路径;若使用 uv,则参数为 run main.py;若直接使用 Python,则 args 中可能只需 main.py,并确保 command 指向 Python 可执行文件。IDF_PATH 为可选环境变量,可指向 ESP-IDF 安装的根目录。所有工具均支持 idf_path 参数,可在调用时手动指定,从而为不同项目使用不同 ESP-IDF 版本而无需设置环境变量;若未提供 idf_path,工具将使用可用的 IDF_PATH 环境变量。

配置并运行 esp-mcp 服务器后,LLM 或聊天机器人即可通过该 MCP 中定义的工具进行交互。例如可以要求聊天机器人:为位于 /path/to/esp-idf 的 ESP-IDF 安装安装依赖;为 /path/to/my/esp-project 中的项目设置目标芯片为 esp32s3;使用 esp-mcp 构建位于 /path/to/my/esp-project 的项目;使用自定义 sdkconfig 默认值 sdkconfig.defaults;sdkconfig.ci.release 构建项目;为 /path/to/my/esp-project 中的项目运行针对 esp32c3 的 pytest 测试;为 my_app 中的项目将固件烧录到已连接的 ESP32 设备。MCP 服务器将根据 main.py 中实现的工具执行相应的 ESP-IDF 命令(如 idf.py build、idf.py set-target、idf.py flash、pytest)。

适用场景: 适用于使用 ESP32 系列芯片和 ESP-IDF 进行嵌入式开发的场景,尤其是希望通过 LLM 或聊天机器人以自然语言驱动构建、烧录、测试等流程的开发者。

限制: 该项目目前为概念验证(PoC)。长期愿景是将其扩展为与嵌入式设备交互的综合工具包,可能集成 home assistant 平台,并简化 ESP-IDF 及相关技术的文档访问。未来设想的功能包括更广泛的 ESP-IDF 命令支持(如 monitor、menuconfig 交互,若可行)、设备管理与信息获取、与其他嵌入式开发工具和平台的集成。欢迎通过 issue 讨论想法和贡献。