Relay
NPM · @RELAYGPU/MCP · 2 COMPONENTS
Run any Relay model (image, video, audio, LLM), poll tasks, upload files and search Relay's docs.
Available components
Last scanned (4 hours ago)
Scores higher than 48% of npm servers
Category AI and Machine Learning
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →
Supply Chain Security81
- No malware found by supply-chain analysis.Pass
- CVE check failed: a known high-severity CVE affects zod 3.25.76, a direct dependency. A fixed version is available. View diagnostics → Fail
- No install/post-install scripts declared.Pass
- 30 of 94 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency45
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- Clear OSI-approved license (MIT).Pass
- Actively maintained (last published 11 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability67
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 2436 tokens (~174/item across 14 items; 14 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management73
- Stability observed for 22 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- We read all 14 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 15 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 5 Nov 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 70 to 73. That category is still filling its 30-day observation window: 21 days of observed history at the previous scan, 22 at this one. The score rises as the window fills, whether or not the server changes.
- 3 Nov 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 63 to 67. That category is still filling its 30-day observation window: 19 days of observed history at the previous scan, 20 at this one. The score rises as the window fills, whether or not the server changes.
- 1 Nov 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 57 to 60. That category is still filling its 30-day observation window: 17 days of observed history at the previous scan, 18 at this one. The score rises as the window fills, whether or not the server changes.
- 30 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 50 to 53. That category is still filling its 30-day observation window: 15 days of observed history at the previous scan, 16 at this one. The score rises as the window fills, whether or not the server changes.
- 28 Oct 26 +1
- Package version: 0.1.4 → 0.1.8 functional
- 25 Oct 26 +16
- Malware scan: unverified → pass ▲ security
- 24 Oct 26 −20
- CVE-2023-54404 affects this package: high ▼ security
- Malware scan: pass → unverified ▼ security
- Known CVEs: pass → fail ▼ security
- Package version: 0.1.7 → 0.1.8 functional
- Package version: 0.1.4 → 0.1.7 functional
- 23 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 27 to 30. That category is still filling its 30-day observation window: 8 days of observed history at the previous scan, 9 at this one. The score rises as the window fills, whether or not the server changes.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 5 Nov 2026 · Analysed npm/@relaygpu/mcp@0.1.8
Provenance No attestation
The registry publishes no build provenance for this version, so there is nothing to verify.
| Result | No attestation |
|---|---|
| Ecosystem | npm |
Background: How many MCP packages publish verified provenance →
Vulnerabilities 1 finding
| ID | CVE | Severity | Vector | Fix available |
|---|---|---|---|---|
| GHSA-mrhx-c7xc-m3w5 | CVE-2023-54404 | high | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H | yes |
Background: What a vulnerability scan can and cannot prove →
Dependencies 94 packages
| Packages resolved | 94 |
|---|---|
| Stale | 30 |
| Tree resolution | Complete |
Background: SBOMs and build attestations, explained →
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
cancel_workflow_run Cancel a workflow run ~71
Cancel a workflow run. Cancels between steps only: a step already running completes and bills. A run that has already ended answers WORKFLOW_RUN_NOT_CANCELLABLE. Needs a Relay credential.
| Name | Type | Req | Description |
|---|---|---|---|
| run_id | string | yes | The run id returned by run_workflow (`wf:…`). |
No output schema declared.
No examples provided.
check_task Check a Relay task ~148
Checks a task run_model returned (no key needed: the task_id is the capability). Waits up to 30 s for it to finish; returns the result when completed, else its status: then call check_task again, never resubmit. Task results are kept 1 h after they finish.
| Name | Type | Req | Description |
|---|---|---|---|
| inline_images | boolean | – | Also return images ≤ 1 MB as image content blocks (default false: links only). |
| task_id | string | yes | The task_id from run_model, e.g. direct:2f9c… |
| wait_seconds | integer | – | Seconds to wait for it to finish (0–30, default 30); 0 just reads the status. |
No output schema declared.
No examples provided.
check_workflow_run Check a workflow run ~126
Poll a workflow run by run_id, waiting up to wait_seconds (≤ 30) for it to end. Completed → the final output; failed / cancelled → the error; still running → its steps so far: call check_workflow_run again. No key needed: the run_id is the access token.
| Name | Type | Req | Description |
|---|---|---|---|
| run_id | string | yes | The run id returned by run_workflow (`wf:…`). |
| wait_seconds | integer | – | Seconds to wait for it to finish (0–30, default 30); 0 answers the current state at once. |
No output schema declared.
No examples provided.
estimate_cost Estimate a Relay cost ~194
Estimates the USD cost of a call from the price list (with a credential your account's view: its tier and grants; public otherwise): an estimate, not an invoice (the bill uses provider-reported usage and any custom pricing on your account). Pass only the usage fields the model's billing_type (see get_model or get_pricing) reads: per_token: input_tokens, output_tokens, cached_input_tokens; per_image: image_count, resolution_tier; per_second_video: duration_seconds, quality_mode, sound; per_second_audio: duration_seconds; per_character: character_count; per_media_token: media_input_tokens, media_output_tokens. Add store_output / retention / file_count for storage fees.
| Name | Type | Req | Description |
|---|---|---|---|
| model | string | yes | Exact model name, e.g. KlingTeam/v3-T2V. |
| usage | object | yes | What the call uses; only the fields of the model's billing type matter. |
No output schema declared.
No examples provided.
get_credits Get credit balance ~50
Read the account's credit balance, active promo credits and consumption. Needs a dashboard JWT or a custom-tier superkey; a plain inference key gets PERMISSION_DENIED (403). Needs a Relay credential.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_model Get a Relay model ~95
Returns one model's route, request_schema (what run_model's input must follow), request_example, pricing and availability. With a credential the answer is your account's view (what its tier and grants can run), public otherwise. Then call run_model with an input shaped like request_example.
| Name | Type | Req | Description |
|---|---|---|---|
| model | string | yes | Exact model name from search_models, e.g. google/gemini-nano-banana-2.1. |
No output schema declared.
No examples provided.
get_pricing Get Relay pricing ~110
Returns Relay's list prices (USD), optionally for one model (with a credential your account's view: its tier and grants; public otherwise), plus media_storage: the per-file fees of the store_output / upload retention SKUs (relay1d, relay7d, …). Then estimate_cost for a number.
| Name | Type | Req | Description |
|---|---|---|---|
| model | string | – | Model name (e.g. google/gemini-nano-banana-2.1) to keep only its rows. Omit for every model. |
No output schema declared.
No examples provided.
get_usage Get usage ~215
Read the account's usage and spend per API key, newest keys first, 10 keys per page (pass starting_after = the previous answer's next_cursor for the next page; limit up to 1000). Pass period (e.g. 7d, max 30d) for a by-date breakdown, or from + to. Needs a dashboard JWT or a custom-tier superkey; a plain inference key gets PERMISSION_DENIED (403). Needs a Relay credential.
| Name | Type | Req | Description |
|---|---|---|---|
| from | string | – | Start date `YYYY-MM-DD`; use together with `to`. |
| limit | integer | – | Keys per page (default 10, max 1000). |
| period | string | – | Time period shorthand, e.g. `7d` or `30d` (max 30 days); adds a by-date breakdown. |
| starting_after | string | – | Cursor: the `next_cursor` of the previous page. |
| to | string | – | End date `YYYY-MM-DD`; use together with `from`. |
No output schema declared.
No examples provided.
list_workflows List workflows ~61
List Relay's workflow templates: multi-step pipelines (e.g. script → voiceover) run as one call. Each entry has workflow_id, input_schema and its steps (step_id + model). Run one with run_workflow; inputs follow input_schema.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
run_model Run a Relay model ~391
Runs any Relay model by name (billed to your key). input follows get_model's request_schema (request_example runs as is). Every model whose schema takes async (image, video, audio) is submitted as a task: it waits up to 45 s, past that it returns a task_id — do not resubmit, call check_task. Chat models answer inline. Result links expire 1 h after completion unless store_output names a media_storage SKU from get_pricing. Pass an idempotency_key if you may retry the same submit. Needs a Relay credential.
| Name | Type | Req | Description |
|---|---|---|---|
| idempotency_key | string | – | Your key for this submit (task models; a chat answer is not replayed): a retry with the same key and the same input replays the first task instead of starting (and billing) a new one; the same key wi… |
| inline_images | boolean | – | Also return images ≤ 1 MB as image content blocks (default false: links only). |
| input | object | yes | Request body per get_model's request_schema, without model, store_output or async (run_model sets them). Pass media as *_url links (upload_file makes one). mode: direct (Relay's providers, the defaul… |
| model | string | yes | Exact model name from search_models / get_model, e.g. google/gemini-nano-banana-2.1. |
| store_output | string | – | Keep result media longer: a media_storage SKU from get_pricing (e.g. relay7d, adds its per-file fee), or provider (default, 1 h). |
| wait_seconds | integer | – | Seconds to wait for it to finish (0–45, default 45); 0 returns the task_id at once. |
No output schema declared.
No examples provided.
run_workflow Run a workflow ~298
Start a workflow run (one submit) and wait up to wait_seconds (≤ 45) for it to finish. Completed → the final output; still running → run_id: call check_workflow_run with it, never resubmit (a new run bills again). Each step is billed as an ordinary request. webhook_url gets ONE signed workflow.completed / workflow.failed delivery when the run ends. Get workflow_id and the inputs shape from list_workflows. Needs a Relay credential.
| Name | Type | Req | Description |
|---|---|---|---|
| idempotency_key | string | – | Idempotency-Key for the submit: the same key and inputs within 24 h return the same run_id instead of a new run. Generated when omitted. |
| inputs | object | yes | Template inputs, an object matching the workflow's input_schema. |
| store_output | string | – | Run-level storage for every media step: `provider` (default, 1 h link) or `relay1d` / `relay7d` / `relay30d` (billed per file, see get_pricing). |
| wait_seconds | integer | – | Seconds to wait for it to finish (0–45, default 45); 0 returns the run_id at once. |
| webhook_url | string | – | HTTPS URL for one signed workflow.completed / workflow.failed delivery when the run ends. |
| workflow_id | string | yes | Workflow template id from list_workflows, e.g. `script-voiceover`. |
No output schema declared.
No examples provided.
search_docs Search the Relay docs ~126
Search Relay's public docs (bundled, offline) for how-to, auth, errors, limits, retries, webhooks, files and pricing rules. Returns the best-matching sections: page, heading, docs path with anchor and an excerpt. For a model's input fields use get_model instead; to find a model use search_models.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | How many sections to return (1–10, default 5). |
| query | string | yes | What to look for, in plain words, e.g. `idempotency key` or `file retention`. |
No output schema declared.
No examples provided.
search_models Search Relay models ~202
Lists Relay models by tag and/or text. Common tags: text-to-image, image-to-image, text-to-video, image-to-video, video-to-video, text-to-speech, speech-to-text, text-to-text, text-to-embedding. image-to-image also lists every image model that takes an input image. Returns name, tag, route and accepts (input media the model takes, e.g. ["image"]; [] for none) per model (at most 50). With a credential the list is your account's view (what its tier and grants can run), public otherwise. Then call get_model with a name for its input schema.
| Name | Type | Req | Description |
|---|---|---|---|
| query | string | – | Words to match, case-insensitive; every word must appear in the name, display name or tag (e.g. 'kling v3'). |
| tag | string | – | Model type tag, e.g. text-to-image or image-to-video. Omit for every tag. |
No output schema declared.
No examples provided.
upload_file Upload a file to Relay ~281
Hosts an image, video or audio file on Relay and returns its url: pass that url to any *_url input of run_model. Give exactly one of path (local server only, ≤ 100 MB), base64 (≤ 4 MB) or url (a public link Relay copies). retention: relay1h (default, free within a daily quota) or a media_storage SKU from get_pricing. Needs a Relay credential.
| Name | Type | Req | Description |
|---|---|---|---|
| base64 | string | – | File content as base64 or a data: URI, at most 4 MB decoded. Larger files: pass url. |
| filename | string | – | File name to record (defaults to the path's base name). |
| path | string | – | Local file path (stdio server only; the hosted server cannot read your disk). Max 100 MB. |
| retention | string | – | How long the link lives: relay1h (default, free within a daily quota) or a media_storage SKU from get_pricing (relay1d, relay7d, …). |
| slot | boolean | – | true: get a single-use upload URL (10 minutes): run the curl line in your shell on the local file, or open open_url in a browser and pick the file; either prints the hosted link. |
| url | string | – | Public http(s) link to copy onto Relay. |
No output schema declared.
No examples provided.
How do I install the Relay MCP server?
Relay runs locally as an npm package, launched with npx -y @relaygpu/mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
npm · @relaygpu/mcp
claude mcp add com-relaygpu-mcp -- npx -y @relaygpu/mcp
What is the Relay MCP server?
Relay is an MCP server listed in the public MCP registry as com.relaygpu/mcp. Run any Relay model (image, video, audio, LLM), poll tasks, upload files and search Relay's docs. This page covers its npm package (@relaygpu/mcp).
Is the Relay MCP server safe to use?
Relay scores 74 out of 100 on VerifyMCP. We recorded 1 known advisory against it as of 5 November 2026. It declares no install or post-install scripts. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the Relay MCP server expose?
Relay exposes 14 tools: search_models, get_model, get_pricing, estimate_cost, run_model, and 9 more. Their descriptions and schemas cost roughly 2,368 tokens of context every time the server is loaded.
Is the Relay MCP server still maintained?
Relay is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.
What licence is the Relay MCP server under?
Relay declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.