Command Palette

Search for a command to run...

UnylyUnyly
Весь каталог

Pymcuprog

БесплатноНе проверен

Enables AI tools to program Microchip AVR microcontrollers via natural language by wrapping pymcuprog, supporting USB HID debuggers and serial UART UPDI adapter

GitHubEmbed

Описание

Enables AI tools to program Microchip AVR microcontrollers via natural language by wrapping pymcuprog, supporting USB HID debuggers and serial UART UPDI adapters.

README

MCP server wrapping pymcuprog so AI tools (Claude Code, Claude Desktop, etc.) can program Microchip AVR microcontrollers via natural language.

Supports USB HID debuggers (nEDBG, PICkit 4, Atmel-ICE, MPLAB Snap, …) and serial UART UPDI adapters.

Installation

No installation needed if you use uvx — it runs the server directly from PyPI on demand (see .mcp.json examples below).

To install as a persistent tool:

uv tool install pymcuprog-mcp

Or with pip:

pip install pymcuprog-mcp

From source:

git clone https://github.com/lucasgerads/pymcuprog-mcp
cd pymcuprog-mcp
pip install -e .

Configuration

The server is configured via environment variables. The two most important ones are PYMCUPROG_DEVICE (target MCU name, e.g. atmega4808) and PYMCUPROG_TOOL (debugger type, e.g. nedbg).

Variable Description Default
PYMCUPROG_DEVICE Target device name (e.g. atmega4808, attiny416)
PYMCUPROG_TOOL Debugger type (nedbg, pickit4, atmelice, snap, …) any connected
PYMCUPROG_SERIALNUMBER USB serial number substring (to pick a specific tool)
PYMCUPROG_SERIALPORT Serial port for UART UPDI mode (e.g. /dev/ttyUSB0, COM3)
PYMCUPROG_BAUDRATE Baud rate for serial UPDI mode 115200
PYMCUPROG_PROJECT_DIR Default project directory for the build_and_flash tool

Setting PYMCUPROG_SERIALPORT switches the server into serial UPDI mode (uses a plain USB-serial adapter instead of a Microchip debugger).

.mcp.json examples

All examples use uvx, which downloads and runs the server directly from PyPI with no prior installation step.

USB HID debugger (nEDBG / Curiosity Nano)

{
  "mcpServers": {
    "pymcuprog": {
      "command": "uvx",
      "args": ["pymcuprog-mcp"],
      "env": {
        "PYMCUPROG_DEVICE": "atmega4808",
        "PYMCUPROG_TOOL": "nedbg"
      }
    }
  }
}

PICkit 4 or MPLAB Snap

{
  "mcpServers": {
    "pymcuprog": {
      "command": "uvx",
      "args": ["pymcuprog-mcp"],
      "env": {
        "PYMCUPROG_DEVICE": "attiny416",
        "PYMCUPROG_TOOL": "pickit4"
      }
    }
  }
}

Serial UART UPDI (cheap USB-serial adapter)

{
  "mcpServers": {
    "pymcuprog": {
      "command": "uvx",
      "args": ["pymcuprog-mcp"],
      "env": {
        "PYMCUPROG_DEVICE": "avr128da48",
        "PYMCUPROG_SERIALPORT": "/dev/ttyUSB0",
        "PYMCUPROG_BAUDRATE": "115200"
      }
    }
  }
}

Multiple tools on the same machine (select by serial number)

{
  "mcpServers": {
    "pymcuprog-board-a": {
      "command": "uvx",
      "args": ["pymcuprog-mcp"],
      "env": {
        "PYMCUPROG_DEVICE": "atmega4808",
        "PYMCUPROG_TOOL": "nedbg",
        "PYMCUPROG_SERIALNUMBER": "MCHP0001"
      }
    },
    "pymcuprog-board-b": {
      "command": "uvx",
      "args": ["pymcuprog-mcp"],
      "env": {
        "PYMCUPROG_DEVICE": "atmega4808",
        "PYMCUPROG_TOOL": "nedbg",
        "PYMCUPROG_SERIALNUMBER": "MCHP0002"
      }
    }
  }
}

Claude Code (via CLI)

claude mcp add pymcuprog -e PYMCUPROG_DEVICE=atmega4808 -e PYMCUPROG_TOOL=nedbg -- uvx pymcuprog-mcp

Available tools

Tool Description
list_supported_devices All device names pymcuprog knows (no hardware needed)
list_connected_tools USB HID debuggers currently attached
ping Read device ID bytes to verify connectivity
erase Chip erase or erase a specific memory area
flash Erase + write + verify + release in one call (recommended)
build_and_flash Run make in a project directory, then flash the resulting .hex
write_hex Program a .hex file with manual control over erase/verify steps
verify_hex Compare target memory to a .hex file
read_memory Read raw bytes from flash, EEPROM, fuses, etc.
write_memory Write raw hex bytes to fuses, EEPROM, user_row, etc.
hold_in_reset Hold target in reset
release_from_reset Release target from reset
disconnect Close the persistent debugger session
read_target_voltage Measure target VCC
read_supply_voltage Read debugger supply setpoint
set_supply_voltage Set debugger supply voltage output
read_tool_info Read debugger firmware/hardware info

Typical workflow: pingflash or pingbuild_and_flash

All programming tools accept optional device, tool, serialport, etc. parameters to override the environment variables on a per-call basis.

from github.com/lucasgerads/pymcuprog-mcp

Установка Pymcuprog

У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.

▸ github.com/lucasgerads/pymcuprog-mcp

FAQ

Pymcuprog MCP бесплатный?

Да, Pymcuprog MCP бесплатный — установка в пару кликов через Unyly без оплаты.

Нужен ли API-ключ для Pymcuprog?

Нет, Pymcuprog работает без API-ключей и переменных окружения.

Pymcuprog — hosted или self-hosted?

Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.

Как установить Pymcuprog в Claude Desktop, Claude Code или Cursor?

Открой Pymcuprog на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.

Похожие MCP

Compare Pymcuprog with

Не уверен что выбрать?

Найди свой стек за 60 секунд

Автор?

Embed-бейдж для README

Похожее

Все в категории ai