# @inkrelay/mcp

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

- **Type:** MCP server
- **Trust:** 85/100 (A), scored on the package rubric
- **Verification:** verified (build provenance)
- **Version:** 0.1.1
- **Author:** Unknown
- **License:** MIT
- **npm:** @inkrelay/mcp
- **Source:** https://github.com/GauravBR/inkrelay-ai
- **Compatible clients:** claude-code, cursor, copilot, gemini (basis: transport)

## Trust

85/100 (A), scored on the package rubric
- Publisher verified: no
- Build provenance: verified attestation
- npm trusted publishing (OIDC): yes
- Install scripts: nothing suspicious found
- Prompt-injection scan: not run
- Obfuscation scan: not run
- Evidence age: 0 days

## Security scan

- **Status:** clean
- **Scanned:** 2026-10-21T01:32:04.472Z
- **Version scanned:** 0.1.1
- **CVEs:** none found by OSV at scan time

## Tools

17 declared. Statically extracted from the shipped source — a floor on the surface, not a census.
- `whoami` — Returns the organization, plan, mode (test or live) and current usage behind INKRELAY_API_KEY. Call it first.
- `list_computers` — Lists the computers running the InkRelay agent, with their state (online, offline, disabled), OS and agent version.
- `list_printers` — 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 
- `get_printer` — Returns one printer with its capabilities (papers in tenths of a millimetre, bins, dpis, duplex, color, nup), default options and custom paper sizes.
- `update_printer` — 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 
- `print_pdf` — 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 
- `print_raw` — 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
- `get_print_job` — Returns a print job with its state, stateMessage and the time of each state change, plus its full event history.
- `wait_for_print_job` — Polls a print job until it is done, error, cancelled or expired (or the timeout passes) and returns it.
- `list_print_jobs` — Lists recent print jobs, newest first, optionally filtered by printer, computer or state.
- `cancel_print_job` — Cancels a job that is still queued or sent. Once the agent has received it, the API answers 409 not_cancellable.
- `reprint_print_job` — 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.
- `get_usage` — Returns the plan, the live prints used and included this billing period, and earlier periods.
- `list_events` — Reads the event feed (the same events webhooks deliver). For new events use dir asc with after set to the last nextCursor.
- `list_webhooks` — Lists the webhook endpoints of this key's mode.
- `create_webhook` — 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_
- `ping_webhook` — Queues a signed test delivery with type ping to an endpoint. Needs the admin scope.

## Install

**Verdict: install** — No blocking findings and no open coverage gaps — safe to install as configured.
**Config** (claude-code):
```json
"{\n  \"mcpServers\": {\n    \"mcp\": {\n      \"command\": \"npx\",\n      \"args\": [\n        \"-y\",\n        \"@inkrelay/mcp\"\n      ],\n      \"env\": {\n        \"INKRELAY_API_KEY\": \"<YOUR_INKRELAY_API_KEY>\"\n      }\n    }\n  }\n}"
```
**Credentials it will ask for** (names only — Forge never holds a value):
- `INKRELAY_API_KEY` — Inkrelay API Key (required)
Placeholders only. Forge never holds, brokers, or transmits a credential value — replace each <YOUR_NAME> in your own config file. Do not send a value back to Forge; no Forge endpoint accepts one.
- This entry needs 1 credential (1 required). The generated config carries placeholders, so it will fail in the editor rather than at runtime if they are left unset.

## Blast radius

Moderate blast radius — holds an api key; runs on your machine.
- Floor 23, ceiling 23 (tier: moderate)
- This is impact, not likelihood. A high radius is not a defect: a filesystem server is supposed to write files. It is never part of the trust score.

## Machine-readable views of this entry

- Signed JSON: https://forgeregistry.com/api/v1/packages/%40inkrelay%2Fmcp
- Install plan: https://forgeregistry.com/api/v1/packages/%40inkrelay%2Fmcp/install-plan
- Alternatives: https://forgeregistry.com/api/v1/alternatives/%40inkrelay%2Fmcp
- HTML page: https://forgeregistry.com/registry/%40inkrelay%2Fmcp
- MCP: POST https://forgeregistry.com/api/mcp → `forge_get_package` / `forge_install_plan`

## About this document

Generated by Forge (https://forgeregistry.com) — a compact rendering of the same record served, signed, at the JSON URL above. Trust and scan facts are the registry's own measurements; anything Forge did not measure is named as unmeasured rather than omitted.
