Skip to main content
Glama
智睦云打印

智睦云打印

Official
by zimsoft

Zhimu Cloud Printing MCP

webprinter_mcp is an MCP Server for cloud printing.
If your MCP client supports stdio type MCP, you can use it to upload files, query printers, submit print tasks, and print directly.

What it can do for you

You can think of it as a "tool that helps you handle print tasks."

For example, you can say to an AI connected to this MCP:

  • "Help me check if there are any available printers now"

  • "Upload this file, get it ready for printing"

  • "Add this file to the print queue"

  • "Print directly to the printer in the office"

  • "Change the previous task to double-sided"

Related MCP server: printagent

Preparation before use

You need to install the Zhimu Cloud Printing server first and share your printers. Please get the installation package from Zhimu Cloud Printing:

  • https://any.webprinter.cn

Then, you need to obtain a cloud printing access token.

Get it here:

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

After getting the token, set the environment variable:

  • WEBPRINTER_ACCESS_TOKEN: Required

Installation

Install via pip

pip install webprinter_mcp

Or install from source

pip install .

How to start

If you just want to confirm it can start locally, you can run:

webprinter_mcp

Or:

python -m webprinter_mcp

Note: This command usually does not print prompt information after starting.
It will enter a state of waiting for an MCP client connection, which is normal.

How to configure in an MCP client

This project is currently better suited for stdio connection.

Local Python method

If you have already installed this package on your machine, it is recommended to configure it like this:

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

npx method

If your client supports npx style, you can also configure it like this:

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

Note: If you use npx webprinter_mcp, you still need a working Python environment on your machine.

Direct mcpServers configuration

If your MCP client directly accepts the mcpServers structure, you can also use the following configuration:

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

Where:

  • WEBPRINTER_ACCESS_TOKEN

    • Needs to be obtained from https://any.webprinter.cn/get-ai-server-token first

  • command and args

    • Indicates starting the MCP Server via npx webprinter_mcp

  • type

    • Indicates that the current client uses the npx method

Tool List

The current MCP Server provides the following tools:

  • check_install_progress

    • Check if the current account and device environment have cloud printing capabilities

  • query_printers

    • Query the list of printers available to the current account

  • query_printer_detail

    • Query detailed capability information for a specific printer or shared device

  • upload_file

    • Upload a local file and return a public URL that can be used for printing

  • create_roaming_task

    • Create a roaming print task based on a file URL

  • update_printer_side

    • Modify the single/double-sided settings of a roaming print task

  • update_printer_color

    • Modify the color/black-and-white settings of a roaming print task

  • update_printer_copies

    • Modify the number of copies for a roaming print task

  • update_printer_paper

    • Modify the paper size of a roaming print task, supporting presets like A3, A4, etc., as well as custom width and height

  • direct_print_document

    • Send a file directly to a specific printer for printing

You can also think of it as a complete printing workflow capability:

  1. Check the environment first: check_install_progress

  2. Then check printers: query_printers / query_printer_detail

  3. Upload file: upload_file

  4. Create roaming print: create_roaming_task

  5. Adjust task parameters as needed: update_printer_side / update_printer_color / update_printer_copies / update_printer_paper

  6. Or print directly: direct_print_document

Tool Descriptions

The following describes each tool by "Purpose, Behavior, Key Parameters, Usage Suggestions" to facilitate display on MCP platforms, directories, and integration documentation.

check_install_progress

  • Purpose

    • Check if the current account, client, and printing environment have available cloud printing capabilities

  • When to use

    • Call it first during the initial integration

    • Call it first when encountering issues like inability to print, failure to find printers, or task submission failure

  • Behavior

    • Query the current installation and configuration status from the cloud printing platform

    • Does not modify any print tasks

  • Parameters

    • None

  • Return result

    • Returns the current environment check result, usually used to determine if client, device, or sharing configuration is complete

  • Usage suggestion

    • Recommended as the first step in all printing workflows

  • Example phrasing

    • "Check if the current environment can use cloud printing"

query_printers

  • Purpose

    • Query the list of printers available under the current account

  • When to use

    • When the user wants to view available printers

    • When confirming if the target printer exists before printing directly

  • Behavior

    • Returns a list of printers

    • Hidden printers will be marked as supporting roaming print tasks only

  • Parameters

    • None

  • Return result

    • Common fields include printer name, alias, online status, control terminal ID, hidden status, etc.

  • Usage suggestion

    • If the user says "print to a certain printer", it is recommended to call this tool first to confirm the device name and control ID

  • Example phrasing

    • "Help me see what printers are currently available"

query_printer_detail

  • Purpose

    • Query detailed capability information for a printer or shared device

  • When to use

    • When the user needs to confirm the capabilities supported by the device

    • When confirming device type, share ID, or detailed parameters before printing

  • Behavior

    • Returns detailed information based on printer name, share ID, or device type

  • Parameters

    • printer_name

      • Printer name, optional

    • share_sn

      • Shared device ID, optional

    • device_type

      • Device type, optional, supports printer, scanner, camera

  • Return result

    • Returns detailed capability or configuration data for the specified device

  • Usage suggestion

    • Provide at least one filter condition to avoid an overly broad query

  • Example phrasing

    • "Help me see what capabilities the printer at the front desk supports"

upload_file

  • Purpose

    • Upload a local file and exchange it for a public URL that can be used for subsequent printing

  • When to use

    • When the source file is on the local disk

    • When there is no public file address before roaming or direct printing

  • Behavior

    • Read the local file and upload it to the cloud

    • Return a file address that can be read by the printing service

  • Parameters

    • file_path

      • Local file path, required

  • Return result

    • Returns the uploaded file information and accessible address

  • Usage suggestion

    • If the file is already a public URL, you can skip this step

  • Example phrasing

    • "Upload the PDF on my desktop and give me a printable address"

create_roaming_task

  • Purpose

    • Create a roaming print task, allowing the file to enter the print queue for subsequent processing

  • When to use

    • When the user wants to generate a print task first instead of printing to a specific device immediately

  • Behavior

    • Create a roaming print task based on file name, file URL, and file type

    • Returns the task ID upon success

  • Parameters

    • file_name

      • File display name, required

    • url

      • Public file address, required

    • media_format

      • File format, required, supports PDF, PNG, JPG, WORD, EXCEL, PPT, etc.

  • Return result

    • Returns the newly created roaming task ID

  • Usage suggestion

    • If you want to change single/double-sided, color, copies, or paper later, you need this task ID first

  • Example phrasing

    • "Submit this file as a roaming print task"

update_printer_side

  • Purpose

    • Modify the single/double-sided settings of a roaming print task

  • When to use

    • When the user explicitly mentions single-sided, double-sided, long-edge flip, or short-edge flip

  • Behavior

    • Update the print side settings of the task based on the task ID

  • Parameters

    • task_id

      • Roaming task ID, required

    • side

      • Optional values: ONESIDE, DUPLEX, TUMBLE

  • Return result

    • Returns the update result

  • Usage suggestion

    • Applicable to roaming tasks that have already been created, not for direct print tasks

  • Example phrasing

    • "Change task 123 to double-sided printing"

update_printer_color

  • Purpose

    • Modify the color mode of a roaming print task

  • When to use

    • When the user explicitly mentions color, black-and-white, or grayscale printing

  • Behavior

    • Update the color mode based on the task ID

  • Parameters

    • task_id

      • Roaming task ID, required

    • color

      • Optional values: COLOR, MONOCHROME

  • Return result

    • Returns the update result

  • Usage suggestion

    • When the user says "black and white printing", it should be converted to MONOCHROME

  • Example phrasing

    • "Change task 123 to black and white printing"

update_printer_copies

  • Purpose

    • Modify the number of copies for a roaming print task

  • When to use

    • When the user says "print 2 copies", "print 3 copies", etc.

  • Behavior

    • Update the number of copies based on the task ID

  • Parameters

    • task_id

      • Roaming task ID, required

    • copies

      • Number of copies, required, must be greater than or equal to 1

  • Return result

    • Returns the update result

  • Usage suggestion

    • If the user does not explicitly state the number of copies, do not modify it arbitrarily

  • Example phrasing

    • "Change task 123 to print 3 copies"

update_printer_paper

  • Purpose

    • Modify the paper size of a roaming print task

  • When to use

    • When the user mentions paper sizes like A3, A4, A5, Letter, etc.

    • When the user provides width and height directly

  • Behavior

    • Supports automatic conversion of standard paper names to millimeter width and height

    • Also supports passing custom width and height directly

  • Parameters

    • task_id

      • Roaming task ID, required

    • paper

      • Can pass paper type name, such as A4

      • Can also pass an object, such as {"width": 210, "height": 297}

  • Return result

    • Returns the update result

  • Usage suggestion

    • Width and height units are unified in millimeters

    • Currently supported presets include A0-A6, B4, B5, LETTER, LEGAL, TABLOID

  • Example phrasing

    • "Change task 123 to A4 paper"

    • "Change task 123 to paper with width 210 and height 297"

direct_print_document

  • Purpose

    • Send a file directly to a specific printer

  • When to use

    • When the user explicitly specifies to print to a certain printer immediately

  • Behavior

    • Initiate printing directly based on file information and target device information

    • If the target printer is a hidden printer, direct printing will be blocked, and it will suggest using a roaming task instead

  • Parameters

    • file_name

      • File display name, required

    • url

      • Public file address, required

    • media_format

      • File format, required

    • device_name

      • Target printer name, required

    • control_sn

      • Target printer control terminal ID, required

  • Return result

    • Returns the direct printing result

  • Usage suggestion

    • It is recommended to call query_printers first to confirm the target printer name and control terminal ID

    • If it is a local file, call upload_file first

  • Example phrasing

    • "Print this file directly to the printer at the front desk"

Suggestions for first-time integration

When using it for the first time, it is recommended to follow these steps:

First, check if the current account meets the cloud printing conditions

You can understand it like this:

  • "Help me check if the current environment can use cloud printing normally"

If the return shows that the client or device is not ready, complete the WebPrinter installation and sharing configuration first.

Then let it list the currently available printers

You can say:

  • "Help me see what printers are available now"

This step usually gets you:

  • Printer name

  • Printer alias

  • Online status

  • Control terminal ID

If you have a local file, upload it first

You can understand it as:

  • "Upload this PDF on my local machine and give me a printable address"

During local debugging, common parameters look like this:

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

Then decide whether to "roaming print" or "direct print"

If you just want to enter the print queue first, you can understand it as:

  • "Submit this file for roaming printing" or

  • "Add this file to the print queue"

If you want to print to a specific printer immediately, you can understand it as:

  • "Print this file directly to the HP printer in the office"

More colloquial usage examples

The following phrases are well-suited for this MCP to handle:

  • "Help me check if the current cloud printing environment is usable"

  • "Help me see what printers are available"

  • "Upload the PDF on my desktop"

  • "Add this webpage to the print queue"

  • "Print directly to the printer at the front desk"

  • "Change the previous task to double-sided"

FAQ

Why is there no response after I run webprinter_mcp

This is normal.
After it starts, it will keep waiting for the MCP client to connect via stdio and will not print a lot of information immediately like a normal command-line tool.

Please go here to get the token:

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

Then confirm that you have set:

  • WEBPRINTER_ACCESS_TOKEN

The command is installed, but webprinter_mcp cannot be found

Usually, the Python Scripts directory has not been added to the PATH.
In this case, you can use it directly first:

python -m webprinter_mcp

Task configuration tools

For roaming print tasks that have already been created, you can continue to modify the following configurations:

  • update_printer_side(task_id, side)

  • update_printer_color(task_id, color)

  • update_printer_copies(task_id, copies)

  • update_printer_paper(task_id, paper)

Parameter description

  • task_id

    • Roaming print task ID

  • side

    • Optional values: ONESIDE, DUPLEX, TUMBLE

    • Representing: single-sided, double-sided long-edge flip, double-sided short-edge flip respectively

  • color

    • Optional values: COLOR, MONOCHROME

    • Representing: color, black-and-white respectively

  • copies

    • Integer

    • Must be greater than or equal to 1

  • paper

    • Can pass paper type name directly, such as A3, A4, A5, LETTER

    • Can also pass a custom object: {"width": 210, "height": 297}

    • Width and height units are in millimeters

Usage examples

If you are calling via natural language in an MCP client, you can say:

  • "Change task 123 to double-sided printing"

  • "Change task 123 to black and white printing"

  • "Change task 123 to print 3 copies"

  • "Change task 123 to A4 paper"

  • "Change task 123 to paper with width 210 and height 297"

If you are debugging in a local CLI, you can use it like this:

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

Available Tools

10 tools
check_install_progressB

Check whether the user's cloud print environment is fully configured.

Inputs: no named parameters.

create_roaming_taskC

Create a roaming print task from a public document URL.

Inputs: file_name (required), url (required), media_format (required).

direct_print_documentC

Send a document directly to a specific printer.

Inputs: file_name (required), url (required), media_format (required), device_name (required), +1 more.

query_printer_detailC

Query printer capabilities for a specific printer or shared device.

Inputs: printer_name, share_sn, device_type.

query_printersA

List printers available to the current user.

Inputs: no named parameters.

update_printer_colorC

Update color mode for an existing roaming task.

Inputs: task_id (required), color.

update_printer_copiesC

Update copy count for an existing roaming task.

Inputs: task_id (required), copies (required).

update_printer_paperA

Update paper size for an existing roaming task using a preset name or custom dimensions in millimeters.

Inputs: task_id (required), paper (required).

update_printer_sideC

Update simplex or duplex settings for an existing roaming task.

Inputs: task_id (required), side.

upload_fileA

Upload a local file and return a public URL that the print service can read.

Inputs: file_path (required).

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    C2.9/5.0

    Scored across 10 tools

    Disambiguation3/5

    The four update_printer_* tools are named as if they configure printer hardware settings, but they actually modify roaming task parameters. This creates dangerous ambiguity with query_printer_detail (which queries actual printer capabilities), forcing agents to rely entirely on descriptions to distinguish printer properties from job configuration.

    Naming Consistency3/5

    While most tools follow verb_noun patterns (create_roaming_task, upload_file), direct_print_document breaks convention by using an adjective-noun structure. More critically, the update_printer_* prefix is domain-inaccurate since these modify tasks, not printers, creating inconsistency with the actual object model.

    Tool Count4/5

    Ten tools is a reasonable count for cloud printing functionality, covering environment checks, printer discovery, file handling, and dual print workflows. However, the granularity of four separate single-property update tools feels slightly excessive compared to a unified task update operation.

    Completeness3/5

    Basic printing and discovery are covered, but the roaming task workflow lacks lifecycle management: you can create and modify tasks, but cannot submit, check status, cancel, or list jobs. This leaves agents unable to track print completion or handle failures in the roaming workflow.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      A
      quality
      D
      maintenance
      Enables AI assistants to print documents, manage print queues, and control printers on macOS/Linux systems via the CUPS printing system. Supports printing PDFs, text files, and other formats with options like duplex printing, landscape orientation, and multiple copies.
      6
      21 npm
      13
      MIT
    • A
      license
      Not graded
      quality
      B
      maintenance
      Enables AI agents to submit PDFs or JSON-rendered templates to local printers, check printer status, and manage print jobs through MCP tools.
      9 npm
      MIT
    • A
      license
      Not graded
      quality
      B
      maintenance
      Enables AI assistants to print documents directly on your own printer over a private network, without cloud services or open ports. Supports printing text, URLs, and files with per-person access keys, usage limits, and detailed job control.
      MIT
    • A
      license
      A
      quality
      B
      maintenance
      Enables AI agents to print HTML, web pages, PDFs, and images to local printers by bridging to an existing client over WebSocket, including previews, printer discovery, batch jobs, and customizable PDF/print settings.
      16
      82 npm
      MIT