scoutwyze-compute
Handles real payment intake for the compute-ranking service: creates Stripe Checkout Sessions for self-serve credit funding and verifies signature-validated, idempotent Stripe webhooks that top up the account's prepaid credit ledger after a completed checkout.
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
ScoutWyze Compute
Autonomous, machine-readable GPU placement recommendation and routing
decision engine for AI infrastructure agents and MLOps pipelines. See
CLAUDE.md for the full V1 source of truth — architecture, scope
boundaries, and the data-provenance model this whole engine is built
around.
What this is not: an execution platform. Every compute/rank
response carries limits: {not_reserved: true, not_provisioned: true, can_provision: false} — this ranks and recommends where to rent GPU
compute, it never reserves, provisions, or runs anything itself. See
SOT.md for the rigorously-verified current state of every claim in
this document.
For AI agents & autonomous integration
Live: https://scoutwyze-compute.fly.dev — dual-rail, pay per successful ranked match, no subscription.
# Free, anonymous, rate-limited — see the real response shape before paying
curl https://scoutwyze-compute.fly.dev/v1/compute/sample
# Rail 1 — prepaid Bearer key (one-time human funding, then headless)
curl -X POST https://scoutwyze-compute.fly.dev/v1/compute/rank \
-H "Authorization: Bearer sw_live_..." -H "Content-Type: application/json" \
-d '{"gpuClass":"H100","preference":"cheapest"}'
# Rail 2 — x402/USDC on Base, zero signup, zero API key, zero gas
curl -X POST https://scoutwyze-compute.fly.dev/v1/compute/rank \
-d '{"gpuClass":"H100"}'
# -> HTTP 402 with real payment requirements (EIP-3009 "exact" EVM scheme).
# Sign an authorization (no on-chain broadcast needed from you — this
# server's facilitator handles that), resubmit with X-PAYMENT, get a 200.
# See examples/node-client.mjs or examples/python_client.py for the
# real signing flow — not curl-able directly, needs an EIP-712 signature.GET /llms.txtandGET /openapi.json— full machine-readable API description, both rails, the x402 error-code vocabulary, everything below.examples/— copy-pasteable Node.js and Python clients (both rails, including a real x402 sign-and-pay flow), plus LangChain and HaystackToolwrappers.scoutwyze-computeon PyPI — same client/LangChain/Haystack code asexamples/, packaged:pip install "scoutwyze-compute[all]".@scoutwyze/compute-mcpon npm — MCP server for Claude Desktop/Cursor:npx -y @scoutwyze/compute-mcp. Also listed in the official MCP Registry (io.github.scoutwyze-max/compute-mcp) and Smithery (scoutwyze/compute-mcp).
Related MCP server: Paddock
V1 scope
One SKU: 8× H100 80GB, InfiniBand/RDMA, US regions only.
Three provider feeds — Lambda Labs, RunPod, CoreWeave — normalized by per-provider adapters (
src/providers/). V1 wires each to a local fixture by default; raw-entry sourcing sits behind aRawEntrySourceseam (src/providers/rawSource.ts) specifically so swapping a provider to a real polled/webhook-fed feed later is a one-line change at that adapter's own export, not a rewrite.Every quote strictly separates what a provider stated (
provider_observed) from what ScoutWyze calculated (scoutwyze_estimated) from freshness/confidence metadata (metadata) — never blended into one opaque number.Fail-closed: a broken/unparseable provider feed contributes nothing and is reported in
excluded_providers, never silently faked or served stale-as-current.Dual-rail auth, both real:
Authorization: Bearer <api_key>backed by a real hashed-key store + prepaid credit ledger, or x402/USDC-on-Base (X-PAYMENTheader) — real x402 "exact" EVM scheme (EIP-3009TransferWithAuthorization, EIP-712 signature recovery, domain independently verified against the real USDC contract on Base), settled through PayAI's facilitator and independently re-confirmed on-chain by this server, not trusted on the facilitator's claim alone.Real payment intake: a Stripe webhook (signature-verified, idempotent) tops up the credit ledger on a completed Checkout Session; self-serve
POST /v1/signup+POST /v1/checkout-sessionslet a new user/agent get a key and fund it without any admin involvement.
Getting started
npm install
cp .env.example .env # fill in real secrets — see comments in the file
npm run dev # starts the API on :8787 (see .env for PORT)
npm test # full unit + integration suite
npm run typecheckTry it (local)
# 1. Get a real API key (free — funding it is a separate step)
curl -X POST http://localhost:8787/v1/signup
# 2. Use it — a brand-new key has a $0 balance, so this correctly
# returns 402 insufficient_credits rather than a ranked result. Fund
# the account (via /v1/checkout-sessions + a real Stripe payment, or
# POST /v1/admin/accounts/:accountId/credits with X-Admin-Secret for
# local testing) to see a real 200.
curl -X POST http://localhost:8787/v1/compute/rank \
-H "Authorization: Bearer <apiKey from step 1>" \
-H "Content-Type: application/json" \
-d '{"gpuClass": "H100", "preference": "cheapest"}'Against the live production deployment instead, see "For AI agents &
autonomous integration" above, or examples/ for full client code in
Node.js and Python (both rails).
Project layout
src/
types/schema.ts Zod schemas — the provenance-separated response contract
providers/ One adapter per feed, normalizing raw provider shape -> ProviderObservedFacts
rawSource.ts Fixture/Http/Webhook raw-entry sourcing, swappable per adapter
fixtures/ Mock provider data, structured to match each provider's real field conventions
ingestion/ Background cache — the only thing the API route ever reads from
engine/ SKU/region filtering, cost calculation, risk scoring, ranking
billing/ Hashed API keys + prepaid credit ledger (SQLite)
payments/ Stripe webhook verification, Stripe Checkout Session creation, real Base/x402
on-chain settlement verification, cross-rail payment-event idempotency
api/ Fastify routes (quote, signup/checkout, Stripe webhook, admin) + dual-rail auth middleware
db/ SQLite connection + schema (durable: keys, ledger, processed payment events)
scripts/
smoke-test.mjs Post-deployment smoke test — hits a real running instance over HTTP
tests/
unit/ Pure-function coverage: cost math, risk scoring, filtering, provenance separation, payments
integration/ Full HTTP flow via Fastify inject(): auth, fail-closed behavior, signup/checkout, webhooks
examples/ Copy-pasteable Node.js/Python clients (dual-rail) + LangChain/Haystack Tool wrappers — see examples/README.md
mcp-server/ Separate, independently-published MCP server package (@scoutwyze/compute-mcp) wrapping this API for MCP-native hosts — see mcp-server/README.md
python-sdk/ Separate, independently-published Python package (scoutwyze-compute on PyPI) — the same client/LangChain/Haystack code as examples/, packaged and pip-installableDeployment
Dockerfile + fly.toml — see fly.toml's own header comment before
deploying, especially the single-instance-by-design constraint:
durable state is one local SQLite file on an attached volume, so this
app must not be scaled to more than one machine without first
re-architecting storage.
fly apps create scoutwyze-compute
fly volumes create scoutwyze_compute_data --region iad --size 1
fly secrets set STRIPE_SECRET_KEY=... STRIPE_WEBHOOK_SECRET=... ADMIN_SECRET=... \
X402_RECEIPT_SIGNING_SECRET=... CHECKOUT_SUCCESS_URL=... CHECKOUT_CANCEL_URL=...
fly deploy
npm run smoke -- https://scoutwyze-compute.fly.dev # post-deploy verificationWhat's deliberately not built yet
RunPod is live in production (
RunpodLiveCatalogSource,RUNPOD_API_KEYconfigured) — Lambda Labs and CoreWeave remain fixture-only, comparison data, never bookable, never live. Flipping either to live needs that provider's real API key wired the same way RunPod's already is.Horizontal scaling / multi-instance deployment (see the single-writer SQLite constraint above) — would need a real shared database or something like LiteFS first.
Multi-instance-aware rate limiting —
/v1/signupand/v1/checkout-sessionsare now per-IP rate limited (2026-09-26,src/api/routes/signup.ts), but via the same in-memoryFixedWindowRateLimiteras/v1/compute/sample— correct for the current single-instance deployment, would need a shared store (Redis/DB) the moment there's more than one machine.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
This server cannot be deployed
Maintenance
Related MCP Connectors
Find GPU sellers for AI inference by model, cheapest first; pay per call with x402 (USDC on Base).
Ranks x402 endpoints and Apify actors; real yield of Base LP pools. Pay per call via x402.
Live cloud GPU prices, observed stock and 12-month price history across 30+ providers (H100, H200, A100, RTX 5090 and more), refreshed hourly. Read-only. Needs a GPU Finder API key sent as "Authorization: Bearer <key>"; free key with 60 data calls a month at https://gpufinder.dev/developers. Listing tools and get_usage are free.
Pay-per-call browser rendering and x402 marketplace ranking for AI agents, billed via USDC.
Related MCP Servers
- AlicenseAqualityCmaintenanceProvides public price indices for GPU rentals (spot, on-demand, DePIN) with verify URLs, enabling agents and users to query and verify compute economics rates.51Apache 2.0
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to verify that an x402 API is live, real, and fairly priced before authorizing a payment, and to query live market data on agent commerce across Base and Solana. Exposes twelve tools covering pre-payment checks, provider ranking, liveness lookups, market snapshots and diffs, circular-settlement and whale signals, token metrics, provider revenue, and monthly report data, with free, free-key, and paid x402 tiers.MIT

gpu.nz MCP serverofficial
AlicenseNot gradedqualityCmaintenanceEnables AI agents to search live GPU offers, estimate model VRAM, rent and monitor cloud GPU servers with ready templates, read logs, and stop or destroy them when done. Browsing and VRAM estimates work without an API key, while server management requires one.1MIT
GPU Finder MCP serverofficial
AlicenseAqualityBmaintenanceEnables agents to query live cloud GPU pricing, stock availability, and up to 12 months of price history across 30+ hyperscalers, neoclouds, and marketplaces, including comparisons of cheapest listed versus cheapest in-stock offers. All tools are read-only, with provider listings and GPU catalogs available at no cost.881 npmMIT