# 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类型来满足具体需求。