关于 Esp Mcp
Esp Mcp 是面向 ESP-IDF 工作流的 MCP 服务,目前处于概念验证阶段,将 ESP32 相关的常用命令集中到一处。开发者可以通过 LLM 对话完成安装、建项目、编译、烧录和测试。
主要功能
- 01安装 ESP-IDF 依赖与工具链
- 02创建与配置 ESP-IDF 项目
- 03按目标芯片编译项目
- 04列出串口并烧录固件
- 05运行 pytest 嵌入式测试
- 06支持按项目指定 ESP-IDF 路径
适用场景
- 01通过对话为 ESP32 项目设置目标芯片并编译
- 02列出连接的串口并将固件烧录到设备
- 03为 ESP-IDF 项目运行 pytest 测试
MCP 相关
该服务以 MCP 服务形式提供 run_esp_idf_install、build_esp_project、flash_esp_project 等工具,供 LLM 客户端调用。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
目标
此 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 展示了一个交互示例:

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