Integrate Espressif's QEMU fork for virtual ESP device management: - QemuManager component with 5 MCP tools (start/stop/list/status/flash) - Config auto-detects QEMU binaries from ~/.espressif/tools/ - Supports esp32, esp32s2, esp32s3, esp32c3 chip emulation - Virtual serial over TCP (socket://localhost:PORT) transparent to esptool - Scan integration: QEMU instances appear in esp_scan_ports results - Blank flash images initialized to 0xFF (erased NOR flash state) - 38 unit tests covering lifecycle, port allocation, flash writes
92 lines
2.4 KiB
Markdown
92 lines
2.4 KiB
Markdown
# MCP ESPTool Server
|
|
|
|
FastMCP server providing AI-powered ESP32/ESP8266 development workflows through natural language interfaces.
|
|
|
|
## Features
|
|
|
|
- **Chip Control**: Advanced ESP device detection, connection, and control
|
|
- **Flash Operations**: Comprehensive flash memory management with safety features
|
|
- **Security Management**: ESP security features including secure boot and flash encryption
|
|
- **Production Tools**: Factory programming and batch operations
|
|
- **Middleware System**: Universal CLI tool integration with bidirectional MCP communication
|
|
- **ESP-IDF Integration**: Host application support for hardware-free development
|
|
|
|
## Quick Start
|
|
|
|
### Installation
|
|
|
|
```bash
|
|
# Install with uvx (recommended)
|
|
uvx mcp-esptool-server
|
|
|
|
# Or install in project
|
|
uv add mcp-esptool-server
|
|
```
|
|
|
|
### Claude Code Integration
|
|
|
|
```bash
|
|
# Add to Claude Code
|
|
claude mcp add mcp-esptool-server "uvx mcp-esptool-server"
|
|
```
|
|
|
|
### Development Setup
|
|
|
|
```bash
|
|
# Clone and setup
|
|
git clone <repository>
|
|
cd mcp-esptool
|
|
make dev
|
|
|
|
# Run development server
|
|
make run-debug
|
|
|
|
# Run tests
|
|
make test
|
|
```
|
|
|
|
## Architecture
|
|
|
|
The server implements a component-based architecture with middleware for CLI tool integration:
|
|
|
|
- **Components**: Specialized modules for different ESP development workflows
|
|
- **Middleware**: Universal pattern for intercepting and redirecting CLI tool output to MCP context
|
|
- **Configuration**: Environment-based configuration with auto-detection
|
|
- **Production Ready**: Docker support with development and production modes
|
|
|
|
## Components
|
|
|
|
- `ChipControl`: Device detection, connection management, reset operations
|
|
- `FlashManager`: Flash operations with verification and backup
|
|
- `PartitionManager`: Partition table management and OTA support
|
|
- `SecurityManager`: Security features and eFuse management
|
|
- `FirmwareBuilder`: ESP-IDF integration and binary operations
|
|
- `OTAManager`: Over-the-air update workflows
|
|
- `ProductionTools`: Factory programming and quality control
|
|
- `Diagnostics`: Memory dumps and performance profiling
|
|
|
|
## Configuration
|
|
|
|
Configure via environment variables or `.env` file:
|
|
|
|
```bash
|
|
ESPTOOL_PATH=esptool
|
|
ESP_DEFAULT_BAUD_RATE=460800
|
|
ESP_IDF_PATH=/path/to/esp-idf
|
|
MCP_ENABLE_PROGRESS=true
|
|
PRODUCTION_MODE=false
|
|
```
|
|
|
|
## Docker
|
|
|
|
```bash
|
|
# Development with hot reload
|
|
make docker-up
|
|
|
|
# Production deployment
|
|
DOCKER_TARGET=production make docker-up
|
|
```
|
|
|
|
## License
|
|
|
|
MIT License - see LICENSE file for details. |