Gives any MCP-capable AI agent the ability to rent real GPUs and pay per second in USDG over x402 on Robinhood Chain — with a single wallet, no account, no KYC.
Payper MCP has clear, action-oriented tool names (list_gpus, rent_gpu, check_session, stop_session) and solid descriptions (avg 180 chars, within baseline 194). All four tools have input schemas with Zod validation and parameter descriptions. However, output schemas are not formally documented, responses are shaped ad-hoc in the handler code (ok() helper returns untyped text). Error handling is present but generic (fail() wraps errors as text). No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear risk profiles. Parameter descriptions are good but lack explicit constraints (e.g., maxUsd has no min/max bounds stated). Overall solid for a small domain-specific server, but lacks production-grade output documentation and error guidance.
Check a Payper GPU session by its access code: state, connection details (once ready), and how much has been spent.
List GPUs available to rent right now on Payper, with live per-hour prices in USD. Call this before rent_gpu.
Rent a GPU on Payper. Signs one gasless USDG payment (EIP-3009) up to maxUsd and returns an access code + connection details. You are only charged for the seconds used; the rest is refunded when you stop_session. Requires a wallet with USDG on Robinhood Chain (set via PAYPER_WALLET_KEY).
Stop a Payper GPU session and get the unused USDG refunded to your wallet automatically.
Output schemas not formally documented. Responses are shaped via ok() helper returning untyped text; LLMs cannot predict response structure or plan downstream calls.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). rent_gpu and stop_session have clear side effects but are not marked; LLMs cannot reason about retry safety.
Error responses are generic text wrapping. No recovery guidance (e.g., 'Try list_gpus() first' or 'Check PAYPER_WALLET_KEY is set'). Agents cannot self-correct.
Parameter constraints not stated in descriptions. maxUsd has no min/max bounds; gpu has no enum of valid slugs. LLMs may pass invalid values.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 63 | 2026-07-28+ | v2 |
No pagination or result limits documented. list_gpus returns all available GPUs; if catalog grows large, response could exhaust context window.