Skip to main content
Glama

zcash-now

A keyless MCP server and llms.txt that keep AI coding agents current on Zcash, so a developer new to Zcash gets code that works on today's NU7 testnet the first time.

AI coding agents trained before mid-2026 write code for a Zcash that no longer exists:

  • They reach for the Orchard pool. Orchard has accepted withdrawals only since NU6.3 (Ironwood) on 28 Jul 2026.

  • They assume 75-second blocks. NU7 has been live on testnet since height 4,465,026, with 25-second blocks and v4 transactions invalid.

  • They connect to lightwalletd.testnet.electriccoin.co (dead), install WebZjs (not on npm, no Ironwood) or zecli from crates.io (its addresses can't receive funds).

zcash-now gives the agent dated, sourced facts, recipes proven on testnet, a lint for stale patterns and privacy leaks, and a live transaction check. It never touches keys or funds.

Install

Claude Code:

claude mcp add zcash-now -- npx -y zcash-now-mcp

Cursor, Claude Desktop and other MCP clients:

{ "mcpServers": { "zcash-now": { "command": "npx", "args": ["-y", "zcash-now-mcp"] } } }

From a clone, before the npm package is published:

npm install && npm run build
claude mcp add zcash-now -- node "$PWD/dist/src/cli.js"

Agents without MCP can read docs/llms.txt, served by GitHub Pages at https://<user>.github.io/zcash-now/llms.txt.

Related MCP server: ForkMind

What the agent gets

Tool

What it does

Network use

zcash_now

Facts on upgrades, pools, addresses, endpoints, faucets, explorers, SDK support, fees and payments. Each has a source and a check date. Adds a live probe: height and consensus branch, mapped to the upgrade.

GetLightdInfo

zcash_recipe

Step-by-step recipes with commands, expected output, gotchas, a privacy section and an honest verification status.

none

zcash_check

Twelve lint rules for stale Zcash patterns and privacy leaks, each finding linked to its fact.

none

zcash_tx_status

Mempool, mined with confirmations, fork or not found, plus transaction version and upgrade.

GetTransaction, GetLatestBlock

Also exposed: resources zcash://llms.txt, zcash://facts and zcash://recipes/{id}, and a prompt, zcash-builder, that tells the agent to call zcash_now first, follow a recipe and lint what it writes.

Every tool runs behind a secret guard. It refuses seed phrases (12 or more consecutive BIP-39 words) and Zcash or age key encodings, so a pasted key never reaches a handler or a reply.

Example

Write a script that sends 0.01 TAZ shielded to utest1… with the memo "order 7f3a" on testnet.

  1. The agent calls zcash_now and learns that testnet is on NU7, the server is testnet.zec.rocks:443, and new funds go to Ironwood.

  2. It calls zcash_recipe with send-shielded and writes the zcash-devtool commands from it.

  3. It runs zcash_check on its script. A fixed fee or a transparent funding source would be flagged.

  4. The script sends; the agent calls zcash_tx_status until the payment is mined, then confirmed.

Verified so far (4 Nov 2026)

  • npm test: 32 unit tests for the guard, the lint rules, ZIP 321 links, txid handling and the data files.

  • npm run smoke: a real MCP client starts the server over stdio and calls every tool, resource and prompt against live testnet.

  • Live probes: testnet.zec.rocks:443 on consensus branch 77190ad9 (NU7), zec.rocks:443 on mainnet, and both old testnet servers dead.

  • zcash_tx_status found a known testnet payout using the internal byte order: version 6, NU7, mined.

  • zcash-devtool built from source, made a testnet wallet, synced NU7 testnet and reported Ironwood balances. A view-only wallet made with init-fvk synced and listed transactions as CSV.

Recipe

Status

What is still missing

send-shielded (cli)

verified

Nothing: 0.1 TAZ sent to Noir Wallet in c00460bf…, mined at height 4,581,860

watch-payments (cli)

partial

A payment to detect

get-test-coins (cli)

verified

Nothing: Fauzec sent 1 TAZ into Ironwood in cc2d88b8…, mined at height 4,581,808

payment-link (node)

partial

A wallet paying a generated link

noir-connect-send (react)

unverified

Blocked: Noir's testnet build fails to send on NU7 ("incorrect consensus branch id"); receiving works

Privacy and trust note

  1. What stays private? zcash-now never asks for, stores or sends keys, seed phrases or balances; the secret guard refuses them. Its recipes keep amounts, senders and receivers shielded on-chain, fund from shielded balances and give servers viewing keys only.

  2. What does it reveal, and to whom? The light-wallet server operator (zec.rocks by default) sees your IP address, when each lookup happens and any transaction ID you check. GitHub sees who fetches llms.txt. The AI model provider sees your prompts, code and transaction IDs, as with any agent work.

  3. What must users trust? The maintainers to keep facts accurate (each links its source and check date), zec.rocks to answer honestly (an explorer can cross-check it), npm and GitHub to serve the package unmodified, and the AI provider with whatever enters the chat.

  4. What would we fix next? Route lookups over Nym so the server can't see the developer's IP. Sign facts.json releases. Re-run every recipe on testnet on a schedule. Extend the guard to transparent private keys. The guard can't undo a key already pasted into a chat; it only stops zcash-now processing or echoing it.

Technologies

  • TypeScript 7 on Node.js 24, ES modules

  • MCP TypeScript SDK v2 (@modelcontextprotocol/server, @modelcontextprotocol/client for the smoke test), stdio transport

  • zod 4 for tool schemas

  • @grpc/grpc-js and @grpc/proto-loader with lightwalletd's service.proto and compact_formats.proto from librustzcash

  • @scure/bip39 English wordlist for seed-phrase detection

  • zcash-devtool (Rust, librustzcash) to prove the CLI recipes; Noir Wallet SDK for the web recipe

  • Node's built-in test runner

  • GitHub Actions (CI and a daily freshness job) and GitHub Pages (llms.txt)

  • The llms.txt format from llmstxt.org, ZIP 317 fees and ZIP 321 payment links

Design decisions

  • Keyless. Payments go through zcash-devtool or Noir Wallet, which hold the keys. zcash-now can't lose funds or leak a key it never had.

  • Curated facts, checked on a schedule. data/facts.json is reviewed in pull requests, and every claim carries source, verifiedAt and verifiedBy (read, probe or run). Fetching docs at query time would be slower, unverified and open to prompt injection.

  • Honest recipe status. A recipe says whether it is verified, partial or unverified, and what evidence backs it.

  • lightwalletd over an explorer API. It's the same source wallets use and adds no third party. The txid is sent in internal byte order, with the displayed order as a fallback.

  • Local stdio, not a hosted server. No server sees developers' questions. Set ZCASH_NOW_OFFLINE=1 to turn off all network calls.

  • Regex lint rules. They work on any language and are quick to extend. They can misfire, so each finding links its fact.

  • One source, two outputs. npm run build:llms writes docs/ from the same files the MCP server reads, and CI fails if docs/ is stale.

Development

npm install
npm test              # build and run the unit tests
npm run smoke         # MCP client over stdio, live testnet
npm run freshness     # live probes; updates verifiedAt in data/facts.json
npm run build:llms    # regenerate docs/ (set LLMS_BASE_URL for absolute links)

Environment variables: ZCASH_NOW_OFFLINE=1 turns off network calls. ZCASH_NOW_LIGHTWALLETD_TEST and ZCASH_NOW_LIGHTWALLETD_MAIN override the servers (host:port).

The project .npmrc points npm at the public registry, so installs work even where a company registry is configured.

To publish: npm publish for the package; GitHub Pages from main and /docs for llms.txt. For the freshness job to open pull requests, turn on "Allow GitHub Actions to create and approve pull requests" under Settings, Actions, General.

Adding a fact or recipe

  • A fact needs id, topic, networks, claim, source (https) and verifiedAt, plus verifiedBy, status and replaces where they apply. npm test checks the shape.

  • A recipe is a markdown file in recipes/ with front matter (id, title, task, stack, tools, status, checkedAt, evidence) and a ## Privacy section. A new task appears in zcash_recipe's schema automatically.

License

MIT. proto/ is copied from librustzcash (MIT OR Apache-2.0).

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    A
    maintenance
    A local-private context-handoff tool for AI agents, preserving decisions, evidence, and verbatim code in a SQLite ledger and providing zone indicators to prevent context rot across sessions.
    27 npm
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Local-first MCP server that lets AI agents query their own LLM call history as a branchable DAG and offload conversation context into immutable, AES-256-GCM-encrypted capsules — restorable in full or per segment, crypto-shreddable, with RAID-style replication. 12 tools, no API keys, no cloud.
    104 npm
    3
    MIT
  • A
    license
    B
    quality
    B
    maintenance
    Enables AI agents to securely read, search, and write to a local Markdown knowledge base with hybrid RAG retrieval, privacy zones, hash-locked writes, audit logging, and rollback-safe archiving.
    13
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Gives AI coding agents on-demand retrieval of workspace context, documentation, lessons, decisions and handoffs from a five-level (GLOBAL → WORKSPACE → PROJECT → FEATURE → SESSION) store, so they start with a small rule set instead of re-reading bloated docs. Exposes tools for dependency routing, knowledge search, doc reading and health checks backed by a zero-dependency SQLite + FTS5 memory with cross-project sharing of global-scoped knowledge.
    MIT