Skip to main content
Glama
zimsoft

智睦云打印

Official
by zimsoft

Zhimu Cloud Print MCP

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

What it can do for you

You can think of it as a "tool that handles print tasks for you."

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

  • "Check if there are any available printers."

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

  • "Add this file to the print queue."

  • "Print directly to the office printer."

  • "Change the previous task to double-sided."

Related MCP server: MCP Printer Server

Preparation before use

You need to install the Zhimu Cloud Print server and share your printer. Please get the installation package from Zhimu Cloud Print:

  • https://any.webprinter.cn

Then, you need to obtain a cloud print 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 output prompt information after starting.
It enters a state waiting for an MCP client connection, which is normal.

How to configure in an MCP client

This project is 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 accepts the mcpServers structure directly, you can 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

This MCP Server provides the following tools:

  • check_install_progress

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

  • query_printers

    • Queries the list of printers available to the current account

  • query_printer_detail

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

  • upload_file

    • Uploads a local file and returns a public URL that can be used for printing

  • create_roaming_task

    • Creates a roaming print task based on a file URL

  • update_printer_side

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

  • update_printer_color

    • Modifies the color/monochrome settings of a roaming print task

  • update_printer_copies

    • Modifies the number of copies for a roaming print task

  • update_printer_paper

    • Modifies the paper size for a roaming print task, supporting presets like A3, A4, etc., as well as custom dimensions

  • direct_print_document

    • Sends a file directly to a specified printer for printing

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

  1. Check environment: check_install_progress

  2. View 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

Each tool is described below by "Purpose, Behavior, Key Parameters, and Usage Suggestions" for easy display in MCP platforms, directories, and documentation.

check_install_progress

  • Purpose

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

  • When to use

    • Call first during initial setup

    • Call first when encountering printing issues, inability to find printers, or failed task submissions

  • Behavior

    • Queries the cloud printing platform for current installation and configuration status

    • 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

    • Before direct printing to confirm if the target printer exists

  • Behavior

    • Returns a list of printers

    • Hidden printers are marked as supporting only roaming print tasks

  • 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

    • "Show me the available printers"

query_printer_detail

  • Purpose

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

  • When to use

    • When the user needs to confirm device capabilities

    • Before printing to confirm device type, share ID, or detailed parameters

  • 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

    • "Check what capabilities the front desk printer supports"

upload_file

  • Purpose

    • Upload a local file and exchange it for a public URL usable for subsequent printing

  • When to use

    • When the source file is on the local disk

    • Before roaming or direct printing when there is no public file URL yet

  • Behavior

    • Reads the local file and uploads it to the cloud

    • Returns a file URL that can be read by the print service

  • Parameters

    • file_path

      • Local file path, required

  • Return result

    • Returns uploaded file information and accessible URL

  • 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 URL"

create_roaming_task

  • Purpose

    • Create a roaming print task, putting the file into the print queue for later processing

  • When to use

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

  • Behavior

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

    • Returns task ID upon success

  • Parameters

    • file_name

      • File display name, required

    • url

      • Public file URL, 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

    • You need this task ID to modify single/double-sided, color, copies, or paper settings later

  • 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 specifies single-sided, double-sided, long-edge flip, or short-edge flip

  • Behavior

    • Updates the print side setting based on task ID

  • Parameters

    • task_id

      • Roaming task ID, required

    • side

      • Optional values: ONESIDE, DUPLEX, TUMBLE

  • Return result

    • Returns update result

  • Usage suggestion

    • Applicable to already created roaming tasks, 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 specifies color, black and white, or grayscale printing

  • Behavior

    • Updates the color mode based on task ID

  • Parameters

    • task_id

      • Roaming task ID, required

    • color

      • Optional values: COLOR, MONOCHROME

  • Return result

    • Returns 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

    • Updates the number of copies based on 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 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 specifies paper types like A3, A4, A5, Letter, etc.

    • When the user provides width and height directly

  • Behavior

    • Supports automatic conversion of standard paper names to millimeter dimensions

    • Also supports passing custom width and height directly

  • Parameters

    • task_id

      • Roaming task ID, required

    • paper

      • Can pass paper type name, e.g., A4

      • Can also pass an object, e.g., {"width": 210, "height": 297}

  • Return result

    • Returns update result

  • Usage suggestion

    • Width and height units are 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 specified printer

  • When to use

    • When the user explicitly specifies printing immediately to a specific printer

  • Behavior

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

    • If the target printer is a hidden printer, direct printing will be blocked, and the user will be prompted to use a roaming task instead

  • Parameters

    • file_name

      • File display name, required

    • url

      • Public file URL, required

    • media_format

      • File format, required

    • device_name

      • Target printer name, required

    • control_sn

      • Target printer control terminal ID, required

  • Return result

    • Returns direct print 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 front desk printer"

Suggestions for first-time connection

For first-time use, it is recommended to follow these steps:

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

You can think of it as:

  • "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, have it list the currently available printers

You can say:

  • "Show me what printers are available"

This step usually provides:

  • Printer name

  • Printer alias

  • Online status

  • Control terminal ID

If you have a local file, upload it first

You can think of it as:

  • "Upload this local PDF and give me a printable URL"

During local debugging, common parameters look like this:

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

Then decide between "roaming print" or "direct print"

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

  • "Submit this file for roaming print" or

  • "Add this file to the print queue"

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

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

More conversational usage examples

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

  • "Check if the current cloud printing environment is usable"

  • "Show me what printers are available"

  • "Upload the PDF on my desktop"

  • "Add this webpage to the print queue"

  • "Print directly to the front desk printer"

  • "Change the previous task to double-sided"

FAQ

Why is there no response after running webprinter_mcp?

This is normal.
It will wait for the MCP client to connect via stdio after starting and will not print a lot of information like a regular command-line tool.

Please get the token here first:

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

Then confirm 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 PATH.
In this case, you can use it directly:

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

  • color

    • Optional values: COLOR, MONOCHROME

    • Representing: color, black and white

  • copies

    • Integer

    • Must be greater than or equal to 1

  • paper

    • Can pass paper type name directly, e.g., A3, A4, A5, LETTER

    • Can also pass 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
Install Server
A
license - permissive license
C
quality
D
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    A
    quality
    C
    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
    26
    10
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables interaction with Memobird thermal printers to print text, HTML, web pages, and images directly from MCP-enabled clients. It includes tools for device binding, image conversion, and monitoring print job status.
    18
    1
    ISC
  • A
    license
    A
    quality
    D
    maintenance
    Connect AI agents to physical printers. Print receipts, shipping labels, and packing slips to your existing BizPrint-connected printers from Claude and other MCP clients.
    7
    1
    MIT

View all related MCP servers

Related MCP Connectors

  • Generate PDF/DOCX/XLSX/PPTX from templates+JSON. Convert Office/HTML/MD to PDF. Universal templating

  • Document API for AI-native software: render PDFs, e-sign, PAdES-seal, and verify.

  • Convert files, HTML, and Markdown to PDF via the FileToPDF API. Bring your own API key.

View all MCP Connectors

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