# printmcp

A CUPS wrapper that lets your coding agent list printers, check queues and send print jobs from a chat prompt.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 5
- Author: aernouddekker
- License: MIT · policy=link-only · description only; the file stays with the author
- Source: https://github.com/aernouddekker/macos-mcp
- Updated: 2026-09-02
- HTML: https://affpapa.org/en/nevibecode/mcp/printmcp

## What it does

printmcp is an MCP server that hands your AI agent the macOS print system. Under the hood it shells out to CUPS tools: `lp` to submit a job, `lpstat` to enumerate printers and queues, `lpoptions` to read or change print settings. Everything runs on your machine. No API keys, no OAuth, no cloud round-trip.

The server starts with `npx -y @aernoud/printmcp`, so Node.js and npx need to be on your `PATH`. It belongs to the macos-mcp family but was split into its own package: printing is a shell wrapper rather than an AppleScript bridge. No printer configured in CUPS means the agent has nothing to work with.

Works with Claude, Codex, Cursor, GitHub Copilot, Windsurf, Cline, Zed and Gemini CLI. Each client gets its own add command or JSON config block.

## Requirements
- Needs: Node.js (commands run via npx)

## Install

### Claude Code (native platform)

**Platform CLI**
```bash
claude mcp add printmcp -- npx -y @aernoud/printmcp
```

### Codex

**Platform CLI**
```bash
codex mcp add printmcp -- npx -y @aernoud/printmcp
```

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "printmcp": {
            "command": "npx",
            "args": [
                "-y",
                "@aernoud/printmcp"
            ]
        }
    }
}
```

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "printmcp": {
            "type": "stdio",
            "command": "npx",
            "args": [
                "-y",
                "@aernoud/printmcp"
            ]
        }
    }
}
```

### Gemini CLI

**Platform CLI**
```bash
gemini mcp add printmcp npx -y @aernoud/printmcp
```

## When to use it
- list printers available on the Mac
- send a document to print from an agent
- check whether a print queue is stuck
- target a specific printer for a job
- change print settings with `lpoptions`

## Example prompts
- List the printers on this Mac
- Send `report.pdf` to the printer
- Check if the print queue is stuck

## Similar
- [cmux-workspace](https://affpapa.org/en/nevibecode/skills/cmux-workspace.md) — skill · 6900 installs
- [capture-screen](https://affpapa.org/en/nevibecode/skills/capture-screen.md) — skill · 1000 installs
- [cmux-cua](https://affpapa.org/en/nevibecode/skills/cmux-cua.md) — skill · 987 installs
- [cli-anything-iterm2](https://affpapa.org/en/nevibecode/skills/cli-anything-iterm2.md) — skill · 495 installs
- [findmy](https://affpapa.org/en/nevibecode/skills/findmy.md) — skill · 370 installs
- [JCAppleScript](https://affpapa.org/en/nevibecode/mcp/jcapplescript.md) — MCP server · ★ 28

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
