# PrintGo [Health: Active]

**Category:** 💻 Developer Tools  
**Repository:** https://github.com/Nishkalkashyap/printgo  
**GitHub Stars:** 1  
**Views:** 0  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/printgo

## Description
Print PDFs, images, text, Markdown and HTML to your local printers, and track or cancel the jobs.

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `npx` (confidence: high):

```json
"mcpServers": {
  "printgo": {
    "command": "npx",
    "args": ["-y","printgo"],
    "env": {
      "PRINTGO_HOME": "",
      "PRINTGO_CHROME_PATH": ""
    }
  }
}
```

**Requires environment variables:** `PRINTGO_HOME`, `PRINTGO_CHROME_PATH` — the values above are empty placeholders; fill in real credentials before running (see the repository for what each one is for).

## Documentation

## What PrintGo MCP server does

PrintGo MCP server lets an MCP client interact with printers already configured on the host computer. It can list available printers, inspect driver-supported options, check current printer state, submit print jobs, retrieve the status of jobs it created, and cancel those jobs.

Supported print inputs include PDF, PNG, JPEG, and plain-text files supplied through HTTPS URLs. Markdown and HTML can be supplied inline or downloaded from HTTPS URLs, rendered in headless Chrome, and sent to a printer. Print settings include copies, page ranges, paper size, orientation, one- or two-sided output, color mode, and page fitting. Copies are limited to 100.

## How it works

The server runs on the computer connected to the printer and uses the operating system's existing print system. macOS and Linux use CUPS commands. Windows uses PowerShell and SumatraPDF; SumatraPDF is needed for every job on Windows because PrintGo converts inputs to PDF before printing.

For remote clients, `printgo start` launches the server with a Cloudflare tunnel and displays an MCP URL plus a password. The client must use MCP Streamable HTTP and send the password in an `Authorization: Bearer` header. A local client can instead start PrintGo with the `stdio` command, avoiding both the tunnel and password.

PrintGo MCP server downloads file assets from public HTTPS URLs, with a 10 MiB limit. Local paths, private network addresses, and redirects to those locations are rejected. Markdown and HTML have separate size limits, and scripts are disabled during browser rendering. Idempotency keys prevent a retry with the same arguments from submitting the same job twice.

## Setup and configuration

Install Node.js 22.12 or newer, then install the package globally with `npm install -g printgo`, or invoke it through `npx`. The host must run macOS, Linux, or Windows and already have a configured printer. Chrome or Chromium is needed for Markdown and HTML; `printgo install-browser` can download a browser when necessary.

Cloudflare access requires `cloudflared`. PrintGo can prompt to download the official release, or accept a supplied executable path. Quick Tunnels require no Cloudflare account but receive a new URL after each start. A Cloudflare custom domain, existing tunnel, or token can be used when a stable address is needed.

State is stored in `~/.printgo` by default and includes the password, tunnel settings, job history, idempotency keys, logs, and downloaded dependencies. Change the location with `--state-dir` or `PRINTGO_HOME`. Set `PRINTGO_CHROME_PATH` to select a specific Chrome or Chromium executable.

## Tools and capabilities

The seven MCP tools are:

- `listPrinters`: lists configured printers.
- `getPrinterCapabilities`: reports options supported by a printer driver.
- `checkPrinterStatus`: reports the printer's current state.
- `sendPrintCommand`: prints a PDF, PNG, JPEG, or text file from an HTTPS URL.
- `printMarkup`: renders and prints Markdown or HTML.
- `getPrintJobStatus`: checks a submitted job.
- `cancelPrintJob`: cancels a submitted job.

The package also exposes Node APIs for connecting to a running server, serving over stdio, creating an MCP server, and creating an HTTP server for custom integrations.

## Limitations and notes

Office documents such as Word and Excel files are not supported directly and must be converted to PDF. `sendPrintCommand` expects a direct file URL rather than a webpage displaying the file. Linked images and stylesheets used by markup must also be publicly reachable over HTTPS.

Job status describes the operating system queue, not whether paper physically came out. On macOS and Linux, a completed state means the job left the queue, including cases where it failed or was canceled outside PrintGo. On Windows, a job that leaves the queue is reported as unknown. Keep the generated password private because anyone who has it can submit or cancel jobs that PrintGo created.

_Full upstream README: https://allmcps.com/mcp/printgo/readme_

