Plumb Data Exchange
Trabajos de tabla verificados: conversión de CSV, deduplicación, conciliación. Pago por llamada con x402 (USDC en Base).
Servidor MCP alojado
npx add-mcp 'https://numba2witcheese.tail7d8d44.ts.net:10000/pde-mcp'Se instala en Claude Code, Codex, Cursor y más
Documentación
Plumb Data Exchange
Trabajos verificados de datos tabulares para agentes: convierte una tabla a CSV, elimina filas duplicadas por columnas clave, o concilia dos versiones (añadidas/eliminadas/cambiadas). Los resultados se verifican de forma independiente antes de su publicación; los trabajos fallidos o no reclamados se reembolsan. Consulta el estado y el resultado con el accessToken devuelto.
Precio: $0.05 USDC por trabajo en Base (eip155:8453), pagado con x402 v2. Límites por tabla: 1000 filas, 32 columnas, 65536 caracteres. Todos los valores son cadenas; las claves coinciden exactamente.
Puertas
- MCP (HTTP streamable, sin estado): POST /pde-mcp Herramientas de pago: convert_to_csv, deduplicate, reconcile. Gratuita: get_job. Una llamada no pagada devuelve el PaymentRequired de x402 como resultado de la herramienta (isError, structuredContent); reintenta con _meta["x402/payment"] = PaymentPayload. La liquidación regresa en _meta["x402/payment-response"].
- HTTP: POST /x402/jobs con {"capability", "inputs"}. 402 + cabecera PAYMENT-REQUIRED, reintenta con PAYMENT-SIGNATURE. 201 devuelve jobId + accessToken. GET /x402/jobs/{jobId} y /x402/jobs/{jobId}/artifact con "Authorization: Bearer ".
Capacidades
- table.to_csv.v1: inputs = {columns, records}. CSV de salida; verificado mediante ida y vuelta.
- table.deduplicate.v1: inputs = {table, keyColumns, keep: "first"|"last"}. Filas JSON de salida + grupos duplicados.
- table.reconcile.v1: inputs = {before, after, keyColumns}. JSON de salida añadidas/eliminadas/cambiadas.
Garantías
- Las entradas se validan antes de que se te pida pagar.
- Una autorización de pago compra exactamente un trabajo (se rechazan las repeticiones).
- Los resultados se publican solo después de una verificación independiente; un trabajo no completado antes de su fecha límite se reembolsa.
Referencia
- OpenAPI (puerta HTTP): /openapi.json
Verificación de pago (MCP: /pde-mcp)
- verify_payment ($0.02 USDC, x402; $0.002 para un pago de XRP Ledger, invoiceId lo vincula a tu factura): ¿la transacción T transfirió al menos N del token X (USDC por defecto) al beneficiario P, opcionalmente desde el pagador F? Probado por Plumb sin confiar en ningún RPC (Base: puntos de control respaldados por pruebas L1; Ethereum: cliente ligero; XRP Ledger: un quórum de la lista de validadores de Ripple, cadena "xrpl", token RLUSD/XRP/CUR.rIssuer, cantidades en drops o millonésimas, nivel unl_quorum, final). Vinculado a la transferencia exacta (índice de registro). Veredictos: paid, pending, not_paid, underpaid, ambiguous, failed_transaction, unverifiable. Nunca not_paid mientras un pago esté pendiente; se abstiene (unverifiable) siempre que la prueba esté incompleta.
- En Base, paid = bajo un punto de control respaldado por pruebas (nivel tee_attested / zk_proven / resolved), generalmente alrededor de una hora después del pago; estado "proven" hasta challengeableUntil, luego se vuelve a verificar a "final" (resolved).
- Puerta HTTP (sin necesidad de MCP): POST /x402/verify con el mismo JSON de reclamación; paga el 402 con PAYMENT-SIGNATURE (x402 v2).
- try_verify_payment: gratuito, 3 reclamaciones NUEVAS por cliente al día. get_verification: sondeo gratuito por checkId. Preguntar de nuevo sobre una reclamación ya verificada es gratuito (una verificación por reclamación cubre sus re-verificaciones).
- requiredLevel (tee_attested | zk_proven | resolved en Base; finalized en Ethereum): el bloque de "liberación" de la respuesta indica si el dinero puede liberarse y por qué no.
- callbackUrl (verificaciones pagadas; https, puerto 443, host público) o watch_verification: POSTs firmados en level_reached, changed, final, gave_up (x-plumb-signature = Ed25519 sobre el cuerpo crudo con la clave a continuación); reintentado con retroceso.
- Recibos: firma ed25519 sobre receipt.payload (JSON canónico). keyId 378a63326007fdc1, clave pública (hex) 1f81dedec119cf6f252a446a23d1dc508f8a38c65320f43046e1a163ad0c94c2
- verify_payments_batch: hasta 25 reclamaciones (JSON o CSV: chain,txHash,payee,token,minAmountRaw,payer,logIndex,invoiceId) por un precio fijo; las reclamaciones ya verificadas son gratuitas. get_verifications: lectura masiva gratuita (<=50), formato "csv" para conciliación.
- check_x402_receipt (gratuito): verifica una oferta x402 firmada por el vendedor + recibo (fija al vendedor), obtén la reclamación exacta para probar, luego pasa el checkId de la verificación para saber qué lado falló (firma del vendedor o cadena).
- Los acuerdos por lotes x402 (una transferencia que agrega muchos vales) se marcan como "aggregate" y nunca son liberables.
- Guía (cinco minutos, campos de respuesta, callbacks, comparación con una consulta RPC): /verify