InsumerAPI

Autenticación de wallet para agentes de IA: envía una wallet blockchain y condiciones, recibe un sí o no firmado en 37 cadenas, nunca el saldo. Alojado en https://api.insumermodel.com/mcp (sin clave, 10 herramientas) o ejecútalo localmente con npx -y mcp-server-insumer (27 herramientas).

Servidor MCP alojado

npx add-mcp 'https://api.insumermodel.com/mcp'

Se instala en Claude Code, Codex, Cursor y más

Documentación

mcp-server-insumer

npm Glama License: MIT

Servidor MCP para InsumerAPI: infraestructura de acceso basado en condiciones. Envía una wallet y condiciones, obtén un booleano firmado en 37 cadenas. Sin exposición de saldos, sin identidad requerida. Cada resultado está firmado y es verificable offline contra las claves publicadas, y en cadenas EVM una prueba Merkle opcional permite al verificador comprobar el saldo contra el encabezado del bloque sin confiar en la API.

Permite a los agentes de IA (Claude Desktop, Cursor, Windsurf y cualquier cliente compatible con MCP) añadir acceso basado en condiciones a cualquier flujo de trabajo: verificar condiciones on-chain, descubrir comercios, generar códigos de descuento firmados e incorporar nuevos comercios.

En producción: AsterPay, una plataforma de pagos regulada, utiliza atestaciones de InsumerAPI en sus comprobaciones de confianza de comercio agéntico ERC-8183 en vivo. Caso de estudio.

También disponible como: LangChain (26 herramientas, PyPI) | ElizaOS (10 acciones, npm) | OpenAI GPT (GPT Store) | insumer-verify (verificación del lado del cliente, npm)

Guía completa de la API de verificación para agentes de IA: cubre las 37 cadenas, perfiles de confianza, protocolos de comercio y verificación de firmas.

Inicio rápido

Claude Desktop

Añade a tu claude_desktop_config.json:

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

Cursor / Windsurf

Añade a tu configuración de MCP:

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

Obtén una clave: sin registro, sin panel, sin contraseña

Tres vías, todas te dan una clave insr_live_... funcional en segundos con 100 lecturas/día y 10 créditos de verificación. Una clave gratuita por correo electrónico.

Opción A: deja que tu agente lo haga. Inicia el servidor sin clave. Tu agente de IA puede llamar a la herramienta insumer_setup con tu correo para generar una clave gratuita al instante. Añádela a tu configuración y reinicia.

Opción 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"}'

Opción C: navegador. Introduce tu correo en insumermodel.com y la clave aparece en línea.

Configúrala como INSUMER_API_KEY en tu configuración.

¿Ya tienes una clave? Gestiona el uso, recarga o mejora en insumermodel.com/developers/account/.

Opción D: pago por llamada con x402 (sin clave)

En lugar de una clave, configura INSUMER_PAYMENT_KEY con una wallet Base desechable financiada con unos pocos dólares de USDC. Las llamadas medidas (insumer_attest, insumer_wallet_trust, insumer_batch_wallet_trust) se pagan en línea mediante x402: el servidor solicita un precio, firma una autorización USDC EIP-3009 en Base y reintenta. Sin registro, sin créditos, sin panel.

{
  "mcpServers": {
    "insumer": {
      "command": "npx",
      "args": ["-y", "mcp-server-insumer"],
      "env": { "INSUMER_PAYMENT_KEY": "0x<throwaway-wallet-private-key>" }
    }
  }
}
  • Solo USDC en Base; la wallet necesita USDC pero no ETH (la liquidación es sin gas).
  • Cada llamada cuesta unos céntimos (atestación $0.05, confianza $0.15). Usa una wallet desechable dedicada financiada con una cantidad pequeña, nunca una wallet con fondos significativos.
  • Cada cotización se verifica antes de que la wallet firme. El servidor paga solo a la dirección receptora propia de InsumerAPI (0xAd982CB19aCCa2923Df8F687C0614a7700255a23), solo en USDC en Base, y nunca más del límite: $3.00 por llamada por defecto, el precio de la llamada más grande actual (un lote de confianza de 10 wallets con pruebas Merkle). Cualquier otra cosa se rechaza y no se firma nada. Configura INSUMER_MAX_PAYMENT_USDC para cambiar el límite, por ejemplo "0.25" si solo atestas. La llamada más barata cuesta $0.05, por lo que un límite inferior rechaza todas las llamadas de pago (el servidor avisa al iniciar). Un valor malformado desactiva el pago por llamada en lugar de volver al valor predeterminado.
  • Si tanto INSUMER_API_KEY como INSUMER_PAYMENT_KEY están configurados, se usa la clave (créditos).

Endpoint alojado (sin instalación)

El mismo servidor se ejecuta en https://api.insumermodel.com/mcp mediante HTTP streamable de MCP, para clientes que se conectan por URL: plugins de ChatGPT y conectores en modo desarrollador, conectores personalizados de claude.ai y plataformas de agentes alojadas que no pueden ejecutar un paquete npm. Pega la URL; no hay nada que configurar.

Es compartido y anónimo, por lo que sirve las diez herramientas que tienen sentido sin identidad del llamante (HOSTED_TOOLS: claves de firma, atestación, plantillas de cumplimiento, confianza de wallet y confianza por lotes, los directorios de comercios y tokens, la comprobación gratuita de descuentos, validación de códigos), y las herramientas medidas comparten una asignación gratuita diaria. Más allá de eso, una llamada se rechaza con una indicación aquí. Para tu propia asignación, gestión de claves y créditos, o las herramientas de comercios, ejecuta el paquete localmente con tu clave como se indicó.

Para alojar el servidor tú mismo, compílalo y ejecuta node build/http.js con INSUMER_API_KEY configurado (PORT, INSUMER_HOSTED_TOOLS y INSUMER_DAILY_CAP son opcionales), o incrústalo: createInsumerServer(options) desde la raíz del paquete devuelve un servidor configurado para cualquier transporte.

Lo que obtienes

Cuando tu agente llama a insumer_attest, obtienes una atestación firmada con 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
  }
}

El sig es una firma ECDSA P-256 (base64, P1363 r||s, 88 caracteres). El kid identifica la clave y selecciona los bytes firmados: insumer-attest-v2 firma "insumer.attestation.v2\n" + canonical_json({v: 2, id, pass, results, attestedAt}) (claves ordenadas en cada nivel); insumer-attest-v1 firma el JSON.stringify simple de {id, pass, results, attestedAt} en orden de inserción. Desde 2026-09-01 cada respuesta de atestación y confianza también incluye un acompañante post-cuántico, pqSig y pqKid (ML-DSA-65 sobre la etiqueta de dominio post-cuántico más la misma preimagen clásica que selecciona el kid), añadido junto a sig y kid sin modificarlos. El conditionHash es un SHA-256 de la lógica de condición exacta que se evaluó.

Sin saldos. Sin cantidades. Solo un verdadero/falso firmado criptográficamente.

Para condiciones XRPL, los resultados incluyen ledgerIndex, ledgerHash (hash de ledger validado) y trustLineState: { frozen: boolean } en lugar de blockNumber/blockTimestamp. Las condiciones nativas de XRP incluyen ledgerIndex y ledgerHash pero no trustLineState. Las líneas de confianza congeladas causan met: false.

Autenticación de Wallet (JWT)

Añade format: "jwt" a los parámetros de la herramienta insumer_attest para recibir la atestación como un token bearer JWT estándar:

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

La respuesta incluye un campo adicional jwt que contiene un JWT firmado con ES256, y junto a él un hermano pqJwt (un JWS compacto con alg ML-DSA-65 con las mismas afirmaciones, firmado bajo insumer-attest-pq1). El token jwt es verificable por cualquier biblioteca JWT estándar mediante el endpoint JWKS en GET /v1/jwks, lo que lo hace compatible con Kong, Nginx, Cloudflare Access, AWS API Gateway y otro middleware que acepte tokens bearer JWT.

Verifica la respuesta

Tu agente obtiene la atestación. Tu aplicación debe verificarla. Instala insumer-verify (también en PyPI para Python: pip install insumer-verify, mismas comprobaciones, mismos 27 vectores de prueba publicados):

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);
}

Esto reporta cinco veredictos independientes: firma ECDSA, integridad del hash de condición, frescura del bloque, caducidad de la atestación y el acompañante post-cuántico (insumer-verify 1.8.1+ lo reporta como verificado, refutado, ausente o no verificable). Cero dependencias en tiempo de ejecución, usa Web Crypto API.

Herramientas (27)

Configuración (gratis, sin autenticación)

HerramientaDescripción
insumer_setupGenera una clave API gratuita al instante. Toma un correo, devuelve una clave insr_live_... con 10 créditos. Sin tarjeta de crédito requerida.

Descubrimiento de claves (gratis)

HerramientaDescripción
insumer_jwksObtén el JWKS: cinco entradas en dos claves. La clave ECDSA P-256 bajo insumer-attest-v1, insumer-attest-v2 y insumer-trust-v2, seguida de la clave post-cuántica ML-DSA-65 bajo dos entradas AKP RFC 9964, insumer-attest-pq1 y insumer-trust-pq1. Coincide por el kid (o pqKid) en la respuesta, nunca por posición.

Verificación on-chain (cuesta créditos)

Los umbrales token_balance son cadenas decimales. Pasa threshold como "100", no como 100. Las claves creadas desde 2026-06-10 firman con kid: insumer-attest-v2, que preserva la precisión completa y rechaza un número JSON con un 400. La herramienta insumer_attest acepta un número o cadena y lo convierte a la cadena canónica; las claves insumer-attest-v1 más antiguas aceptan ambos.

HerramientaDescripción
insumer_attestVerifica condiciones on-chain (saldos de tokens, propiedad de NFTs, atestaciones EAS, identidad Farcaster, evm_view_call para funciones de vista booleanas arbitrarias, ratio_to_amount para límites de gasto de agente autoescalables y ratio_to_supply para reglas de participación en el suministro; las tres solo RPC EVM, más erc8004_agent para registro de agentes ERC-8004 y erc7710_delegation para validez de delegación del framework MetaMask, ambas en Base). Devuelve booleano firmado con ECDSA con kid, evaluatedCondition, conditionHash (SHA-256) y blockNumber/blockTimestamp. 1 crédito. proof: "merkle" opcional para pruebas de almacenamiento Merkle EIP-1186 (2 créditos).
insumer_compliance_templatesLista las plantillas de cumplimiento EAS disponibles (Verificaciones de Coinbase en Base, Gitcoin Passport en Optimism). Gratis.
insumer_wallet_trustGenera perfil de hecho de confianza de wallet firmado con ECDSA. 145 comprobaciones base en 27 cadenas en 9 dimensiones (stablecoins, gobernanza, NFTs, staking, stablecoins institucionales, tesoros tokenizados, depósitos de stablecoins, bitcoin envuelto, nombres), hasta 166 comprobaciones en 29 cadenas en 13 dimensiones con wallets opcionales de Solana, XRPL, Bitcoin y Tron (las wallets de Stellar y Sui se activan en filas dentro de las dimensiones base). Cada comprobación es una comprobación de presencia. El conditionSetVersion firmado (actualmente 2026-10) nombra la lista de comprobaciones; regístralo, nunca lo rechaces. 3 créditos (6 con merkle; la prima se reembolsa para cualquier fila que ninguna prueba de almacenamiento pueda cubrir).
insumer_batch_wallet_trustPerfiles de confianza por lotes para hasta 10 wallets. Cada objeto de wallet admite solanaWallet, xrplWallet, bitcoinWallet, tronWallet, stellarWallet y suiWallet opcionales. Obtenciones de bloque compartidas, 5-8 veces más rápido. Éxito parcial soportado. 3 créditos/wallet (6 con merkle).
insumer_verifyCrea código de descuento firmado (INSR-XXXXX, caducidad de 30 min) para una wallet en un comercio. 1 crédito de comercio.

Descubrimiento (gratis)

HerramientaDescripción
insumer_list_merchantsExplora el directorio de comercios. Filtra por token, estado de verificación.
insumer_get_merchantObtén el perfil público completo del comercio.
insumer_list_tokensLista todos los tokens y NFTs registrados. Filtra por cadena, símbolo, tipo.
insumer_check_discountCalcula el descuento para una wallet en un comercio.

Créditos y claves

HerramientaDescripción
insumer_buy_keyCompra una nueva clave API con USDC, USDT, BTC o USDT-TRC20 (sin autenticación requerida). Amigable para agentes: sin correo necesario, la wallet del remitente se convierte en la identidad de la clave. Una clave por wallet. Descuentos por volumen: $0.04–$0.02/llamada. Cadenas soportadas: Ethereum, Base, Polygon, Arbitrum, Optimism, BNB Chain, Avalanche, Solana, Bitcoin, Tron. No reembolsable.
insumer_creditsConsulta el saldo de créditos y el nivel.
insumer_buy_creditsCompra créditos de verificación con USDC, USDT, BTC o USDT-TRC20. Descuentos por volumen: $0.04–$0.02/llamada. Cadenas soportadas: Ethereum, Base, Polygon, Arbitrum, Optimism, BNB Chain, Avalanche, Solana, Bitcoin, Tron. No reembolsable. La primera compra registra la wallet del remitente; las compras posteriores deben coincidir o incluir updateWallet: true.
insumer_confirm_paymentConfirma el pago USDC para un código de descuento.

Incorporación de comercios (solo propietario)

HerramientaDescripción
insumer_create_merchantCrear nuevo comerciante. Recibe 100 créditos gratuitos.
insumer_merchant_statusObtener detalles privados completos del comerciante.
insumer_configure_tokensEstablecer niveles de descuento por token.
insumer_configure_nftsEstablecer descuentos para colecciones NFT.
insumer_configure_settingsEstablecer modo de descuento, límite, pagos USDC.
insumer_publish_directoryPublicar comerciante en el directorio público.
insumer_buy_merchant_creditsComprar créditos de verificación de comerciante con USDC, USDT, BTC o USDT-TRC20. Descuentos por volumen: $0.04–$0.02/llamada. Solo propietario. No reembolsable. La primera compra registra la billetera del remitente; las compras posteriores deben coincidir o incluir updateWallet: true.

Verificación de Dominio (solo propietario)

HerramientaDescripción
insumer_request_domain_verificationSolicitar un token de verificación para el dominio de un comerciante. Devuelve el token y 3 métodos (TXT de DNS, etiqueta meta, carga de archivo).
insumer_verify_domainCompletar la verificación de dominio después de colocar el token. Los comerciantes verificados obtienen una insignia de confianza.

Integración del Protocolo de Comercio

HerramientaDescripción
insumer_acp_discountVerificar elegibilidad de descuento en formato ACP de OpenAI/Stripe. Devuelve objetos de cupón y asignaciones por artículo. 1 crédito de comerciante.
insumer_ucp_discountVerificar elegibilidad de descuento en formato UCP de Google. Devuelve título, campo de extensión y matriz aplicada. 1 crédito de comerciante.
insumer_validate_codeValidar un código de descuento INSR-XXXXX. Devuelve validez, porcentaje de descuento, vencimiento. Gratis, sin autenticación.

Precios

Niveles: Gratis (100 lecturas/día, 10 créditos) | Pro $29/mes (1,000 créditos/mes, 10,000/día) | Enterprise $99/mes (5,000 créditos/mes, 100,000/día)

Descuentos por volumen: $5–$99 = $0.04/llamada (25 créditos/$1) · $100–$499 = $0.03 (33/$1, 25% de descuento) · $500+ = $0.02 (50/$1, 50% de descuento)

Billeteras de plataforma:

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

Cadenas de pago compatibles: Ethereum, Base, Polygon, Arbitrum, Optimism, BNB Chain, Avalanche, Solana, Bitcoin, Tron. Los tokens enviados en cadenas no compatibles no se pueden recuperar. Todas las compras son definitivas y no reembolsables. Precios completos →

Manejo de Errores de rpc_failure

Si la API no puede alcanzar una o más fuentes de datos de blockchain después de reintentos, los endpoints que producen atestaciones firmadas (insumer_attest, insumer_wallet_trust, insumer_batch_wallet_trust) devuelven ok: false con el código de error rpc_failure. Sin firma, sin JWT, sin créditos cobrados. Este es un error reintentable: el cliente MCP debe reintentar después de un breve retraso (2-5 segundos).

Importante: rpc_failure NO es una falla de verificación. No lo trate como pass: false. Significa que la fuente de datos no estaba disponible temporalmente y la API se negó a firmar un resultado no verificado.

Cadenas Compatibles (37)

31 cadenas EVM + Solana + XRP Ledger + Bitcoin + Tron + Stellar + Sui. Incluye Ethereum, Base, Polygon, Arbitrum, Optimism, BNB Chain, Avalanche, XDC, Robinhood Chain, Arc y 21 EVM más. Lista completa →

También Disponible Como

  • Habilidad de Claude Code: smithery skill add douglasborthwick/insumer-skill (Smithery · GitHub), para escribir autenticación de billetera en tus propios proyectos desde Claude Code. Este servidor MCP brinda al agente acceso en tiempo de ejecución a la API; insumer-skill ayuda a los desarrolladores a crear código de integración en tiempo de compilación. Superficies diferentes, misma primitiva.
  • Plugin de ElizaOS: @insumermodel/plugin-eliza (npm)
  • LangChain (Python): pip install langchain-insumer (PyPI)
  • OpenAI GPT: InsumerAPI Wallet Auth (GPT Store)
  • Verificador (JWKS sin conexión): npm install insumer-verify (npm, fuente)

Desarrollo

npm install
npm run build

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

Licencia

MIT