# mcp-pos-print > MCP server that prints markdown to the Epson TM-m30 receipt printer. ## Start Here **Read the latest handoff first:** `.claude/handoffs/` (most recent file). It has session state, in-progress work, and ordered next steps. Then check `IDEA.md` for the project brief and `DECISIONS.md` for settled choices. ## Project Identity Stdio MCP server exposing one tool, `print`, that takes a markdown string (plus optional title, timestamp, and QR URL list) and sends ESC/POS bytes to the TM-m30 at `192.168.0.184:9100`. Mirrors the `mcp-gemma4` layout — single `server.py`, stdio transport, registered in `~/.claude.json`. The server owns markdown → ESC/POS translation; callers do not need to know any printer-specific schema. ## Current State - **Phase:** building - **Repo:** git.sethpc.xyz/Seth/mcp-pos-print (planned) - **Deploy target:** invoked locally by Claude Code on whichever host has LAN access to `192.168.0.184` (typically steel141) - **Status:** initial scaffold ## Conventions - See `~/bin/POS_PRINT.md` for the printer reference (IP, port, Font B columns, native QR usage). - See `~/bin/mcp-gemma4/server.py` for the MCP layout pattern to mirror. - Env overrides: `POS_PRINTER_IP`, `POS_PRINTER_PORT`, `POS_PRINTER_TIMEOUT`. - Always Font B (`font='b'`, 57 cols) — Font A column math is wrong for 80mm paper at the default size.