内容
# mcp-printer




> **让 Claude 打印文档** 到任意USB或网络打印机。
一个 **通用MCP服务器** ,它为Claude(和其他MCP客户端)公开了一个打印工具。它适用于 **网络打印机** 通过标准 **IPP / AirPrint / Mopria** 协议和 **本地安装的打印机** 通过平台打印堆栈 - **Windows 上的 Windows 打印队列** 和 **Linux/macOS 上的 CUPS** (`lp`)。无需厂商特定的驱动程序代码。
当Claude需要将某些内容打印到纸上时 - 您指向它的PDF文件,它刚刚编写的注释,购物清单 - 它可以调用 `print_document` ,作业直接发送到您的打印机。
## 它公开的内容
| 工具 | 目的 |
|------|---------|
| `list_printers` | 发现从此计算机可达的每个打印机(网络+安装)。 |
| `print_document` | 从磁盘或一段文本中打印文件,并带有副本/双面/颜色/纸张选项。 |
后端自动检测并优雅地降级 - 相同的服务器在任何操作系统上运行,并启用它可以访问的打印机:
- **IPP** ( `_ipp._tcp` mDNS)- 无驱动程序的网络打印机(任何AirPrint / Mopria兼容的)。 *跨平台* ;小型IPP线协议在软件包中实现,无需额外的工具。
- **Windows** - 在Windows中安装的打印机(USB和网络),通过PowerShell驱动。文本本地打印;其他文件类型被传递给注册打印它们的应用程序。
- **CUPS** ( `lp` )- 在 **Linux** 和 **macOS** 上配置的打印机(USB和网络),支持完整选项(副本,双面,颜色,介质)。
## 安装
```bash
pip install mcp-printer
```
<details>
<summary>或从源代码安装(用于开发)</summary>
```bash
git clone https://github.com/AminHA1248/mcp-printer
cd mcp-printer
python -m venv .venv
# Windows: .venv\Scripts\activate
# macOS/Linux: source .venv/bin/activate
pip install -e .
```
</details>
平台先决条件:
- **Windows** :无需额外操作 - 打印队列和PowerShell随Windows一起提供。安装打印机的正常Windows驱动程序,以便它出现在 *打印机和扫描仪* 中。
- **Linux** :带有队列配置的CUPS( `lp` / `lpstat` ,通常通过 `cups` 包)。
- **macOS** :无需额外操作 - CUPS内置; 在系统设置中添加打印机。
- **网络打印机** :只需位于同一LAN /子网中; mDNS负责发现。
## 将其连接到Claude
### Claude Desktop - 一键扩展(最简单)
从 [最新版本](https://github.com/AminHA1248/mcp-printer/releases/latest) 下载 `mcp-printer-<version>.mcpb` ,并通过 **设置→扩展→安装扩展…** 打开它。 需要Python 3.10+并安装 `mcp-printer` (扩展程序会告诉您是否缺少)。 详细信息: [docs/EXTENSION.md](docs/EXTENSION.md)。
### Claude Desktop - 手动配置
编辑 `claude_desktop_config.json` (设置→开发者→编辑配置):
```json
{
"mcpServers": {
"printer": {
"command": "mcp-printer"
}
}
}
```
如果找不到 `mcp-printer` (其Scripts / bin目录不在Claude的PATH上),请使用启动器的完整路径 - 例如Windows上的 `C:\Users\you\...\Scripts\mcp-printer.exe` 或macOS / Linux上的 `/path/to/venv/bin/mcp-printer` - 或 `python -m mcp_printer.server` 。
### Claude Code(CLI)
```bash
claude mcp add printer -- mcp-printer
```
重新启动客户端,然后询问Claude: *"列出我的打印机"* 或 *"双面打印此报告。"*
## 您实际上如何运行它
您通常 **不会自己启动任何程序** - Claude Desktop / Code在后台启动 `mcp-printer` 服务器(根据上面的配置),并在您请求时调用其工具。 手动运行 `mcp-printer` 只会启动MCP服务器,它会默默地等待stdin上的JSON-RPC; 它不是交互式shell。
要 **在没有Claude的情况下测试硬件** ,请使用捆绑的CLI, [`test_print.py`](test_print.py):
```bash
# 从项目文件夹,使用venv的Python
python test_print.py --list # 发现打印机
python test_print.py # 打印一个小的文本测试页
python test_print.py --printer "<id>" --file report.pdf --duplex long-edge --copies 2
```
## 配置(环境变量)
| 变量 | 默认值 | 含义 |
|----------|---------|---------|
| `MCP_PRINTER_LOG` | `INFO` | 日志级别。 |
## `print_document` 选项
`printer_id` (来自 `list_printers` ;自动选择系统默认或唯一打印机), `file_path` **或** `text` (两者之一), `copies` (1-99), `duplex` ( `auto` / `off` / `long-edge` / `short-edge` ), `color_mode` ( `auto` / `color` / `monochrome` ), `media` (纸张尺寸关键字,例如 `iso_a4_210x297mm` , `na_letter_8.5x11in` )。
## 注释和限制
- **IPP** 涵盖了过去〜十年中销售的大多数打印机。 文档以原样发送(带有文件扩展名的MIME提示),因此请坚持打印机原生理解的格式: **PDF,JPEG,纯文本** 。PNG和其他格式取决于型号。
- **Windows后端** 可靠地打印文本; 对于其他文件类型,它使用shell *PrintTo* 动词,需要为该扩展名注册打印处理程序。 对于PDF,在裸Windows安装中,请首选IPP后端(网络打印机)。 双面/颜色/介质是Windows上的驱动程序首选项,不会覆盖每个作业。
- HTTPS IPP设备使用自签名证书,因此为它们禁用TLS验证(LAN打印机的典型做法); 建议使用受信任的网络。
- 此服务器仅执行本地硬件I / O - 它不会将任何内容发送到云。
## 隐私政策
mcp-printer完全在您的机器上运行, **不收集任何数据** - 没有遥测,没有分析,没有网络传输您的文档到您选择的打印机。 完整政策: **[PRIVACY.md](https://github.com/AminHA1248/mcp-printer/blob/main/PRIVACY.md)** 。
## 许可证
MIT