InkRelay

io.github.GauravBRPublished by GitHub account GauravBRv0.1.1Updated Nov 1, 2026

Print PDFs, ZPL labels and ESC/POS receipts on your printers and follow print jobs via InkRelay

Overview

AI-generated overview

InkRelay MCP lets an assistant list your printers and send PDFs, ZPL labels and ESC/POS receipts to them, then track and reprint jobs.

What you can do
  • Check the API key's organization, plan, mode and usage, and list computers and printers with their state and capabilities
  • Print PDFs from a URL, base64 or a local file, and print raw ZPL, ESC/POS or other printer-language bytes
  • Inspect, wait on, list, cancel and reprint print jobs, including their event history
  • Review usage for the billing period and read the event feed
  • Manage signed webhook endpoints (admin scope) and update printer settings such as name, live switch and defaults
When to use it
Useful when you want an assistant to drive real printing from a conversation: sending invoices or documents to a specific printer with options like duplex or copies, producing test labels and receipts, or diagnosing why a print job failed.
Requirements
Runs locally over stdio, typically via npx, so Node.js is needed. Requires an InkRelay API key in INKRELAY_API_KEY, created after signing in to the InkRelay web app; test keys reach only virtual printers. INKRELAY_FILE_ROOT should be set to a folder for local file printing, and network access to the InkRelay API is required.
Before you install
A live key prints on paper and counts toward your plan, so keep tool approval on. The API key is a secret passed via INKRELAY_API_KEY. Tools can change printer settings, cancel jobs and create webhooks. Local file reads are limited to INKRELAY_FILE_ROOT and are disabled when it resolves to a drive root or home folder.

Installation

In SourceWeft

  1. Open InkRelay in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

@inkrelay/mcp

MCP server for the InkRelay printing API. It lets an AI assistant list your printers and print PDFs, ZPL labels and ESC/POS receipts on printers attached to Windows, macOS and Linux computers.

Works with Claude Code, Claude Desktop, Cursor, VS Code (GitHub Copilot), OpenAI Codex, Windsurf and any client that speaks the Model Context Protocol over stdio.

Get a key

Sign in at app.inkrelay.app, open API keys and create one. Start with a test key (ir_test_...): it only reaches four virtual printers (Test A4 Laser, Test Letter Color, Test Receipt 80mm, Test Label 4x6), finishes jobs in about 3 seconds and costs nothing. A live key (ir_live_...) prints on paper.

Add it to your client

Claude Code

bash
claude mcp add-json inkrelay '{"command":"npx","args":["-y","@inkrelay/mcp"],"env":{"INKRELAY_API_KEY":"ir_test_your_key"}}'

Claude Desktop (claude_desktop_config.json), Cursor (.cursor/mcp.json) and Windsurf (~/.codeium/windsurf/mcp_config.json)

json
{  "mcpServers": {    "inkrelay": {      "command": "npx",      "args": ["-y", "@inkrelay/mcp"],      "env": { "INKRELAY_API_KEY": "ir_test_your_key" }    }  }}

VS Code (.vscode/mcp.json)

json
{  "inputs": [{ "type": "promptString", "id": "inkrelay-key", "description": "InkRelay API key", "password": true }],  "servers": {    "inkrelay": {      "type": "stdio",      "command": "npx",      "args": ["-y", "@inkrelay/mcp"],      "env": { "INKRELAY_API_KEY": "${input:inkrelay-key}" }    }  }}

OpenAI Codex (~/.codex/config.toml)

toml
[mcp_servers.inkrelay]command = "npx"args = ["-y", "@inkrelay/mcp"]env = { INKRELAY_API_KEY = "ir_test_your_key" }

Docs search is a separate hosted server at https://docs.inkrelay.app/mcp (streamable HTTP), for example:

bash
claude mcp add-json inkrelay-docs '{"type":"http","url":"https://docs.inkrelay.app/mcp"}'

Tools

ToolWhat it does
whoamiOrganization, plan, mode (test or live) and usage of the key
list_computersComputers running the agent and their state
list_printersPrinters with id, computer, online state, live switch and defaults
get_printerCapabilities: papers, trays, dpis, duplex, color, n-up
update_printerDisplay name, live switch, default options, custom paper sizes (admin scope)
print_pdfPrint a PDF from a URL, base64 or a local file; waits for the final state by default
print_rawPrint ZPL, ESC/POS or other printer language bytes from text, base64, a URL or a local file
get_print_jobA job with its state, message and full event history
wait_for_print_jobWait until a job is done, error, cancelled or expired
list_print_jobsRecent jobs, filtered by printer, computer or state
cancel_print_jobCancel a job that is still queued or sent
reprint_print_jobPrint an earlier job's stored file again
get_usageLive prints used and included this billing period
list_eventsThe event feed (the same events webhooks deliver)
list_webhooks, create_webhook, ping_webhookManage signed webhook endpoints (admin scope)

Things to try: "Which printers do I have?", "Print this invoice PDF on the A4 laser, two copies, duplex", "Print a 4x6 ZPL test label that says Order 1042", "Why did my last job fail?".

Configuration

VariableDefaultMeaning
INKRELAY_API_KEYnoneYour ir_test_ or ir_live_ key. The server starts without it and tells the model how to get one
INKRELAY_BASE_URLhttps://api.inkrelay.appOverride for a proxy
INKRELAY_FILE_ROOTthe working directoryFolder that filePath arguments must stay inside. File reads are off when this resolves to /, a drive root or the home folder (common for desktop clients), so set it there. Hidden files and folders are never read, and print_raw reads only printer files (.zpl, .epl, .prn, .pcl, .ps, .escpos, .raw, .bin, .txt)

print_pdf, print_raw and reprint_print_job send an Idempotency-Key on every job (pass your own with idempotencyKey), so a retried call never prints twice. Jobs carry source: "inkrelay-mcp". With a live key, jobs print on paper and count toward your plan, so keep tool approval on in your client.

Building printing into your own code

The MCP server is for operating printers from an assistant. To add printing to an application, use the SDKs, @inkrelay/sdk and inkrelay, and give your coding agent the inkrelay-printing skill.

Docs: https://docs.inkrelay.app/ai

Development

bash
pnpm installpnpm lint && pnpm typecheck && pnpm test && pnpm build

License

MIT

Source: mcp/README.md at commit 94633e6

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v0.1.1LatestOct 18, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts