智睦云打印
OfficialZhimu 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_mcpOr install from source
pip install .How to start
If you just want to confirm it can start locally, you can run:
webprinter_mcpOr:
python -m webprinter_mcpNote: 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_TOKENNeeds to be obtained from
https://any.webprinter.cn/get-ai-server-tokenfirst
commandandargsIndicates starting the MCP Server via
npx webprinter_mcp
typeIndicates that the current client uses the
npxmethod
Tool List
The current MCP Server provides the following tools:
check_install_progressCheck if the current account and device environment have cloud printing capabilities
query_printersQuery the list of printers available to the current account
query_printer_detailQuery detailed capability information for a specific printer or shared device
upload_fileUpload a local file and return a public URL that can be used for printing
create_roaming_taskCreate a roaming print task based on a file URL
update_printer_sideModify the single/double-sided settings of a roaming print task
update_printer_colorModify the color/black-and-white settings of a roaming print task
update_printer_copiesModify the number of copies for a roaming print task
update_printer_paperModify the paper size of a roaming print task, supporting presets like
A3,A4, etc., as well as custom width and height
direct_print_documentSend a file directly to a specific printer for printing
You can also think of it as a complete printing workflow capability:
Check the environment first:
check_install_progressThen check printers:
query_printers/query_printer_detailUpload file:
upload_fileCreate roaming print:
create_roaming_taskAdjust task parameters as needed:
update_printer_side/update_printer_color/update_printer_copies/update_printer_paperOr 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_namePrinter name, optional
share_snShared device ID, optional
device_typeDevice 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_pathLocal 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_nameFile display name, required
urlPublic file address, required
media_formatFile 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_idRoaming task ID, required
sideOptional 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_idRoaming task ID, required
colorOptional 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_idRoaming task ID, required
copiesNumber 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
widthandheightdirectly
Parameters
task_idRoaming task ID, required
paperCan pass paper type name, such as
A4Can 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_nameFile display name, required
urlPublic file address, required
media_formatFile format, required
device_nameTarget printer name, required
control_snTarget printer control terminal ID, required
Return result
Returns the direct printing result
Usage suggestion
It is recommended to call
query_printersfirst to confirm the target printer name and control terminal IDIf it is a local file, call
upload_filefirst
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.
What to do if a token-related error is reported at startup
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_mcpTask 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_idRoaming print task ID
sideOptional values:
ONESIDE,DUPLEX,TUMBLERepresenting: single-sided, double-sided long-edge flip, double-sided short-edge flip respectively
colorOptional values:
COLOR,MONOCHROMERepresenting: color, black-and-white respectively
copiesInteger
Must be greater than or equal to
1
paperCan pass paper type name directly, such as
A3,A4,A5,LETTERCan 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
123to double-sided printing""Change task
123to black and white printing""Change task
123to print 3 copies""Change task
123to A4 paper""Change task
123to 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 297Available Tools
10 toolscheck_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
Scored across 10 tools
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.
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.
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.
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
Related MCP Connectors
Cloud printing integration for AI-assisted app development via ezeep.
Print from Claude and ChatGPT to your own printer. Free for 5 prints a month; Plus $7.99/mo.
Print and mail physical documents in the US via USPS, with quotes, agent payment and tracking.
Print & mail PDF/HTML/Markdown/text/DOCX/images to US addresses; pay per call in x402 USDC on Base.
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables 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.621 npm13MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to submit PDFs or JSON-rendered templates to local printers, check printer status, and manage print jobs through MCP tools.9 npmMIT
- AlicenseNot gradedqualityBmaintenanceEnables 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
- AlicenseAqualityBmaintenanceEnables 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.1682 npmMIT