# 0rkz/byte-mcp-server [Health: Active]

**Category:** 💰 Finance & Fintech  
**Repository:** https://github.com/0rkz/byte-mcp-server  
**GitHub Stars:** 1  
**npm Downloads (last month):** 1564  
**Views:** 6  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/0rkz-byte-mcp-server

## Description
PayPerByte — per-byte data marketplace for AI agents on Arbitrum. Discover publishers, evaluate on-chain Proof-of-Quality Score (PQS), subscribe + pay per request in USDC via x402 gateway. 15 tools, zero API keys.

## Tools
Capabilities this server exposes over MCP:

- **byte_search_publishers** — Search PayPerByte publishers by topic and sort order. Returns publisher addresses, topics, subscriber counts, message counts, and price-per-KB.
- **byte_get_publisher** — Get on-chain info for a specific PayPerByte publisher: status, subscriber and message counts, USDC revenue, and the registered schema (size bounds, cadence, price-per-KB).
- **byte_get_network_stats** — Get PayPerByte network-wide statistics: total publishers, messages streamed, and total subscriber fees settled in USDC.
- **byte_check_subscription** — Check if an address is subscribed to a specific publisher on PayPerByte.
- **byte_get_token_balances** — Get USDC and ETH balances for an address on Arbitrum Sepolia (the on-chain testnet layer — MockUSDC settles subscriptions and fact-oracle queries there). Does NOT show the Base-mainnet USDC balance that byte_buy_data spends.
- **byte_list_feeds** — List all active data feeds in the PayPerByte catalog with topics, price-per-KB, and frequency.
- **byte_list_my_subscriptions** — List every active subscription for a given wallet address. Each entry has the publisher address, topic, status, when you subscribed, messages received in 7/30 days, USDC spent in 7/30 days, and the timestamp of the last message received. Use this to see what you're currently paying for and decide whether to unsubscribe.
- **byte_subscription_health** — Get the content-drift signal for a publisher. Compares their last 7 days of publishing activity (cadence, message count) against their 23-day baseline (days 8-30). Returns 'stable' (steady publishing), 'moderate' (20-50% cadence shift or 24-48h silence), 'significant' (>50% shift or >48h silence), or 'unknown' (new publisher, insufficient baseline). Use this to detect when a publisher you subscribe to has pivoted content or gone dormant.
- **byte_unsubscribe** — Unsubscribe from a publisher's data feed. Takes effect next block: no more billing, no more data flow. Reversible — you can resubscribe later via byte_subscribe. Use this when a publisher has pivoted content (check with byte_subscription_health first) or when you simply don't want the feed anymore. Requires PRIVATE_KEY for the connected wallet.
- **byte_subscribe** — Subscribe to a PayPerByte publisher's data feed. By default also sets USDC allowance to DataStreamLib to type(uint256).max so the subscription doesn't silently lose payments when allowance depletes (the contract's allowance-skip path emits DataStreamed with amount=0 on transferFrom failure rather than reverting). Pass skipAllowance: true to opt out and set a finite cap manually. Requires PRIVATE_KEY.
- **byte_register_publisher** — Register as a data publisher on PayPerByte. Registers a schema and the publisher on-chain. Requires PRIVATE_KEY. PayPerByte v1 publishers are first-party and unstaked — leave stake at '0'; a non-zero USDC stake is approved to DataRegistry first if you choose to post one.
- **byte_publish_data** — Publish data to a subscriber via the PayPerByte DataStream contract. Hashes the payload, records size on-chain, and settles the fee in USDC. Requires PRIVATE_KEY.
- **byte_query_fact** — Query a PayPerByte fact-oracle publisher for a signed answer with citations. Posts the question to a registered fact-oracle publisher (topic='fact-oracle'), waits for the on-chain BroadcastStreamed response, and returns the answer plus structured citation URLs. The signed receipt proves which publisher produced the answer (provenance + tamper-evidence), NOT that the answer is correct — ground your output in the cited sources, not in a truth guarantee. Availability: this requires a registered fact-oracle publisher actively broadcasting; if none is live the call returns a timeout rather than an answer.
- **byte_buy_data** — Buy a single data packet from any PayPerByte feed via the x402 payment gateway. No subscription, no allowance, no prior on-chain setup — pay-per-call USDC settlement. The MCP server signs an EIP-3009 transferWithAuthorization on behalf of the wallet whose PRIVATE_KEY is configured, the x402 facilitator submits the tx, and the data comes back inline with the on-chain settlement tx hash. Use byte_subscribe instead if you want a continuous stream of broadcasts from a publisher. The catalog of available feed slugs lives at https://x402.payperbyte.io/feeds (free GET). GET data feeds (weather, earthquakes, …) need only `feed`; the 8 POST oracles — runtime-eol, threat-intel, address-reputation, pkg-verdict, sanctions-screen, reasoning-verdict, merchant-screen, positioning-snapshot — additionally require a JSON `body` (the query) — supplying `body` switches this call to POST. Requires PRIVATE_KEY env var on the MCP server and USDC on the configured wallet. NOTE: paid feeds settle REAL USDC on Base mainnet (eip155:8453) — the exact price is quoted in the 402 challenge (flagship address-reputation: $0.10/verdict). Use a dedicated wallet holding only what you intend to spend.
- **byte_verify_payload** — Verify-before-act: confirm a data payload an agent is about to act on actually matches what the publisher cryptographically attested to on-chain. Recomputes keccak256 of the received bytes and compares it to the on-chain EIP-712 PayloadAttestation hash. ALWAYS call this on BYTE-sourced data before acting on it; if verified=false the bytes were tampered/corrupted in transit and MUST NOT be used. Anchor the check with EITHER expectedHash (an on-chain payloadHash you already hold, e.g. from byte_query_fact / byte_buy_data) OR txHash (the settlement tx — also recovers the attestation signer and confirms it is the named publisher). Read-only; no wallet or payment required.

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `npx` (confidence: high):

```json
"mcpServers": {
  "byte-mcp-server": {
    "command": "npx",
    "args": ["-y","byte-mcp-server"],
    "env": {
      "PRIVATE_KEY": ""
    }
  }
}
```

**Requires environment variables:** `PRIVATE_KEY` — the values above are empty placeholders; fill in real credentials before running (see the repository for what each one is for).

## Documentation

## What 0rkz/byte-mcp-server MCP server does

The 0rkz/byte-mcp-server MCP server exposes PayPerByte marketplace and data-stream operations through MCP tools. Agents can search publishers, browse active feeds, inspect network statistics, review publisher schemas, and check subscription state. The available catalog includes feeds across areas such as weather, markets, code, security, and knowledge, with topic, frequency, and price-per-KB metadata.

The server supports two payment paths. `byte_buy_data` makes a one-off request through the x402 gateway and settles real USDC on Base mainnet. `byte_subscribe` enables recurring stream delivery on the Arbitrum Sepolia testnet using MockUSDC. Subscription tools also cover unsubscribing, listing wallet subscriptions, and checking whether a publisher's activity has materially changed.

## How it works

Read-only tools query PayPerByte catalog, indexer, and on-chain information without a wallet. A configured wallet is needed for actions that spend funds or write to contracts, including subscribing, unsubscribing, registering a publisher, publishing data, querying the fact oracle, and buying a feed packet.

The two rails use different networks. One-off x402 purchases use Base mainnet, chain `eip155:8453`, and real USDC. Subscription, publishing, and fact-oracle operations use BYTE Library contracts on Arbitrum Sepolia, chain `421614`, with MockUSDC. The same `PRIVATE_KEY` can serve both paths, so it should belong to a dedicated wallet containing only funds intended for these operations.

Paid responses include an EIP-712 `PayloadAttestation` receipt. `byte_verify_payload` recomputes the received bytes' keccak256 hash and compares it with an on-chain attestation. Verification establishes delivery integrity and the attested signer relationship; it does not establish that the publisher's data is factually correct. The tool can use an expected payload hash or a settlement transaction hash as its anchor.

## Setup and configuration

Start the 0rkz/byte-mcp-server MCP server with:

```bash
npx -y byte-mcp-server
```

The README includes Claude Desktop wiring instructions. No API key is required. Set `PRIVATE_KEY` on the server when using wallet-backed operations. Buying data also requires USDC on the configured wallet; those purchases settle real USDC on Base mainnet. Subscription and related testnet operations use the Arbitrum Sepolia layer and its MockUSDC balances.

The live x402 feed catalog is available from `https://x402.payperbyte.io/feeds`. GET feeds take a feed slug, while POST oracle feeds take a JSON body; providing `body` causes `byte_buy_data` to use POST. The README advises keeping the wallet isolated because paid calls spend real funds.

## Tools and capabilities

Discovery and inspection capabilities include:

- Search publishers by topic and sort order.
- List active feeds with topics, prices, and frequencies.
- Inspect publisher status, schema, subscriber count, message count, and USDC revenue.
- Read network totals and wallet token balances on Arbitrum Sepolia.
- List subscriptions and review recent message delivery and USDC spending.
- Classify subscription activity as stable, moderate, significant, or unknown.

Wallet-backed capabilities include subscribing, unsubscribing, registering a first-party publisher, and publishing payloads through the DataStream contract. `byte_query_fact` asks a registered fact-oracle publisher for a signed answer with citation URLs, but it times out if no suitable publisher is actively broadcasting. `byte_buy_data` returns the purchased data and settlement transaction hash inline.

## Limitations and notes

Arbitrum Sepolia subscription and publishing functionality is testnet-based, while x402 buying uses real Base-mainnet USDC. The fact-oracle response is not a truth guarantee, and attestation verification does not validate the correctness of the underlying content. Before acting on BYTE-sourced bytes, use `byte_verify_payload`; a failed verification means the bytes should not be used.

The server does not display the Base-mainnet USDC balance spent by `byte_buy_data` when using its Arbitrum Sepolia balance tool. The README also notes that PayPerByte v1 publishers are first-party and unstaked, and that mainnet operation for the subscription layer is gated on an external security audit.

_Full upstream README: https://allmcps.com/mcp/0rkz-byte-mcp-server/readme_

