esp cyd mcp
About
A comprehensive Model Context Protocol (MCP) server implementation for the ESP32 CYD (Cheap Yellow Display) board. This project provides extensive remote control capabilities for the ESP32-2432S028R board through a WebSocket-based MCP interface.
Details
- Author
- ofryl
- Categories
- Developer Tools
Jump to
Setup
Install esp cyd mcp in your MCP client (Claude Desktop, Cursor, Windsurf, and others).
Repository: https://github.com/ofryl/esp-cyd-mcp
Follow the installation instructions in the repository README, then restart your MCP client.
A comprehensive Model Context Protocol (MCP) server implementation for the ESP32 CYD (Cheap Yellow Display) board. This project provides extensive remote control capabilities for the ESP32-2432S028R board through a WebSocket-based MCP interface.
- WebSocket-based MCP protocol implementation
- JSON-RPC 2.0 compliant
- Real-time bidirectional communication
- Multiple client support
- Event notifications
- display.clear- Clear screen with color
- display.text- Draw text with positioning and styling
- display.line- Draw lines with thickness
- display.rectangle- Draw rectangle outlines
- display.fillRectangle- Draw filled rectangles
- display.circle- Draw circle outlines
- display.fillCircle- Draw filled circles
- display.pixel- Draw individual pixels
- display.backlight- Control backlight on/off
- display.brightness- Set display brightness (0-255)
- display.rotation- Set display rotation (0-3)
- display.progressBar- Draw progress bars
- display.info- Get display information
- touch.getState- Get current touch state
- touch.enable- Enable/disable touch input
- touch.calibrate- Calibrate touch screen
- touch.getHistory- Get recent touch events
- touch.simulate- Simulate touch events
- touch.getCalibration- Get calibration values
- touch.saveCalibration- Save calibration to file
- Gesture detection (swipe support)
- gpio.pinMode- Set pin mode (input/output/PWM)
- gpio.digitalWrite- Write digital value
- gpio.digitalRead- Read digital value
- gpio.analogWrite- PWM output
- gpio.analogRead- Read analog value
- gpio.attachInterrupt- Attach interrupts
- gpio.setPWM- Configure PWM with frequency
- gpio.tone- Generate tones
- gpio.pulseIn- Measure pulse duration
- sensor.readTemperature- Read temperature sensor
- sensor.readLight- Read light sensor
- sensor.readInternalTemp- ESP32 internal temperature
- sensor.readHallSensor- Built-in hall sensor
- sensor.readBatteryVoltage- Power supply voltage
- sensor.readAll- Read all sensors at once
- sensor.calibrate- Calibrate sensors
- sensor.getEnvironment- Environmental summary
- network.status- Get network status
- network.connect- Connect to WiFi
- network.scan- Scan for networks
- network.startAP- Start access point
- network.httpRequest- Make HTTP requests
- network.ping- Ping hosts
- network.getTime- Get NTP time
- network.setMDNS- Configure mDNS
- system.info- Comprehensive system information
- system.restart- Restart ESP32
- system.sleep- Deep/light sleep modes
- system.memory- Memory statistics
- system.tasks- FreeRTOS task info
- system.setCPUFrequency- CPU speed control
- system.performanceMode- Performance optimization
- system.factoryReset- Factory reset
- file.list- List files/directories
- file.read- Read file contents
- file.write- Write to file
- file.delete- Delete files
- file.mkdir- Create directories
- file.copy- Copy files
- file.storage- Storage statistics
- Support for SPIFFS and SD card
- audio.tone- Play single tone
- audio.playMelody- Play melodies
- audio.beep- Simple beep sounds
- audio.playPattern- Custom tone patterns
- audio.notification- Notification sounds
- audio.alarm- Alarm patterns
- audio.setVolume- Volume control
- Predefined melodies (Mario, Star Wars, etc.)
- ESP32-2432S028R (CYD) board
- 2.8" ILI9341 TFT display (240x320)
- XPT2046 resistive touch controller
- Optional: SD card for file storage
- Optional: External sensors (temperature, light)
- Install PlatformIO or Arduino IDE
- Clone this repository
- Open the project in PlatformIO
- Build and upload to your ESP32 CYD board
git clone https://github.com/yourusername/esp32-cyd-mcp cd esp32-cyd-mcp pio run -t upload
- WiFi credentials
- Pin assignments
- Server ports
- Display settings
- Sensor calibration
- Power on the ESP32 CYD board
- Connect to WiFi or use the AP mode
- Find the device IP address on the display
- Connect via WebSocket tows://[IP]:3001
{ "jsonrpc": "2.0", "id": "1", "method": "tools/invoke", "params": { "name": "display.text", "arguments": { "text": "Hello MCP!", "x": 50, "y": 100, "color": "white", "size": 2 } } }
Add to your Claude Desktop configuration:
{ "mcpServers": { "esp32-cyd": { "command": "websocat", "args": ["ws://192.168.1.100:3001"] } } }
All tools are invoked using the standard MCPtools/invokemethod:
{ "method": "tools/invoke", "params": { "name": "tool.name", "arguments": { ... } } }
The server sends notifications for various events:
- touch.event- Touch input events
- sensor.update- Periodic sensor updates
- network.event- Network state changes
- gpio.interrupt- GPIO interrupt events
- Create header file ininclude/tools/
- Implement insrc/tools/
- Register tools in theregisterTools()method
- Add initialization inmain.cpp
esp32-cyd-mcp/ ├── include/ │ ├── config.h # Configuration │ ├── mcp_server.h # MCP server core │ └── tools/ # Tool headers ├── src/ │ ├── main.cpp # Main application │ ├── mcp_server.cpp # MCP implementation │ └── tools/ # Tool implementations ├── platformio.ini # PlatformIO config └── README.md
- WiFi Connection Issues: Check credentials in config.h
- Touch Not Working: Run touch calibration tool
- Display Issues: Verify display rotation setting
- Memory Issues: Monitor free heap, reduce tool usage
This project is open source and available under the MIT License.
Contributions are welcome! Please submit pull requests or open issues for bugs and feature requests.
- ESP32 community for hardware support
- TFT_eSPI library for display drivers
- MCP specification for protocol design
This is a web browser that enables your coding agent, such as Claude Code, to visit websites on your behalf and assist you in identifying bugs or creating UI test cases.
Create crafted UI components inspired by the best 21st.dev design engineers.
Bring agent evaluations, observability, and synthetic test set generation directly into your IDE for free with Galileo's new MCP server
An MCP server to help AI assistants to answer questions and generate AccelByte Extend SDK code more effectively .
MCP server for AI Diagram Maker — generate beautiful software engineering diagrams directly inside Cursor, Claude Desktop, Claude Code, or any MCP-compatible AI agent
ALAPI MCP Tools,Call hundreds of API interfaces via MCP
AI-powered SVG animation generator that transforms static files into animated SVG components using the Allyson platform
MCP server that gives AI assistants on-demand access to 1,500+ amCharts docs, ~300 code examples, and 1000+ class API references.
APIMatic MCP Server is used to validate OpenAPI specifications using APIMatic. The server processes OpenAPI files and returns validation summaries by leveraging APIMatic’s API.
One shared context layer for AI agents and humans — live API specs, DB schemas, and versioned contracts across repos so every agent and teammate works from the same source of truth.
Build and deploy full-stack Next.js apps with 98 tools for React, AWS, and MongoDB
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.





