byte-mcp-server
Feeds de dados USDC por byte + oráculos para agentes de IA no Arbitrum. 14 ferramentas, payloads atestados por EIP-712, sem chaves de API, sem token. Servidor MCP para o catálogo da BYTE Library (18+ editoras próprias).
Documentação
Servidor MCP PayPerByte
Um servidor Model Context Protocol que dá a agentes de IA acesso direto ao PayPerByte — feeds de dados com atestação criptográfica e proveniência verificável para agentes de IA (o recibo X-BYTE-Attestation prova a integridade da entrega — estes são exatamente os bytes que o PayPerByte serviu e atestou sob o domínio BYTE Library — não que um publicador de dados independente os assinou, e não que os dados estejam corretos). Agentes descobrem feeds, pagam por chamada via x402 (liquidado em USDC na Base mainnet), ou assinam streams on-chain (testnet Arbitrum Sepolia). Toda resposta paga via x402 carrega um recibo EIP-712 PayloadAttestation (cabeçalho X-BYTE-Attestation) que o agente verifica antes de agir. Sem tokens, sem chaves de API, sem contas off-chain.
Dois trilhos — leia isto antes de configurar
PRIVATE_KEY.
- x402 pagamento por chamada (
byte_buy_data): Base mainnet (eip155:8453), USDC REAL. Feeds pagos liquidam dinheiro real — cada preço é cotado no desafio 402 e listado por feed em https://x402.payperbyte.io/feeds. Exemplo: o Merchant Screen Oracle retorna uma verificação assinada ALLOW/WARN/BLOCK sobre o domínio de um comerciante e endereço de pagamento, respaldada por uma atestação EIP-712 assinada sobre os bytes exatos da resposta, executada antes de um agente liquidar um pagamento x402 para ele. Autenticidade e integridade de entrega, não uma garantia de correção sobre o veredito em si — e sobre o domínio, endereço e preço que você fornece; ele não observa nem restringe o endereço para o qual você eventualmente liquida. Use uma carteira dedicada contendo apenas o que você pretende gastar.- Camada on-chain de assinar/publicar/consultar (contratos BYTE Library + indexador): testnet Arbitrum Sepolia (chain
421614), MockUSDC. A mainnet para esta camada é condicionada a uma auditoria de segurança externa. O domínio de assinatura da atestação EIP-712 permanece ancorado em421614independentemente de qual trilho você pagou.Um
PRIVATE_KEYatende a ambos os trilhos. Nunca reutilize uma chave que detenha fundos que você não pode gastar.
Início rápido
npx -y byte-mcp-server
Conecte-o ao seu cliente MCP (config do Claude Desktop abaixo), e então seu agente pode:
- Descobrir feeds: "Liste o catálogo PayPerByte" / "Busque publicadores de clima"
- Triar uma contraparte antes de pagá-la (x402, sem configuração): "Trie este domínio e endereço de pagamento antes de eu liquidar" → USDC real na Base mainnet pelo preço que o desafio 402 cotar, veredito assinado ALLOW/WARN/BLOCK do Merchant Screen Oracle com recibo de atestação
- Testar barato primeiro: "Obtenha o clima" / "Algum terremoto acima de M4 hoje?" → USDC real pelo preço listado de cada feed (https://x402.payperbyte.io/feeds), mesmo recibo de atestação em toda resposta — uma forma de baixo custo de ver verificar-antes-de-agir funcionando antes de gastar em um veredito
- Assinar um stream (testnet): "Assine-me o feed de terremotos" → aprova automaticamente MockUSDC para liquidação contínua na Arbitrum Sepolia
- Consultar um oráculo de fatos (testnet): publique uma pergunta EIP-712 assinada a um publicador de oráculo de fatos registrado para uma resposta assinada on-chain com citações — quando um publicador de oráculo de fatos estiver ativo (nenhum está transmitindo hoje; a ferramenta expira até que um se registre e transmita)
O catálogo ativo está em x402.payperbyte.io/feeds — feeds com atestação criptográfica e proveniência verificável em clima, mercados, código, segurança e conhecimento.
Verifique antes de agir (ForeSeal)
Veja todo o ciclo de verificar-antes-de-agir em um único comando — sem instalação, sem cadastro, sem carteira:
npx @foreseal/demo
Ele roda localmente (sem USDC real) e mostra um agente AGINDO sobre bytes genuínos e RECUSANDO quatro ataques — um byte adulterado, uma assinatura forjada, um recibo ausente, um domínio de assinatura bifurcado — em cerca de um segundo.
A mesma primitiva acompanha dois pacotes que você pode integrar à sua própria stack:
- Kit —
@payperbyte/sdk: o comprador verifica um recibo antes de agir. - Gate —
@foreseal/gate: um vendedor carimba um recibo verificável em qualquer endpoint x402.
Dois paradigmas: assinar vs. comprar
| Modo | Ferramenta | Trilho | Melhor para | Preço |
|---|---|---|---|---|
| Comprar (x402) | byte_buy_data | Base mainnet — USDC real | Necessidades pontuais (um único snapshot ou veredito para esta consulta do usuário) | Por feed, cotado no desafio 402; lista ativa com preços: https://x402.payperbyte.io/feeds |
| Assinar | byte_subscribe | Arbitrum Sepolia — MockUSDC testnet | Streams contínuos (toda atualização de clima, todo novo terremoto) | Por publicador, definido no schema on-chain do publicador — leia com byte_get_publisher |
Comprar é zero-configuração, pague-conforme-usar e ativo com liquidação real; assinar entrega toda transmissão na camada testnet auditada. Escolha pelo padrão de acesso.
Comprando um veredito (oráculo POST)
Feeds de dados GET precisam apenas de um feed. Qualquer feed cujo method inclua POST (lista ativa: https://x402.payperbyte.io/feeds) aceita a consulta como um body — byte_buy_data alterna a chamada de GET para POST automaticamente. Os oráculos de veredito — feeds que retornam um ALLOW/WARN/BLOCK assinado — são merchant-screen, address-reputation, sanctions-screen, pkg-verdict, reasoning-verdict:
// byte_buy_data tool call — screen a merchant/counterparty before settling
{
"feed": "merchant-screen",
"body": { "domain": "example.com", "address": "0x1234…abcd", "observed_price_atomic": "<atomic price the MERCHANT you are screening quoted you>" }
}
A resposta paga retorna o veredito assinado e um resultado inline de verificar-antes-de-agir sobre o recibo X-BYTE-Attestation:
{
"feed": "merchant-screen",
"paid": true,
"price": "$0.100000", // illustrative — the amount the 402 challenge quoted at buy time
"txHash": "0x…",
"data": { "answer": { "verdict": "ALLOW", "reasons": ["…"] }, "attestation": { "…": "…" } },
"verification": { "gatewayVerified": true, "hashMatch": true, "signerMatch": true,
"reason": "gateway delivery verified — these exact bytes were signed by the pinned gateway attester […receipt deadline note appended]" }
}
Aja somente quando verification.gatewayVerified === true — o recibo prova que o gateway entregou exatamente estes bytes, não que os dados estejam corretos. Outros corpos POST: address-reputation {domain,address}, sanctions-screen {address|name}, pkg-verdict {ecosystem,package[,version]}, reasoning-verdict {subject}. Omita body inteiramente para feeds de dados GET (clima, terremotos, …).
Ferramentas (15 no total)
Descoberta (somente leitura, sem carteira)
| Ferramenta | Descrição |
|---|---|
byte_search_publishers | Busque publicadores por tópico e ordem de classificação |
byte_list_feeds | Liste o catálogo de feeds ativo com preços e frequências |
byte_get_publisher | Informações on-chain de um publicador (status, assinantes, mensagens, receita em USDC, schema) |
byte_get_network_stats | Estatísticas da rede: publicadores, mensagens, taxas totais liquidadas |
byte_check_subscription | subscriber está assinando publisher? |
byte_list_my_subscriptions | Todas as assinaturas ativas de uma carteira — mensagens dos últimos 7d/30d + gasto em USDC |
byte_subscription_health | Sinal de deriva de conteúdo de um publicador: estável / moderado / significativo / desconhecido |
byte_get_token_balances | Saldos de USDC + ETH na Arbitrum Sepolia |
byte_verify_payload | Verificar-antes-de-agir. Recalcule keccak256 dos bytes que seu agente recebeu e confira-os contra o PayloadAttestation EIP-712 on-chain do publicador — ancore com um expectedHash que você detém ou o txHash de liquidação (que também recupera o signatário e confirma que é o publicador nomeado). Se verified: false, não aja sobre os dados — ou os bytes diferem do que foi atestado, ou a verificação não foi possível (nenhuma atestação encontrada, signatário incompatível, ou nem expectedHash nem txHash fornecidos). O campo reason diz qual |
Assinar um stream (requer PRIVATE_KEY)
| Ferramenta | Descrição |
|---|---|
byte_subscribe | Assine o stream de um publicador. Agrupa automaticamente approve(max) em USDC a menos que skipAllowance: true (fecha uma armadilha de falha de pagamento silenciosa onde o caminho de pulo de permissão do contrato entregava dados com amount=0) |
byte_unsubscribe | Cancele a assinatura — tem efeito no próximo bloco |
byte_register_publisher | Registre-se como publicador de dados (schema + registro on-chain). v1 é somente primeira parte; stake = 0 |
byte_publish_data | Publique um payload para um assinante via DataStream (liquida taxa em USDC). Veja o aviso de migração acima sobre r2 |
Comprar sob demanda (requer PRIVATE_KEY)
| Ferramenta | Descrição |
|---|---|
byte_buy_data | Compre um pacote de qualquer feed via gateway x402 — USDC real na Base mainnet. Sem assinatura, sem permissão. Assina transferWithAuthorization EIP-3009 contra o desafio 402; o facilitador liquida on-chain. Retorna os dados + hash da tx inline |
byte_query_fact | Faça uma pergunta a um publicador de oráculo de fatos slashable. Requisição EIP-712 assinada (vincula a consulta à sua carteira para que consultas vazadas não queimem seu escrow); a resposta é transmitida on-chain para seu endereço com citações. Requer um publicador de oráculo de fatos ativo — nenhum está transmitindo hoje, então a chamada expira até que um se registre. |
Configuração
Claude Desktop
Edite ~/.config/claude/claude_desktop_config.json (Linux) ou ~/Library/Application Support/Claude/claude_desktop_config.json (macOS):
{
"mcpServers": {
"payperbyte": {
"command": "npx",
"args": ["-y", "byte-mcp-server"],
"env": {
"PRIVATE_KEY": "0x...",
"RPC_URL": "https://sepolia-rollup.arbitrum.io/rpc"
}
}
}
}
PRIVATE_KEY é opcional — ferramentas somente leitura funcionam sem ele. Adicione-o para habilitar assinar, publicar, comprar e consultar.
Claude Code
claude mcp add payperbyte -- npx -y byte-mcp-server
Variáveis de ambiente
| Variável | Obrigatória | Padrão | Descrição |
|---|---|---|---|
PRIVATE_KEY | apenas para ferramentas de escrita/compra/consulta | — | Chave EOA. Assina USDC real da Base mainnet para byte_buy_data e txs testnet para assinar/publicar/consultar — use uma carteira dedicada |
RPC_URL | não | https://sepolia-rollup.arbitrum.io/rpc | RPC da Arbitrum Sepolia (a camada on-chain de leitura/assinatura) |
INDEXER_URL | não | https://feeds.payperbyte.io | API do indexador PayPerByte |
BYTE_GATEWAY_URL | não | https://x402.payperbyte.io | URL base do gateway x402 (usado por byte_buy_data) |
BYTE_GATEWAY_ATTESTER | não | atestador atual do gateway (0xB48CCc9e3ab67041e3b5D09700138E45cda6AeA8, rotacionado em 2026-08-19) | Endereço do atestador byte_buy_data contra o qual o recibo de entrega é fixado. Se o gateway rotacionar antes de este pacote atualizar, defina-o para o novo receipt.attester de /.well-known/agent.json — um pin desatualizado fecha-falha compras APÓS a liquidação do pagamento |
MAX_PAYMENT_USDC | não | — (sem limite) | Limite de gasto no servidor para byte_buy_data, em USDC decimal (ex.: 0.25). Quando definido, qualquer cotação 402 acima do limite é recusada antes da assinatura; não definido significa sem limite — uma carteira fina dedicada permanece como salvaguarda rígida |
Rede
Dois trilhos, declarados honestamente:
- Trilho de pagamento x402 (
byte_buy_data): Base mainnet (eip155:8453). Feeds pagos liquidam USDC real através do gateway em x402.payperbyte.io; cada 200 pago retorna um recibo EIP-712X-BYTE-Attestationsobre os bytes exatos da resposta. - Camada on-chain (assinaturas, transmissões, escrow de oráculo de fatos, indexador): Arbitrum Sepolia (chain
421614). A mainnet para os contratos BYTE Library é condicionada a uma auditoria de segurança externa. O domínio de assinatura EIP-712PayloadAttestationestá ancorado em421614independentemente do trilho de pagamento.
Endereços de contrato são fixados na configuração incluída; o release npm acompanha padrões prontos para uso. Sem token.
Desenvolvimento
git clone https://github.com/0rkz/byte-mcp-server.git
cd byte-mcp-server
npm install
npm run build && npm start
Licença
MIT — veja LICENSE.
Kit inicial
Kit pago opcional ($39): o kit de agente comprador — um agente que compra e verifica feeds, com configuração pronta para Claude Desktop / Claude Code / Cursor e uma chamada gratuita de 30 minutos de prontidão incluída. Os pacotes npm são e permanecem MIT gratuitos — o kit vende a configuração montada.
Links
- payperbyte.io — página inicial do PayPerByte
- x402.payperbyte.io/feeds — catálogo de feeds ativo
- Model Context Protocol — especificação MCP
- MCP TypeScript SDK
- gold-402 — diretório curado de serviços x402 ativos (PayPerByte está listado)