generate_and_save_qrcodeLABSCO SUMMARY
QR codes that outlive the conversation.
A code rendered in chat disappears when the chat does. This writes a file you can hand to a designer, plus a JSON record of exactly what is encoded in it and at what error correction level.
What it is
A Python MCP server that generates QR codes and writes them out as PNG files rather than only rendering them in the chat. Three tools cover a single code, a batch, and listing what is already in a directory. Each code gets a JSON metadata file recording what was encoded and with what settings.
What you get
- A single code generated and saved as a PNG, with the output directory, filename, error correction level, size multiplier and border all yours to set —
generate_and_save_qrcode - Several codes from one call, each with its own id, content and type, plus a batch manifest written alongside them —
batch_generate_qrcodes - Every QR file in a directory listed with its metadata —
list_generated_qrcodes - A JSON sidecar per code recording the generation date, the exact content, the parameters used, the file path and its size in bytes
- Error correction from L to H — roughly 7% damage recovery at L, about 30% at H — chosen per code rather than fixed
Requirements
Python 3.8 or newer and an MCP client. Setup runs from a clone of the repository — setup.sh, or a virtualenv and pip install -r requirements.txt — and the client is pointed at src/enhanced_qrcode_server.py. The output directory defaults to ./qr_output/, so a relative path is resolved against wherever the server was started.
Setup effort
Build from source — git clone https://github.com/myownipgit/enhanced-qrcode-mcp.git
USE CASES
Producing codes for a print run
Generate the whole set in one call — tickets, labels, badges — each with its own id and content, and get PNG files plus a batch manifest. What comes back goes straight into a layout rather than being screenshotted out of a chat window.
Making a code that still scans off a scuffed surface
Set the error correction level per code. H recovers around 30% damage against roughly 7% at L, which is the difference between a label that survives a warehouse and one that does not.
Keeping a record of what each code points at
Every code is written with a JSON sidecar holding the exact content, the parameters and the file size. Six months later you can tell what a printed code encodes without scanning it.
Finding what you already made
List a directory and get every QR file in it with its metadata attached, so a reprint uses the original content and settings rather than a fresh guess at them.
3 tools
Listed in project docs. Your client may show a different list.
batch_generate_qrcodeslist_generated_qrcodesBEFORE YOU INSTALL
What to know first
Tools you get
3 tools named in the project's documentation.
Requires
Python 3.8+
Where it runs
Both documented clients run the server on your machine.
INSTALLATION
Connect your client
Server setup
git clone https://github.com/myownipgit/enhanced-qrcode-mcp.git
cd enhanced-qrcode-mcp
chmod +x setup.sh
./setup.shMCP Clients
Claude Desktop
{
"mcpServers": {
"enhanced-qrcode": {
"command": "python3",
"args": [
"<YOUR_PATH_TO_ENHANCED_QRCODE_MCP>/src/enhanced_qrcode_server.py"
],
"env": {},
"description": "Enhanced QR code generator with automatic PNG file saving"
}
}
}setup.sh installs the dependencies into venv/ inside the clone, while this block starts the system python3. Either set "command" to <YOUR_PATH_TO_ENHANCED_QRCODE_MCP>/venv/bin/python3, or run pip install -r requirements.txt for that python3 — otherwise the server stops with "No module named 'mcp'".
VS Code
{
"servers": {
"enhanced-qrcode": {
"command": "python3",
"args": [
"<YOUR_PATH_TO_ENHANCED_QRCODE_MCP>/src/enhanced_qrcode_server.py"
],
"env": {},
"description": "Enhanced QR code generator with automatic PNG file saving"
}
}
}setup.sh installs the dependencies into venv/ inside the clone, while this block starts the system python3. Either set "command" to <YOUR_PATH_TO_ENHANCED_QRCODE_MCP>/venv/bin/python3, or run pip install -r requirements.txt for that python3 — otherwise the server stops with "No module named 'mcp'".