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
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:
attest: crie uma folha de evento tipada.anchor: comprometa folhas em uma raiz Merkle ancorada ao Zcash.prove: retorne um pacote de recibo para uma folha.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ídapayment_receipt: vincule metadados de fatura ou pagamento a uma folha ZAP1 e depois prove a inclusão sob uma raiz ancoradaoperator_lifecycle: registre implantação, atualização, incidente, recuperação ou estado de política como um evento de ciclo de vida verificávelpolicy_attestation: registre uma decisão de política de agente, serviço ou fluxo de trabalho como um evento verificável
Fluxo esperado:
- Chame
zcash_capability_manifestpara confirmar o limite de atestação. - Chame
zcash_receipt_templatepara o caso de uso. - Para ações de carteira, chame
zap1_wallet_receipt_requestpara converter o resultado da carteira em argumentosattest_eventapenas com hash. - Chame
attest_eventpara criar a folha ZAP1 tipada. - Chame
get_anchor_statuspara verificar se a folha está ancorada ou aguardando. - Chame
verify_proofpara verificar a inclusão na árvore. - Chame
zap1_prove_receiptpara 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_countcomprometido - 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
| Ferramenta | O que faz |
|---|---|
zcash_capability_manifest | Mapa 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_check | Valida apenas a forma de um pacote de recibo v1 congelado; v1 não pode provar inclusão ou confirmação de âncora |
zcash_receipt_template | Fluxo 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_request | Converte um resultado de ação da camada de carteira em campos de solicitação de recibo ZAP1 apenas com hash |
zap1_attest_external_action | Mapeia 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_receipt | Valida a forma legada de recibo externo v1 sem afirmar inclusão criptográfica ou confirmação de âncora |
zap1_verify_receipt_v2 | Verifica 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_artifact | Extrai o artefato de prova portátil de um recibo ZAP1 |
zap1_check_anchor_freshness_at_height | Calcula aritmética de profundidade a partir de alturas fornecidas sem afirmar confirmação de cadeia |
zap1_verify_receipt_chain | Valida a forma legada de sequência de recibo v1 sem afirmar validade de prova ou âncora |
zap1_compare_receipt_claims | Compara dois recibos ZAP1 quanto a divergência de afirmação, evidência, evento e âncora |
zap1_audit_event_log | Reproduz uma sequência de recibos contra uma política de tipo de evento fornecida pelo chamador |
attest_event | Cria uma folha de atestação ZAP1 tipada para ancoragem posterior |
verify_proof | Verifica uma prova Merkle ZAP1 |
zap1_prove_receipt | Busca o pacote completo de prova Merkle para um hash de folha |
get_anchor_history | Todas as âncoras de raiz Merkle ZAP1 com txids e alturas de bloco |
get_anchor_status | Estado atual da árvore Merkle: raiz, folhas não ancoradas, recomendação |
get_stats | Estatísticas do protocolo ZAP1: folhas, âncoras, tipos |
get_events | Eventos recentes de atestação ZAP1 com tipo, hash de carteira, hash de folha |
get_agent_status | Resumo de atestação para um ID de agente ZAP1 |
zcash_identity_register | Registra uma identidade de agente via atestação AGENT_REGISTER |
zcash_reputation_score | Busca dados de vínculo de agente e conformidade de política como um objeto de reputação |
decode_memo | Decodifica payloads de memo Zcash: ZAP1 tipado, ZIP 302, texto, binário |
zap1_create_receipt_invoice | Cria metadados de recibo ZAP1 para um fluxo de trabalho de pagamento externo |
zap1_watch_receipt_invoice | Consulta o status de recibo-fatura até pagamento ou timeout |
get_block_height | Altura atual da cadeia do Zebra |
lookup_transaction | Dados brutos de transação por txid |
zap1_verify_evm | Verifica 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ável | Padrão | Descrição |
|---|---|---|
ZEBRA_RPC_URL | http://127.0.0.1:8232 | Endpoint JSON-RPC do nó Zebra |
ZAP1_API_URL | https://api.frontiercompute.cash | API de atestação ZAP1 |
ZAP1_API_KEY | nenhum | Chave 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.ymlexecuta empacotamento determinístico e verificações de handshake MCP em cada push e pull request..github/workflows/live-e2e.ymlexecuta verificações ao vivo com segredos emmain, 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
| Pacote | O que faz |
|---|---|
| @frontiercompute/zcash-ika | Assinatura Zcash e Bitcoin via Ika 2PC-MPC |
| @frontiercompute/openclaw-zap1 | Habilidade OpenClaw para atestação ZAP1 |
| @frontiercompute/zap1 | Cliente de atestação ZAP1 |
| @frontiercompute/silo-zap1 | Atestação de agente Silo via ZAP1 |
Links
Licença
MIT