@inkrelay/mcp

MCPattested
v0.1.1UnknownMITUpdated 2d agonpmGitHub

MCP server for the InkRelay printing API: list printers, print PDFs, ZPL labels and ESC/POS receipts, and follow print jobs

Works in
ClaudeCursorCopilotGemini

Inferred from the transports this listing declares (stdio). A client not listed here hasn’t been ruled out — it just isn’t something Forge can confirm.

Attested build
A verified provenance attestation binds this artifact to the listed repository. Nobody has claimed the listing yet — this proves where the code was built, not who stands behind it.
405Downloads/wk
2d agoLast update
Needs 1 credential before it runs
  • INKRELAY_API_KEYAPI keyrequired

    InkRelay API key from app.inkrelay.app/api-keys. ir_test_ keys print only to free virtual printers.

Declared by the author in the official MCP registry. Forge does not store, broker, or ever see these values — the config below is scaffolded with placeholders you fill in locally.

Package
AuthorUnknown
LicenseMIT
Version0.1.1
Sourcenpm+mcp-registry
Trust Status
A
85/100Trusted
✓Listed in Forge index+10/10
✓Identity verified · attested build+20/20
—Ed25519 publish signature+0/5
→ Included automatically when the publisher runs `forge publish`
—Domain verification+0/5
→ Publisher: host /.well-known/forge.json on the package homepage with { "publisher": "<github-login>" }
✓npm Trusted Publishing (Sigstore)+5/5
—npm maintainer match+0/5
→ Publisher: add the verified GitHub login to the npm package's maintainers (npm owner add <login>)
✓CVE scan · clean+30/30
✓Static analysis · clean+20/20
Paste into Claude Code, Cursor, or any AI assistant to fix all gaps
StatusIdentity verified
PublisherUnverified
SignatureUnsigned
Domain—
Provenance✓ Sigstore-verified · 94633e6
Dependencies✓ 60 resolved+ · none vulnerable
Tool surface17 tools · none privileged
Security scan✓ Cleanv0.1.1 · todayHow well does this scan work?
EvalsNone
IndexedOct 20, 2026

Verification confirms publisher identity (repo ownership), not code safety. The security scan covers known CVEs and suspicious install scripts.

Tools

17 tools · none privileged
Statically extracted from the published packagev0.1.1 · 4h ago

Read out of the source npm actually ships, at scan time. The package was never executed. Tools registered dynamically at runtime, or hidden inside bundled or minified code, can be missed — so this is a floor on the tool surface, not a complete census of it.

whoamiReturns the organization, plan, mode (test or live) and current usage behind INKRELAY_API_KEY. Call it first.

Returns the organization, plan, mode (test or live) and current usage behind INKRELAY_API_KEY. Call it first.

No input schema was published for this tool.

list_computersLists the computers running the InkRelay agent, with their state (online, offline, disabled), OS and agent version.

Lists the computers running the InkRelay agent, with their state (online, offline, disabled), OS and agent version.

No input schema was published for this tool.

list_printersLists printers with id, name, computer, online state, whether they are live (accept jobs) and their default options. Use get_printer for paper sizes, trays and other capabilities.

Lists printers with id, name, computer, online state, whether they are live (accept jobs) and their default options. Use get_printer for paper sizes, trays and other capabilities.

No input schema was published for this tool.

get_printerReturns one printer with its capabilities (papers in tenths of a millimetre, bins, dpis, duplex, color, nup), default options and custom paper sizes.

Returns one printer with its capabilities (papers in tenths of a millimetre, bins, dpis, duplex, color, nup), default options and custom paper sizes.

No input schema was published for this tool.

update_printerSets a printer's display name, live switch (enabled), default options, custom paper sizes (tenths of a millimetre; replaces the whole list) or remarks. Needs a key with the admin scope.

Sets a printer's display name, live switch (enabled), default options, custom paper sizes (tenths of a millimetre; replaces the whole list) or remarks. Needs a key with the admin scope.

No input schema was published for this tool.

print_pdfPrints a PDF on a printer. Pass exactly one of url (public or signed http(s) URL, fetched once), base64, or filePath (a local file, read by this server). Up to 25 MB. With an ir_live_ key this prints on paper and counts toward the plan; with ir_test_ it runs on a virtual printer.

Prints a PDF on a printer. Pass exactly one of url (public or signed http(s) URL, fetched once), base64, or filePath (a local file, read by this server). Up to 25 MB. With an ir_live_ key this prints on paper and counts toward the plan; with ir_test_ it runs on a virtual printer.

No input schema was published for this tool.

print_rawSends printer language bytes unchanged to a label or receipt printer, e.g. ZPL (^XA...^XZ) or ESC/POS. Pass exactly one of text (each character U+0000 to U+00FF becomes one byte, so \u001b is ESC), base64, url or filePath. Options do not apply. The OS queue must accept raw data (CUPS raw queue, or…

Sends printer language bytes unchanged to a label or receipt printer, e.g. ZPL (^XA...^XZ) or ESC/POS. Pass exactly one of text (each character U+0000 to U+00FF becomes one byte, so \u001b is ESC), base64, url or filePath. Options do not apply. The OS queue must accept raw data (CUPS raw queue, or…

No input schema was published for this tool.

get_print_jobReturns a print job with its state, stateMessage and the time of each state change, plus its full event history.

Returns a print job with its state, stateMessage and the time of each state change, plus its full event history.

No input schema was published for this tool.

wait_for_print_jobPolls a print job until it is done, error, cancelled or expired (or the timeout passes) and returns it.

Polls a print job until it is done, error, cancelled or expired (or the timeout passes) and returns it.

No input schema was published for this tool.

list_print_jobsLists recent print jobs, newest first, optionally filtered by printer, computer or state.

Lists recent print jobs, newest first, optionally filtered by printer, computer or state.

No input schema was published for this tool.

cancel_print_jobCancels a job that is still queued or sent. Once the agent has received it, the API answers 409 not_cancellable.

Cancels a job that is still queued or sent. Once the agent has received it, the API answers 409 not_cancellable.

No input schema was published for this tool.

reprint_print_jobPrints the stored file of an earlier job again (files are kept 7 days), on the same printer or another one of the same mode.

Prints the stored file of an earlier job again (files are kept 7 days), on the same printer or another one of the same mode.

No input schema was published for this tool.

get_usageReturns the plan, the live prints used and included this billing period, and earlier periods.

Returns the plan, the live prints used and included this billing period, and earlier periods.

No input schema was published for this tool.

list_eventsReads the event feed (the same events webhooks deliver). For new events use dir asc with after set to the last nextCursor.

Reads the event feed (the same events webhooks deliver). For new events use dir asc with after set to the last nextCursor.

No input schema was published for this tool.

list_webhooksLists the webhook endpoints of this key's mode.

Lists the webhook endpoints of this key's mode.

No input schema was published for this tool.

create_webhookCreates an endpoint that receives signed events (Standard Webhooks HMAC). Returns the whsec_ signing secret once: tell the user to store it as INKRELAY_WEBHOOK_SECRET. Live endpoints need https. Needs the admin scope.

Creates an endpoint that receives signed events (Standard Webhooks HMAC). Returns the whsec_ signing secret once: tell the user to store it as INKRELAY_WEBHOOK_SECRET. Live endpoints need https. Needs the admin scope.

No input schema was published for this tool.

ping_webhookQueues a signed test delivery with type ping to an endpoint. Needs the admin scope.

Queues a signed test delivery with type ping to an endpoint. Needs the admin scope.

No input schema was published for this tool.

17 of 17 tools published a description.

Tool names and descriptions are written by the publisher and shown verbatim as inert text. They are the strings an MCP client passes to a model, so Forge scans them for prompt-injection patterns — any finding appears with the security scan above. “Privileged” is a keyword match on the tool name, not an audit of what the tool does: a benign-sounding name can still do anything.

About

MCP server for the InkRelay printing API: list printers, print PDFs, ZPL labels and ESC/POS receipts, and follow print jobs

Keywords
inkrelaymcpmodel-context-protocolmcp-serverprintingcloud-printingremote-printingpdfzplescposai-agents
Alternatives
Comparing tool surfaces…

Dependency tree

What one Forge scan resolved from npm metadata on 2026-10-21 — observed resolution, not a publisher declaration.

60 packages resolved · 3 direct · none carrying advisories Resolution stops at depth 4 and 60 packages.

The crawl stopped at the depth-4 limit. Anything below that level was never resolved.

The crawl stopped at the 60-package limit. The rest of the tree was never resolved.

36 more resolved packages are not drawn here (display cap: 24). Every dependency carrying an advisory is drawn regardless of the cap. Full inventory (CycloneDX SBOM)

Declared but not resolved

55 declared dependencies never landed in the tree. They are missing from Forge's resolution, not from the package.

+43 more not listed. The counts by reason above cover all of them.

Not followed: peerDependencies. This tree covers runtime dependencies only, so anything those pull in was never resolved.

Topics

Related in documents & pdfs