Skip to main content
Glama
zimsoft

智睦云打印

Official
by zimsoft

智睦クラウドプリント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)

トークンを取得したら、環境変数を設定します:

  • 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

    • ローカルファイルをアップロードし、印刷に使用できる公開 URL を返します

  • create_roaming_task

    • ファイル URL に基づいてローミング印刷タスクを作成します

  • update_printer_side

    • ローミング印刷タスクの片面/両面設定を変更します

  • update_printer_color

    • ローミング印刷タスクのカラー/モノクロ設定を変更します

  • update_printer_copies

    • ローミング印刷タスクの印刷部数を変更します

  • update_printer_paper

    • ローミング印刷タスクの用紙サイズを変更します(A3、A4 などのプリセットや、カスタムの幅と高さをサポート)

  • direct_print_document

    • ファイルを指定したプリンターに直接送信して印刷します

これは一連の完全な印刷フロー機能として理解することもできます:

  1. 環境チェック:check_install_progress

  2. プリンター確認:query_printers / query_printer_detail

  3. ファイルアップロード:upload_file

  4. ローミング印刷作成:create_roaming_task

  5. タスクパラメーターの調整:update_printer_side / update_printer_color / update_printer_copies / update_printer_paper

  6. または直接印刷:direct_print_document

ツール説明

各ツールについて「用途、動作、主要パラメーター、使用上のアドバイス」の形式で説明します。

check_install_progress

  • 用途

    • 現在のアカウント、クライアント、印刷環境がクラウドプリント機能に対応しているか確認します

  • 使用タイミング

    • 初回接続時に最初に呼び出す

    • 印刷できない、プリンターが見つからない、タスク送信に失敗する場合に優先的に呼び出す

  • 動作

    • クラウドプリントプラットフォームに対して現在のインストールおよび設定状態を照会します

    • 印刷タスクの変更は行いません

  • パラメーター

    • なし

  • 戻り値

    • 現在の環境チェック結果。通常、クライアント、デバイス、または共有設定が完了しているかの判断に使用します

  • 使用上のアドバイス

    • すべての印刷フローの最初のステップとして実行することをお勧めします

  • 指示の例

    • 「まず現在の環境でクラウドプリントが使えるか確認して」

query_printers

  • 用途

    • 現在のアカウントで使用可能なプリンターリストを照会します

  • 使用タイミング

    • ユーザーが利用可能なプリンターを確認したいとき

    • 直接印刷の前に、対象のプリンターが存在するか確認するとき

  • 動作

    • プリンターリストを返します

    • 非表示のプリンターは、ローミング印刷タスクのみサポートとしてマークされます

  • パラメーター

    • なし

  • 戻り値

    • プリンター名、エイリアス、オンライン状態、制御端番号、非表示フラグなどの一般的なフィールド

  • 使用上のアドバイス

    • ユーザーが「あのプリンターで印刷して」と言った場合、まずこのツールでデバイス名と制御番号を確認することをお勧めします

  • 指示の例

    • 「今使えるプリンターを教えて」

query_printer_detail

  • 用途

    • 特定のプリンターまたは共有デバイスの詳細な能力情報を照会します

  • 使用タイミング

    • ユーザーがデバイスのサポート能力を確認したいとき

    • 印刷前にデバイスタイプ、共有番号、詳細パラメーターを確認するとき

  • 動作

    • プリンター名、共有番号、またはデバイスタイプに基づいて詳細情報を返します

  • パラメーター

    • printer_name:プリンター名(任意)

    • share_sn:共有デバイス番号(任意)

    • device_type:デバイスタイプ(任意、printer、scanner、camera をサポート)

  • 戻り値

    • 指定デバイスの詳細な能力または設定データ

  • 使用上のアドバイス

    • 検索範囲が広くなりすぎないよう、少なくとも1つのフィルタ条件を提供してください

  • 指示の例

    • 「受付にあるプリンターがどんな機能に対応しているか見て」

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 を呼び出してください

  • 指示の例

    • 「このファイルを直接受付のプリンターで印刷して」

初回接続時の試行アドバイス

初めて使用する場合は、以下の手順で進めることをお勧めします:

1. 現在のアカウントがクラウドプリントの条件を満たしているか確認

次のように指示します:

  • 「まず現在の環境でクラウドプリントが正常に使えるか確認して」

戻り値でクライアントやデバイスの準備ができていないと表示された場合は、WebPrinter 側のインストールと共有設定を完了させてください。

2. 利用可能なプリンターをリストアップ

次のように指示します:

  • 「今使えるプリンターを教えて」

このステップで通常は以下を取得できます:

  • プリンター名

  • プリンターのエイリアス

  • オンライン状態

  • 制御端番号

3. ローカルファイルがある場合はアップロード

次のように指示します:

  • 「ローカルのこの PDF をアップロードして、印刷用のアドレスを教えて」

ローカルデバッグ時の一般的なパラメーターは以下のようになります:

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

4. 「ローミング印刷」か「直接印刷」かを選択

印刷キューに入れたいだけの場合は:

  • 「このファイルをローミング印刷として送信して」 または

  • 「このファイルを印刷キューに追加して」

特定のプリンターですぐに印刷したい場合は:

  • 「このファイルを直接オフィスにある HP プリンターで印刷して」

より自然な会話での使用例

以下のような言い回しは、この MCP で処理するのに適しています:

  • 「現在のクラウドプリント環境が使えるかチェックして」

  • 「使えるプリンターを教えて」

  • 「デスクトップの PDF をアップロードして」

  • 「このウェブページを印刷キューに追加して」

  • 「受付のプリンターで直接印刷して」

  • 「さっきのタスクを両面印刷にして」

よくある質問

webprinter_mcp を実行しても反応がない

これは正常です。 起動後は stdio を通じた MCP クライアントからの接続を待機し続けるため、通常のコマンドラインツールのように多くの情報を出力することはありません。

起動時にトークン関連のエラーが出る

まずこちらでトークンを取得してください:

  • [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 297

Available Tools

10 tools
check_install_progressB

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
file_nameYes
urlYes
media_formatYes

TDQS

C2.6/5.0
Behavior2/5

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.

Conciseness3/5

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.

Completeness2/5

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.

Parameters2/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
file_nameYes
urlYes
media_formatYes
device_nameYes
control_snYes

TDQS

C2.3/5.0
Behavior1/5

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.

Conciseness3/5

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.

Completeness2/5

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.

Parameters1/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
printer_nameNo
share_snNo
device_typeNo

TDQS

C2.7/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters2/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYes
colorNo

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYes
copiesYes

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters2/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYes
paperYes

TDQS

A3.9/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYes
sideNo

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters2/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
file_pathYes

TDQS

A3.7/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

  1. 10 tool updatesv0.1.2
    • First observedcheck_install_progress
    • First observedcreate_roaming_task
    • First observeddirect_print_document
    • First observedquery_printer_detail
    • First observedquery_printers
    • First observedupdate_printer_color
    • First observedupdate_printer_copies
    • First observedupdate_printer_paper
    • First observedupdate_printer_side
    • First observedupload_file

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 issues

Related MCP Connectors

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
    8 npm
    12
    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.
    2 npm
    1
    ISC
  • A
    license
    A
    quality
    F
    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
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables AI agents to submit PDFs or JSON-rendered templates to local printers, check printer status, and manage print jobs through MCP tools.
    214 npm
    MIT