Zcash MCP

Servidor MCP para Zcash con 22 herramientas para transacciones blindadas, verificación de atestaciones y gestión de carteras

Documentación

zcash-mcp

npm MCP Registry downloads license

Recibos ZAP1 para agentes de Zcash: verifica flujos de trabajo sin confiar en el servidor.

ZAP1 es un carril de atestación y prueba para flujos de trabajo de Zcash. Frontier Compute mantiene la implementación de referencia de ZAP1.

Un envoltorio te hace confiar en el servidor. ZAP1 hace que el servidor sea innecesario de confiar.

Regla principal: observa el estado, delimita la afirmación, hashea la evidencia, emite un recibo, verifica después.

MCP es la forma estándar para que los agentes de IA llamen a herramientas externas. zcash-mcp expone la capa de atestación de ZAP1 para agentes que necesitan recibos verificables alrededor de flujos de trabajo de Zcash: crea hojas de atestación ZAP1, consulta el estado del ancla, y verifica recibos de prueba.

Este no es un MCP de billetera completo. El escaneo de saldos, la custodia de claves privadas, el manejo de semillas, la firma de PCZT, la construcción de gastos blindados y la sincronización de billetera con lightwalletd o Zaino son trabajo complementario de la capa de billetera, no el alcance de este servidor.

Por qué ZAP1

Los MCP de billetera pueden mover valor. ZAP1 prueba el flujo de trabajo alrededor del valor, y la contraparte puede verificar la prueba sin confiar en Frontier.

Los servidores de herramientas exponen lo que un backend dice en este momento. ZAP1 produce un recibo que otra parte puede verificar después desde el esquema, el material de prueba y el ancla de Zcash.

ZAP1 es el carril de prueba para flujos de trabajo de agentes de Zcash:

  1. attest: crea una hoja de evento tipada.
  2. anchor: compromete hojas en una raíz Merkle anclada a Zcash.
  3. prove: devuelve un paquete de recibo para una hoja.
  4. verify: permite que otra parte verifique el recibo sin confiar en el agente original.

Los sistemas de agentes necesitan más que un pago o una consulta de transacción. Necesitan un recibo que otro agente, usuario, auditor o servicio pueda verificar después:

  • qué evento se afirmó
  • qué agente o flujo de trabajo lo afirmó
  • qué hoja ZAP1 lo registra
  • qué raíz Merkle lo incluye
  • qué transacción de Zcash ancló esa raíz
  • cómo verificar la prueba sin confiar en el agente original

Ese es el carril para este servidor. Da a los agentes de Zcash una capa de recibos que puede ubicarse junto a cualquier billetera, firmante, sistema de custodia, pila lightwalletd, pila Zaino, o flujo de pago específico de la aplicación.

Consulta Carril de Prueba ZAP1 para el límite de categoría, el modelo de recibo, el patrón de integración y los rechazos del equipo rojo. Consulta Conformidad ZAP1 para el contrato de recibo que los agentes e integraciones deberían satisfacer. Consulta Integración de Recibos de Billetera para el patrón de traspaso de acciones de billetera. Consulta Recibos de Carril Externo para solicitudes genéricas de recibos de acciones externas, y Perfiles de Divulgación de Recibos para formas de paquetes públicas, de contraparte, de auditor, de subvención, de cumplimiento e internas.

Límite de Capacidad

La herramienta zcash_capability_manifest da a los agentes un mapa de alcance legible por máquina:

  • cubierto aquí: recibos ZAP1, atestaciones de ciclo de vida, verificación de pruebas, estado del ancla, decodificación de memos y contexto público de la cadena
  • excluido aquí: custodia, manejo de semillas, escaneo de saldos, firma de PCZT, construcción de gastos blindados y sincronización de servidor de billetera
  • regla de composición: usa este servidor antes o después de acciones de la capa de billetera para crear, consultar y verificar recibos

Buenos ajustes:

  • recibos de acciones de agente
  • paquetes de prueba de pago y factura
  • recibos de acciones de billetera
  • recibos de acciones externas
  • eventos de ciclo de vida del operador
  • paquetes de prueba de subvención
  • paquetes de auditoría de cumplimiento
  • atestaciones de política y reputación
  • verificación pública de anclas para flujos de trabajo privados
  • traspasos entre agentes donde el receptor necesita prueba, no custodia

Malos ajustes:

  • mantener claves
  • escanear saldos de billetera
  • firmar PCZTs
  • transmitir gastos blindados
  • reemplazar un SDK de billetera

Flujo del Cliente

Usa zcash_receipt_template primero cuando estés integrando ZAP1 en un producto. Devuelve un flujo de trabajo listo para el cliente para el tipo de recibo que quieras:

  • agent_action: prueba que un agente realizó una acción nombrada con hashes de entrada y salida específicos
  • payment_receipt: vincula metadatos de factura o pago a una hoja ZAP1 y después prueba la inclusión bajo una raíz anclada
  • operator_lifecycle: registra despliegue, actualización, incidente, recuperación o estado de política como un evento de ciclo de vida verificable
  • policy_attestation: registra una decisión de política de un agente, servicio o flujo de trabajo como un evento verificable

Flujo esperado:

  1. Llama a zcash_capability_manifest para confirmar el límite de atestación.
  2. Llama a zcash_receipt_template para el caso de uso.
  3. Para acciones de billetera, llama a zap1_wallet_receipt_request para convertir el resultado de la billetera en argumentos attest_event solo de hash.
  4. Llama a attest_event para crear la hoja ZAP1 tipada.
  5. Llama a get_anchor_status para verificar si la hoja está anclada o en espera.
  6. Llama a verify_proof para verificar la inclusión en el árbol.
  7. Llama a zap1_prove_receipt para obtener un paquete de prueba de traspaso.

Comprobaciones de aceptación:

  • el recibo tiene un hash de hoja
  • la hoja se verifica bajo una raíz Merkle devuelta
  • los recibos v2 conservan cada posición de hermano y el leaf_count comprometido
  • la finalidad del ancla proviene de un artefacto de apertura de raíz verificado por separado, no solo de txid, altura o metadatos de estado
  • otro verificador puede repetir la verificación sin confiar en el agente original
  • no se enviaron claves privadas, semillas, PCZTs ni estado de escaneo de billetera a este servidor

Rechazos del equipo rojo:

  • tratar un URI de pago como prueba de pago
  • tratar una hoja no anclada como evidencia de liquidación final
  • tratar una cotización, ruta o hash de intención como evidencia de liquidación por sí sola
  • pedir a este servidor que firme, escanee saldos, recupere semillas o mantenga claves
  • mezclar afirmaciones de custodia en afirmaciones de recibo ZAP1
  • ocultar la distinción entre acción de billetera y verificación de recibo

ZAP1 verifica recibos ZAP1. No audita ni garantiza ninguna billetera externa, ruta, pago, puente, intercambio o sistema de liquidación referenciado por un recibo.

Herramientas

HerramientaQué hace
zcash_capability_manifestMapa de alcance legible por máquina para uso de agentes: superficies cubiertas, funciones de billetera excluidas y reglas de composición
zcash_conformance_checkValida solo la forma de un paquete de recibo v1 congelado; v1 no puede probar inclusión o confirmación de ancla
zcash_receipt_templateFlujo de trabajo de recibo listo para el cliente para acciones de agente, recibos de pago, eventos de ciclo de vida del operador y atestaciones de política
zap1_wallet_receipt_requestConvierte un resultado de acción de la capa de billetera en campos de solicitud de recibo ZAP1 solo de hash
zap1_attest_external_actionMapea evidencia de verificación externa delimitada en el contrato de escritura AGENT_ACTION de ZAP1 compatible y precalcula la hoja tipada esperada
zap1_verify_external_receiptValida la forma de recibo externo v1 heredado sin afirmar inclusión criptográfica o confirmación de ancla
zap1_verify_receipt_v2Verifica el paquete de prueba oficial v2 más el testigo AGENT_ACTION retenido, o un recibo de integración v2; la confirmación del ancla sigue siendo separada
zap1_extract_proof_artifactExtrae el artefacto de prueba portátil de un recibo ZAP1
zap1_check_anchor_freshness_at_heightCalcula la aritmética de profundidad a partir de alturas proporcionadas sin afirmar confirmación de cadena
zap1_verify_receipt_chainValida la forma de secuencia de recibo v1 heredada sin afirmar validez de prueba o ancla
zap1_compare_receipt_claimsCompara dos recibos ZAP1 para divergencia de afirmación, evidencia, evento y ancla
zap1_audit_event_logReproduce una secuencia de recibo contra una política de tipo de evento proporcionada por el llamador
attest_eventCrea una hoja de atestación ZAP1 tipada para anclaje posterior
verify_proofVerifica una prueba Merkle ZAP1
zap1_prove_receiptObtiene el paquete completo de prueba Merkle para un hash de hoja
get_anchor_historyTodos los anclajes de raíz Merkle ZAP1 con txids y alturas de bloque
get_anchor_statusEstado actual del árbol Merkle: raíz, hojas no ancladas, recomendación
get_statsEstadísticas del protocolo ZAP1: hojas, anclas, tipos
get_eventsEventos de atestación ZAP1 recientes con tipo, hash de billetera, hash de hoja
get_agent_statusResumen de atestación para un ID de agente ZAP1
zcash_identity_registerRegistra una identidad de agente mediante atestación AGENT_REGISTER
zcash_reputation_scoreObtiene datos de fianza del agente y cumplimiento de política como un objeto de reputación
decode_memoDecodifica cargas útiles de memo de Zcash: ZAP1 tipado, ZIP 302, texto, binario
zap1_create_receipt_invoiceCrea metadatos de recibo ZAP1 para un flujo de trabajo de pago externo
zap1_watch_receipt_invoiceConsulta el estado de recibo-factura hasta que se pague o se agote el tiempo
get_block_heightAltura actual de la cadena desde Zebra
lookup_transactionDatos de transacción en bruto por txid
zap1_verify_evmVerifica una prueba Merkle ZAP1 en cadena mediante contrato EVM

Instalación

npx @frontiercompute/zcash-mcp

O instala globalmente:

npm install -g @frontiercompute/zcash-mcp

Inicio Rápido

Agrega esto a tu configuración de MCP:

{
  "mcpServers": {
    "zcash": {
      "command": "npx",
      "args": ["@frontiercompute/zcash-mcp"]
    }
  }
}

Reinicia tu cliente y pide la altura de bloque actual de Zcash. Las herramientas de solo lectura no necesitan una clave API.

Obtén una clave de prueba para operaciones de escritura:

curl -s -X POST https://api.frontiercompute.cash/trial-key

Configuración

Variables de entorno:

VariablePredeterminadoDescripción
ZEBRA_RPC_URLhttp://127.0.0.1:8232Endpoint JSON-RPC del nodo Zebra
ZAP1_API_URLhttps://api.frontiercompute.cashAPI de atestación ZAP1
ZAP1_API_KEYningunoClave API para operaciones de escritura

Claude Desktop

Agrega a ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "zcash": {
      "command": "npx",
      "args": ["@frontiercompute/zcash-mcp"],
      "env": {
        "ZEBRA_RPC_URL": "http://127.0.0.1:8232",
        "ZAP1_API_KEY": "your-key-here"
      }
    }
  }
}

Cualquier Cliente MCP

El servidor se comunica a través de stdio usando JSON-RPC. Apunta tu cliente MCP al binario zcash-mcp.

Compilar desde el Código Fuente

git clone https://github.com/Frontier-Compute/zcash-mcp.git
cd zcash-mcp
npm ci
npm run build
node dist/index.js

Pruebas

La verificación fuera de línea cubre el servidor stdio compilado y una instalación limpia desde el tarball npm empaquetado:

npm run test:offline

La verificación en vivo alcanza un RPC de Zebra real y la API ZAP1:

ZEBRA_RPC_URL=http://127.0.0.1:8232 \
ZAP1_API_URL=http://127.0.0.1:3080 \
ZAP1_API_KEY=your-key-here \
npm run test:live

test:live impulsa el servidor MCP a través de stdio y ejercita la superficie de herramientas en vivo, no solo los endpoints HTTP subyacentes. Establece ZAP1_AGENT_ID si quieres que la verificación get_agent_status apunte a un agente desplegado específico.

GitHub Actions refleja esa división:

  • .github/workflows/offline-ci.yml ejecuta empaquetado determinista y verificaciones de protocolo de enlace MCP en cada push y pull request.
  • .github/workflows/live-e2e.yml ejecuta verificaciones en vivo respaldadas por secretos en main, en un horario y por despacho manual.

Dependencias

  • Un nodo Zebra en ejecución para consultas de cadena
  • La API ZAP1 para herramientas de atestación, prueba, ancla, evento y recibo
  • La decodificación de memos funciona localmente sin dependencias externas

Paquetes Relacionados

PaqueteQué hace
@frontiercompute/zcash-ikaFirma de Zcash y Bitcoin mediante Ika 2PC-MPC
@frontiercompute/openclaw-zap1Habilidad de OpenClaw para atestación ZAP1
@frontiercompute/zap1Cliente de atestación ZAP1
@frontiercompute/silo-zap1Atestación de agente Silo mediante ZAP1

Enlaces

Licencia

MIT