Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

Run402

NPM · RUN402-MCP · 2 COMPONENTS

x402 pay-per-call infra for agents: $0.03 image generation, Postgres, auth, storage, functions.

0 this week 86 Trust /100

Last scanned (10 hours ago)

Scores higher than 90% of npm servers

Category CI/CD and DevOps

Trust breakdown (7 categories)

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 Security82
  • 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
  • 32 of 147 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency100
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Cryptographically verified build provenance (signed, bound to kychee-com/run402). View diagnostics → Pass
  • Clear OSI-approved license (MIT).Pass
  • Actively maintained (last published 0 days ago).Pass
  • Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability64
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 2402 tokens (~300/item across 8 items; 8 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 Management100
  • No destabilizing schema changes in the last 30 days.Pass
Tool Coverage97
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 89% of tool parameters carry a description.Partial
  • Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety75
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • 0 of 1 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "deploy" implies "deploy" and declares no destructiveHint at all, which the MCP spec reads as destructive by default. See how to fix → Fail
  • An AI judge read all 8 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
Changelog

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.

  • 1 Nov 26 0
    • Stability: 0.97 → pass security
  • 31 Oct 26 0
    • Stability: pass → 0.97 functional
  • 30 Oct 26 0
    • Package version: 4.16.0 → 4.104.2 functional
  • 28 Oct 26 +13
    • Stability: fail → pass ▲ security
  • 26 Oct 26 0
    • Package version: 4.16.0 → 4.104.2 functional
  • 24 Oct 26 −2
    • CVE-2023-54404 affects this package: high ▼ security
  • 22 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 0 to 2.

  • 21 Oct 26 −1

    No change was recorded against any check on this day. Stability & Change Management went from 2 to 0.

Diagnostics

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/run402-mcp@4.104.2

Provenance Verified

A signed build attestation was found and verified, binding this exact artifact to the source repository it claims to come from.

Result Verified
Ecosystem npm
Reason Verified
Discovered via Registry attestation endpoint
Source repo kychee-com/run402
Certificate issuer https://token.actions.githubusercontent.com
Certificate SAN https://github.com/kychee-com/run402/.github/workflows/publish.yml@refs/heads/main
Rekor log index 2942322926
Predicate type SLSA build provenance https://slsa.dev/provenance/v1
Subject digest sha512:883cb0544e1e7a24bcb928b5fae5bc545fecd9fd365eb3b4c16475a4d154fd16d2aea1769ca1f24e7436b4a6acb1873944b957adebe6173b9d9105ce1

Background: How many MCP packages publish verified provenance →

Vulnerabilities 3 findings
ID CVE Severity Vector Fix available
GHSA-727h-3vm5-qwq6 CVE-2026-63627 medium yes
GHSA-vc9j-9wph-qghj CVE-2026-63628 medium yes
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 147 packages
Packages resolved 147
Stale 32
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 8 exposed · ~2,402 tokens

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 →

Tool Tokens
deploy ~768

Unified apply primitive. Accepts a structured ReleaseSpec — database (migrations + expose), value-free secrets.require/delete declarations, functions, site, site.public_paths, site.embedding (framing opt-in by catalog key, e.g. { frame_ancestors: ['localhost'] }; null = deny), subdomains, and routes.replace web routes — with explicit replace vs patch semantics per resource. Migration entries use id for immutable versioned SQL or name for generated/idempotent content-tracked SQL; name compiles client-side to <name>_<sha256(sql)[0:16]>. Use site.public_paths for clean static URLs such as /events backed by release asset events.html; explicit mode does not expose /events.html unless separately declared, while mode: 'implicit' restores filename-derived reachability and can widen access. Route entries map exact/final-wildcard browser paths like /admin and /admin/* to Node 22 Fetch Request -> Response functions, or exact GET/HEAD method-aware static aliases such as /events to { type: 'static', file: 'events.html' }; intentional read-only GET/HEAD wildcard function routes may set acknowledge_readonly: true. Direct /functions/v1/:name remains API-key protected. Secret values are set first with `r.secrets.set` (a `run` snippet) or `run402 secrets set`, never placed in deploy specs. All bytes ride through CAS (no inline-body cap). Returns release_id, URLs, warnings, and a structured progress-event log. Stops before upload/commit on confirmation-required warnings unless reviewed codes are passed with allow_warning_codes or allow_warnings is true.

NameTypeReqDescription
allow_warning_codesarray–Continue past specific reviewed plan warning codes. Prefer this to allow_warnings when only one known warning class is intentional.
allow_warningsboolean–Continue past plan warnings that require confirmation. Default false: the tool stops before upload/commit so an agent can set missing secrets or inspect warnings.
assetsobject–v1.48 unified-apply assets slice. Asset writes promote inside the same activation transaction as functions/site/secrets so a release flips atomically.
base––Diff base. Default `{ release: 'current' }`. Use `{ release: 'empty' }` for a fresh deploy that fails if a release already exists.
databaseobject––
functionsobject––
i18n––Routed-locale-context release slice. Omit to carry forward from base release; pass null to clear the slice; pass { defaultLocale, locales, detect? } to replace. Drives the negotiated locale that the…
idempotency_keystring–Optional client idempotency key. Combined with the project id and gateway-computed manifest digest to deduplicate retries.
project_idstringyesProject ID to deploy to (from provision).
routes––Apply-v1 web routes. Omit or pass null to carry forward base routes; pass { replace: [] } to clear routes; pass { replace: [{ pattern, methods?, target: { type: 'function', name } }] } for functions…
secretsobject––
site–––
subdomainsobject–At most one subdomain per project — multi-element `set` is rejected with SUBDOMAIN_MULTI_NOT_SUPPORTED.
NameTypeReqDescription
errorobject––
eventsarray––
resultobject––
statusstringyes–
warningsarray––

No examples provided.

docs ~208

The SDK reference for `run` snippets, from the copy shipped in this package, so it matches the SDK the snippet runs against. No arguments: the run primer, the r namespace table, and the topics. topic: one namespace or section (assets, project.apply, rooms, local-state) or sdk for all of it; search: sections containing every word. Long answers are a window plus a ref for expand_result. Any other operation is a `run` snippet against `r`, the Node SDK client; `docs` is its reference.

NameTypeReqDescription
searchstring–Words to look for; returns up to 8 SDK reference sections whose heading or body contain all of them.
topicstring–`index` (default: the run primer, the r namespace table, the topics), `sdk` (the whole SDK reference), or one section: a namespace such as `projects`, `assets`, `project.apply`, `rooms`, or a section…
NameTypeReqDescription
errorobject––
kindstring––
linesarray––
refstring|null––
showninteger––
statusstringyes–
totalinteger––

No examples provided.

doctor ~98

Local health and configuration diagnostics (r.doctor()): { ok, blocking[], warnings[], checks[] }, the same report as `run402 doctor`. ok is false only on a blocking finding. Any other operation is a `run` snippet against `r`, the Node SDK client; `docs` is its reference.

NameTypeReqDescription
project_idstring–Target this project's vault check. Omitted: the repository's own remote, else the active project.
NameTypeReqDescription
errorobject––
resultobject––
statusstringyes–

No examples provided.

expand_result ~250

Fetch more of a result a previous tool showed you only a window of. Tools on this surface truncate the VIEW, never the DATA: when one prints a ref together with shown and total, the full result is held behind that ref and this is how you read the rest of it. Pass the ref plus offset and limit to page through it. Refs live in this server process only — they expire after 30 minutes and only the most recent handful are kept, so re-run the producing tool rather than storing a ref across sessions. A result that carried a secret is never retained and never has a ref, so nothing here can hand one back.

NameTypeReqDescription
limitinteger–How many items to return, 100 by default and at most 1000. The window stays bounded even when expanded — page with offset rather than asking for everything at once.
offsetinteger–Index of the first item to return. Defaults to 0. Page by adding the previous window's shown count.
refstringyesThe opaque handle a tool printed alongside its bounded view (res_ followed by 16 hex). Refs are per-process and short-lived — do not store one across sessions.
NameTypeReqDescription
errorobject––
itemsarray––
kindstring––
offsetinteger––
refstring––
showninteger––
statusstringyes–
totalinteger––

No examples provided.

run ~370

Run a TypeScript snippet against the SDK in a sandbox. `r` is the Node SDK client (@run402/sdk/node); call `docs` for its reference. The code is the body of an async function: await r chains, and the value of the last expression (or a return) is the result, e.g. `(await r.projects.list()).projects.map((p) => p.id)`. No filesystem, process, fetch, timers, or imports; console is captured. Returns { status, value, value_ref, shown, total, logs, logs_ref, calls, duration_ms, wallet, error? }; a large value is stored whole and expand_result pages it. Operations that return or consume a one-time secret (grant keys, Handoff and Invite Keys, project credentials, wallet keys) refuse with SECRET_REQUIRES_CLI naming the exact CLI command to hand the person. Any other operation is a run snippet against r.

NameTypeReqDescription
codestringyesTypeScript or JavaScript, run as the body of an async function: top-level await works, and the value of an explicit return or of the last expression statement is the result. `r` is the Node SDK clien…
timeout_secondsinteger–Deadline for the whole run, 60 s by default and at most 300. An SDK call in flight at the deadline completes on its own; the result lists every call that completed.
NameTypeReqDescription
callsarray––
calls_droppedinteger––
duration_msnumber––
errorobject––
logsarray––
logs_droppedinteger––
logs_refstring|null––
showninteger––
statusstringyes–
totalinteger––
value–––
value_kindstring––
value_refstring|null––
value_windowobject––
walletobject––

No examples provided.

status ~80

The organization's state as this server's wallet sees it (r.status()): the wallet's local_label, server_label, and address, the tier and its lease, the allowance, the projects, and the active project. Never key material. Any other operation is a `run` snippet against `r`, the Node SDK client; `docs` is its reference.

Input schema present but exposes no named parameters.

NameTypeReqDescription
errorobject––
resultobject––
statusstringyes–

No examples provided.

up ~541

Plan or run the canonical app-aware `run402 up` workflow from a local path or repo URL: any missing setup (wallet, tier, project, workspace link), then the deploy. Delegates to the SDK and returns the shared up result envelope with graph steps, resources, diagnostics, and next_actions. `deploy` only deploys.

NameTypeReqDescription
allow_pruneboolean–Approve destructive managed-resource prune steps.
allow_shell_buildboolean–Approve shell-string build commands after review.
build_modestring–Override app build mode.
dirstring–Workspace directory to inspect when source is omitted.
display_namestring–Display name to set on this principal (promotion credit and room presence use it); overrides an existing name. Omitted: RUN402_AGENT_NAME when set (same effect); else, only when the principal has no…
dry_runboolean–Plan only. No gateway mutation, build execution, release commit, local link write, or prune.
idempotency_keystring–Root idempotency key for resumable app-up graph mutations.
manifeststring–Explicit manifest path. Defaults to run402.json, then advanced release-only manifests.
max_spend_usdnumber–Maximum spend up may approve for readiness steps.
namestring–Project/app instance name, for example kysigned2.
no_rehearseboolean–Skip the automatic rehearsal. By default a migration-bearing deploy against a project with a live release is rehearsed on a contained branch and committed only on a passing report; a first deploy has…
project_idstring–Existing project id to install into.
sourcestring–Local app directory or public Git repository URL. Defaults to the current directory.
tierstring–Bootstrap tier if account readiness is needed.
yesboolean–Approve non-interactive prerequisite, spend, and local-write prompts.
NameTypeReqDescription
errorobject––
resultobject––
statusstringyes–

No examples provided.

whoami ~87

The remote identity (r.orgs.whoami()): the control-plane principal this server's wallet resolves to, its active authenticator and linked identities, its org memberships, and the sign-in session grade (none for a wallet). For the local wallet use status. Any other operation is a `run` snippet against `r`, the Node SDK client; `docs` is its reference.

Input schema present but exposes no named parameters.

NameTypeReqDescription
errorobject––
resultobject––
statusstringyes–

No examples provided.

Install

How do I install the Run402 MCP server?

Run402 runs locally as an npm package, launched with npx -y run402-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 · run402-mcp

# add to Claude Code
claude mcp add com-run402-mcp -- npx -y run402-mcp
Common questions

What is the Run402 MCP server?

Run402 is an MCP server listed in the public MCP registry as com.run402/mcp. x402 pay-per-call infra for agents: $0.03 image generation, Postgres, auth, storage, functions. This page covers its npm package (run402-mcp).

Is the Run402 MCP server safe to use?

Run402 scores 86 out of 100 on VerifyMCP. We recorded 3 known advisories against it as of 5 November 2026. It declares no install or post-install scripts. Its build provenance is signed and verified. 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 Run402 MCP server expose?

Run402 exposes 8 tools: up, deploy, status, whoami, doctor, and 3 more. Their descriptions and schemas cost roughly 2,402 tokens of context every time the server is loaded.

Is the Run402 MCP server still maintained?

Run402 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 Run402 MCP server under?

Run402 declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.