Skip to main content
Glama

SCRIPTMASTERLABS — x402 Gateway

omnigate_runtime_execute

Destructive

OMNIGATE Runtime (PAID, USDC). Run ONE JavaScript script that calls many SML tools, in one round trip, instead of one model turn per tool call. The script is the body of an async function: const r = await sml.call("<route-id>", { query: {...} }); return r.data;. Available inside: sml.call, sml.tools.search, sml.tools.get, sml.budget, sml.sleep, sml.log, sml.input. Every call is metered at its live registry price against budget_usdc, charged only on upstream 2xx, and tagged with source + response sha256; a failed upstream throws TruthError (nothing charged, nothing substituted). Unused budget is returned as credit. Returns result, per-call provenance, billing and an Ed25519-signed receipt id. Without payment it returns the x402 challenge (amount = budget). Pay with payment_header (Base USDC, x402 v2), credit_token (smlrt_…), or arc_auth_id (Arc escrow, when enabled). Sandbox: no network except sml.call, no fs, 32MB, 20s CPU, 120s wall (sync).

Input Schema

NameRequiredDescriptionDefault
modeNosync waits for the result (120s wall); async returns run_id to poll /runtime/runs/{id}.sync
inputNoJSON object exposed to the script as sml.input.
scriptNoJavaScript async-function body. Use await; return the final result.
capsule_idNoRun a published capsule instead of a script (e.g. cap_name@1 or cap_name@latest).
arc_auth_idNoArc AuthCaptureEscrow authorization id (maxAmount ≥ budget, expiry ≤ 24h).
budget_usdcNoHard spending cap for the whole run in USDC (min 0.01, max 25).0.05
credit_tokenNoRuntime credit token (smlrt_…) returned by an earlier run.
payment_headerNoBase64 x402 v2 payment payload for exactly budget_usdc USDC on Base (from the challenge).

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Despite annotations already declaring destructiveHint=true and openWorldHint=true, the description adds substantial context beyond them: metering at live registry price against budget_usdc, charging only on upstream 2xx, TruthError on failed upstream with nothing charged, credit returned for unused budget, and a signed receipt. The sandbox constraints (no network except sml.call, no fs, 32MB, 20s CPU, 120s wall) are exactly the kind of operational detail annotations cannot convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the core purpose and the example snippet before payment and sandbox details, and nearly every clause carries information. It is dense to the point of being a single run-on block, which slightly hurts scanability but not correctness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex paid, authenticated, open-world tool with no output schema, the description covers return shape (result, provenance, billing, signed receipt id), the payment-required path (x402 challenge), failure semantics, and resource limits. Nothing needed to invoke it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds real meaning: budget_usdc is a hard cap metered per call, payment_header is Base USDC x402 v2 from the challenge, credit_token reuses prior-run credit, arc_auth_id is Arc escrow, and sml.input maps to the input param. It also documents the in-script API surface (sml.call, sml.tools.search, sml.budget, etc.) that no schema field conveys.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Run ONE JavaScript script that calls many SML tools, in one round trip') and frames it against the naive alternative of one model turn per tool call. An agent can distinguish this from omnigate_runtime_receipt or x402_contract without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explains the batching rationale clearly ('instead of one model turn per tool call') and lists the three payment paths, which implicitly tells the agent how to invoke it. It does not explicitly name sibling alternatives (e.g. receipt polling or spend_gate_check) or state when not to use it, so it stops short of full routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources