智睦云打印
Official智睦云打印MCP
webprinter_mcp 是一个用于云打印的 MCP Server。
如果你的 MCP 客户端支持 stdio 类型的 MCP,就可以通过它完成文件上传、查询打印机、提交打印任务和直接打印。
它可以帮你做什么
你可以把它理解成一个“会帮你处理打印任务的工具”。
比如你可以对接入了这个 MCP 的 AI 说:
“帮我看看现在有没有可用打印机”
“把这个文件上传一下,准备打印”
“把这个文件加入打印队列”
“直接打印到办公室那台打印机”
“把刚才那个任务改成双面”
Related MCP server: Memobird MCP Server
使用前先准备
你需要先安装智睦云打印服务器,并完成打印机的共享。请从智睦云打印获取安装包:
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获取
command和args表示通过
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修改漫游打印任务的纸张大小,支持
A3、A4等预设纸型,也支持自定义宽高
direct_print_document把文件直接发送到指定打印机进行打印
你也可以把它理解成一套完整的打印流程能力:
先检查环境:
check_install_progress再查看打印机:
query_printers/query_printer_detail上传文件:
upload_file创建漫游打印:
create_roaming_task按需调整任务参数:
update_printer_side/update_printer_color/update_printer_copies/update_printer_paper或者直接打印:
direct_print_document
工具说明
下面按“用途、行为、关键参数、使用建议”的方式说明每个工具,方便在 MCP 平台、目录站和接入文档里展示。
check_install_progress
用途
检查当前账号、客户端和打印环境是否已经具备可用的云打印能力
什么时候用
第一次接入时先调用
遇到无法打印、查不到打印机、任务提交失败时优先调用
行为
向云打印平台查询当前安装和配置状态
不修改任何打印任务
参数
无
返回结果
返回当前环境检查结果,通常可用于判断客户端、设备或共享配置是否完成
使用建议
推荐把它作为所有打印流程的第一步
示例说法
“先检查一下当前环境能不能用云打印”
query_printers
用途
查询当前账号下可用的打印机列表
什么时候用
用户想查看可用打印机时
直接打印前先确认目标打印机是否存在时
行为
返回打印机列表
对隐藏打印机会标记为仅支持漫游打印任务
参数
无
返回结果
常见字段包括打印机名称、别名、在线状态、控制端编号、是否隐藏等
使用建议
如果用户说“打印到某台打印机”,建议先调用这个工具确认设备名称和控制编号
示例说法
“帮我看看当前有哪些可用打印机”
query_printer_detail
用途
查询某台打印机或共享设备的详细能力信息
什么时候用
用户需要确认设备支持的能力时
在打印前确认设备类型、共享编号或详细参数时
行为
根据打印机名称、共享编号或设备类型返回详细信息
参数
printer_name打印机名称,可选
share_sn共享设备编号,可选
device_type设备类型,可选,支持
printer、scanner、camera
返回结果
返回指定设备的详细能力或配置数据
使用建议
至少提供一个过滤条件,避免查询范围过大
示例说法
“帮我看看前台那台打印机支持什么能力”
upload_file
用途
上传本地文件,并换取后续打印可使用的公网 URL
什么时候用
源文件在本地磁盘上时
漫游打印或直接打印前还没有公网文件地址时
行为
读取本地文件并上传到云端
返回一个可被打印服务读取的文件地址
参数
file_path本地文件路径,必填
返回结果
返回上传后的文件信息和可访问地址
使用建议
如果文件已经是公网 URL,可以跳过这个步骤
示例说法
“把我桌面上的 PDF 上传一下,给我一个可打印地址”
create_roaming_task
用途
创建漫游打印任务,让文件进入打印队列等待后续处理
什么时候用
用户想先生成打印任务,而不是立刻打印到某一台设备时
行为
根据文件名、文件 URL 和文件类型创建一个漫游打印任务
成功后返回任务 ID
参数
file_name文件显示名称,必填
url文件公网地址,必填
media_format文件格式,必填,支持
PDF、PNG、JPG、WORD、EXCEL、PPT等
返回结果
返回新创建的漫游任务 ID
使用建议
后续如果要改单双面、颜色、份数、纸张,都需要先有这个任务 ID
示例说法
“把这个文件提交成一个漫游打印任务”
update_printer_side
用途
修改漫游打印任务的单双面设置
什么时候用
用户明确说单面、双面、长边翻转、短边翻转时
行为
根据任务 ID 更新任务的打印面设置
参数
task_id漫游任务 ID,必填
side可选值:
ONESIDE、DUPLEX、TUMBLE
返回结果
返回更新结果
使用建议
适用于已经创建好的漫游任务,不用于直接打印任务
示例说法
“把任务 123 改成双面打印”
update_printer_color
用途
修改漫游打印任务的颜色模式
什么时候用
用户明确说彩色、黑白、灰度打印时
行为
根据任务 ID 更新颜色模式
参数
task_id漫游任务 ID,必填
color可选值:
COLOR、MONOCHROME
返回结果
返回更新结果
使用建议
当用户说“黑白打印”时应转换为
MONOCHROME
示例说法
“把任务 123 改成黑白打印”
update_printer_copies
用途
修改漫游打印任务的打印份数
什么时候用
用户说“打印 2 份”“打印 3 份”时
行为
根据任务 ID 更新打印份数
参数
task_id漫游任务 ID,必填
copies打印份数,必填,且必须大于等于
1
返回结果
返回更新结果
使用建议
如果用户没有明确说份数,默认不要擅自修改
示例说法
“把任务 123 改成打印 3 份”
update_printer_paper
用途
修改漫游打印任务的纸张尺寸
什么时候用
用户说 A3、A4、A5、Letter 等纸型时
用户直接给出宽高时
行为
支持标准纸张名称自动转换为毫米宽高
也支持直接传入自定义
width和height
参数
task_id漫游任务 ID,必填
paper可传纸型名称,如
A4也可传对象,如
{"width": 210, "height": 297}
返回结果
返回更新结果
使用建议
宽高单位统一为毫米
当前支持的预设包括
A0-A6、B4、B5、LETTER、LEGAL、TABLOID
示例说法
“把任务 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可选值:
ONESIDE、DUPLEX、TUMBLE分别表示:单面、双面长边翻转、双面短边翻转
color可选值:
COLOR、MONOCHROME分别表示:彩色、黑白
copies整数
必须大于等于
1
paper可以直接传纸张类型名称,比如
A3、A4、A5、LETTER也可以传自定义对象:
{"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 297Available Tools
10 toolscheck_install_progressB
Check whether the user's cloud print environment is fully configured.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. While it implies a status check ('whether...fully configured'), it fails to specify the return format (boolean, percentage, list of missing components), caching behavior, or what criteria define 'fully configured.'
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence of nine words with no redundant information. It is appropriately front-loaded with the action verb and wastes no space on tautological restatements of the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters and no output schema, the description is minimally adequate for tool selection but leaves significant gaps. It does not explain what constitutes 'fully configured,' what the response structure looks like, or how this relates to the sibling printer management tools, which would be valuable given the lack of structured metadata.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, which per the scoring rules establishes a baseline of 4. There are no parameters requiring semantic explanation beyond what the schema (empty properties object) already conveys.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Check' and identifies the resource 'user's cloud print environment' with the scope 'fully configured.' It distinguishes from siblings like query_printers (which lists specific printers) by focusing on overall environment configuration status rather than individual device queries.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states what the tool does but provides no guidance on when to use it versus alternatives. It does not indicate whether this should be called before other operations, how it relates to query_printers, or prerequisites for invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_roaming_taskC
Create a roaming print task from a public document URL.
| Name | Required | Description | Default |
|---|---|---|---|
| file_name | Yes | ||
| url | Yes | ||
| media_format | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It adds the constraint that the URL must be 'public,' but fails to disclose whether the operation is asynchronous, what the return value is (likely a task ID given the 'create task' naming), or how to check task status. It does not indicate if the operation is destructive or idempotent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single efficient sentence with no redundancy. However, given that all three parameters lack schema descriptions and no annotations exist, the description is underspecified. It prioritizes brevity over necessary detail, making it 'too concise' for the complexity of the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with three undocumented parameters, no annotations, and no output schema, the description is insufficient. It lacks guidance on the 'roaming' workflow, expected 'media_format' values, the purpose of 'file_name' when a URL is provided, and how to interpret or use the return value (presumably a task identifier).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage for all three parameters (file_name, url, media_format). The description only partially compensates by implying the 'url' parameter requires a public document URL. It completely omits explanation of 'file_name' (is it a destination name or metadata?) and 'media_format' (expected values like 'A4', 'Letter', 'PDF'?).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Create') and resource ('roaming print task'), and includes the source ('public document URL'). The term 'roaming' helps distinguish it from the sibling 'direct_print_document', though it could further clarify what 'roaming' implies in this context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus siblings like 'direct_print_document' or 'upload_file'. It mentions 'public document URL' which hints at a requirement, but does not explicitly state selection criteria or prerequisites for using this specific tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
direct_print_documentC
Send a document directly to a specific printer.
| Name | Required | Description | Default |
|---|---|---|---|
| file_name | Yes | ||
| url | Yes | ||
| media_format | Yes | ||
| device_name | Yes | ||
| control_sn | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description adds zero behavioral context. It does not disclose whether the operation is synchronous, what happens if the printer is offline, required permissions, or what the return value indicates (no output schema exists).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single efficient sentence with no redundancy. However, given the high parameter complexity and lack of schema documentation, this brevity represents under-specification rather than appropriate conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 5 undocumented required parameters, no annotations, and no output schema, the description is severely incomplete. It establishes the core action but leaves the agent without sufficient information to correctly populate parameters or handle responses.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage across 5 required parameters, the description completely fails to compensate. Critical semantic gaps remain unresolved: the distinction between device_name and control_sn, valid media_format values, and whether url requires a specific protocol.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool sends a document to a specific printer, distinguishing it from sibling tools that query printer details (query_printer_detail) or update settings (update_printer_*). However, it uses 'Send' rather than 'Print', which slightly weakens the specific action intent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus upload_file (a sibling tool) or whether the document must be pre-uploaded. There are no prerequisites, exclusions, or workflow context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
query_printer_detailC
Query printer capabilities for a specific printer or shared device.
| Name | Required | Description | Default |
|---|---|---|---|
| printer_name | No | ||
| share_sn | No | ||
| device_type | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It fails to specify what 'capabilities' are returned, error handling behavior (e.g., printer not found), or whether this operation requires specific permissions. The term 'Query' implies read-only, but explicit confirmation is absent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The single-sentence description is efficiently structured and front-loaded with the action and target. However, extreme brevity becomes a liability given the lack of schema documentation and annotations, leaving critical information unstated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Inadequate for the tool's complexity. With three optional parameters (suggesting multiple query patterns), zero schema descriptions, no output schema, and no annotations, the description should explain parameter relationships, return value structure, and lookup precedence. It provides none of these.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Given 0% schema description coverage, the description must compensate but only partially succeeds. It mentions 'specific printer or shared device' implying 'printer_name' and 'share_sn', but does not explain the distinction between them, valid values for 'device_type', or that all parameters are optional with null defaults.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description provides a clear verb ('Query') and resource ('printer capabilities'), and distinguishes from sibling 'query_printers' by specifying 'for a specific printer'. However, it could better differentiate from the 'update_printer_*' siblings by explicitly stating this is a read-only information retrieval operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance provided on when to use this versus 'query_printers', or how to select between the identification parameters ('printer_name' vs 'share_sn'). The description does not indicate that all parameters are optional or suggest how to identify the target device.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
query_printersA
List printers available to the current user.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses user-scoping ('current user') implying authorization context, but does not describe the return format, pagination behavior, or whether the listing includes offline printers.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description consists of a single, efficient sentence with no extraneous words. It is appropriately front-loaded with the core action and subject.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that this is a simple zero-parameter listing tool without an output schema, the description is minimally complete. It could be improved by mentioning that it returns a collection/list of printer objects, but the current description is sufficient for invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters. Per the scoring rules, zero parameters establishes a baseline score of 4. The description appropriately reflects that no filtering parameters are required.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description provides a clear verb ('List') and resource ('printers') with scope ('available to the current user'). However, it does not explicitly differentiate from the sibling 'query_printer_detail' (which likely retrieves specific printer information) in the text itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus siblings like 'query_printer_detail', 'direct_print_document', or the various update_printer_* tools. It does not state prerequisites or conditions for use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_printer_colorC
Update color mode for an existing roaming task.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | ||
| color | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It indicates mutation via 'Update' and specifies the roaming task context, but fails to disclose valid color values (string|null is ambiguous), error behavior for missing tasks, or whether updates are immediate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The single sentence is front-loaded and contains no redundant words. However, it is arguably too concise given the lack of schema coverage and annotations, leaving necessary context undocumented.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with 2 parameters and 0% schema coverage, the description is insufficient. It fails to specify valid color input values, explain the null default behavior, or describe what confirms a successful update (no output schema exists to compensate).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description partially compensates by identifying 'color' as a 'mode' and 'task_id' as referring to an 'existing roaming task'. However, it omits valid color enumerations or formats (e.g., 'color' vs 'monochrome'), which is critical given the lack of schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb (Update) and resource (color mode for an existing roaming task). It distinguishes from siblings like update_printer_copies by specifying 'roaming task' rather than printer hardware, and links to create_roaming_task.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
While 'existing roaming task' implies a prerequisite (likely created via create_roaming_task), there is no explicit when-to-use guidance or differentiation from other update_printer_* siblings. No mention of what constitutes valid color values.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_printer_copiesC
Update copy count for an existing roaming task.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | ||
| copies | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the mutation action but fails to disclose idempotency, error conditions, side effects on the print job state, or whether this triggers immediate reprocessing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The single sentence contains no redundant words and front-loads the action, though its extreme brevity contributes to informational gaps given the lack of supporting schema descriptions and annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero schema descriptions, no annotations, and no output schema, the description is insufficiently complete. It omits behavioral implications of changing copy counts mid-process and lacks parameter specifications necessary for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description must compensate for both parameters. It maps 'copy count' to the 'copies' parameter and implies 'task_id' via 'existing roaming task', but provides no format constraints, valid ranges (e.g., max copies), or whether task_id is a UUID or integer.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description provides a specific verb ('Update') and resource ('copy count') and scopes it to 'existing roaming task', clearly distinguishing it from sibling tools like update_printer_color or update_printer_paper which handle different attributes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Mentioning 'existing roaming task' implicitly signals that the task must already exist (suggesting create_roaming_task is a prerequisite), but lacks explicit guidance on when to use this versus direct_print_document or other alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_printer_paperA
Update paper size for an existing roaming task using a preset name or custom dimensions in millimeters.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | ||
| paper | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full disclosure burden. It successfully explains the polymorphic input behavior (preset name string vs. custom dimensions object), but fails to mention mutation effects, return values, error conditions, or whether changes are immediate or queued.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The single sentence is tightly constructed with zero redundancy: 'Update paper size' (action), 'for an existing roaming task' (scope), and 'using a preset name or custom dimensions in millimeters' (parameter semantics). Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter update tool with no output schema, the description adequately covers the core functionality and input formats. However, it should ideally mention what constitutes a successful response or common error conditions (e.g., invalid task_id or unsupported preset names) to be fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Given 0% schema description coverage, the description compensates effectively by explaining that 'paper' accepts either a preset name (string) or custom dimensions in millimeters (object), clarifying the anyOf schema structure. It implies task_id references an existing roaming task, though explicit parameter naming would strengthen this further.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Update paper size'), the target resource ('existing roaming task'), and distinguishes itself from sibling tools like update_printer_color or update_printer_copies by specifying 'paper size' as the particular attribute being modified.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'existing roaming task' implies this tool is for modifying previously created tasks (likely via create_roaming_task), providing implicit workflow context. However, it lacks explicit guidance on when to use this versus direct_print_document or prerequisites for the roaming task state.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_printer_sideC
Update simplex or duplex settings for an existing roaming task.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | ||
| side | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full disclosure burden but provides minimal behavioral context. It doesn't specify valid values for the side parameter (e.g., 'simplex' vs 'duplex'), explain the default null behavior, indicate idempotency, or mention permission requirements for modifying tasks.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence of 9 words with zero redundancy. The information is front-loaded with the action verb 'Update'. However, given the 0% schema coverage and lack of annotations, the brevity contributes to under-documentation rather than efficient communication.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 2-parameter mutation tool with no output schema and no annotations, the description is insufficient. It omits critical details like valid enum values for 'side', the effect of null, error conditions, or whether the update is persistent or immediate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, requiring the description to compensate. While 'simplex or duplex' hints at valid values for the 'side' parameter, it doesn't confirm exact string values, explain the null default, or describe what 'task_id' represents (format/source). Insufficient compensation for complete lack of schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool updates 'simplex or duplex settings' (specific resource) for an 'existing roaming task' (scope). It effectively distinguishes from sibling update_printer_* tools (color, copies, paper) by specifying the duplex/simplex domain, though it assumes familiarity with 'roaming task' from create_roaming_task.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The mention of 'existing roaming task' implies a prerequisite (task must exist first), suggesting usage order. However, it lacks explicit guidance on when to use this versus direct_print_document or other update tools, and doesn't clarify that null side might reset to default.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
upload_fileA
Upload a local file and return a public URL that the print service can read.
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It discloses that the tool returns a 'public URL' (important security context) and implies a side effect (upload). However, it omits critical mutation details: URL persistence, file cleanup policies, size limits, or authentication requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single 13-word sentence with zero waste. It front-loads the action ('Upload'), specifies the input ('local file'), output ('public URL'), and domain context ('print service') with no redundant phrases.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter tool without output schema or annotations, the description adequately covers the basic contract (input file → output URL). However, it leaves operational gaps regarding the 'public URL' security implications, longevity, and whether the upload is temporary or persistent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% (file_path has no description). The text adds minimal semantic value by implying file_path is a local filesystem path ('local file'), but fails to specify format constraints, absolute vs. relative paths, or supported file types needed to fully compensate for the schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses specific verb 'Upload' with clear resource 'local file' and distinguishes itself from printer-management siblings by specifying the outcome is 'a public URL that the print service can read.' This clearly positions it as a file preparation step for printing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides implied usage context by mentioning 'print service can read,' suggesting when to use it (when files need to be made accessible for printing). However, it lacks explicit when-to-use guidance versus direct_print_document or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
10 tool updates
v0.1.2- First observed
check_install_progress - First observed
create_roaming_task - First observed
direct_print_document - First observed
query_printer_detail - First observed
query_printers - First observed
update_printer_color - First observed
update_printer_copies - First observed
update_printer_paper - First observed
update_printer_side - First observed
upload_file
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 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.
Cloud PDF generation from HTML, CSS and XSL-FO, with PDF/A and PDF/UA support.
Related MCP Servers
- AlicenseAqualityCmaintenanceEnables 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.68 npm12MIT
- AlicenseNot gradedqualityDmaintenanceEnables 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.2 npm1ISC
- AlicenseAqualityFmaintenanceConnect AI agents to physical printers. Print receipts, shipping labels, and packing slips to your existing BizPrint-connected printers from Claude and other MCP clients.71MIT
- AlicenseNot gradedqualityAmaintenanceEnables AI agents to submit PDFs or JSON-rendered templates to local printers, check printer status, and manage print jobs through MCP tools.214 npmMIT