
Security News
Attackers Are Hunting High-Impact Node.js Maintainers in a Coordinated Social Engineering Campaign
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.
lan-mcp-cups
Advanced tools
MCP server for printing to CUPS network printers via streamable HTTP. Discover printers, add them locally, and send print jobs from Claude Code or other MCP clients.

An MCP server for printing to CUPS network printers via streamable HTTP. Discover printers on a network print server, add them to your local system, and send print jobs directly from Claude Code or other MCP clients.
http://127.0.0.1:3000/mcp1. Printer Discovery & Setup
"I just set up my laptop on the network. There's a print server somewhere - help me find the printers and add them."
2. Print from Context
"There's a PDF in this repo - print it on the laser printer."
The easiest way to use LAN MCP CUPS is via npx, which runs the package directly without global installation:
npx lan-mcp-cups
With a CUPS server configured:
MCP_CUPS_SERVER=print-server.local npx lan-mcp-cups
For a permanent global installation:
npm install -g lan-mcp-cups
Then run:
lan-mcp-cups
Or with environment variable:
MCP_CUPS_SERVER=print-server.local lan-mcp-cups
Start the server first:
MCP_CUPS_SERVER=print-server.local npx lan-mcp-cups
Then add to your Claude Code settings (~/.claude/settings.json):
{
"mcpServers": {
"cups": {
"url": "http://127.0.0.1:3000/mcp"
}
}
}
For clients that don't support HTTP transport:
{
"mcpServers": {
"cups": {
"command": "npx",
"args": ["lan-mcp-cups"],
"env": {
"MCP_CUPS_SERVER": "print-server.local",
"MCP_CUPS_TRANSPORT": "stdio"
}
}
}
}
Replace print-server.local with your CUPS server hostname or IP address.
| Variable | Default | Description |
|---|---|---|
MCP_CUPS_SERVER | (none) | CUPS server hostname or IP (required for network printing) |
MCP_CUPS_PORT | 631 | CUPS server port |
MCP_CUPS_DEFAULT_PRINTER | (none) | Default printer name |
MCP_CUPS_MAX_COPIES | 10 | Maximum copies per job (0 = unlimited) |
| Variable | Default | Description |
|---|---|---|
MCP_CUPS_TRANSPORT | http | Transport mode: http or stdio |
MCP_CUPS_HTTP_HOST | 127.0.0.1 | HTTP server bind address |
MCP_CUPS_HTTP_PORT | 3000 | HTTP server port |
list_printersList all printers available on the CUPS server.
User: What printers are available?
AI: [calls list_printers]
Printers on print-server.local:
printer HP_LaserJet is idle.
printer Brother_Color is idle.
system default destination: HP_LaserJet
print_filePrint a local file to a printer on the CUPS server.
Parameters:
file_path (required) - Path to the file to printprinter (optional) - Printer namecopies (optional) - Number of copiesoptions (optional) - CUPS options like landscape, sides=two-sided-long-edgeUser: Print the README.pdf on the laser printer
AI: [calls print_file with file_path="README.pdf", printer="HP_LaserJet"]
✓ Sent to HP_LaserJet
File: README.pdf
add_printerAdd a network printer from the CUPS server to your local system. Makes it available for regular printing from any application.
Parameters:
printer_name (required) - Name of the printer on the remote serverlocal_name (optional) - Local name for the printerset_default (optional) - Set as system defaultUser: Add the Brother printer and make it my default
AI: [calls add_printer with printer_name="Brother_Color", set_default=true]
✓ Added printer "Brother_Color"
URI: ipp://print-server.local/printers/Brother_Color
Set as default printer
Pass these in the options parameter:
landscape - Landscape orientationsides=two-sided-long-edge - Duplex (long edge binding)sides=two-sided-short-edge - Duplex (short edge binding)media=A4 or media=Letter - Paper sizepage-ranges=1-5 - Print specific pagesfit-to-page - Scale to fitnumber-up=2 - Multiple pages per sheet"No printers found"
MCP_CUPS_SERVER is set correctlylpstat -h print-server.local -p"Permission denied" when adding printers
sudo usermod -aG lpadmin $USERPrinter not accepting jobs
MIT
Daniel Rosehill
FAQs
MCP server for printing to CUPS network printers via streamable HTTP. Discover printers, add them locally, and send print jobs from Claude Code or other MCP clients.
We found that lan-mcp-cups demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.