Command Palette

Search for a command to run...

UnylyUnyly
Browse all

Cat Printer

FreeNot checked

Control BLE thermal cat printers from AI agents with tools for printing images, text, and formatted ticket templates.

GitHubEmbed

About

Control BLE thermal cat printers from AI agents with tools for printing images, text, and formatted ticket templates.

README

catprinter-mcp

BLE thermal printer MCP server for physical agent notifications

Low-cost cat printer + MCP agents = real paper output for important events.

What This Project Does

cat-mcp exposes three MCP tools:

  • print_image
  • print_text
  • print_jira_ticket

It is designed for cat-style BLE thermal printers and includes an embedded printer runtime under src/cat_mcp/catprinter.

Why I Built It

Real-world use case behind this repo:

  • I bought a cheap BLE thermal printer and reverse engineered behavior from the Android app.
  • I connected it to my poke agent workflow so important events can be printed physically.

In short: my agents can now talk through thermal paper.

Requirements

  • Python 3.10+
  • Bluetooth enabled host
  • Supported cat thermal printer powered on

Install

python3 -m venv .venv
source .venv/bin/activate
pip install -e .[dev]

Run Server

stdio mode:

cat-mcp-server

HTTP mode:

cat-mcp-http --host 0.0.0.0 --port 8000

HTTP mode with persistent BLE connection:

cat-mcp-http \
  --host 0.0.0.0 \
  --port 8000 \
  --persistent-connection \
  --connect-on-start \
  --start-device PD01

Default streamable HTTP endpoint:

http://127.0.0.1:8000/mcp

MCP Client Example

{
  "mcpServers": {
    "cat-mcp": {
      "command": "/absolute/path/to/.venv/bin/cat-mcp-server"
    }
  }
}

Tool Summary

print_image: Print an image with configurable binarization and thermal energy.

print_text: Render text to 384px thermal bitmap and print.

print_jira_ticket: Render and print a Jira-style ticket template for assignments.

Scripts Folder Note

Files under scripts are helper utilities for local testing, manual debugging, and demo flows. They are not required to run the packaged server commands.

Example Jira helper:

python scripts/print_jira_ticket_pd01.py \
  --ticket-key MCP-42 \
  --summary "Add printer retry logic" \
  --assignee "calgan" \
  --status "To Do" \
  --priority "High" \
  --ticket-url "https://jira.local/browse/MCP-42"

macOS BLE Note

If first connection fails, grant Bluetooth permission to the host process in System Settings and ensure the printer is discoverable.

Thanks

Thanks to rbaron/catprinter for foundational reverse engineering work that helped this project. I adapted and ported relevant parts into this MCP server for the current Bleak-based flow. For original project details and license text, see:

from github.com/calganaygun/catprinter-mcp

Installing Cat Printer

This server has no published package — it is built from source. Open the repository and follow its README.

▸ github.com/calganaygun/catprinter-mcp

FAQ

Is Cat Printer MCP free?

Yes, Cat Printer MCP is free — one-click install via Unyly at no cost.

Does Cat Printer need an API key?

No, Cat Printer runs without API keys or environment variables.

Is Cat Printer hosted or self-hosted?

Self-hosted: the server runs locally on your machine via the install command above.

How do I install Cat Printer in Claude Desktop, Claude Code or Cursor?

Open Cat Printer on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.

Related MCPs

Compare Cat Printer with

Not sure what to pick?

Find your stack in 60 seconds

Author?

Embed badge for your README

Browse similar

All ai MCPs