Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
RUN402_WALLETNoActive named wallet (profile). Overridden by --wallet <name> and per-directory .run402.json; RUN402_PROFILE is an alias.default
RUN402_API_BASENoAPI base URL (override for staging)https://api.run402.com
RUN402_CONFIG_DIRNoLocal credential storage base directory (named wallets live under profiles/<name>/)~/.config/run402
RUN402_ALLOWANCE_PATHNoCustom allowance file path{config_dir}/allowance.json

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
upA

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.

deployA

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), site.sign_in_path (the app's own same-origin sign-in page for MCP authorization, e.g. '/join'; null = hosted page), site.noindex (true = X-Robots-Tag: noindex, nofollow, nosnippet on every response of the host; false or null = indexable), 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 _<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' }; acknowledge an intentionally read-only GET/HEAD wildcard function route with allow_warning_codes: ['WILDCARD_ROUTE_EXCLUDES_MUTATION_METHODS']. 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.

statusA

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.

whoamiA

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.

doctorA

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.

docsA

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.

runA

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). It is type-checked against the SDK before anything runs: a type error comes back with its line and TypeScript's message, and makes no call. 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.

expand_resultA

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.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.7/5.0

Scored across 8 tools

Disambiguation3/5

Deploy and up both perform deployments, differing only in whether setup is auto-completed, so an agent must read carefully to pick between them. Status, whoami, and doctor are also three overlapping read-only state views (local wallet vs remote principal vs diagnostics), and all of them plus most other operations are reachable through run, creating multiple routes to the same result. Descriptions do draw the lines explicitly, which keeps it from being worse.

Naming Consistency2/5

Names mix bare verbs (deploy, run), bare nouns (status, whoami, doctor, docs), an adverb-ish workflow name (up), and one snake_case compound (expand_result). Individual names are readable, but there is no predictable convention an agent could extrapolate from.

Tool Count4/5

Eight tools is a healthy scope for a deployment platform and nothing feels padded. The only quibble is that status, whoami, and doctor are thin convenience wrappers that run/docs already cover, so a couple of slots are low-value rather than bloated.

Completeness4/5

Core lifecycle is covered: plan/setup (up), apply (deploy), inspect (status/whoami/doctor), reference (docs), and an arbitrary SDK escape hatch (run) plus pagination (expand_result). Rollback, release listing, and secret management are not first-class tools, but the run snippet surface plus CLI pointers make them reachable, so gaps are workable rather than blocking.

Maintenance

ActivityActive
ResponsivenessResponsive