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

nff — deixe agentes de codificação iterarem em hardware

documentação · início rápido · ferramentas mcp · cli · plataforma · discord

PyPI License: MIT Built with Rust Boards MCP nff platform 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.

nff platform

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 arnff ota deploy transforma 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 --watch mostra 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, repair e agent exigem 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.

GrupoFerramentasCobre
Bancada7list_devices, compile, flash, serial_read/write, reset_device, get_device_info
Depuração14breakpoints, pilha de chamadas, variáveis, registradores, memória, stepping, GDB bruto
Campo8diagnose (local, sem login), repair (nuvem, simbolizado com ELF) + ciclo de vida de autenticação
Frota e OTA5ota_deploy, ota_status, ota_deployments, ota_devices, fleet_status

Assinaturas completas e formatos de retorno: ferramentas mcp →

demonstração

nff Demo

documentação

Read the documentation

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