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
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_KEYquantoINSUMER_PAYMENT_KEYestiverem 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)
| Ferramenta | Descrição |
|---|---|
insumer_setup | Gere 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)
| Ferramenta | Descrição |
|---|---|
insumer_jwks | Obtenha 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_balancesão strings decimais. Passethresholdcomo"100", não100. Chaves criadas a partir de 2026-06-10 assinam comkid: insumer-attest-v2, que preserva precisão total e rejeita um número JSON com um400. A ferramentainsumer_attestaceita um número ou string e converte para a string canônica; chavesinsumer-attest-v1mais antigas aceitam ambos.
| Ferramenta | Descrição |
|---|---|
insumer_attest | Verifique 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_templates | Liste modelos de conformidade EAS disponíveis (Verificações Coinbase na Base, Gitcoin Passport na Optimism). Gratuito. |
insumer_wallet_trust | Gere 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_trust | Perfis 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_verify | Crie 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)
| Ferramenta | Descrição |
|---|---|
insumer_list_merchants | Navegue pelo diretório de comerciantes. Filtre por token, status de verificação. |
insumer_get_merchant | Obtenha perfil público completo do comerciante. |
insumer_list_tokens | Liste todos os tokens e NFTs registrados. Filtre por blockchain, símbolo, tipo. |
insumer_check_discount | Calcule desconto para uma carteira em um comerciante. |
Créditos e Chaves
| Ferramenta | Descrição |
|---|---|
insumer_buy_key | Compre 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_credits | Verifique saldo de créditos e nível. |
insumer_buy_credits | Compre 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_payment | Confirme pagamento USDC para um código de desconto. |
Integração de Comerciantes (somente proprietário)
| Ferramenta | Descrição |
|---|---|
insumer_create_merchant | Crie novo comerciante. Recebe 100 créditos gratuitos. |
insumer_merchant_status | Obtenha detalhes privados completos do comerciante. |
insumer_configure_tokens | Defina níveis de desconto por token. |
insumer_configure_nfts | Defina descontos para coleções de NFT. |
insumer_configure_settings | Defina modo de desconto, limite, pagamentos USDC. |
insumer_publish_directory | Publique comerciante no diretório público. |
insumer_buy_merchant_credits | Compre 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)
| Ferramenta | Descrição |
|---|---|
insumer_request_domain_verification | Solicite 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_domain | Complete 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
| Ferramenta | Descrição |
|---|---|
insumer_acp_discount | Verifique elegibilidade de desconto no formato OpenAI/Stripe ACP. Retorna objetos de cupom e alocações por item. 1 crédito de comerciante. |
insumer_ucp_discount | Verifique elegibilidade de desconto no formato Google UCP. Retorna título, campo de extensão e array aplicado. 1 crédito de comerciante. |
insumer_validate_code | Valide 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