nff

by glechevalier

Not rated
GitHub

About

MCP server for embedded firmware: compile, flash, and read serial on 1000+ boards, plus live JTAG/GDB debugging and signed OTA fleet deployment.

Details

Author
glechevalier
Categories
Developer Tools

Setup

Install nff in your MCP client (Claude Desktop, Cursor, Windsurf, and others).

Repository: https://github.com/glechevalier/nff-core

Follow the installation instructions in the repository README, then restart your MCP client.

nff — let coding agents iterate on hardware

docs·quick start·mcp tools·cli·platform·discord

nff is an MCP server that gives coding agents direct control over physical hardware — on the bench during development, and in the field for maintenance and diagnosis.

Connect your board over USB and Claude writes, compiles, flashes, and reads serial output autonomously. Deploy devices with thenff-sdk-clibrary and Claude can reach them remotely: capture crash state, diagnose failures, and push fixes — without physical access.

nff is the open-source bench CLI of thenff platform— an end-to-end, agent-driven system for developing, shipping, and operating ESP32-class firmware (bench → OTA → fleet diagnosis). This repo and the device library (nff-sdk-c) are the twoMIT-licensedpieces that run on your laptop and hardware; the hosted backend is proprietary.

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"

- the bench loop, in one conversation— no switching between editor, terminal, and serial monitor. The agent iterates on firmware in response to serial output, catches exceptions, and reflashes.
- field maintenance when the firmware is dead— a crashed bare-metal MCU has no shell, no SSH, no process table. nff captures registers, stack, memory, and backtrace and routes them to a cloud agent that explains the failure and drives recovery. This is the gap Mender, balena, and similar OTA tools cannot fill: they need a living network client inside the firmware.
- ship it over the airnff ota deployturns the binary you just built into a staged, ECDSA-signed rollout with per-device tracking and automatic rollback;nff fleet --watchshows it land.ota →
- board-universal— any of PlatformIO's ~1000+ boards across ~40 platforms (every ESP32 variant, RP2040/Pico, all STM32 families, AVR, SAMD, Teensy, nRF52, Uno R4, RISC-V…), toolchain auto-installed on first build. arduino-cli remains available as a second backend.
boards →
- live on-chip debugging— real breakpoints, call stacks, and variable inspection over JTAG/SWD (OpenOCD + GDB, driven by nff).
debug →
- local-first— compile, flash, monitor, debug, and the MCP tools need no account and never open a browser. Only OTA,repair, andagentrequire a sign-in.
- one Rust binary— self-contained, no Python runtime, and it self-updates in the background like Claude Code does.

curl -fsSL https://nanoforgeflow.com/install.sh | sh
irm https://nanoforgeflow.com/install.ps1 | iex
nff init # detects the board, writes config, registers + starts the MCP server nff doctor # verify

Restart Claude Code so it picks up the MCP server, then just describe what you want:

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"

Full install options,--cloudsign-in, and first-run detail:quick start →

34 tools over streamable HTTP on127.0.0.1:3010/mcp, started in the background bynff init.

Full signatures and return shapes:mcp tools →

everything lives atnanoforgeflow.com/docs:quick start·cli reference·configuration·mcp tools·using claude code·device sdk·provisioning·ota deploys·git-push deploys·fleet status·crash diagnosis·on-chip debug·power·security

In-repo reference (docs/):boards & USB ids·self-update & config·roadmap·architecture

Bugs and feature requests go toGitHub Issues; readCONTRIBUTING.mdbefore opening a PR — adding a board is usually a two-line change. Please follow theCode of Conduct, and report vulnerabilities viaSECURITY.md. Questions and ideas are welcome onDiscord.

MIT — seeLICENSE.
Copyright (c) 2026 Gauthier Lechevalier

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.

AI-powered live runtime debugging with Lightrun production context.

Run, debug, and triage tests via natural language across HyperExecute, Automation, SmartUI, and Accessibility on the TestMu AI cloud.

Understand, develop, and debug authorization policies in Oso Cloud.

A comprehensive proxy that combines multiple MCP servers into a single MCP. It provides discovery and management of tools, prompts, resources, and templates across servers, plus a playground for debugging when building MCP servers.

Proxyman MCP allows AI to inspect HTTP traffic, create debugging rules, and control Proxyman - all through natural language conversations.

Debug your remote Node.js and Next.js applications directly from your AI IDE like Cursor.

Live browser debugging for AI assistants — DOM, console, network via MCP.

Drives an Android emulator or a real device over adb: screenshots, UI hierarchy with true device-pixel coordinates, tap and type, app lifecycle, logcat, and Gradle builds and tests.

Interact with Android devices using the Android Debug Bridge (ADB).

Policy-gated MCP tools that let coding agents build, flash, stimulate and observe real embedded hardware (OpenOCD, pyOCD, STM32CubeProgrammer, serial, CAN).

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.