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 · SCANNED SEP 20

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

0 this week 92 Trust /100
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 Security99
  • No malware found by supply-chain analysis.Pass
  • No known CVEs affecting this package version or its production dependencies.Pass
  • No install/post-install scripts declared.Pass
  • 33 of 135 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 Usability77
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 22855 tokens (~115/item across 198 items; 198 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 Management87
  • Stability observed for 26 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
  • 99% of tool parameters carry a description.Partial
Tool Safety76
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • 1 of 42 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "run_sql" implies "execute" and declares no destructiveHint at all, which the MCP spec reads as destructive by default. See how to fix → Partial
  • An AI judge read all 198 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
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
// .cursor/mcp.json
{
  "mcpServers": {
    "com-run402-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "run402-mcp"
      ]
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "com-run402-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "run402-mcp"
      ]
    }
  }
}
# add to Codex CLI
codex mcp add com-run402-mcp -- npx -y run402-mcp
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "com-run402-mcp": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "run402-mcp"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add com-run402-mcp --command npx --arg -y --arg run402-mcp
# ~/.hermes/config.yaml
mcp_servers:
  com-run402-mcp:
    command: "npx"
    args: ["-y", "run402-mcp"]
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "com-run402-mcp": {
      "Transport": "stdio",
      "Command": "npx",
      "Arguments": [
        "-y",
        "run402-mcp"
      ]
    }
  }
}
# add to Vellum
assistant mcp add com-run402-mcp -t stdio -c npx -a -y run402-mcp
// mcp.json
{
  "mcpServers": {
    "com-run402-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "run402-mcp"
      ]
    }
  }
}
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.

  • 19 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 80 to 83. That category is still filling its 30-day observation window: 24 days of observed history at the previous scan, 25 at this one. The score rises as the window fills, whether or not the server changes.

  • 18 Sept 26 −3
    • Stability: pass → 0.80 functional
  • 17 Sept 26 0
    • Stability: 0.97 → pass security
  • 16 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 93 to 97. That category is still filling its 30-day observation window: 28 days of observed history at the previous scan, 29 at this one. The score rises as the window fills, whether or not the server changes.

  • 14 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 87 to 90. That category is still filling its 30-day observation window: 26 days of observed history at the previous scan, 27 at this one. The score rises as the window fills, whether or not the server changes.

  • 12 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 80 to 83. That category is still filling its 30-day observation window: 24 days of observed history at the previous scan, 25 at this one. The score rises as the window fills, whether or not the server changes.

  • 11 Sept 26 −3
    • Stability: pass → 0.80 functional
  • 10 Sept 26 0
    • Stability: 0.97 → pass security
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 20 Sept 2026 · Analysed npm/run402-mcp@4.16.0

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 2300581169
Predicate type https://slsa.dev/provenance/v1
Subject digest sha512:fe34b109b68518221abc6da2491e04325bccac66d2c9a237a361ed3052a410f3cd3b41568fa28a02e73cce22ce75c7848d3cca6795951ad151e2ca08b

Background: How many MCP packages publish verified provenance →

Dependencies 135 packages
Packages resolved 135
Stale 33
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 198 exposed · ~22,855 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
delete_project_snapshot ~46

Delete a project data snapshot and release its CAS references.

NameTypeReqDescription
project_idstringyesProject ID that owns the snapshot.
snapshot_idstringyesSnapshot ID to delete.

No output schema declared.

No examples provided.

delete_secret ~37

Delete a secret from a project.

NameTypeReqDescription
keystringyesSecret key to delete
project_idstringyesThe project ID

No output schema declared.

No examples provided.

delete_signer ~86

Schedule the KMS key for a signer for deletion (7-day AWS minimum window). Refused if the signer has on-chain balance ≥ dust — drain first.

NameTypeReqDescription
project_idstringyesThe project ID
signer_idstringyesThe KMS signer ID. Schedules KMS key deletion (7-day window). Refused if balance >= dust — drain first.

No output schema declared.

No examples provided.

delete_subdomain ~62

Release a custom subdomain. The URL will stop serving content.

NameTypeReqDescription
namestringyesSubdomain name to release (e.g. 'myapp')
project_idstringOptional project ID for ownership verification. Uses stored service_key for auth.

No output schema declared.

No examples provided.

delete_version ~38

Delete a published app version.

NameTypeReqDescription
project_idstringyesThe project ID
version_idstringyesThe version ID to delete

No output schema declared.

No examples provided.

demote_user ~60

Demote a user from project_admin role by email. Reverts to default authenticated role. Requires service_key.

NameTypeReqDescription
emailstringyesEmail address of the user to demote from project_admin
project_idstringyesThe project ID

No output schema declared.

No examples provided.

deploy ~724

Unified apply primitive. Accepts a structured ReleaseSpec — database (migrations + expose), value-free secrets.require/delete declarations, functions, site, site.public_paths, 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 must be set first with set_secret, 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_codesarrayContinue past specific reviewed plan warning codes. Prefer this to allow_warnings when only one known warning class is intentional.
allow_warningsbooleanContinue past plan warnings that require confirmation. Default false: the tool stops before upload/commit so an agent can set missing secrets or inspect warnings.
assetsobjectv1.48 unified-apply assets slice. Asset writes promote inside the same activation transaction as functions/site/secrets so a release flips atomically.
baseDiff base. Default `{ release: 'current' }`. Use `{ release: 'empty' }` for a fresh deploy that fails if a release already exists.
databaseobject
functionsobject
i18nRouted-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_keystringOptional client idempotency key. Combined with the project id and gateway-computed manifest digest to deduplicate retries.
project_idstringyesProject ID to deploy to (from provision).
routesApply-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
subdomainsobjectAt most one subdomain per project — multi-element `set` is rejected with SUBDOMAIN_MULTI_NOT_SUPPORTED.

No output schema declared.

No examples provided.

deploy_diagnose_url ~187

Read-only authenticated diagnostics for a Run402 public URL or host/path pair. Explains whether the current live release would serve the URL, including match, diagnostic body status, static manifest/cache metadata when returned, structured warnings for ignored query/fragment, and next steps. This does not fetch bytes, purge cache, mutate deploy state, or expose internal CAS URLs.

NameTypeReqDescription
hoststringLower-level hostname form without scheme, path, query, or fragment.
methodstringHTTP method to diagnose. Defaults to gateway behavior when omitted.
pathstringLower-level public URL path. Must start with '/' when supplied.
project_idstringyesProject ID used for local apikey lookup. It is not sent as a query parameter.
urlstringAbsolute HTTP(S) public URL to diagnose. Mutually exclusive with host/path.

No output schema declared.

No examples provided.

deploy_events ~116

Fetch the recorded phase-event stream for a deploy operation. Returns the same `DeployEvent` shapes the `deploy` tool emits inline during an in-flight deploy — useful for inspecting a deploy after the fact (e.g., a deploy that the agent didn't observe directly, or one being resumed from a different process).

NameTypeReqDescription
operation_idstringyesOperation id returned by a prior `deploy` call. Must start with `op_`.
project_idstringyesProject ID that owns the operation. Required (apikey-gated endpoint).

No output schema declared.

No examples provided.

deploy_function ~460

Deploy a serverless function (Node 22) to a project. Handler signature: export default async (req: Request) => Response. The function can `import { db, adminDb, auth, email, ai } from '@run402/functions'` — auto-bundled by the platform. Additional npm packages are bundled at deploy time when listed in `deps` (bare names resolve to latest; pinned/range specs are honored verbatim; `@run402/functions` and `run402-functions` rejected; max 30 entries; native binaries rejected). For schedule/email background triggers, prefer a unified deploy manifest with `functions.replace.<name>.triggers[]` so every trigger creates a durable function run. The response includes `runtime_version` (the bundled `@run402/functions` version — surface as 'Functions runtime version', never bare 'runtime'), `deps_resolved` (map of dep name → installed concrete version), and an optional top-level `warnings` array (sibling to the function record).

NameTypeReqDescription
codestringyesTypeScript or JavaScript source code. Must export a default async function: export default async (req: Request) => Response
configobjectOptional function configuration
depsarrayOptional npm package specs to install and bundle. Bare names (e.g. 'lodash') resolve to latest at deploy time; pinned (e.g. 'lodash@4.17.21') or range specs ('date-fns@^3.0.0') are honored verbatim.…
namestringyesFunction name (URL-safe slug: lowercase, hyphens, alphanumeric, e.g. 'stripe-webhook')
project_idstringyesThe project ID to deploy the function to
schedulestring|nullCron expression (5-field, e.g. '*/15 * * * *') to run the function on a schedule. Pass null to remove an existing schedule.

No output schema declared.

No examples provided.

deploy_list ~159

List recent deploy operations for a project. Returns operation_id, status, release_id, and timestamps. Use this to build deploy-history UIs or to find a recent operation_id to feed into `deploy_resume` / `deploy_events`. Pass `limit` to bound the result set; the gateway also returns a `cursor` for pagination when there are more.

NameTypeReqDescription
cursorstringPagination cursor returned by a previous deploy_list response. Forwarded to the gateway as `?cursor=`.
limitintegerMaximum number of operations to return. Forwarded to the gateway as `?limit=`; the gateway picks a default when omitted.
project_idstringyesProject ID to list operations for. Required (apikey-gated).

No output schema declared.

No examples provided.

deploy_rehearse ~86

Run a persisted apply plan against a contained branch and return the rehearsal report. Source project and plan stay untouched.

NameTypeReqDescription
plan_idstringyesPersisted apply plan ID returned by deploy planning.
project_idstringProject ID for operator-approval metadata and follow-up status reads.
teardownstringRehearsal branch cleanup policy. Default keep.

No output schema declared.

No examples provided.

deploy_release_active ~92

Fetch the current-live release inventory for a project. Returns `release_id: null` with an empty current-live inventory when no release is active yet. Use this before deploy diffs to understand what is currently serving. Canonical SDK errors are preserved.

NameTypeReqDescription
project_idstringyesProject ID to inspect.
site_limitintegerMaximum site path entries to include. Gateway default: 5000.

No output schema declared.

No examples provided.

deploy_release_diff ~148

Diff two release targets for a project. `from` may be `empty`, `active`, or a release id; `to` may be `active` or a release id. Returns release-to-release diff buckets and `migrations.applied_between_releases`. Semantic gateway errors such as invalid targets, same-release diffs, or no active release are preserved.

NameTypeReqDescription
fromstringyesDiff source target: empty, active, or a release id.
limitintegerMaximum entries per site diff bucket. Gateway default: 1000.
project_idstringyesProject ID to inspect.
tostringyesDiff target: active or a release id.

No output schema declared.

No examples provided.

deploy_release_get ~114

Fetch a release inventory by id. Returns release metadata, effective/desired state kind, site path inventory, function inventory, secret keys, subdomains, and applied migrations. Use `site_limit` to cap large site inventories. Canonical SDK errors are preserved.

NameTypeReqDescription
project_idstringyesProject ID that owns the release.
release_idstringyesRelease ID to inspect, e.g. rel_...
site_limitintegerMaximum site path entries to include. Gateway default: 5000.

No output schema declared.

No examples provided.

deploy_resume ~97

Resume a deploy operation that ended in `activation_pending` or `schema_settling` (e.g. transient gateway failure between SQL commit and the pointer-swap activation). The gateway re-runs only the failed phase forward — SQL is never replayed. Idempotent: calling on an already-terminal operation returns the snapshot without re-running.

NameTypeReqDescription
operation_idstringyesOperation id returned by a prior `deploy` call. Required.

No output schema declared.

No examples provided.

deploy_site ~130

Deploy a static site (HTML/CSS/JS) from inline file bytes. Files are staged to a temp directory, then uploaded via the v1.32 plan/commit transport — only bytes the gateway doesn't already have are PUT. Served at a unique URL via CloudFront. Free with active tier.

NameTypeReqDescription
filesarrayyesArray of files to deploy. Must include at least index.html.
projectstringyesProject ID to link this deployment to
targetstringDeprecated/unsupported: unified deploy v2 does not support deployment target labels. Passing this field returns an error.

No output schema declared.

No examples provided.

deploy_site_dir ~192

Deploy a static site from a local directory. Walks the tree, hashes each file, and uploads only the bytes the gateway doesn't already have via the v1.32 plan/commit transport. Files named .git, node_modules, or .DS_Store are skipped; symlinks are rejected. Re-deploying an unchanged tree issues no S3 PUTs. Free with active tier.

NameTypeReqDescription
dirstringyesLocal directory to deploy. The SDK walks this directory, hashes each file, and uploads only bytes the gateway doesn't already have via the unified deploy primitive (CAS-backed). Files named .git, nod…
projectstringyesProject ID to link this deployment to
targetstringDeprecated/unsupported: unified deploy v2 does not support deployment target labels. Passing this field returns an error.

No output schema declared.

No examples provided.

deploy_verify_edge ~143

Verify gateway/edge release coherence for a deploy operation. Returns the canonical edge-coherence report, including pointer-update state, probed paths, stale-release evidence, and next actions. Set wait=true to poll until coherent or timeout_seconds elapses.

NameTypeReqDescription
operation_idstringyesOperation id returned by a prior `deploy` call. Must start with `op_`.
project_idstringyesProject ID that owns the operation. Required (apikey-gated endpoint).
timeout_secondsintegerMaximum seconds to wait when `wait` is true. Defaults to 60.
waitbooleanPoll until coherent or timeout. Defaults to false.

No output schema declared.

No examples provided.

diagnose_public_url ~198

Returns the live CDN state for a public blob URL (probed once from gateway-us-east-1 — NOT a global view). Use this when a deployed asset shows the wrong version or you suspect cache staleness. The result includes `expectedSha256` (from gateway DB), `observedSha256` (what CloudFront just served), recent `invalidation` status, and a human-readable `hint` with actionable next-steps. The `probeMayHaveWarmedCache: true` field warns that the probe itself populates the cache, so subsequent reads from elsewhere may differ. URLs outside the requesting project return 403; non-`*.run402.com` URLs return 400 unless they're on one of your active custom domains.

NameTypeReqDescription
project_idstringyesProject ID that owns the URL
urlstringyesFull blob URL (e.g. https://app.run402.com/_blob/avatar.png)

No output schema declared.

No examples provided.

domains_activate ~59

Activate custom mailbox addresses once ProjectDomain receive checks have passed. This switches addresses from managed fallback to the custom domain.

NameTypeReqDescription
domainstringyesThe DNS domain, e.g. kysigned.com
project_idstringyesThe project ID

No output schema declared.

No examples provided.

domains_apply ~64

Apply safe provider-managed ProjectDomain changes when authority is available. Manual-DNS domains return a typed next action instead of mutating external DNS.

NameTypeReqDescription
domainstringyesThe DNS domain, e.g. kysigned.com
project_idstringyesThe project ID

No output schema declared.

No examples provided.

domains_check ~64

Re-observe DNS/provider state for a ProjectDomain and return the current checks. Useful as a preflight and drift detector before validation cycles.

NameTypeReqDescription
domainstringyesThe DNS domain, e.g. kysigned.com
project_idstringyesThe project ID

No output schema declared.

No examples provided.

domains_disconnect ~51

Disconnect a ProjectDomain from the project and return mailbox addresses to managed fallback.

NameTypeReqDescription
domainstringyesThe DNS domain, e.g. kysigned.com
project_idstringyesThe project ID

No output schema declared.

No examples provided.

domains_ensure ~101

Create or update a project-scoped ProjectDomain desired state for web, email sending, inbound receive, mailbox addresses, and activation. Returns the aggregate with checks, DNS records, and next actions.

NameTypeReqDescription
desiredobjectyesDesired ProjectDomain state: web, email.send, email.receive, mailbox_addresses, and activation.
domainstringyesThe DNS domain, e.g. kysigned.com
project_idstringyesThe project ID

No output schema declared.

No examples provided.

domains_get ~57

Get one ProjectDomain aggregate with desired, observed, effective, DNS records, checks, and next actions.

NameTypeReqDescription
domainstringyesThe DNS domain, e.g. kysigned.com
project_idstringyesThe project ID

No output schema declared.

No examples provided.

domains_list ~28

List all ProjectDomain aggregates for a project.

NameTypeReqDescription
project_idstringyesThe project ID

No output schema declared.

No examples provided.

domains_repair ~58

Repair Run402-owned ProjectDomain infrastructure, such as missing SES receipt-rule recipients, without changing external DNS.

NameTypeReqDescription
domainstringyesThe DNS domain, e.g. kysigned.com
project_idstringyesThe project ID

No output schema declared.

No examples provided.

domains_test_receive ~93

Create a ProjectDomain receive test token for a mailbox address. Send mail to the returned address/token and poll domains_check for receive readiness.

NameTypeReqDescription
domainstringyesThe DNS domain, e.g. kysigned.com
project_idstringyesThe project ID
tostringyesLocal part or address to send the receive test to, e.g. info or info@kysigned.com

No output schema declared.

No examples provided.

drain_signer ~110

Drain a KMS signer's entire native-token balance to a destination address. Works on suspended signers — the safety valve. Cost: chain gas + $0.000005 KMS sign fee.

NameTypeReqDescription
destination_addressstringyesWhere to send the entire native-token balance. Cost: chain gas + $0.000005 KMS sign fee. Works on suspended signers.
project_idstringyesThe project ID
signer_idstringyesThe KMS signer ID

No output schema declared.

No examples provided.

errors_list ~544

Grouped, release-baselined error memory for a project, verdict-first: every page leads with a computed promote-vs-revert verdict (the gateway's numbers — never recomputed here), then the collapsed error identities. The post-promote watch: right after an apply/promote activates a release, call errors_list with new_in set to the just-activated release id (the promote response's next_actions carries a ready-made watch_errors command for the CLI equivalent). verdict.new_fingerprints > 0 means the release introduced NEW error identities — inspect errors[] (each row has samples with request ids + a runnable logs command) and consider reverting; new_fingerprints === 0 with healthy verdict.invocations_in_window means clean under real traffic (0 errors over 0 invocations is absence of signal, not proven health). Filter by since/until/function/kind/fingerprint; pass fingerprint_id to fetch one fingerprint's full detail (all samples + also_seen_in_functions). Quality tier coarse = the function predates the error side-channel; redeploy to upgrade fidelity. Read-only, own-project service-key auth; cursors are opaque.

NameTypeReqDescription
cursorstringOpaque `next_cursor` from a prior page. Returns the next page. Never parse cursors.
fingerprintstringRestrict the list to one exact fingerprint identity (`fp_…`).
fingerprint_idstringFetch ONE fingerprint's full detail (all samples, per-sample fetch_logs commands, also_seen_in_functions) instead of a page. When set, all filter params (since/until/function/kind/fingerprint/new_in/…
functionstringRestrict to one function by name.
kindstringRestrict to one choke-point class: uncaught | boot_crash | invoke_failed | handled_5xx.
limitintegerPage size (default 50, max 200).
new_instringA release id, or the literal "active" (gateway resolves the live release). Selects error identities FIRST seen under that release and drives the verdict's new_fingerprints / baseline — the promote-ga…
project_idstringyesProject whose errors to read. Authorized with the project's OWN service key; a key for a different project gets 403, never a 404.
sincestringISO-8601 window start. Default window is the last 24h (gateway resolves `until` − 24h).
untilstringISO-8601 window end. Defaults to now (gateway-side).

No output schema declared.

No examples provided.

export_project_archive ~247

Export the supported Run402 Core runtime slice of a Cloud project as a portable .r402ar archive. Can wait for readiness and write the downloaded archive to a local path. Secrets, credentials, billing, allowance, logs, fleet, and Cloud operations are never exported.

NameTypeReqDescription
authstringAuth export mode. Default stubs; credentials are never exported.
consistencystringConsistency mode. Default pause-writes, recorded as cloud_write_pause_v1.
idempotency_keystringRetry-safe idempotency key for archive creation.
output_pathstringOptional local file path for the downloaded .r402ar archive. When set, the tool waits for readiness and writes bytes here.
poll_interval_msintegerPolling interval in milliseconds. Default 1000.
project_idstringyesProject ID to export from Run402 Cloud.
scopestringArchive scope. v1 supports portable-runtime-v1.
timeout_msintegerWait timeout in milliseconds. Default 600000.
waitbooleanPoll until ready. Defaults true when output_path is set, otherwise false.

No output schema declared.

No examples provided.

fork_app ~85

Fork a published app into a new project. Creates a full copy including database, functions, site, and optionally claims a subdomain.

NameTypeReqDescription
namestringyesName for the new forked project
subdomainstringOptional subdomain to claim for the forked app
version_idstringyesThe app version ID to fork (from browse_apps)

No output schema declared.

No examples provided.

functions_rebuild ~245

Refresh function(s) onto the platform's current entry wrapper + bundled runtime WITHOUT changing source (capability function-runtime-rebuild, gateway v1.69+). Provide `name` to rebuild one function, or omit it to rebuild every function in the project. Re-bundles from each function's STORED source with deps pinned to the recorded exact versions, so the source `code_hash` is unchanged and no new release is created — this is how a gateway-side wrapper fix (e.g. an SSR auth.* fix) reaches an already-deployed function (a plain redeploy with unchanged source does NOT pick it up). Strictly opt-in; the platform never auto-rebuilds. Wallet-authed (project ownership; no service key) and allowed during billing grace. Functions deployed before dependency locking return CANNOT_REBUILD_UNLOCKED_DEPS — redeploy them from source with `deploy_function`. Use `list_functions` (runtime_stale) or `run402 doctor` to find stale functions.

NameTypeReqDescription
namestringFunction name to rebuild. Omit to rebuild every function in the project (batch).
project_idstringyesThe project ID

No output schema declared.

No examples provided.

generate_image ~91

Generate a PNG image from a text prompt. Costs $0.03 USDC via x402. Aspect ratios: square (1:1), landscape (16:9), portrait (9:16).

NameTypeReqDescription
aspectstringAspect ratio: square (1:1), landscape (16:9), portrait (9:16)
promptstringyesImage description. Max 1000 characters.

No output schema declared.

No examples provided.

get_agent_contact_status ~36

Get the current agent contact assurance state: wallet_only, email_pending, email_verified, passkey_pending, or operator_passkey.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_app ~38

Inspect a specific published app — details, required secrets, fork pricing.

NameTypeReqDescription
version_idstringyesThe version ID of the app to inspect

No output schema declared.

No examples provided.

get_contract_call_status ~78

Look up a previously submitted contract call by call_id. Returns lifecycle state (pending/confirmed/failed), block number, gas used, gas cost in USD-micros, receipt, and any error.

NameTypeReqDescription
call_idstringyesThe contract call ID (ccall_...)
project_idstringyesThe project ID

No output schema declared.

No examples provided.

get_email ~65

Get a sent email with details and any replies.

NameTypeReqDescription
mailboxstringTarget mailbox by slug or id; omit only when the project has exactly one mailbox.
message_idstringyesThe message ID to retrieve
project_idstringyesThe project ID

No output schema declared.

No examples provided.

get_email_raw ~143

Get the raw RFC-822 bytes of an inbound email message, base64-encoded. The decoded bytes are bit-identical to the DKIM-signed original — no parsing, normalization, or CRLF cleanup. Use this for cryptographic verification (DKIM checks, zk-email proofs). Inbound messages only; outbound returns 404. For display/threading, use get_email instead.

NameTypeReqDescription
mailboxstringTarget mailbox by slug or id; omit only when the project has exactly one mailbox.
message_idstringyesThe message ID to retrieve raw bytes for (must be an inbound message)
project_idstringyesThe project ID

No output schema declared.

No examples provided.

get_expose ~86

Get the current authorization manifest for a project (GET /projects/v1/admin/:id/expose). Returns the last-applied manifest from `internal.project_manifest`, or a manifest reconstructed by introspecting live DB state if none has ever been applied. The `source` field is `"applied"` or `"introspected"`.

NameTypeReqDescription
project_idstringyesThe project ID

No output schema declared.

No examples provided.

get_function_logs ~169

Get recent logs from a deployed function. Shows console.log/error output and error stack traces from CloudWatch.

NameTypeReqDescription
namestringyesFunction name to get logs for
project_idstringyesThe project ID
request_idstringOnly return logs correlated to this routed request id, function run id, or attempt id, such as req_abc123, fnrun_abc123, or fnatt_abc123.
sincestringOnly return logs at or after this ISO 8601 timestamp (e.g. 2026-03-29T14:00:00Z). Invalid timestamps are rejected before the API call.
tailnumberNumber of log lines to return (default: 50, max: 1000)

No output schema declared.

No examples provided.

get_function_run ~46

Fetch one durable function run by fnrun_ id.

NameTypeReqDescription
project_idstringyesThe project ID
run_idstringyesFunction run id, fnrun_...

No output schema declared.

No examples provided.

get_function_run_logs ~86

Fetch logs correlated to one durable function run.

NameTypeReqDescription
project_idstringyesThe project ID
run_idstringyesFunction run id, fnrun_...
sincestringOnly include logs at or after this ISO timestamp or epoch ms.
tailintegerNumber of log entries to return (default 50, max 1000).

No output schema declared.

No examples provided.

get_mailbox ~85

Get the project's mailbox info (ID, address, slug, default/readiness metadata, and footer-policy fields when returned). Use to check if a mailbox exists.

NameTypeReqDescription
mailboxstringTarget mailbox by slug or id; omit only when the project has exactly one mailbox (otherwise returns an ambiguity error naming the slugs).
project_idstringyesThe project ID

No output schema declared.

No examples provided.

get_mailbox_webhook ~69

Get details of a specific webhook by ID.

NameTypeReqDescription
mailboxstringTarget mailbox by slug or id; omit only when the project has exactly one mailbox.
project_idstringyesThe project ID
webhook_idstringyesThe webhook ID (whk_...)

No output schema declared.

No examples provided.

get_notification_preferences ~31

Read the operator's notification preferences (channels, cadence, threshold/lifecycle/security toggles, locale, timezone).

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_operator_status ~36

Compact operator-health snapshot: contact assurance, critical items, skipped notifications, organizations, projects, active thresholds. Read via run402 doctor.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_org ~101

Read one organization (GET /orgs/v1/:org_id) — its `org_id`, `display_name`, `tier`, `lease_started_at`, `lease_expires_at`, and your `role`. Any active member may read; a non-member (including a guessed id) gets the same non-revealing 403. Params: `org_id`.

NameTypeReqDescription
org_idstringyesThe org id, e.g. `org_...`.

No output schema declared.

No examples provided.

get_project_snapshot ~43

Get one project data snapshot and its next actions.

NameTypeReqDescription
project_idstringyesProject ID that owns the snapshot.
snapshot_idstringyesSnapshot ID.

No output schema declared.

No examples provided.

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 92 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 20 September 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 198 tools: provision_postgres_project, run_sql, rest_query, apply_expose, validate_manifest, and 193 more. Their descriptions and schemas cost roughly 22,855 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 20 September 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.