Prepend
auths wrap …to any MCP server and a live agent's tool calls are bounded to a scope, a budget, and a TTL by cryptographic delegation — enforced pertools/call, offline, from the signed chain. When the model itself decides to exceed its scope, overspend its budget, or keep working after it's been revoked, the gateway refuses the call at the protocol boundary, with a distinct verdict, and leaves a verifiable receipt.
This is the thin npm/distribution repo: the launcher, per-client config glue,
examples, and the install-and-wrap smoke. The engine is Rust crates in the
auths monorepo (auths-mcp-core + auths-mcp-gateway) — so you get a one-line
install with no toolchain.
brew install auths-mcp and uvx auths-mcp are fast-follows.
The launcher (packages/auths-mcp/) resolves the prebuilt auths-mcp-gateway
binary for your platform and execs it. The gateway speaks stock MCP up to the agent
and down to the real downstream server; on each tools/call it canonicalizes +
signs the call, runs the per-call gate (scope ⊆ parent · budget · expiry · revocation), forwards only on pass, and emits a signed receipt either way. A
non-auths client still works (unauthenticated, no receipt) so adoption is
incremental.
Working — gateway built, ./run.sh --check GREEN. The bounded-agent gateway is
real (auths-mcp-{core,gateway,server} in the auths monorepo):
./run.sh --check(the install-and-wrap smoke / the federated gate) passes: it resolves the launcher, the launcher resolves the prebuilt gateway binary, and the gateway is driven in replay mode over a frozen transcript — re-deriving each call's verdict from the signed chain and exiting non-zero on ANY divergence (no fakeexit 0). It resolves the gateway the way a user'snpxrun does: a locally built../auths/target/releasebinary if present, else the npm-vendoredvendor/<platform>/tree.- Distribution:
.github/workflows/release.ymlvendorsauths-mcp-gateway(plus theauthsCLI andauths-sign, which the wrap path shells to build the delegation chain) forlinux-x64,linux-arm64, anddarwin-arm64from a pinned, SHA256-verifiedauthsmonorepo release, re-runs the full smoke against that exact tree, and publishes@auths-dev/mcp(dispatch-only, dry-run by default). It fails closed on any release older than the first one that ships the gateway in its tarballs (v0.1.3 does not). - The scenario configs in
examples/scenarios/and the transcript inexamples/replay/drive that gate; the payment adapters inexamples/payments/are built (hermetic path green; the live x402 settle is pending the EIP-3009 rewrite — seedocs/plans/).
packages/auths-mcp/ the @auths-dev/mcp launcher (prebuilt-binary-per-platform)
clients/ config glue: Claude Desktop / Claude Code / Cursor / Codex
examples/ live show + --check replay (the probe) + 3 scenario configs
run.sh the install-and-wrap smoke = the federated gate