nff

Servidor MCP para firmware embebido: compila, flashea y lee el puerto serie en más de 1000 placas, además de depuración en vivo con JTAG/GDB y despliegue de flotas OTA firmadas.

Documentación

nff

nff — deja que los agentes de codificación iteren sobre hardware

documentación · inicio rápido · herramientas mcp · cli · plataforma · discord

PyPI License: MIT Built with Rust Boards MCP nff platform Discord

nff es un servidor MCP que da a los agentes de codificación control directo sobre hardware físico — en el banco de trabajo durante el desarrollo, y en el campo para mantenimiento y diagnóstico.

Conecta tu placa por USB y Claude escribe, compila, flashea y lee la salida serie de forma autónoma. Despliega dispositivos con la librería nff-sdk-c y Claude puede alcanzarlos de forma remota: capturar el estado del fallo, diagnosticar errores y enviar correcciones — sin acceso físico.

nff es la CLI de banco de código abierto de la plataforma nff — un sistema integral impulsado por agentes para desarrollar, publicar y operar firmware de clase ESP32 (banco → OTA → diagnóstico de flota). Este repositorio y la librería de dispositivos (nff-sdk-c) son las dos piezas con licencia MIT que se ejecutan en tu portátil y hardware; el backend alojado es propietario.

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"

características

  • el bucle de banco, en una sola conversación — sin cambiar entre editor, terminal y monitor serie. El agente itera sobre el firmware en respuesta a la salida serie, captura excepciones y vuelve a flashear.
  • mantenimiento en campo cuando el firmware está muerto — un MCU de metal desnudo que se ha bloqueado no tiene shell, ni SSH, ni tabla de procesos. nff captura registros, pila, memoria y backtrace y los enruta a un agente en la nube que explica el fallo y dirige la recuperación. Este es el vacío que Mender, balena y herramientas OTA similares no pueden llenar: necesitan un cliente de red vivo dentro del firmware.
  • publícalo por airenff ota deploy convierte el binario que acabas de compilar en un despliegue por fases firmado con ECDSA con seguimiento por dispositivo y reversión automática; nff fleet --watch muestra cómo aterriza. ota →
  • universal para placas — cualquiera de las ~1000+ placas de PlatformIO en ~40 plataformas (todas las variantes de ESP32, RP2040/Pico, todas las familias STM32, AVR, SAMD, Teensy, nRF52, Uno R4, RISC-V…), con toolchain autoinstalada en la primera compilación. arduino-cli sigue disponible como segundo backend. placas →
  • depuración en vivo en el chip — puntos de interrupción reales, pilas de llamadas e inspección de variables sobre JTAG/SWD (OpenOCD + GDB, controlados por nff). depuración →
  • local primero — compilar, flashear, monitorizar, depurar y las herramientas MCP no necesitan cuenta y nunca abren un navegador. Solo OTA, repair y agent requieren iniciar sesión.
  • un solo binario Rust — autocontenido, sin runtime de Python, y se autoactualiza en segundo plano como hace Claude Code.

cómo empezar

macOS / Linux:

curl -fsSL https://nanoforgeflow.com/install.sh | sh

Windows (PowerShell):

irm https://nanoforgeflow.com/install.ps1 | iex

Luego conecta tu placa y ejecuta:

nff init      # detects the board, writes config, registers + starts the MCP server
nff doctor    # verify

Reinicia Claude Code para que detecte el servidor MCP y luego simplemente describe lo que quieres:

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"

Opciones completas de instalación, inicio de sesión de --cloud y detalles de la primera ejecución: inicio rápido →

herramientas mcp

34 herramientas sobre HTTP transmisible en 127.0.0.1:3010/mcp, iniciadas en segundo plano por nff init.

GrupoHerramientasCubre
Banco7list_devices, compile, flash, serial_read/write, reset_device, get_device_info
Depuración14puntos de interrupción, pila de llamadas, variables, registros, memoria, ejecución paso a paso, GDB crudo
Campo8diagnose (local, sin inicio de sesión), repair (nube, con símbolos ELF) + ciclo de vida de autenticación
Flota y OTA5ota_deploy, ota_status, ota_deployments, ota_devices, fleet_status

Firmas completas y formas de retorno: herramientas mcp →

demo

nff Demo

documentación

Read the documentation

todo vive en nanoforgeflow.com/docs: inicio rápido · referencia de cli · configuración · herramientas mcp · usar claude code · sdk de dispositivos · aprovisionamiento · despliegues ota · despliegues por git-push · estado de la flota · diagnóstico de fallos · depuración en chip · alimentación · seguridad

Referencia en el repositorio (docs/): placas e ids USB · autoactualización y configuración · hoja de ruta · arquitectura

cómo contribuir

Los errores y solicitudes de funciones van a GitHub Issues; lee CONTRIBUTING.md antes de abrir un PR — añadir una placa suele ser un cambio de dos líneas. Por favor, sigue el Código de Conducta y reporta vulnerabilidades a través de SECURITY.md. Las preguntas e ideas son bienvenidas en Discord.

licencia

MIT — consulta LICENSE.
Copyright (c) 2026 Gauthier Lechevalier