bizprint-mcp-server
BizPrint MCP Server
概要
AIアシスタントをBizPrintクラウドプリントAPIに接続するMCP(Model Context Protocol)サーバーです。自然言語を通じて、印刷ジョブの送信、プリンターやステーションの管理、印刷ジョブのステータス監視を行うことができます。
Related MCP server: mcp-printer
機能
プリンター、ステーション、印刷ジョブの一覧表示と詳細確認
URLを指定して、設定済みの任意のプリンターへドキュメントを送信
印刷ジョブのステータスをリアルタイムで監視
大規模な環境に対応したページネーション機能
セキュアなHMAC-SHA256 API認証
Claude Desktop拡張機能によるワンクリックインストール
ツール
ツール | 説明 |
| 設定済みの全プリンターとその設定を一覧表示 |
| IDを指定して特定のプリンターの詳細を取得 |
| 全プリントステーションとそのステータスを一覧表示 |
| IDを指定して特定のステーションの詳細を取得 |
| ドキュメントのURLをプリンターへ送信 |
| 印刷ジョブのステータスを確認 |
| ページネーションを使用して全印刷ジョブを一覧表示 |
前提条件
APIキーを持つBizPrintクラウドのアカウント (利用開始はこちら)
Node.js 18以降(Desktop拡張機能のインストールには不要)
インストール
Desktop拡張機能(推奨)
Claude DesktopのAnthropicコネクタディレクトリから直接インストールします:
Claude Desktopを開く
「設定」 > 「拡張機能」へ移動
「BizPrint」を検索して「インストール」をクリック
プロンプトが表示されたらBizPrint APIキーを入力
APIキーはオペレーティングシステムのキーチェーンに安全に保存されます。
または、Releasesから .mcpb ファイルをダウンロードし、ダブルクリックしてインストールしてください。
ソースからインストール
git clone https://github.com/bizswoop-development/bizprint-mcp-server.git
cd bizprint-mcp-server
npm install
npm run buildこれにより、MCPクライアントの設定で参照できるコンパイル済みサーバーが build/index.js に生成されます。
設定
サーバーには2つの環境変数が必要で、1つのオプション設定があります:
変数 | 必須 | 説明 |
| はい | BizPrint APIの公開キー |
| はい | BizPrint APIの秘密キー |
| いいえ | APIベースURLのオーバーライド(デフォルト: |
APIキーは、BizPrintダッシュボードのアプリケーション設定から確認できます。
Claude Desktop(手動)
Claude Desktopの設定ファイルに以下を追加します。パスはリポジトリをクローンした場所に合わせて調整してください:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"bizprint": {
"command": "node",
"args": ["/absolute/path/to/bizprint-mcp-server/build/index.js"],
"env": {
"BIZPRINT_PUBLIC_KEY": "your-public-key",
"BIZPRINT_SECRET_KEY": "your-secret-key"
}
}
}
}Claude Code
claude mcp add bizprint -- node /absolute/path/to/bizprint-mcp-server/build/index.js \
--env BIZPRINT_PUBLIC_KEY=your-public-key \
--env BIZPRINT_SECRET_KEY=your-secret-key使用例
例1:プリンター設定の確認
ユーザー: どんなプリンターが設定されていますか?
Claude: BizPrintのプリンターを確認します。
2台のプリンターが設定されています:
フロントデスク用レーザー (ID: 12) - 有効、ステーション3、A4、カラー
倉庫用ラベル (ID: 15) - 有効、ステーション3、4x6ラベル、白黒
どちらのプリンターもステーション3(「オフィスステーション」)に割り当てられており、現在オンラインです。
例2:印刷ジョブの送信
ユーザー: https://example.com/invoices/1042.pdf の請求書をフロントデスクのプリンターで印刷して。
Claude: 印刷ジョブを作成しました:
ジョブID: 287
プリンター: フロントデスク用レーザー (ID: 12)
ステータス: 保留中
ジョブはBizPrintに送信されました。ステーションが取得次第、印刷されます。
例3:印刷ジョブのステータス監視
ユーザー: 最近の印刷ジョブとそのステータスを見せて。
Claude: 最近の印刷ジョブは以下の通りです:
ジョブ 287 - 完了、プリンター 12、「請求書 #1042」
ジョブ 286 - 完了、プリンター 15、「配送ラベル 注文 #523」
ジョブ 285 - 失敗、プリンター 12、「月次レポート」
ジョブ 285は失敗しました。プリンターの状態を確認して再試行してください。
ユーザー: ジョブ 287のステータスは?
Claude: ジョブ 287は現在完了しています。フロントデスク用レーザープリンターで正常に印刷されました。
開発
npm install
npm test # run tests
npm run build # compile TypeScript
npm run pack:mcpb # build .mcpb desktop extension bundleプライバシーポリシー
この拡張機能は、お客様のAPI認証情報を使用してBizPrintクラウドプリントAPI (print.bizswoop.app) に接続します。印刷ジョブを実行するために、プリンターコマンドとドキュメントURLをBizPrintのサーバーに送信します。APIキー(OSのキーチェーンに安全に保存)以外、データはローカルに保存されません。プライバシーに関する詳細については、プライバシーポリシーをご覧ください:https://getbizprint.com/privacy-policy/
データ取り扱い
API認証情報はオペレーティングシステムの安全なキーチェーンに保存されます
印刷ジョブデータ(ドキュメントURL、プリンター選択)はBizPrintクラウドAPIに送信されます
この拡張機能によって会話データや個人情報が収集されることはありません
印刷ジョブの実行に必要な範囲を超えて、データが第三者と共有されることはありません
サポート
GitHub Issues: https://github.com/bizswoop-development/bizprint-mcp-server/issues
メール: support@bizswoop.com
ドキュメント: https://www.getbizprint.com
ライセンス
MIT
Available Tools
7 toolscreate_print_jobADestructive
Create a new print job in BizPrint. Sends a document URL to a specific printer for printing. Returns the created job details including id and status.
| Name | Required | Description | Default |
|---|---|---|---|
| printerId | Yes | The ID of the printer to send the job to | |
| url | Yes | The URL of the document to print | |
| description | Yes | A description for this print job | |
| printOption | No | Optional print settings (e.g., copies, paper size) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true, so the tool is expected to have side effects. The description confirms the destructive nature but does not elaborate on what exactly is destroyed (e.g., printer queue capacity) or any irreversible consequences. No contradiction; annotations are aligned.
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 two sentences, concise and front-loaded. First sentence states the purpose, second adds return info. No superfluous text.
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 the tool has 4 parameters (1 nested), no output schema, and annotations with destructiveHint, the description covers basic purpose and result but lacks details such as expected side effects, error conditions (e.g., printer offline), or how the URL must be accessible. This is a moderate gap for a creation tool.
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 100%, so parameter details are already documented. The description adds no further meaning beyond the schema, but given high coverage, the baseline is 3. The description slightly elevates by noting that 'printOption' is optional, matching the schema. However, it does not explain the nested object structure. Still, the schema suffices.
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 creates a new print job, specifies the action (sends document URL to printer), and identifies the resource (print job) and return value (id and status). It distinguishes from siblings like get_print_job (retrieve) and list_print_jobs (list).
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 implies when to use (to create a print job) but provides no guidance on when not to use it or alternatives among siblings. No mention of prerequisites like printer existence or URL accessibility.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_printerARead-only
Get details for a specific printer by ID. Returns printer configuration including title, enabled status, station, copies, paper size, color, duplex, and orientation settings.
| Name | Required | Description | Default |
|---|---|---|---|
| printerId | Yes | The printer ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true and destructiveHint=false, so the description does not need to reiterate safety. The description adds value by listing the specific configuration fields returned, which is not in annotations. However, it does not disclose any edge-case behaviors (e.g., what if printerId does not exist? Does it return null or error? No rate limits or auth details mentioned, but these may be assumed from context.)
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, concise sentence clearly stating the purpose and listing the returned fields. No wasted words; front-loaded with the verb and resource.
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 only one parameter, no output schema, and good annotations, the description is fairly complete. It lists all returned fields, which compensates for the lack of output schema. However, it does not specify the format or structure of the returned data (e.g., nested objects), but since no nested objects exist, this is minor.
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 100%, with the printerId parameter already described clearly in the input schema (type number, min 1). The description adds no further semantic detail about the parameter itself. Baseline 3 is appropriate since the schema already does the heavy lifting.
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 it retrieves details for a specific printer by ID, listing exactly which configuration fields (title, enabled status, station, etc.) are returned. It distinguishes from sibling tools like list_printers (which lists all printers) and create_print_job (which creates, not retrieves). However, it could explicitly differentiate from get_print_job, which retrieves a print job, not a printer.
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 implies usage when you need details of a specific printer, but does not explicitly state when to use this tool versus alternatives (e.g., list_printers for listing all, get_print_job for job details). No when-not-to-use or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_print_jobARead-only
Get details for a specific print job by ID. Returns job information including printer, URL, description, status, and creation time.
| Name | Required | Description | Default |
|---|---|---|---|
| jobId | Yes | The print job ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark it as readOnlyHint: true and destructiveHint: false, so the description adds no additional behavioral context beyond those. The description does not mention any edge cases or constraints on the jobId parameter.
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 sentence with 15 words, efficiently conveying the purpose and what information is returned. No extraneous information.
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?
The tool has a simple fetch-by-ID interface with one parameter and no output schema. The description adequately states what is returned, but for a single-job retrieval, it is minimal and sufficient.
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 100%: the only parameter jobId is documented in the schema with type and minimum. The description does not add further meaning beyond the schema's own description.
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 this tool returns details for a specific print job by ID, listing the key fields included. It is distinct from siblings like list_print_jobs which lists jobs without details, and create_print_job which creates a new job.
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 implies that this is a lookup tool for a single job by ID, which contrasts with list_print_jobs for listing. However, it does not explicitly state when to use this vs alternatives or any prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_stationARead-only
Get details for a specific print station by ID. Returns station configuration including title, status, version, domain, and assigned printers.
| Name | Required | Description | Default |
|---|---|---|---|
| stationId | Yes | The station ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the description does not need to reiterate non-destructiveness. The description adds value by listing returned fields (title, status, version, domain, assigned printers), but it omits behavior such as error responses when stationId is invalid or whether partial data can be returned. With annotations already covering safety, a 3 is appropriate.
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 two concise sentences with zero wasted words. It front-loads the purpose and then lists what is returned. Every sentence adds value.
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 the tool's simplicity (one parameter, no nested objects, no output schema), the description is nearly complete. It explains what the tool returns, but could mention that the ID must correspond to an existing station and that it returns a single object. Still, it's sufficient for an agent to understand the tool's behavior.
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?
Input schema covers 100% of parameters, with stationId described as 'The station ID' and a minimum constraint. The description adds context that the ID is used to get station details, but does not add meaning beyond the schema. Baseline 3 is correct.
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 it gets details for a specific print station by ID, listing exactly what configuration fields are returned (title, status, version, domain, assigned printers). This verb+resource structure is specific and distinguishes it from sibling tools like list_stations (which lists many) and get_printer (which retrieves a different resource).
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 implies usage when you need details for a specific station by ID, which is standard for a get-by-ID tool. However, it provides no guidance on when to use alternatives like list_stations or get_printer, nor does it mention prerequisites such as the station needing to exist.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_printersARead-only
List all printers configured in BizPrint. Returns printer details including id, title, enabled status, station assignment, and print settings.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number for pagination | |
| perPage | No | Number of results per page (default: 50) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already set readOnlyHint=true and destructiveHint=false, so the description's disclosure of it being a listing operation is consistent. The description adds value by specifying that the result includes printer details and the fields returned, but does not go beyond what annotations already convey about safety (no destructive action, read-only).
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?
Two sentences: first states purpose and scope, second lists returned fields. No wasted words, essential information front-loaded.
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 the tool is a simple list operation with no output schema and good parameter documentation, the description is complete enough. It explains what the tool returns and the scope. However, it could mention pagination behavior or the fact that it's a filtered list (if applicable).
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 100%, so the description does not need to explain parameters. They are already documented with clear descriptions (page number, perPage with default and max). The description does not add additional meaning beyond the schema.
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 starts with the verb 'List' and specifies the resource 'printers' with the scope 'all printers configured in BizPrint', and enumerates specific return fields (id, title, enabled status, station assignment, print settings), which clearly distinguishes from siblings like get_printer (single) or list_print_jobs (different resource).
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 implies usage for retrieving a list of printers, but does not explicitly state when to use this tool versus alternatives like get_printer or list_stations. It provides no exclusion criteria or context for choosing among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_print_jobsARead-only
List all print jobs in BizPrint. Returns job details including id, printer, URL, description, status, and creation time.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number for pagination | |
| perPage | No | Number of results per page (default: 50) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the agent knows it's a safe read operation. The description adds the return fields but omits details like whether results are ordered, rate limits, or if filtering is possible.
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 sentence, concise and front-loaded with the main action and resource. It efficiently includes key return fields without unnecessary elaboration.
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 the tool's simplicity (2 params, no required params, no output schema), the description is adequate. It covers purpose, parameters, and return fields. Minor gap: no mention of sorting order or whether all print jobs are returned without filters.
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 100%, so the schema already explains both parameters (page, perPage). The description adds context by stating that 'page' and 'perPage' control pagination, and mentions defaults, which is helpful beyond the schema.
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 action ('List'), the resource ('print jobs'), and the scope ('BizPrint'). It also lists the return fields, distinguishing it from siblings like 'list_printers' or 'list_stations'.
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 does not explicitly state when to use this tool versus alternatives. While the purpose is clear, there is no guidance on when to prefer this over 'get_print_job' or how pagination might affect usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_stationsARead-only
List all print stations configured in BizPrint. Returns station details including id, title, status, version, domain, and assigned printers.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number for pagination | |
| perPage | No | Number of results per page (default: 50) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true and destructiveHint=false, so the description adds value by listing the return fields (id, title, status, etc.) and indicating pagination support via schema parameters. However, it does not disclose potential performance implications, rate limits, or ordering behavior beyond what annotations cover.
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, well-structured sentence that front-loads the core purpose ('List all print stations') and efficiently lists key return fields. Every element earns its place; there is no verbosity or redundancy.
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 the simple schema with full coverage and no output schema, the description is complete for a paged listing tool. It covers the resource scope and return attributes. A minor gap is the absence of mentioning that results are paginated by default (perPage default is 50, but described only in schema), but overall it is adequate for an agent to understand behavior.
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 100%, so the schema itself fully documents the two parameters ('page' and 'perPage') with inline descriptions. The tool description adds no further meaning beyond referencing pagination implicitly. Baseline 3 is appropriate as the schema carries the load.
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 ('List all') and resource ('print stations configured in BizPrint'), clearly distinguishing it from sibling tools like create_print_job or list_printers. It explicitly states the scope ('all print stations') and mentions key return fields, leaving no ambiguity about what the tool does.
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 implies the tool is for reading station configurations without modification, which aligns with the readOnlyHint annotation. However, it does not explicitly state when to use this vs. get_station (for a single station) or provide exclusions for specific scenarios. Clear context is provided but lacks explicit when-not guidance.
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.
7 tool updates
v1.0.0- First observed
create_print_job - First observed
get_print_job - First observed
get_printer - First observed
get_station - First observed
list_print_jobs - First observed
list_printers - First observed
list_stations
TDQS
Scored across 7 tools
Each tool targets a distinct resource (printer, print job, station) and action (create, get, list). There is no overlap; for example, create_print_job is clearly for creating jobs, while get_print_job and list_print_jobs retrieve existing jobs.
All tools follow a consistent verb_noun pattern: create_print_job, get_printer, get_print_job, get_station, list_printers, list_print_jobs, list_stations. The pattern is uniform and predictable.
With 7 tools, the server covers three core resources (printer, print job, station) with create, get, and list operations for each, which feels well-scoped and appropriate for a print management MCP server.
The server provides CRUD-like coverage for the main resources: create for print jobs, and read (get/list) for all three. Missing update and delete operations for printers and stations, but the core workflow of creating and tracking print jobs is complete.
Maintenance
Related MCP Connectors
Cloud printing integration for AI-assisted app development via ezeep.
Give your business its own AI agent and run it from any MCP client.
Print-on-demand catalog, listings, and fulfillment for AI agents.
Build and manage AI-native customer support agents from Claude or any MCP client.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables users to connect Claude with various 3D printer management systems, allowing tasks like printer status monitoring, file management, print job control, and STL file manipulation.186 npmGPL 2.0
- AlicenseNot gradedqualityCmaintenanceLet Claude print documents on any USB or network printer.1MIT
- AlicenseAqualityCmaintenancePrint beautiful HTML & Markdown on a $30 thermal receipt printer, straight from your AI agent.6MIT
- FlicenseAqualityBmaintenanceEnables Claude or any MCP client to design and print text and images to Bluetooth thermal label printers, including scanning, configuring, and managing multiple printers.12-