mcp-server-insumer

Verificación de tokens en cadena a través de 31 blockchains. 16 herramientas para atestaciones firmadas con ECDSA, códigos de descuento, descubrimiento de comerciantes y registro autónomo.

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, recibe 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 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 — ejecuta puntuación de confianza de comercio agéntico ERC-8183 en vivo sobre InsumerAPI. 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 — la clave aparece en línea.

Establécelo como INSUMER_API_KEY en tu configuración.

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

Opción D — Pago por llamada con x402 (sin clave)

En lugar de una clave, establece INSUMER_PAYMENT_KEY a una wallet Base desechable financiada con unos pocos dólares en 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.
  • Si tanto INSUMER_API_KEY como INSUMER_PAYMENT_KEY están establecidos, se usa la clave (créditos).

Lo que recibes

Cuando tu agente llama a insumer_attest, recibes 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 puro 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ántica 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 XRP nativas 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 portador 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 que lleva las mismas reclamaciones, 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 portadores JWT.

Verifica la respuesta

Tu agente recibe la atestación. Tu aplicación debe verificarla. Instala 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);
}

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.

Descubrimiento de claves (gratis)

HerramientaDescripción
insumer_jwksObtén el JWKS: cinco entradas sobre 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 cualquiera.

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 marco 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 hechos de confianza de wallet firmado con ECDSA. 45 comprobaciones base en 26 cadenas en 5 dimensiones (stablecoins, gobernanza, NFTs, staking, stablecoins institucionales — EURCV/USDCV/USDC/BENJI en Ethereum, Solana, XRPL, Stellar, Sui), hasta 50 comprobaciones en 28 cadenas en 9 dimensiones con wallets opcionales de Solana, XRPL, Bitcoin y Tron. 3 créditos (6 con merkle).
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. Obtención de bloques compartida, 5-8 veces más rápido. Éxito parcial admitido. 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). Amigable para agentes: sin correo necesario, la wallet remitente se convierte en la identidad de la clave. Una clave por wallet. Descuentos por volumen: $0.04–$0.02/llamada. Cadenas admitidas: 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 admitidas: Ethereum, Base, Polygon, Arbitrum, Optimism, BNB Chain, Avalanche, Solana, Bitcoin, Tron. No reembolsable. La primera compra registra la wallet remitente; las compras posteriores deben coincidir o incluir updateWallet: true.
insumer_confirm_paymentConfirma el pago en USDC para un código de descuento.

Incorporación de comercios (solo propietario)

HerramientaDescripción
insumer_create_merchantCrea un nuevo comercio. Recibe 100 créditos gratuitos.
insumer_merchant_statusObtén los detalles privados completos del comercio.
insumer_configure_tokensEstablece niveles de descuento por token.
insumer_configure_nftsEstablece descuentos para colecciones de NFTs.
insumer_configure_settingsEstablece modo de descuento, límite, pagos USDC.
insumer_publish_directoryPublica el comercio en el directorio público.
insumer_buy_merchant_creditsCompra créditos de verificación de comercio con USDC, USDT, BTC o USDT-TRC20. Descuentos por volumen: $0.04–$0.02/llamada. Solo propietario. No reembolsable. La primera compra registra la wallet remitente; las compras posteriores deben coincidir o incluir updateWallet: true.

Verificación de dominio (solo propietario)

HerramientaDescripción
insumer_request_domain_verificationSolicita un token de verificación para el dominio de un comercio. Devuelve el token y 3 métodos (TXT de DNS, metaetiqueta, subida de archivo).
insumer_verify_domainCompleta la verificación de dominio después de colocar el token. Los comercios verificados obtienen una insignia de confianza.

Integración de protocolo de comercio

HerramientaDescripción
insumer_acp_discountComprueba la elegibilidad de descuento en formato ACP de OpenAI/Stripe. Devuelve objetos de cupón y asignaciones por artículo. 1 crédito de comercio.
insumer_ucp_discountComprueba la elegibilidad de descuento en formato UCP de Google. Devuelve título, campo de extensión y matriz aplicada. 1 crédito de comercio.
insumer_validate_codeValida un código de descuento INSR-XXXXX. Devuelve validez, porcentaje de descuento, caducidad. 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)

Wallets de plataforma:

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

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

Manejo de errores rpc_failure

Si la API no puede alcanzar una o más fuentes de datos 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 un fallo de verificación. No lo trates como pass: false. Significa que la fuente de datos no estuvo 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 wallet 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 escribir 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