Zcash MCP

Servidor MCP para Zcash com 22 ferramentas para transações protegidas, verificação de atestados e gerenciamento de carteira

Documentação

zcash-mcp

npm MCP Registry downloads license

Recibos ZAP1 para agentes Zcash: verifique fluxos de trabalho sem confiar no servidor.

ZAP1 é um trilho de atestação e prova para fluxos de trabalho Zcash. A Frontier Compute mantém a implementação de referência do ZAP1.

Um wrapper faz você confiar no servidor. O ZAP1 torna o servidor desnecessário de confiar.

Regra central: observe o estado, limite a afirmação, faça hash das evidências, emita um recibo, verifique depois.

MCP é a forma padrão para agentes de IA chamarem ferramentas externas. zcash-mcp expõe a camada de atestação ZAP1 para agentes que precisam de recibos verificáveis em torno de fluxos de trabalho Zcash: crie folhas de atestação ZAP1, consulte o estado da âncora, e verifique recibos de prova.

Este não é um MCP de carteira completo. Varredura de saldo, custódia de chaves privadas, manipulação de sementes, assinatura PCZT, construção de gastos protegidos e sincronização de carteira lightwalletd ou Zaino são trabalhos complementares da camada de carteira, não o escopo deste servidor.

Por que ZAP1

MCPs de carteira podem mover valor. O ZAP1 prova o fluxo de trabalho em torno do valor, e a contraparte pode verificar a prova sem confiar na Frontier.

Servidores de ferramentas expõem o que um backend diz agora. O ZAP1 produz um recibo que outra parte pode verificar depois a partir do esquema, material de prova e âncora Zcash.

ZAP1 é o trilho de prova para fluxos de trabalho de agentes Zcash:

  1. attest: crie uma folha de evento tipada.
  2. anchor: comprometa folhas em uma raiz Merkle ancorada ao Zcash.
  3. prove: retorne um pacote de recibo para uma folha.
  4. verify: permita que outra parte verifique o recibo sem confiar no agente original.

Sistemas de agentes precisam de mais do que um pagamento ou uma consulta de transação. Eles precisam de um recibo que outro agente, usuário, auditor ou serviço possa verificar depois:

  • qual evento foi afirmado
  • qual agente ou fluxo de trabalho o afirmou
  • qual folha ZAP1 o registra
  • qual raiz Merkle o inclui
  • qual transação Zcash ancorou essa raiz
  • como verificar a prova sem confiar no agente original

Esse é o caminho para este servidor. Ele dá aos agentes Zcash uma camada de recibos que pode ficar ao lado de qualquer carteira, assinante, sistema de custódia, pilha lightwalletd, pilha Zaino, ou fluxo de pagamento específico de aplicação.

Veja ZAP1 Proof Rail para o limite de categoria, modelo de recibo, padrão de integração e rejeições de red-team. Veja ZAP1 Conformance para o contrato de recibo que agentes e integrações devem satisfazer. Veja Wallet Receipt Integration para o padrão de transferência de ações de carteira. Veja External Rail Receipts para solicitações genéricas de recibos de ações externas, e Receipt Disclosure Profiles para formatos de pacotes públicos, de contraparte, auditor, concessão, conformidade e internos.

Limite de Capacidade

A ferramenta zcash_capability_manifest dá aos agentes um mapa de escopo legível por máquina:

  • coberto aqui: recibos ZAP1, atestações de ciclo de vida, verificação de prova, estado de âncora, decodificação de memo e contexto público da cadeia
  • excluído aqui: custódia, manipulação de sementes, varredura de saldo, assinatura PCZT, construção de gastos protegidos e sincronização de servidor de carteira
  • regra de composição: use este servidor antes ou depois de ações da camada de carteira para criar, consultar e verificar recibos

Bons ajustes:

  • recibos de ações de agentes
  • pacotes de prova de pagamento e fatura
  • recibos de ações de carteira
  • recibos de ações externas
  • eventos de ciclo de vida do operador
  • pacotes de prova de concessão
  • pacotes de auditoria de conformidade
  • atestações de política e reputação
  • verificação pública de âncora para fluxos de trabalho privados
  • transferências entre agentes onde o receptor precisa de prova, não de custódia

Ajustes ruins:

  • manter chaves
  • varrer saldos de carteira
  • assinar PCZTs
  • transmitir gastos protegidos
  • substituir um SDK de carteira

Fluxo do Cliente

Use zcash_receipt_template primeiro ao integrar ZAP1 em um produto. Ele retorna um fluxo de trabalho pronto para o cliente para o tipo de recibo que você deseja:

  • agent_action: prove que um agente executou uma ação nomeada com hashes específicos de entrada e saída
  • payment_receipt: vincule metadados de fatura ou pagamento a uma folha ZAP1 e depois prove a inclusão sob uma raiz ancorada
  • operator_lifecycle: registre implantação, atualização, incidente, recuperação ou estado de política como um evento de ciclo de vida verificável
  • policy_attestation: registre uma decisão de política de agente, serviço ou fluxo de trabalho como um evento verificável

Fluxo esperado:

  1. Chame zcash_capability_manifest para confirmar o limite de atestação.
  2. Chame zcash_receipt_template para o caso de uso.
  3. Para ações de carteira, chame zap1_wallet_receipt_request para converter o resultado da carteira em argumentos attest_event apenas com hash.
  4. Chame attest_event para criar a folha ZAP1 tipada.
  5. Chame get_anchor_status para verificar se a folha está ancorada ou aguardando.
  6. Chame verify_proof para verificar a inclusão na árvore.
  7. Chame zap1_prove_receipt para buscar um pacote de prova de transferência.

Verificações de aceitação:

  • o recibo tem um hash de folha
  • a folha verifica sob uma raiz Merkle retornada
  • recibos v2 retêm cada posição de irmão e o leaf_count comprometido
  • a finalidade da âncora vem de um artefato de abertura de raiz verificado separadamente, não apenas de txid, altura ou metadados de status
  • outro verificador pode repetir a verificação sem confiar no agente original
  • nenhuma chave privada, semente, PCZT ou estado de varredura de carteira foi enviado a este servidor

Rejeições de red-team:

  • tratar um URI de pagamento como prova de pagamento
  • tratar uma folha não ancorada como evidência final de liquidação
  • tratar uma cotação, rota ou hash de intenção como evidência de liquidação por si só
  • pedir a este servidor para assinar, varrer saldos, recuperar sementes ou manter chaves
  • misturar alegações de custódia em alegações de recibo ZAP1
  • esconder a distinção entre ação de carteira e verificação de recibo

ZAP1 verifica recibos ZAP1. Ele não audita ou garante qualquer carteira externa, rota, pagamento, ponte, exchange ou sistema de liquidação referenciado por um recibo.

Ferramentas

FerramentaO que faz
zcash_capability_manifestMapa de escopo legível por máquina para uso do agente: superfícies cobertas, funções de carteira excluídas e regras de composição
zcash_conformance_checkValida apenas a forma de um pacote de recibo v1 congelado; v1 não pode provar inclusão ou confirmação de âncora
zcash_receipt_templateFluxo de trabalho de recibo pronto para o cliente para ações de agente, recibos de pagamento, eventos de ciclo de vida do operador e atestações de política
zap1_wallet_receipt_requestConverte um resultado de ação da camada de carteira em campos de solicitação de recibo ZAP1 apenas com hash
zap1_attest_external_actionMapeia evidências de verificação externa limitadas para o contrato de escrita AGENT_ACTION ZAP1 suportado e pré-computa a folha tipada esperada
zap1_verify_external_receiptValida a forma legada de recibo externo v1 sem afirmar inclusão criptográfica ou confirmação de âncora
zap1_verify_receipt_v2Verifica o pacote de prova oficial v2 mais a testemunha AGENT_ACTION retida, ou um recibo de integração v2; a confirmação de âncora permanece separada
zap1_extract_proof_artifactExtrai o artefato de prova portátil de um recibo ZAP1
zap1_check_anchor_freshness_at_heightCalcula aritmética de profundidade a partir de alturas fornecidas sem afirmar confirmação de cadeia
zap1_verify_receipt_chainValida a forma legada de sequência de recibo v1 sem afirmar validade de prova ou âncora
zap1_compare_receipt_claimsCompara dois recibos ZAP1 quanto a divergência de afirmação, evidência, evento e âncora
zap1_audit_event_logReproduz uma sequência de recibos contra uma política de tipo de evento fornecida pelo chamador
attest_eventCria uma folha de atestação ZAP1 tipada para ancoragem posterior
verify_proofVerifica uma prova Merkle ZAP1
zap1_prove_receiptBusca o pacote completo de prova Merkle para um hash de folha
get_anchor_historyTodas as âncoras de raiz Merkle ZAP1 com txids e alturas de bloco
get_anchor_statusEstado atual da árvore Merkle: raiz, folhas não ancoradas, recomendação
get_statsEstatísticas do protocolo ZAP1: folhas, âncoras, tipos
get_eventsEventos recentes de atestação ZAP1 com tipo, hash de carteira, hash de folha
get_agent_statusResumo de atestação para um ID de agente ZAP1
zcash_identity_registerRegistra uma identidade de agente via atestação AGENT_REGISTER
zcash_reputation_scoreBusca dados de vínculo de agente e conformidade de política como um objeto de reputação
decode_memoDecodifica payloads de memo Zcash: ZAP1 tipado, ZIP 302, texto, binário
zap1_create_receipt_invoiceCria metadados de recibo ZAP1 para um fluxo de trabalho de pagamento externo
zap1_watch_receipt_invoiceConsulta o status de recibo-fatura até pagamento ou timeout
get_block_heightAltura atual da cadeia do Zebra
lookup_transactionDados brutos de transação por txid
zap1_verify_evmVerifica uma prova Merkle ZAP1 on-chain via contrato EVM

Instalação

npx @frontiercompute/zcash-mcp

Ou instale globalmente:

npm install -g @frontiercompute/zcash-mcp

Início Rápido

Adicione isto à sua configuração MCP:

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

Reinicie seu cliente e peça a altura atual do bloco Zcash. Ferramentas somente leitura não precisam de chave de API.

Obtenha uma chave de teste para operações de escrita:

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

Configuração

Variáveis de ambiente:

VariávelPadrãoDescrição
ZEBRA_RPC_URLhttp://127.0.0.1:8232Endpoint JSON-RPC do nó Zebra
ZAP1_API_URLhttps://api.frontiercompute.cashAPI de atestação ZAP1
ZAP1_API_KEYnenhumChave de API para operações de escrita

Claude Desktop

Adicione 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"
      }
    }
  }
}

Qualquer Cliente MCP

O servidor se comunica via stdio usando JSON-RPC. Aponte seu cliente MCP para o binário zcash-mcp.

Compilar a Partir do Código Fonte

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

Testes

A verificação offline cobre o servidor stdio compilado e uma instalação limpa a partir do tarball npm empacotado:

npm run test:offline

A verificação ao vivo atinge um RPC Zebra real e a 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 dirige o servidor MCP via stdio e exercita a superfície de ferramentas ao vivo, não apenas os endpoints HTTP subjacentes. Defina ZAP1_AGENT_ID se quiser que a verificação get_agent_status atinja um agente implantado específico.

GitHub Actions espelha essa divisão:

  • .github/workflows/offline-ci.yml executa empacotamento determinístico e verificações de handshake MCP em cada push e pull request.
  • .github/workflows/live-e2e.yml executa verificações ao vivo com segredos em main, em um cronograma e por despacho manual.

Dependências

  • Um nó Zebra em execução para consultas de cadeia
  • A API ZAP1 para ferramentas de atestação, prova, âncora, evento e recibo
  • A decodificação de memo funciona localmente sem dependências externas

Pacotes Relacionados

PacoteO que faz
@frontiercompute/zcash-ikaAssinatura Zcash e Bitcoin via Ika 2PC-MPC
@frontiercompute/openclaw-zap1Habilidade OpenClaw para atestação ZAP1
@frontiercompute/zap1Cliente de atestação ZAP1
@frontiercompute/silo-zap1Atestação de agente Silo via ZAP1

Links

Licença

MIT