Files
mcp-pos-print/IDEA.md
T
Mortdecai 421c3c9660 feat: initial MCP server for printing markdown to Epson TM-m30
Single tool `print(markdown, title?, timestamp?, qr_urls?, cut?)`. Hand-rolled
line-by-line markdown parser translates headings/bold/code/lists/blockquotes/
HR/links to ESC/POS, then sends raw bytes via TCP to 192.168.0.184:9100.

Mirrors mcp-gemma4 layout (stdio server, single server.py, mcp package).
2026-05-25 16:51:17 -04:00

1.0 KiB

IDEA.md — mcp-pos-print

What is this?

An MCP server that exposes the Epson TM-m30 receipt printer (192.168.0.184) as a single tool to any Claude Code session. Claude calls print with a markdown string, the server translates markdown → ESC/POS and sends raw bytes over TCP to the printer.

Problem it solves

When working with Claude on the homelab box, useful output sometimes belongs on paper — a code snippet to keep at the desk, a quick summary, a TODO list, a QR for a URL. Currently this requires writing a one-off Python script that imports escpos and socket. With this MCP, Claude just says "let me print that" and it comes out of the printer with no extra plumbing.

Constraints / preferences

  • Python (matches existing mcp-gemma4 pattern in this repo).
  • stdio transport (matches existing pattern; local-only invocation, no network exposure of the MCP itself).
  • Single tool, minimal surface — markdown in, paper out.
  • Mirrors conventions documented in ~/bin/POS_PRINT.md (Font B, 57 cols, native QR, TCP to 192.168.0.184:9100).