Skip to main content
Glama

FirmForge

English · 中文(README_CN.md)

FirmForge는 AI 코딩 에이전트와 함께하는 MCU 개발을 위한 MCP 기반 펌웨어 검증 툴체인입니다. Detect, Review, Build, Flash, Verify의 5단계 하드웨어 파이프라인을 제공하며, 각 단계를 MCP 도구(ff_detect, ff_context, ff_build, ff_run, ff_flash, ff_monitor)로 에이전트에 노출합니다.

이 툴체인은 실제 컴파일러(avr-gcc / ArduinoCore-avr)로 펌웨어를 컴파일하고, avrdude로 타깃을 프로그래밍하며, 시리얼 리드백을 통해 결과를 검증합니다. 코드 생성은 범위에 포함되지 않습니다.

파이프라인

단계

설명

실패 처리

S1 Detect

avrdude 칩 시그니처 프로브를 통한 보드 식별; USB VID/PID 및 워크스페이스 추론을 대체 수단으로 사용

차단

S2 Review

정적 분석: cppcheck, 칩 지식 베이스에 대한 레지스터/비트필드 검증, 신뢰도 점수

비차단

S3 Build

firmware.hex로 컴파일: 베어 레지스터 C(avr-gcc, -std=c11) 또는 Arduino API(ArduinoCore-avr); SHA256 지문 캐싱

차단

S4 Flash

avrdude 프로그래밍(ATmega2560은 -D 칩 지우기 건너뛰기 사용) 및 부트로더 리셋

차단

S5 Verify

패턴 매칭을 통한 시리얼 리드백; 실시간 브라우저 패널

비차단

Related MCP server: agentic-hil

지원 타깃

보드

MCU

참고

arduino_mega

ATmega2560

지식 베이스에 202개 레지스터(GCC 별칭 포함)

arduino_328p

ATmega328P (UNO/Nano)

지식 베이스에 91개 레지스터

사용자 정의 보드는 --boards-dir을 통해 지원됩니다.

설치

요구 사항: Python ≥ 3.10. 하드웨어는 Flash 및 Verify 단계에서만 필요합니다.

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

ff setup은 avr-gcc, avrdude, cppcheck, ArduinoCore-avr을 ~/.firmforge/에 다운로드하여 설치합니다. 다시 실행해도 멱등적입니다.

MCP 지원(에이전트 통합)을 위해:

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

안정적인 wheel 패키지는 GitHub Releases에 첨부되어 있습니다.

Gitee에서 중국 미러를 사용할 수 있습니다: README_CN.md(中文)를 참조하세요.

사용법

# 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

MCP 서버

에이전트(CodeBuddy, Cursor, Claude Desktop 등)에 서버를 등록하세요:

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

에이전트 워크플로우: 펌웨어를 작성하기 전에 ff_context를 조회하여 레지스터/핀 참조를 확인한 다음, ff_run으로 컴파일, 플래시, 검증을 수행합니다. 번들 데이터(보드 정의, 칩 지식, 툴체인 매니페스트)는 패키지 내부에서 해석되며, 서버는 모든 작업 디렉터리에서 실행됩니다.

개발

pip install -e .[test,mcp]
pytest

라이선스

MIT © 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