nff
Servidor MCP para firmware embarcado: compile, grave e leia serial em mais de 1000 placas, além de depuração ao vivo via JTAG/GDB e implantação de frota OTA assinada.
Documentação
nff — deixe agentes de codificação iterarem em hardware
documentação · início rápido · ferramentas mcp · cli · plataforma · discord
nff é um servidor MCP que dá aos agentes de codificação controle direto sobre hardware físico — na bancada durante o desenvolvimento, e em campo para manutenção e diagnóstico.
Conecte sua placa via USB e o Claude escreve, compila, grava e lê a saída serial de forma autônoma. Implante dispositivos com a biblioteca nff-sdk-c e o Claude pode alcançá-los remotamente: capture o estado de falha, diagnostique falhas e envie correções — sem acesso físico.
nff é o CLI de bancada open-source da plataforma nff — um sistema de ponta a ponta, dirigido por agentes, para desenvolver, enviar e operar firmware classe ESP32 (bancada → OTA → diagnóstico de frota). Este repositório e a biblioteca de dispositivo (
nff-sdk-c) são as duas partes licenciadas sob MIT que rodam no seu laptop e no hardware; o backend hospedado é proprietário.
you: "Run the sensor init sequence and assert the calibration values over serial"
LLM: [writes firmware] → [compiles] → [flashes ESP32] → [reads serial] → returns structured output
you: "Why did the unit in the field just hard-fault?"
LLM: [captures panic over OTA] → [reads registers + backtrace] → "Stack overflow in your sensor ISR at line 47"
recursos
- o loop de bancada, em uma única conversa — sem alternar entre editor, terminal e monitor serial. O agente itera no firmware em resposta à saída serial, captura exceções e regrava.
- manutenção em campo quando o firmware está morto — um MCU de metal nu travado não tem shell, nem SSH, nem tabela de processos. O nff captura registradores, pilha, memória e backtrace e os encaminha para um agente na nuvem que explica a falha e conduz a recuperação. Essa é a lacuna que Mender, balena e ferramentas OTA similares não conseguem preencher: eles precisam de um cliente de rede vivo dentro do firmware.
- envie pelo ar —
nff ota deploytransforma o binário que você acabou de compilar em um rollout em etapas, assinado com ECDSA, com rastreamento por dispositivo e rollback automático;nff fleet --watchmostra a entrega. ota → - universal para placas — qualquer uma das ~1000+ placas do PlatformIO em ~40 plataformas (todas as variantes ESP32, RP2040/Pico, todas as famílias STM32, AVR, SAMD, Teensy, nRF52, Uno R4, RISC-V…), com toolchain instalado automaticamente no primeiro build. O arduino-cli permanece disponível como segundo backend. placas →
- depuração ao vivo no chip — breakpoints reais, pilhas de chamadas e inspeção de variáveis via JTAG/SWD (OpenOCD + GDB, dirigidos pelo nff). depuração →
- local-first — compilar, gravar, monitorar, depurar e as ferramentas MCP não exigem conta e nunca abrem um navegador. Apenas OTA,
repaireagentexigem login. - um único binário Rust — autossuficiente, sem runtime Python, e se atualiza em segundo plano como o Claude Code faz.
comece agora
macOS / Linux:
curl -fsSL https://nanoforgeflow.com/install.sh | sh
Windows (PowerShell):
irm https://nanoforgeflow.com/install.ps1 | iex
Depois, conecte sua placa e execute:
nff init # detects the board, writes config, registers + starts the MCP server
nff doctor # verify
Reinicie o Claude Code para que ele reconheça o servidor MCP e, então, apenas descreva o que você quer:
you: "Flash sketches/blink_esp32 and confirm the LED is toggling over serial"
LLM: [compiles] → [flashes ESP32] → [reads serial] → "LED toggling at 1 Hz, confirmed"
Opções completas de instalação, login --cloud e detalhes da primeira execução: início rápido →
ferramentas mcp
34 ferramentas via HTTP streamable em 127.0.0.1:3010/mcp, iniciadas em segundo plano por nff init.
| Grupo | Ferramentas | Cobre |
|---|---|---|
| Bancada | 7 | list_devices, compile, flash, serial_read/write, reset_device, get_device_info |
| Depuração | 14 | breakpoints, pilha de chamadas, variáveis, registradores, memória, stepping, GDB bruto |
| Campo | 8 | diagnose (local, sem login), repair (nuvem, simbolizado com ELF) + ciclo de vida de autenticação |
| Frota e OTA | 5 | ota_deploy, ota_status, ota_deployments, ota_devices, fleet_status |
Assinaturas completas e formatos de retorno: ferramentas mcp →
demonstração
documentação
tudo está em nanoforgeflow.com/docs: início rápido · referência da cli · configuração · ferramentas mcp · usando o claude code · sdk do dispositivo · provisionamento · implantações ota · implantações via git-push · status da frota · diagnóstico de falhas · depuração no chip · energia · segurança
Referência no repositório (docs/): placas e IDs USB · auto-atualização e configuração · roadmap · arquitetura
contribuindo
Bugs e pedidos de recursos vão para GitHub Issues; leia CONTRIBUTING.md antes de abrir um PR — adicionar uma placa geralmente é uma mudança de duas linhas. Por favor, siga o Código de Conduta e relate vulnerabilidades via SECURITY.md. Perguntas e ideias são bem-vindas no Discord.
licença
MIT — veja LICENSE.
Copyright (c) 2026 Gauthier Lechevalier
