byte_buy_data needs no prior setup and settles real USDC on Base, which makes it the part to try first — a weather packet at $0.005 walks the whole verify-before-act loop for half a cent before you spend $0.10 on a verdict. The subscribe, publish and fact-oracle layer runs on Arbitrum Sepolia with MockUSDC while the contracts wait on an external security audit, and byte_query_fact has no fact-oracle publisher broadcasting yet, so that call times out until one registers. One setting deserves attention: byte_buy_data pins the receipt against a gateway attester that rotated on 2026-08-19, and a stale pin fails the buy after the payment has already settled — if the gateway announces a rotation ahead of a package release, set BYTE_GATEWAY_ATTESTER to the new receipt.attester from /.well-known/agent.json.
An MCP server for PayPerByte, a catalog of paid data feeds where every paid response ships with a cryptographic receipt. Agents browse the catalog, buy one packet over x402 settled in USDC on Base mainnet, or subscribe to on-chain streams on Arbitrum Sepolia. Each paid response carries an EIP-712 PayloadAttestation over the exact bytes returned, and one tool exists purely to check it.
- byte_buy_data buys one packet from any feed with no subscription and no allowance: the server signs an EIP-3009 transferWithAuthorization against the 402 challenge, and the reply carries the data, the tx hash and an inline verification result
- The verdict feeds return a signed ALLOW, WARN or BLOCK and take a POST body — merchant-screen, address-reputation, sanctions-screen, pkg-verdict and reasoning-verdict. merchant-screen is $0.10 a verdict; the plain GET feeds are cheaper, weather at $0.005 and earthquakes at $0.003
- byte_verify_payload recomputes keccak256 over the bytes you received and compares them against the on-chain attestation, anchored either on a hash you already hold or on the settlement txHash, which also recovers the signer
- Discovery needs no wallet: byte_list_feeds, byte_search_publishers, byte_get_publisher, byte_get_network_stats, byte_check_subscription and byte_get_token_balances
- byte_list_my_subscriptions shows every active subscription with messages received and USDC spent over 7 and 30 days; byte_subscription_health compares a publisher's last 7 days against their days 8-30 baseline and reports stable, moderate, significant or unknown so a content pivot is visible before the bill is
- byte_subscribe joins a stream at $0.003 per KB per delivery and bundles the USDC approval, closing the path where a depleted allowance quietly delivered data at amount=0; byte_unsubscribe takes effect next block and is reversible
- byte_register_publisher and byte_publish_data put you on the selling side: register a schema on-chain, then hash each payload, record its size and settle the fee
Runs over stdio as npx -y byte-mcp-server, and server.json also declares a streamable-HTTP endpoint at https://mcp.payperbyte.io/mcp. Read-only tools need no wallet. PRIVATE_KEY unlocks subscribe, publish, buy and query, and byte_buy_data spends real USDC on Base mainnet, so give it a dedicated wallet; MAX_PAYMENT_USDC refuses any 402 quote above the cap you set before it signs anything. RPC_URL defaults to the Arbitrum Sepolia public RPC, INDEXER_URL to https://feeds.payperbyte.io and BYTE_GATEWAY_URL to https://x402.payperbyte.io. MIT.
One command plus a key — npx -y byte-mcp-server, then supply credentials
