pymcuprog-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@pymcuprog-mcpflash the firmware.hex file to the ATTiny416"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
pymcuprog-mcp
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-mcpOr with pip:
pip install pymcuprog-mcpFrom 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 |
| Target device name (e.g. | — |
| Debugger type ( | any connected |
| USB serial number substring (to pick a specific tool) | — |
| Serial port for UART UPDI mode (e.g. | — |
| Baud rate for serial UPDI mode |
|
| Default project directory for the | — |
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-mcpAvailable tools
Tool | Description |
| All device names pymcuprog knows (no hardware needed) |
| USB HID debuggers currently attached |
| Read device ID bytes to verify connectivity |
| Chip erase or erase a specific memory area |
| Erase + write + verify + release in one call (recommended) |
| Run |
| Program a |
| Compare target memory to a |
| Read raw bytes from flash, EEPROM, fuses, etc. |
| Write raw hex bytes to fuses, EEPROM, user_row, etc. |
| Hold target in reset |
| Release target from reset |
| Close the persistent debugger session |
| Measure target VCC |
| Read debugger supply setpoint |
| Set debugger supply voltage output |
| Read debugger firmware/hardware info |
Typical workflow: ping → flash or ping → build_and_flash
All programming tools accept optional device, tool, serialport, etc. parameters to override the environment variables on a per-call basis.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/lucasgerads/pymcuprog-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server