Skip to main content
Glama
zimsoft

智睦云打印

Official

智睦云打印MCP

webprinter_mcp 是一个用于云打印的 MCP Server。
如果你的 MCP 客户端支持 stdio 类型的 MCP,就可以通过它完成文件上传、查询打印机、提交打印任务和直接打印。

它可以帮你做什么

你可以把它理解成一个“会帮你处理打印任务的工具”。

比如你可以对接入了这个 MCP 的 AI 说:

  • “帮我看看现在有没有可用打印机”

  • “把这个文件上传一下,准备打印”

  • “把这个文件加入打印队列”

  • “直接打印到办公室那台打印机”

  • “把刚才那个任务改成双面”

使用前先准备

你需要先安装智睦云打印服务器,并完成打印机的共享。请从智睦云打印获取安装包:

  • https://any.webprinter.cn

然后,你需要拿到云打印访问令牌(token)。

获取地址:

  • [https://any.webprinter.cn/get-ai-server-token](https://any.webprinter.cn/get-ai-server-token)

拿到 token 之后,设置环境变量:

  • WEBPRINTER_ACCESS_TOKEN:必填

安装

用 pip 安装

pip install webprinter_mcp

或者从源码安装

pip install .

启动方式

如果你只是想确认它在本地能不能启动,可以运行:

webprinter_mcp

或者:

python -m webprinter_mcp

注意:这个命令启动后通常不会主动打印提示信息。
它会进入等待 MCP 客户端连接的状态,这是正常现象。

在 MCP 客户端里怎么配置

当前这个项目更适合以 stdio 方式接入。

本地 Python 方式

如果你已经在本机装好了这个包,推荐这样配:

{
  "type": "stdio",
  "config": {
    "mcpServers": {
      "webprinter": {
        "type": "stdio",
        "command": "webprinter_mcp",
        "args": [],
        "env": {
          "WEBPRINTER_ACCESS_TOKEN": "your-access-token"
        }
      }
    }
  }
}

npx 方式

如果你的客户端支持 npx 风格,也可以这样配:

{
  "type": "stdio",
  "config": {
    "mcpServers": {
      "webprinter": {
        "type": "npx",
        "command": "npx",
        "args": ["-y", "webprinter_mcp"],
        "env": {
          "WEBPRINTER_ACCESS_TOKEN": "your-access-token"
        }
      }
    }
  }
}

注意:如果你用 npx webprinter_mcp,本机依然需要有可用的 Python 运行环境。

直接使用 mcpServers 配置

如果你的 MCP 客户端直接接收 mcpServers 结构,也可以直接使用下面这段配置:

{
  "mcpServers": {
    "webprinter": {
      "args": [
        "-y",
        "webprinter_mcp"
      ],
      "command": "npx",
      "env": {
        "WEBPRINTER_ACCESS_TOKEN": "your-access-token"
      },
      "type": "npx"
    }
  }
}

其中:

  • WEBPRINTER_ACCESS_TOKEN

    • 需要先从 https://any.webprinter.cn/get-ai-server-token 获取

  • commandargs

    • 表示通过 npx webprinter_mcp 启动 MCP Server

  • type

    • 表示当前客户端使用 npx 方式接入

工具列表

当前 MCP Server 提供以下工具:

  • check_install_progress

    • 检查当前账号和设备环境是否已经具备云打印能力

  • query_printers

    • 查询当前账号可用的打印机列表

  • query_printer_detail

    • 查询指定打印机或共享设备的详细能力信息

  • upload_file

    • 上传本地文件,并返回可用于打印的公网地址

  • create_roaming_task

    • 根据文件 URL 创建漫游打印任务

  • update_printer_side

    • 修改漫游打印任务的单双面设置

  • update_printer_color

    • 修改漫游打印任务的彩色/黑白设置

  • update_printer_copies

    • 修改漫游打印任务的打印份数

  • update_printer_paper

    • 修改漫游打印任务的纸张大小,支持 A3A4 等预设纸型,也支持自定义宽高

  • direct_print_document

    • 把文件直接发送到指定打印机进行打印

你也可以把它理解成一套完整的打印流程能力:

  1. 先检查环境:check_install_progress

  2. 再查看打印机:query_printers / query_printer_detail

  3. 上传文件:upload_file

  4. 创建漫游打印:create_roaming_task

  5. 按需调整任务参数:update_printer_side / update_printer_color / update_printer_copies / update_printer_paper

  6. 或者直接打印:direct_print_document

工具说明

下面按“用途、行为、关键参数、使用建议”的方式说明每个工具,方便在 MCP 平台、目录站和接入文档里展示。

check_install_progress

  • 用途

    • 检查当前账号、客户端和打印环境是否已经具备可用的云打印能力

  • 什么时候用

    • 第一次接入时先调用

    • 遇到无法打印、查不到打印机、任务提交失败时优先调用

  • 行为

    • 向云打印平台查询当前安装和配置状态

    • 不修改任何打印任务

  • 参数

  • 返回结果

    • 返回当前环境检查结果,通常可用于判断客户端、设备或共享配置是否完成

  • 使用建议

    • 推荐把它作为所有打印流程的第一步

  • 示例说法

    • “先检查一下当前环境能不能用云打印”

query_printers

  • 用途

    • 查询当前账号下可用的打印机列表

  • 什么时候用

    • 用户想查看可用打印机时

    • 直接打印前先确认目标打印机是否存在时

  • 行为

    • 返回打印机列表

    • 对隐藏打印机会标记为仅支持漫游打印任务

  • 参数

  • 返回结果

    • 常见字段包括打印机名称、别名、在线状态、控制端编号、是否隐藏等

  • 使用建议

    • 如果用户说“打印到某台打印机”,建议先调用这个工具确认设备名称和控制编号

  • 示例说法

    • “帮我看看当前有哪些可用打印机”

query_printer_detail

  • 用途

    • 查询某台打印机或共享设备的详细能力信息

  • 什么时候用

    • 用户需要确认设备支持的能力时

    • 在打印前确认设备类型、共享编号或详细参数时

  • 行为

    • 根据打印机名称、共享编号或设备类型返回详细信息

  • 参数

    • printer_name

      • 打印机名称,可选

    • share_sn

      • 共享设备编号,可选

    • device_type

      • 设备类型,可选,支持 printerscannercamera

  • 返回结果

    • 返回指定设备的详细能力或配置数据

  • 使用建议

    • 至少提供一个过滤条件,避免查询范围过大

  • 示例说法

    • “帮我看看前台那台打印机支持什么能力”

upload_file

  • 用途

    • 上传本地文件,并换取后续打印可使用的公网 URL

  • 什么时候用

    • 源文件在本地磁盘上时

    • 漫游打印或直接打印前还没有公网文件地址时

  • 行为

    • 读取本地文件并上传到云端

    • 返回一个可被打印服务读取的文件地址

  • 参数

    • file_path

      • 本地文件路径,必填

  • 返回结果

    • 返回上传后的文件信息和可访问地址

  • 使用建议

    • 如果文件已经是公网 URL,可以跳过这个步骤

  • 示例说法

    • “把我桌面上的 PDF 上传一下,给我一个可打印地址”

create_roaming_task

  • 用途

    • 创建漫游打印任务,让文件进入打印队列等待后续处理

  • 什么时候用

    • 用户想先生成打印任务,而不是立刻打印到某一台设备时

  • 行为

    • 根据文件名、文件 URL 和文件类型创建一个漫游打印任务

    • 成功后返回任务 ID

  • 参数

    • file_name

      • 文件显示名称,必填

    • url

      • 文件公网地址,必填

    • media_format

      • 文件格式,必填,支持 PDFPNGJPGWORDEXCELPPT

  • 返回结果

    • 返回新创建的漫游任务 ID

  • 使用建议

    • 后续如果要改单双面、颜色、份数、纸张,都需要先有这个任务 ID

  • 示例说法

    • “把这个文件提交成一个漫游打印任务”

update_printer_side

  • 用途

    • 修改漫游打印任务的单双面设置

  • 什么时候用

    • 用户明确说单面、双面、长边翻转、短边翻转时

  • 行为

    • 根据任务 ID 更新任务的打印面设置

  • 参数

    • task_id

      • 漫游任务 ID,必填

    • side

      • 可选值:ONESIDEDUPLEXTUMBLE

  • 返回结果

    • 返回更新结果

  • 使用建议

    • 适用于已经创建好的漫游任务,不用于直接打印任务

  • 示例说法

    • “把任务 123 改成双面打印”

update_printer_color

  • 用途

    • 修改漫游打印任务的颜色模式

  • 什么时候用

    • 用户明确说彩色、黑白、灰度打印时

  • 行为

    • 根据任务 ID 更新颜色模式

  • 参数

    • task_id

      • 漫游任务 ID,必填

    • color

      • 可选值:COLORMONOCHROME

  • 返回结果

    • 返回更新结果

  • 使用建议

    • 当用户说“黑白打印”时应转换为 MONOCHROME

  • 示例说法

    • “把任务 123 改成黑白打印”

update_printer_copies

  • 用途

    • 修改漫游打印任务的打印份数

  • 什么时候用

    • 用户说“打印 2 份”“打印 3 份”时

  • 行为

    • 根据任务 ID 更新打印份数

  • 参数

    • task_id

      • 漫游任务 ID,必填

    • copies

      • 打印份数,必填,且必须大于等于 1

  • 返回结果

    • 返回更新结果

  • 使用建议

    • 如果用户没有明确说份数,默认不要擅自修改

  • 示例说法

    • “把任务 123 改成打印 3 份”

update_printer_paper

  • 用途

    • 修改漫游打印任务的纸张尺寸

  • 什么时候用

    • 用户说 A3、A4、A5、Letter 等纸型时

    • 用户直接给出宽高时

  • 行为

    • 支持标准纸张名称自动转换为毫米宽高

    • 也支持直接传入自定义 widthheight

  • 参数

    • task_id

      • 漫游任务 ID,必填

    • paper

      • 可传纸型名称,如 A4

      • 也可传对象,如 {"width": 210, "height": 297}

  • 返回结果

    • 返回更新结果

  • 使用建议

    • 宽高单位统一为毫米

    • 当前支持的预设包括 A0-A6B4B5LETTERLEGALTABLOID

  • 示例说法

    • “把任务 123 改成 A4 纸”

    • “把任务 123 改成宽 210、高 297 的纸张”

direct_print_document

  • 用途

    • 直接把文件发送到指定打印机

  • 什么时候用

    • 用户明确指定要立刻打印到某一台打印机时

  • 行为

    • 根据文件信息和目标设备信息直接发起打印

    • 如果目标打印机是隐藏打印机,会阻止直接打印,并提示改用漫游任务

  • 参数

    • file_name

      • 文件显示名称,必填

    • url

      • 文件公网地址,必填

    • media_format

      • 文件格式,必填

    • device_name

      • 目标打印机名称,必填

    • control_sn

      • 目标打印机控制端编号,必填

  • 返回结果

    • 返回直接打印结果

  • 使用建议

    • 建议先调用 query_printers 确认目标打印机名称和控制端编号

    • 如果是本地文件,先调用 upload_file

  • 示例说法

    • “直接把这个文件打印到前台那台打印机”

第一次接入建议怎么试

第一次使用时,建议这样一步一步来:

先检查当前账号是不是已经具备云打印条件

你可以这样理解:

  • “先帮我检查一下当前环境能不能正常用云打印”

如果返回里显示客户端或设备还没准备好,那就先完成 WebPrinter 侧安装和共享配置。

再让它列出当前可用打印机

你可以这样说:

  • “帮我看看现在都有哪些打印机”

这一步通常能拿到:

  • 打印机名称

  • 打印机别名

  • 在线状态

  • 控制端编号

如果你有本地文件,先上传

你可以理解成:

  • “把我本地这个 PDF 上传一下,给我一个可打印地址”

本地调试时,常见参数长这样:

{
  "file_path": "C:\\\\docs\\\\report.pdf"
}

然后决定是“漫游打印”还是“直接打印”

如果你只是想先进入打印队列,可以这样理解:

  • "把这个文件提交漫游打印" 或

  • “把这个文件加入打印队列”

如果你要立刻打到某台打印机,可以这样理解:

  • “直接把这个文件打到办公室那台 HP 打印机”

更口语化的使用示例

下面这些说法,都是这个 MCP 比较适合处理的:

  • “帮我检查一下当前云打印环境能不能用”

  • “帮我看看有哪些可用打印机”

  • “把我桌面上的 PDF 上传一下”

  • “把这个网页加入打印队列”

  • “直接打印到前台那台打印机”

  • “把刚才那个任务改成双面”

常见问题

为什么我运行 webprinter_mcp 后没反应

这是正常的。
它启动后会一直等待 MCP 客户端通过 stdio 连接,不会像普通命令行工具那样立刻打印很多信息。

启动时报 token 相关错误怎么办

请先去这里拿 token:

  • [https://get-ai-token.webprinter.cn](https://any.webprinter.cn/get-ai-server-token)

然后确认你已经设置了:

  • WEBPRINTER_ACCESS_TOKEN

命令已经安装了,但找不到 webprinter_mcp

通常是 Python 的 Scripts 目录还没加入 PATH。
这时你可以先直接使用:

python -m webprinter_mcp

任务配置工具

对于已经创建好的漫游打印任务,现在可以继续修改下面这些配置:

  • update_printer_side(task_id, side)

  • update_printer_color(task_id, color)

  • update_printer_copies(task_id, copies)

  • update_printer_paper(task_id, paper)

参数说明

  • task_id

    • 漫游打印任务 ID

  • side

    • 可选值:ONESIDEDUPLEXTUMBLE

    • 分别表示:单面、双面长边翻转、双面短边翻转

  • color

    • 可选值:COLORMONOCHROME

    • 分别表示:彩色、黑白

  • copies

    • 整数

    • 必须大于等于 1

  • paper

    • 可以直接传纸张类型名称,比如 A3A4A5LETTER

    • 也可以传自定义对象:{"width": 210, "height": 297}

    • 宽高单位为毫米

使用示例

如果你是在 MCP 客户端里通过自然语言调用,可以这样说:

  • “把任务 123 改成双面打印”

  • “把任务 123 改成黑白打印”

  • “把任务 123 改成打印 3 份”

  • “把任务 123 改成 A4 纸”

  • “把任务 123 改成宽 210 高 297 的纸张”

如果你是在本地 CLI 里调试,可以这样用:

python scripts/mcp_client.py update-printer-side --task-id 123 --side DUPLEX
python scripts/mcp_client.py update-printer-color --task-id 123 --color MONOCHROME
python scripts/mcp_client.py update-printer-copies --task-id 123 --copies 3
python scripts/mcp_client.py update-printer-paper --task-id 123 --paper A4
python scripts/mcp_client.py update-printer-paper --task-id 123 --width 210 --height 297

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/zimsoft/webprinter-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server