mcp-server-insumer

Verificação de tokens on-chain em 31 blockchains. 16 ferramentas para atestações assinadas com ECDSA, códigos de desconto, descoberta de comerciantes e integração autônoma.

Documentação

mcp-server-insumer

npm Glama License: MIT

Servidor MCP para InsumerAPI: infraestrutura de acesso baseado em condições. Envie uma carteira e condições, receba um booleano assinado em 37 blockchains. Nenhum saldo é exposto, nenhuma identidade é exigida. Cada resultado é assinado e verificável offline contra as chaves publicadas e, em blockchains EVM, uma prova Merkle opcional permite que o verificador confira o saldo contra o cabeçalho do bloco sem confiar na API.

Permite que agentes de IA (Claude Desktop, Cursor, Windsurf e qualquer cliente compatível com MCP) adicionem acesso baseado em condições a qualquer fluxo de trabalho — verifique condições on-chain, descubra comerciantes, gere códigos de desconto assinados e integre novos comerciantes.

Em produção: AsterPay — uma stack de pagamentos regulamentada — executa pontuação de confiança de comércio agêntico ERC-8183 em produção na InsumerAPI. Estudo de caso.

Também disponível como: LangChain (26 ferramentas, PyPI) | ElizaOS (10 ações, npm) | OpenAI GPT (GPT Store) | insumer-verify (verificação no lado do cliente, npm)

Guia completo da API de Verificação de Agentes de IA: cobre todas as 37 blockchains, perfis de confiança, protocolos de comércio e verificação de assinaturas.

Início Rápido

Claude Desktop

Adicione ao seu claude_desktop_config.json:

{
  "mcpServers": {
    "insumer": {
      "command": "npx",
      "args": ["-y", "mcp-server-insumer"],
      "env": {
        "INSUMER_API_KEY": "insr_live_..."
      }
    }
  }
}

Cursor / Windsurf

Adicione às suas configurações do MCP:

{
  "insumer": {
    "command": "npx",
    "args": ["-y", "mcp-server-insumer"],
    "env": {
      "INSUMER_API_KEY": "insr_live_..."
    }
  }
}

Obtenha uma chave — sem cadastro, sem painel, sem senha

Três caminhos, todos fornecem uma chave insr_live_... funcional em segundos com 100 leituras/dia e 10 créditos de verificação. Uma chave gratuita por e-mail.

Opção A — Deixe seu agente fazer isso: Inicie o servidor sem chave. Seu agente de IA pode chamar a ferramenta insumer_setup com seu e-mail para gerar uma chave gratuita instantaneamente. Adicione-a à sua configuração e reinicie.

Opção B — Terminal:

curl -s -X POST https://api.insumermodel.com/v1/keys/create \
  -H "Content-Type: application/json" \
  -d '{"email": "you@example.com", "appName": "MCP Server", "tier": "free"}'

Opção C — Navegador: Digite seu e-mail em insumermodel.com — a chave aparece inline.

Defina-a como INSUMER_API_KEY na sua configuração.

Já tem uma chave? Gerencie o uso, faça recargas ou faça upgrade em insumermodel.com/developers/account/.

Opção D — Pague por chamada com x402 (sem chave alguma)

Em vez de uma chave, defina INSUMER_PAYMENT_KEY como uma carteira Base descartável financiada com alguns dólares em USDC. Chamadas medidas (insumer_attest, insumer_wallet_trust, insumer_batch_wallet_trust) são então pagas inline via x402 — o servidor solicita um preço, assina uma autorização USDC EIP-3009 na Base e tenta novamente. Sem cadastro, sem créditos, sem painel.

{
  "mcpServers": {
    "insumer": {
      "command": "npx",
      "args": ["-y", "mcp-server-insumer"],
      "env": { "INSUMER_PAYMENT_KEY": "0x<throwaway-wallet-private-key>" }
    }
  }
}
  • Somente USDC na Base; a carteira precisa de USDC, mas não de ETH (a liquidação é sem gás).
  • Cada chamada gasta alguns centavos (atestação $0,05, confiança $0,15). Use uma carteira descartável dedicada financiada com um valor pequeno — nunca uma carteira com fundos significativos.
  • Se tanto INSUMER_API_KEY quanto INSUMER_PAYMENT_KEY estiverem definidos, a chave (créditos) é usada.

O Que Você Recebe de Volta

Quando seu agente chama insumer_attest, você recebe uma atestação assinada com ECDSA:

{
  "ok": true,
  "data": {
    "attestation": {
      "id": "ATST-A7C3E1B2D4F56789",
      "pass": true,
      "results": [
        {
          "condition": 0,
          "met": true,
          "label": "USDC >= 1000 on Ethereum",
          "type": "token_balance",
          "chainId": 1,
          "evaluatedCondition": {
            "chainId": 1,
            "contractAddress": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
            "operator": "gte",
            "threshold": "1000",
            "type": "token_balance"
          },
          "conditionHash": "0x8a3b...",
          "blockNumber": "0x1799043",
          "blockTimestamp": "2026-03-26T20:04:23.000Z"
        }
      ],
      "passCount": 1,
      "failCount": 0,
      "attestedAt": "2026-02-28T12:34:57.000Z",
      "expiresAt": "2026-02-28T13:04:57.000Z"
    },
    "sig": "NgA7BO8SAildiTrgIQY2UyXsBrySZknkP85pT2Zqv8Hq0KsCsB8DRFVMkXgnXtCXrbb726Is6k4LyyBYU+f/Pw==",
    "kid": "insumer-attest-v2",
    "pqSig": "<base64 ML-DSA-65 signature>",
    "pqKid": "insumer-attest-pq1"
  },
  "meta": {
    "version": "1.0",
    "timestamp": "2026-02-28T12:34:57.000Z",
    "creditsRemaining": 99,
    "creditsCharged": 1
  }
}

O sig é uma assinatura ECDSA P-256 (base64, P1363 r||s, 88 caracteres). O kid identifica a chave e seleciona os bytes assinados: insumer-attest-v2 assina "insumer.attestation.v2\n" + canonical_json({v: 2, id, pass, results, attestedAt}) (chaves ordenadas em todos os níveis); insumer-attest-v1 assina o JSON.stringify puro de {id, pass, results, attestedAt} em ordem de inserção. Desde 2026-09-01, toda resposta de atestação e confiança também carrega um acompanhante pós-quântico, pqSig e pqKid (ML-DSA-65 sobre a tag de domínio pós-quântico mais o mesmo preimage clássico que o kid seleciona), adicionados ao lado de sig e kid sem alterá-los. O conditionHash é um SHA-256 da lógica exata de condição que foi avaliada.

Sem saldos. Sem valores. Apenas um verdadeiro/falso criptograficamente assinado.

Para condições XRPL, os resultados incluem ledgerIndex, ledgerHash (hash de ledger validado) e trustLineState: { frozen: boolean } em vez de blockNumber/blockTimestamp. Condições XRP nativas incluem ledgerIndex e ledgerHash, mas não trustLineState. Linhas de confiança congeladas causam met: false.

Autenticação de Carteira (JWT)

Adicione format: "jwt" aos parâmetros da ferramenta insumer_attest para receber a atestação como um token de portador JWT padrão:

{
  "wallet": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
  "conditions": [ ... ],
  "format": "jwt"
}

A resposta inclui um campo adicional jwt contendo um JWT assinado com ES256 e, ao lado dele, um irmão pqJwt (um JWS compacto com alg ML-DSA-65 carregando as mesmas declarações, assinado sob insumer-attest-pq1). O token jwt é verificável por qualquer biblioteca JWT padrão via endpoint JWKS em GET /v1/jwks — tornando-o compatível com Kong, Nginx, Cloudflare Access, AWS API Gateway e outros middlewares que aceitam tokens de portador JWT.

Verifique a Resposta

Seu agente recebe a atestação. Seu aplicativo deve verificá-la. Instale insumer-verify:

npm install insumer-verify
import { verifyAttestation } from "insumer-verify";

// attestationResponse = the full API envelope {ok, data: {attestation, sig, kid, pqSig, pqKid}, meta}
// Do NOT pass attestationResponse.data — the function expects the outer envelope
const result = await verifyAttestation(attestationResponse, {
  jwksUrl: "https://insumermodel.com/.well-known/jwks.json",
  maxAge: 120, // reject if block data is older than 2 minutes
});

if (result.valid) {
  // Signature verified, condition hashes match, not expired
  const pass = attestationResponse.data.attestation.pass;
  console.log(`Attestation ${pass ? "passed" : "failed"} all conditions`);
} else {
  console.log("Verification failed:", result.checks);
}

Isso reporta cinco veredictos independentes: assinatura ECDSA, integridade do hash de condição, frescor do bloco, expiração da atestação e o acompanhante pós-quântico (insumer-verify 1.8.1+ o reporta como verificado, refutado, ausente ou não verificável). Zero dependências em tempo de execução, usa Web Crypto API.

Ferramentas (27)

Configuração (gratuita, sem autenticação)

FerramentaDescrição
insumer_setupGere uma chave de API gratuita instantaneamente. Aceita um e-mail, retorna uma chave insr_live_... com 10 créditos. Nenhum cartão de crédito necessário.

Descoberta de Chaves (gratuita)

FerramentaDescrição
insumer_jwksObtenha o JWKS: cinco entradas em duas chaves. A chave ECDSA P-256 sob insumer-attest-v1, insumer-attest-v2 e insumer-trust-v2, seguida pela chave pós-quântica ML-DSA-65 sob duas entradas AKP RFC 9964, insumer-attest-pq1 e insumer-trust-pq1. Corresponda pelo kid (ou pqKid) na resposta, nunca por posição.

Verificação On-Chain (custa créditos)

Limiares de token_balance são strings decimais. Passe threshold como "100", não 100. Chaves criadas a partir de 2026-06-10 assinam com kid: insumer-attest-v2, que preserva precisão total e rejeita um número JSON com um 400. A ferramenta insumer_attest aceita um número ou string e converte para a string canônica; chaves insumer-attest-v1 mais antigas aceitam ambos.

FerramentaDescrição
insumer_attestVerifique condições on-chain (saldos de tokens, propriedade de NFTs, atestações EAS, identidade Farcaster, evm_view_call para funções booleanas de visualização arbitrárias, ratio_to_amount para limites de gastos de agentes autoescaláveis e ratio_to_supply para regras de participação na oferta — todos os três somente EVM RPC, além de erc8004_agent para registro de agentes ERC-8004 e erc7710_delegation para validade de delegação de framework MetaMask, ambos na Base). Retorna booleano assinado com ECDSA com kid, evaluatedCondition, conditionHash (SHA-256) e blockNumber/blockTimestamp. 1 crédito. proof: "merkle" opcional para provas de armazenamento Merkle EIP-1186 (2 créditos).
insumer_compliance_templatesListe modelos de conformidade EAS disponíveis (Verificações Coinbase na Base, Gitcoin Passport na Optimism). Gratuito.
insumer_wallet_trustGere perfil de fato de confiança de carteira assinado com ECDSA. 45 verificações base em 26 blockchains em 5 dimensões (stablecoins, governança, NFTs, staking, stablecoins institucionais — EURCV/USDCV/USDC/BENJI em Ethereum, Solana, XRPL, Stellar, Sui), até 50 verificações em 28 blockchains em 9 dimensões com carteiras Solana, XRPL, Bitcoin e Tron opcionais. 3 créditos (6 com merkle).
insumer_batch_wallet_trustPerfis de confiança em lote para até 10 carteiras. Cada objeto de carteira suporta solanaWallet, xrplWallet, bitcoinWallet, tronWallet, stellarWallet e suiWallet opcionais. Buscas de bloco compartilhadas, 5-8x mais rápido. Sucesso parcial suportado. 3 créditos/carteira (6 com merkle).
insumer_verifyCrie código de desconto assinado (INSR-XXXXX, expiração em 30 min) para uma carteira em um comerciante. 1 crédito de comerciante.

Descoberta (gratuita)

FerramentaDescrição
insumer_list_merchantsNavegue pelo diretório de comerciantes. Filtre por token, status de verificação.
insumer_get_merchantObtenha perfil público completo do comerciante.
insumer_list_tokensListe todos os tokens e NFTs registrados. Filtre por blockchain, símbolo, tipo.
insumer_check_discountCalcule desconto para uma carteira em um comerciante.

Créditos e Chaves

FerramentaDescrição
insumer_buy_keyCompre uma nova chave de API com USDC, USDT, BTC ou USDT-TRC20 (sem autenticação necessária). Amigável para agentes: sem necessidade de e-mail, a carteira do remetente se torna a identidade da chave. Uma chave por carteira. Descontos por volume: $0,04–$0,02/chamada. Blockchains suportadas: Ethereum, Base, Polygon, Arbitrum, Optimism, BNB Chain, Avalanche, Solana, Bitcoin, Tron. Não reembolsável.
insumer_creditsVerifique saldo de créditos e nível.
insumer_buy_creditsCompre créditos de verificação com USDC, USDT, BTC ou USDT-TRC20. Descontos por volume: $0,04–$0,02/chamada. Blockchains suportadas: Ethereum, Base, Polygon, Arbitrum, Optimism, BNB Chain, Avalanche, Solana, Bitcoin, Tron. Não reembolsável. A primeira compra registra a carteira do remetente; compras subsequentes devem corresponder ou incluir updateWallet: true.
insumer_confirm_paymentConfirme pagamento USDC para um código de desconto.

Integração de Comerciantes (somente proprietário)

FerramentaDescrição
insumer_create_merchantCrie novo comerciante. Recebe 100 créditos gratuitos.
insumer_merchant_statusObtenha detalhes privados completos do comerciante.
insumer_configure_tokensDefina níveis de desconto por token.
insumer_configure_nftsDefina descontos para coleções de NFT.
insumer_configure_settingsDefina modo de desconto, limite, pagamentos USDC.
insumer_publish_directoryPublique comerciante no diretório público.
insumer_buy_merchant_creditsCompre créditos de verificação de comerciante com USDC, USDT, BTC ou USDT-TRC20. Descontos por volume: $0,04–$0,02/chamada. Somente proprietário. Não reembolsável. A primeira compra registra a carteira do remetente; compras subsequentes devem corresponder ou incluir updateWallet: true.

Verificação de Domínio (somente proprietário)

FerramentaDescrição
insumer_request_domain_verificationSolicite um token de verificação para o domínio de um comerciante. Retorna token e 3 métodos (DNS TXT, meta tag, upload de arquivo).
insumer_verify_domainComplete a verificação de domínio após colocar o token. Comerciantes verificados recebem um selo de confiança.

Integração de Protocolo de Comércio

FerramentaDescrição
insumer_acp_discountVerifique elegibilidade de desconto no formato OpenAI/Stripe ACP. Retorna objetos de cupom e alocações por item. 1 crédito de comerciante.
insumer_ucp_discountVerifique elegibilidade de desconto no formato Google UCP. Retorna título, campo de extensão e array aplicado. 1 crédito de comerciante.
insumer_validate_codeValide um código de desconto INSR-XXXXX. Retorna validade, percentual de desconto, expiração. Gratuito, sem autenticação.

Preços

Níveis: Gratuito (100 leituras/dia, 10 créditos) | Pro $29/mês (1.000 créditos/mês, 10.000/dia) | Enterprise $99/mês (5.000 créditos/mês, 100.000/dia)

Descontos por volume: $5–$99 = $0,04/chamada (25 créditos/$1) · $100–$499 = $0,03 (33/$1, 25% de desconto) · $500+ = $0,02 (50/$1, 50% de desconto)

Carteiras de plataforma:

  • EVM (USDC/USDT): 0xAd982CB19aCCa2923Df8F687C0614a7700255a23
  • Solana (USDC/USDT): 6a1mLjefhvSJX1sEX8PTnionbE9DqoYjU6F6bNkT4Ydr
  • Bitcoin: bc1qg7qnerdhlmdn899zemtez5tcx2a2snc0dt9dt0
  • Tron (USDT-TRC20): TC5yvwkAMakkXtUxYiu2Yn1xbBcwYuD6cn

Blockchains de pagamento suportadas: Ethereum, Base, Polygon, Arbitrum, Optimism, BNB Chain, Avalanche, Solana, Bitcoin, Tron. Tokens enviados em blockchains não suportadas não podem ser recuperados. Todas as compras são finais e não reembolsáveis. Preços completos →

Tratamento de Erros rpc_failure

Se a API não conseguir alcançar uma ou mais fontes de dados de blockchain após tentativas, endpoints que produzem atestações assinadas (insumer_attest, insumer_wallet_trust, insumer_batch_wallet_trust) retornam ok: false com código de erro rpc_failure. Sem assinatura, sem JWT, sem créditos cobrados. Este é um erro passível de nova tentativa — o cliente MCP deve tentar novamente após um pequeno atraso (2-5 segundos). Importante: rpc_failure NÃO é uma falha de verificação. Não o trate como pass: false. Isso significa que a fonte de dados estava temporariamente indisponível e a API recusou-se a assinar um resultado não verificado.

Chains Suportadas (37)

31 chains EVM + Solana + XRP Ledger + Bitcoin + Tron + Stellar + Sui. Inclui Ethereum, Base, Polygon, Arbitrum, Optimism, BNB Chain, Avalanche, XDC, Robinhood Chain, Arc e mais 21 EVM. Lista completa →

Também Disponível Como

  • Claude Code Skill: smithery skill add douglasborthwick/insumer-skill (Smithery · GitHub) — para escrever autenticação de carteira em seus próprios projetos diretamente do Claude Code. Este servidor MCP dá ao agente acesso em tempo de execução à API; insumer-skill ajuda desenvolvedores a criar código de integração em tempo de build. Superfícies diferentes, mesma primitiva.
  • ElizaOS Plugin: @insumermodel/plugin-eliza (npm)
  • LangChain (Python): pip install langchain-insumer (PyPI)
  • OpenAI GPT: InsumerAPI Wallet Auth (GPT Store)
  • Verifier (JWKS offline): npm install insumer-verify (npm, fonte)

Desenvolvimento

npm install
npm run build

# Test with MCP Inspector
npx @modelcontextprotocol/inspector node build/index.js

Licença

MIT