mcpField
E
Esp Mcp

Esp Mcp

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

关于 Esp Mcp

Esp Mcp 是面向 ESP-IDF 工作流的 MCP 服务,目前处于概念验证阶段,将 ESP32 相关的常用命令集中到一处。开发者可以通过 LLM 对话完成安装、建项目、编译、烧录和测试。

主要功能

  1. 01安装 ESP-IDF 依赖与工具链
  2. 02创建与配置 ESP-IDF 项目
  3. 03按目标芯片编译项目
  4. 04列出串口并烧录固件
  5. 05运行 pytest 嵌入式测试
  6. 06支持按项目指定 ESP-IDF 路径

适用场景

  1. 01通过对话为 ESP32 项目设置目标芯片并编译
  2. 02列出连接的串口并将固件烧录到设备
  3. 03为 ESP-IDF 项目运行 pytest 测试

MCP 相关

该服务以 MCP 服务形式提供 run_esp_idf_install、build_esp_project、flash_esp_project 等工具,供 LLM 客户端调用。

配置

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

暂未收录安装方式

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

代码仓库

工具

还没有获取到工具列表

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

详细介绍

MseeP.ai 安全评估徽章

目标

此 MCP 的目标是:

  • 将 ESP-IDF 及相关项目命令整合到一处。
  • 仅通过 LLM 通信简化入门流程。
如何为项目做贡献

只需找到此 MCP 中缺少的命令,并为其创建 PR!

如果你希望有人协助实现,只需提交一个 issue。

注意

此项目目前是一个面向 ESP-IDF 工作流的 MCP 服务概念验证(PoC)。

当前功能:

核心功能:

  • 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:运行 pytest 测试,并为 ESP-IDF 项目提供 pytest-embedded 支持。

其他功能:

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

愿景与未来工作: 长期愿景是将此 MCP 扩展为一套全面的工具包,用于与嵌入式设备交互,并可能集成家居助手平台,同时简化 ESP-IDF 及相关技术的文档访问。

我们设想的功能包括:

  • 扩展 ESP-IDF 命令支持(例如,在可行的情况下支持 monitor、menuconfig 交互)。
  • 设备管理和信息检索。
  • 与其他嵌入式开发工具和平台集成。

欢迎提出想法并参与贡献!请随时通过提交 issue 来讨论。

安装

首先,克隆此 MCP 仓库:

git clone [email protected]:horw/esp-mcp.git

然后,在聊天机器人中进行配置。

下面的 JSON 片段展示了如何在支持模型上下文协议(MCP)的聊天机器人或 Agent 系统中配置此 esp-mcp 服务。具体的配置步骤和格式可能因所用的聊天机器人系统而异。有关如何集成 MCP 服务的详细信息,请参阅聊天机器人的文档。

{
    "mcpServers": {
        "esp-run": { // "esp-run" is an arbitrary name you can assign to this server configuration.
            "command": "<path_to_uv_or_python_executable>",
            "args": [
                "--directory",
                "<path_to_cloned_esp-mcp_repository>", // e.g., /path/to/your/cloned/esp-mcp
                "run",
                "main.py" // If using python directly, this might be just "main.py" and `command` would be your python interpreter
            ],
            "env": {
                "IDF_PATH": "<path_to_your_esp-idf_directory>" // e.g., ~/esp/esp-idf or C:\\Espressif\\frameworks\\esp-idf
            }
        }
    }
}

配置说明:

  • command:如果使用 uv,应填写 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 安装的根目录。ESP-IDF 是 Espressif 官方的 IoT 开发框架。如果尚未安装,请参阅官方 ESP-IDF 文档获取安装说明。注意:所有工具都支持 idf_path 参数,可在调用工具时手动指定,以便为不同项目使用不同版本的 ESP-IDF,而无需设置环境变量。如果未提供 idf_path,工具将在可用时使用 IDF_PATH 环境变量。
用法

配置并运行 esp-mcp 服务后,大模型或聊天机器人即可使用此 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。”
  • “针对 esp32c3,为 /path/to/my/esp-project 中的项目运行 pytest 测试。”
  • “为 my_app 中的项目,将固件烧录到已连接的 ESP32 设备。”

然后,MCP 服务会根据 main.py 中实现的工具执行相应的 ESP-IDF 命令(例如 idf.py build、idf.py set-target、idf.py flash、pytest)。

下方的 result.gif 展示了一个交互示例:

结果

示例
  1. 构建并烧录 README 配图
Star 历史

Star 历史图表

评论

支持 Markdown

第一次接触 MCP?

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

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