Skip to main content
Glama
jasper-zsh

ESP-IDF FastMCP Server

by jasper-zsh
README.md
# ESP-IDF FastMCP Server

这是一个为ESP-IDF开发定制的FastMCP Server,提供了与ESP-IDF相关的工具和功能。

## 功能

### 获取ESP-IDF版本信息
### 列出支持的ESP目标芯片
### 列出串口设备
使用pyserial执行串口操作。
只列出有包含有效description的串口设备(非n/a)

### 选择目标串口
选择ESP-IDF要操作的目标串口,对所有需要选择端口的ESP-IDF操作生效。

### 编译
编译项目,返回所有标准输出和标准错误。
通常用于验证代码是否正确,优先使用工具进行编译,而不是直接在命令行中执行编译命令。

### 清理项目
清理项目。
优先使用工具进行编译,而不是直接在命令行中执行清理命令。

### 设置编译目标设备
设置编译目标设备,优先使用工具进行设置。

## 安装要求

- Python 3.8或更高版本
- FastMCP库
- ESP-IDF工具链(用于ESP-IDF相关工具)

## 安装

```bash
pip install -r requirements.txt
```

## 运行Server

有两种方式运行server:

### 方法1:直接运行Python文件

```bash
python app.py
```

这将在`127.0.0.1:8080`上启动HTTP服务器。

### 方法2:使用fastmcp配置文件(推荐)

```bash
fastmcp run fastmcp.json
```

这种方法使用声明式配置文件来定义服务器参数。

## 运行测试

要运行单元测试,请使用以下命令:

```bash
python -m pytest tests/
```

或者直接运行测试文件:

```bash
python tests/test_server.py
```

## 使用

服务器启动后,可以通过HTTP客户端连接到`http://127.0.0.1:8080/mcp`来使用提供的工具。

### 调用工具
客户端可以列出并调用已注册的工具函数:
- `get_esp_idf_version`
- `list_esp_targets`
- `list_serial_ports`
- `select_serial_port`
- `get_selected_serial_port`
- `compile_project`
- `clean_project`
- `set_target`

## 自定义配置

可以通过以下方式自定义服务器配置:

1. 修改`app.py`文件中的`mcp.run()`参数:
   ```python
   mcp.run(transport="streamable-http", host="127.0.0.1", port=8080)
   ```

2. 编辑`fastmcp.json`配置文件:
   ```json
   {
     "mcpServers": {
       "esp-idf-server": {
         "command": "python",
         "args": ["app.py"],
         "transport": "streamable-http",
         "url": "http://127.0.0.1:8080"
       }
     }
   }
   ```

可以更改host、port或transport类型来满足具体需求。