Skip to main content
Glama

FirmForge

Español · 中文(README_CN.md)

FirmForge es una cadena de herramientas de verificación de firmware basada en MCP para el desarrollo de MCU con agentes de codificación de IA. Proporciona un pipeline de hardware de cinco etapas — Detect, Review, Build, Flash, Verify — y expone las etapas a los agentes como herramientas MCP (ff_detect, ff_context, ff_build, ff_run, ff_flash, ff_monitor).

La cadena de herramientas compila el firmware con un compilador real (avr-gcc / ArduinoCore-avr), programa el dispositivo objetivo con avrdude y verifica el resultado mediante lectura de retorno serie. La generación de código está fuera del alcance.

Pipeline

Etapa

Descripción

Manejo de fallos

S1 Detect

Identificación de la placa mediante la sonda de firma de chip de avrdude; inferencia de VID/PID USB y del espacio de trabajo como respaldo

Bloqueante

S2 Review

Análisis estático: cppcheck, validación de registros/campos de bits contra la base de conocimiento del chip, puntuación de confianza

No bloqueante

S3 Build

Compilar a firmware.hex: C de registro puro (avr-gcc, -std=c11) o API de Arduino (ArduinoCore-avr); caché con huella SHA256

Bloqueante

S4 Flash

Programación con avrdude (ATmega2560 usa -D skip-chip-erase) con reinicio del bootloader

Bloqueante

S5 Verify

Lectura de retorno serie con coincidencia de patrones; panel de navegador en vivo

No bloqueante

Related MCP server: agentic-hil

Objetivos compatibles

Placa

MCU

Notas

arduino_mega

ATmega2560

202 registros en la base de conocimiento (incl. alias de GCC)

arduino_328p

ATmega328P (UNO/Nano)

91 registros en la base de conocimiento

Las placas personalizadas se admiten mediante --boards-dir.

Instalación

Requisitos: Python ≥ 3.10. El hardware solo es necesario para las etapas Flash y Verify.

pip install git+https://github.com/NotchStone/firmforge.git
ff setup

ff setup descarga e instala avr-gcc, avrdude, cppcheck y ArduinoCore-avr en ~/.firmforge/. Volver a ejecutarlo es idempotente.

Para soporte MCP (integración con agentes):

pip install "firmforge[mcp] @ git+https://github.com/NotchStone/firmforge.git"

Los wheels estables están disponibles en GitHub Releases.

Hay un espejo en China en Gitee: consulte README_CN.md (中文).

Uso

# Detect connected board
ff detect

# Review + compile only (no hardware required)
ff build arduino_mega --app path/to/source

# Full pipeline on hardware
ff run arduino_mega --app path/to/source --expected "Hello World"

# Flash a pre-built hex
ff flash arduino_mega --firmware firmware.hex

Servidor MCP

Registre el servidor con su agente (CodeBuddy, Cursor, Claude Desktop, ...):

{
  "mcpServers": {
    "firmforge": {
      "command": "python",
      "args": ["-m", "firmforge.adapters.mcp_server"],
      "cwd": "/path/to/your/firmware/project"
    }
  }
}

Flujo de trabajo del agente: consulte ff_context para obtener referencias de registros/pines antes de escribir el firmware, luego use ff_run para compilar, flashear y verificar. Los datos incluidos (definiciones de placa, conocimiento del chip, manifiestos de la cadena de herramientas) se resuelven desde el interior del paquete; el servidor se ejecuta desde cualquier directorio de trabajo.

Desarrollo

pip install -e .[test,mcp]
pytest

Licencia

MIT © Contribuyentes de FirmForge

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    A
    maintenance
    MCP server for simulating firmware on virtual microcontroller instances, allowing AI agents to upload, run, and read UART output from supported boards such as STM32 and Nordic.
    17
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Agentic Hardware-in-the-Loop (Agentic HIL) lets coding agents develop firmware on real embedded boards: flash, reset, read UART and exchange CAN traffic, diagnose and fix. Local, policy-gated MCP tools support OpenOCD, pyOCD and STM32CubeProgrammer, with pytest for CI.
    44
    1,138 PyPI
    18
    Apache 2.0
  • A
    license
    C
    quality
    A
    maintenance
    MCP server for AI-assisted MCU and embedded firmware debugging. It connects to real hardware via debug probes, inspects CPU/memory/peripherals, manages Keil builds, and provides structured evidence for fault diagnosis.
    19
    20 PyPI
    6
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    An MCP server that enables AI agents to inspect, plan, validate, and apply STM32CubeMX .ioc configuration changes, and generate STM32CubeIDE projects, ensuring safe and testable embedded-system workflows.
    9
    3
    MIT