esp cyd mcp
Uma implementação abrangente de servidor Model Context Protocol (MCP) para a placa ESP32 CYD (Cheap Yellow Display). Este projeto fornece amplos recursos de controle remoto para a placa ESP32-2432S028R por meio de uma interface MCP baseada em WebSocket.
Documentação
ESP32 CYD MCP Server
Uma implementação abrangente de servidor Model Context Protocol (MCP) para a placa ESP32 CYD (Cheap Yellow Display). Este projeto fornece amplos recursos de controle remoto para a placa ESP32-2432S028R por meio de uma interface MCP baseada em WebSocket.
Recursos
Núcleo do Servidor MCP
- Implementação do protocolo MCP baseada em WebSocket
- Compatível com JSON-RPC 2.0
- Comunicação bidirecional em tempo real
- Suporte a múltiplos clientes
- Notificações de eventos
Categorias de Ferramentas
Ferramentas de Display (20+ ferramentas)
display.clear- Limpar a tela com cordisplay.text- Desenhar texto com posicionamento e estilodisplay.line- Desenhar linhas com espessuradisplay.rectangle- Desenhar contornos de retângulosdisplay.fillRectangle- Desenhar retângulos preenchidosdisplay.circle- Desenhar contornos de círculosdisplay.fillCircle- Desenhar círculos preenchidosdisplay.pixel- Desenhar pixels individuaisdisplay.backlight- Controlar luz de fundo (ligar/desligar)display.brightness- Definir brilho do display (0-255)display.rotation- Definir rotação do display (0-3)display.progressBar- Desenhar barras de progressodisplay.info- Obter informações do display
Ferramentas de Toque (10+ ferramentas)
touch.getState- Obter estado atual do toquetouch.enable- Ativar/desativar entrada de toquetouch.calibrate- Calibrar tela de toquetouch.getHistory- Obter eventos de toque recentestouch.simulate- Simular eventos de toquetouch.getCalibration- Obter valores de calibraçãotouch.saveCalibration- Salvar calibração em arquivo- Detecção de gestos (suporte a deslizar/swipe)
Ferramentas GPIO (15+ ferramentas)
gpio.pinMode- Definir modo do pino (entrada/saída/PWM)gpio.digitalWrite- Escrever valor digitalgpio.digitalRead- Ler valor digitalgpio.analogWrite- Saída PWMgpio.analogRead- Ler valor analógicogpio.attachInterrupt- Anexar interrupçõesgpio.setPWM- Configurar PWM com frequênciagpio.tone- Gerar tonsgpio.pulseIn- Medir duração de pulso
Ferramentas de Sensor (10+ ferramentas)
sensor.readTemperature- Ler sensor de temperaturasensor.readLight- Ler sensor de luzsensor.readInternalTemp- Temperatura interna do ESP32sensor.readHallSensor- Sensor Hall integradosensor.readBatteryVoltage- Tensão da fonte de alimentaçãosensor.readAll- Ler todos os sensores de uma vezsensor.calibrate- Calibrar sensoressensor.getEnvironment- Resumo ambiental
Ferramentas de Rede (15+ ferramentas)
network.status- Obter status da redenetwork.connect- Conectar ao WiFinetwork.scan- Escanear redesnetwork.startAP- Iniciar ponto de acessonetwork.httpRequest- Fazer requisições HTTPnetwork.ping- Pingar hostsnetwork.getTime- Obter hora NTPnetwork.setMDNS- Configurar mDNS
Ferramentas de Sistema (20+ ferramentas)
system.info- Informações abrangentes do sistemasystem.restart- Reiniciar ESP32system.sleep- Modos de suspensão profunda/levesystem.memory- Estatísticas de memóriasystem.tasks- Informações de tarefas FreeRTOSsystem.setCPUFrequency- Controle de velocidade da CPUsystem.performanceMode- Otimização de desempenhosystem.factoryReset- Restauração de fábrica
Ferramentas de Arquivo (15+ ferramentas)
file.list- Listar arquivos/diretóriosfile.read- Ler conteúdo de arquivosfile.write- Escrever em arquivofile.delete- Excluir arquivosfile.mkdir- Criar diretóriosfile.copy- Copiar arquivosfile.storage- Estatísticas de armazenamento- Suporte a SPIFFS e cartão SD
Ferramentas de Áudio (15+ ferramentas)
audio.tone- Reproduzir tom únicoaudio.playMelody- Reproduzir melodiasaudio.beep- Sons de bipe simplesaudio.playPattern- Padrões de tons personalizadosaudio.notification- Sons de notificaçãoaudio.alarm- Padrões de alarmeaudio.setVolume- Controle de volume- Melodias predefinidas (Mario, Star Wars, etc.)
Requisitos de Hardware
- Placa ESP32-2432S028R (CYD)
- Display TFT ILI9341 de 2,8 polegadas (240x320)
- Controlador de toque resistivo XPT2046
- Opcional: cartão SD para armazenamento de arquivos
- Opcional: Sensores externos (temperatura, luz)
Instalação
- Instale PlatformIO ou Arduino IDE
- Clone este repositório
- Abra o projeto no PlatformIO
- Compile e envie para sua placa ESP32 CYD
git clone https://github.com/yourusername/esp32-cyd-mcp
cd esp32-cyd-mcp
pio run -t upload
Configuração
Edite include/config.h para personalizar:
- Credenciais WiFi
- Atribuições de pinos
- Portas do servidor
- Configurações do display
- Calibração de sensores
Uso
Conectando ao Servidor MCP
- Ligue a placa ESP32 CYD
- Conecte-se ao WiFi ou use o modo AP
- Encontre o endereço IP do dispositivo no display
- Conecte via WebSocket em
ws://[IP]:3001
Exemplo de Requisição MCP
{
"jsonrpc": "2.0",
"id": "1",
"method": "tools/invoke",
"params": {
"name": "display.text",
"arguments": {
"text": "Hello MCP!",
"x": 50,
"y": 100,
"color": "white",
"size": 2
}
}
}
Usando com Claude Desktop
Adicione à sua configuração do Claude Desktop:
{
"mcpServers": {
"esp32-cyd": {
"command": "websocat",
"args": ["ws://192.168.1.100:3001"]
}
}
}
Documentação da API
Invocação de Ferramentas
Todas as ferramentas são invocadas usando o método MCP padrão tools/invoke:
{
"method": "tools/invoke",
"params": {
"name": "tool.name",
"arguments": { ... }
}
}
Notificações de Eventos
O servidor envia notificações para vários eventos:
touch.event- Eventos de entrada de toquesensor.update- Atualizações periódicas de sensoresnetwork.event- Mudanças de estado da redegpio.interrupt- Eventos de interrupção GPIO
Desenvolvimento
Adicionando Novas Ferramentas
- Crie arquivo de cabeçalho em
include/tools/ - Implemente em
src/tools/ - Registre as ferramentas no método
registerTools() - Adicione a inicialização em
main.cpp
Estrutura do Projeto
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
Solução de Problemas
- Problemas de Conexão WiFi: Verifique as credenciais no config.h
- Toque Não Funcionando: Execute a ferramenta de calibração de toque
- Problemas de Display: Verifique a configuração de rotação do display
- Problemas de Memória: Monitore o heap livre, reduza o uso de ferramentas
Licença
Este projeto é open source e está disponível sob a Licença MIT.
Contribuição
Contribuições são bem-vindas! Envie pull requests ou abra issues para bugs e solicitações de recursos.
Agradecimentos
- Comunidade ESP32 pelo suporte de hardware
- Biblioteca TFT_eSPI pelos drivers de display
- Especificação MCP pelo design do protocolo