Provides tools for interacting with the Zcash blockchain, enabling AI agents to perform shielded operations including checking balances, generating payment URIs, decoding shielded memos, writing attestations, verifying Merkle proofs, and querying chain data like block height and transaction details.
zcash-mcp
Zcash MCP server. Connects AI agents to shielded Zcash operations. First privacy chain on the MCP registry.
MCP (Model Context Protocol) is the standard way for AI models to call external tools. This server exposes 12 Zcash tools that any MCP client can use - Claude Desktop, ChatGPT, OpenClaw, or anything that speaks the protocol.
Tools
Tool | What it does |
| ZAP1 lifecycle events and anchor status for a wallet hash |
| Generate a zcash: payment URI (ZIP 321) |
| Decode shielded memos - ZAP1 typed, ZIP 302, text, binary |
| Write a ZAP1 attestation to the Zcash blockchain |
| Verify a ZAP1 Merkle proof |
| ZAP1 protocol stats (leaves, anchors, types) |
| Current chain height from Zebra |
| Raw transaction data by txid |
| All ZAP1 Merkle root anchors with txids and block heights |
| Current Merkle tree state: root, unanchored leaves, recommendation |
| Recent ZAP1 attestation events with type, wallet hash, leaf hash |
| Attestation summary for a ZAP1 agent ID |
Install
npx @frontiercompute/zcash-mcpOr install globally:
npm install -g @frontiercompute/zcash-mcpConfiguration
Environment variables:
Variable | Default | Description |
|
| Zebra node JSON-RPC endpoint |
|
| ZAP1 attestation API |
| none | API key for attest_event |
Claude Desktop
Add to ~/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"
}
}
}
}Any MCP client
The server communicates over stdio using JSON-RPC. Point your MCP client at the zcash-mcp binary.
Build from source
git clone https://github.com/Frontier-Compute/zcash-mcp.git
cd zcash-mcp
npm ci
npm run build
node dist/index.jsTesting
Offline verification covers the built stdio server and a clean-room install from the packed npm tarball:
npm run test:offlineLive verification hits a real Zebra RPC and ZAP1 API:
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:livetest:live drives the MCP server over stdio and exercises the live tool surface, not just the underlying HTTP endpoints. Set ZAP1_AGENT_ID if you want the get_agent_status check to target a specific deployed agent.
GitHub Actions mirrors that split:
.github/workflows/offline-ci.ymlruns deterministic packaging and MCP handshake checks on every push and pull request..github/workflows/live-e2e.ymlruns secret-backed live checks onmain, on a schedule, and by manual dispatch.
Dependencies
A running Zebra node for chain queries (get_block_height, lookup_transaction)
The ZAP1 API at pay.frontiercompute.io for attestation tools (get_balance, attest_event, verify_proof, get_stats, get_anchor_history, get_anchor_status, get_events, get_agent_status)
Memo decoding works locally with no external dependencies
License
MIT