ZK Proofs & Cryptography MCP
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@ZK Proofs & Cryptography MCPgenerate a Poseidon Merkle membership proof for my credential leaf"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
ZK Proofs & Cryptography MCP
Poseidon Merkle membership proofs, Groth16 zk-SNARK verification, Merkle Mountain Ranges, and EIP-712 structured data hashing.
Built specifically for Zero-knowledge proof engineers, Web3 identity builders, and cryptographic protocol developers.
⚡ Quickstart
Smithery Install
smithery skill add whambammy/zk-proof-identity-mcpClaude Desktop / Cursor (claude_desktop_config.json)
{
"mcpServers": {
"zk-proof-identity-mcp": {
"command": "npx",
"args": ["-y", "@whambammy/zk-proof-identity-mcp"],
"env": {
"PAYMENT_WALLET": "0x9793E7269b3301893318dEa8338576Ba612F39B3",
"BASE_RPC_URL": "https://mainnet.base.org"
}
}
}
}Related MCP server: vcc-prover
🛠️ Included Tools
Tool Name | Price (USDC) | Capability |
| $0.050 | Generates and verifies Poseidon hash-based Merkle tree membership proofs for private zero-knowledge credential verification without revealing identity. |
| $0.050 | Verifies off-chain zk-SNARK Groth16 cryptographic proofs over the BN254/alt_bn128 pairing curve, guaranteeing proof validity before gas-expensive on-chain calls. |
| $0.045 | Constructs and verifies append-only Merkle Mountain Range (MMR) proofs for lightweight blockchain cross-chain block headers and rolling state proofs. |
| $0.02 | Constructs binary SHA-256 Merkle trees and generates lightweight cryptographic inclusion proofs for whitelist and state verification. |
| $0.030 | RFC-compliant EIP-712 typed structured data hasher that eliminates domain separator discrepancies, type string misordering, and nested array padding bugs. |
🔄 End-to-End Workflow
A privacy agent generates a private credential -> builds a Poseidon Merkle proof -> creates and verifies a zk-SNARK Groth16 proof -> signs the authorization payload using EIP-712 without revealing the underlying identity.
💰 The x402 Base L2 Micropayment Protocol
When an agent invokes a tool without payment, the server responds with a deterministic HTTP 402 Payment Required challenge containing:
Target tool price in USDC
Base Native USDC Contract:
0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913Recipient payout wallet address
Single-use cryptographic nonce
Once broadcasted on Base L2, resubmitting with paymentSignature unlocks deterministic execution.
📄 License
MIT License. Created by Whambammy.
Available Tools
5 toolseip712_typed_data_hasherB
RFC-compliant EIP-712 typed structured data hasher that eliminates domain separator discrepancies, type string misordering, and nested array padding bugs. (0.030 USDC on Base L2)
| Name | Required | Description | Default |
|---|---|---|---|
| payload | Yes | Input parameters or JSON string payload for the tool execution | |
| paymentSignature | No | Base L2 USDC micropayment signature or transaction hash for x402 settlement |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It discloses that the implementation avoids specific correctness bugs and mentions a payment cost (0.030 USDC on Base L2), which is useful. However, it omits expected return format, whether the operation is read-only, and any side effects or prerequisites beyond the payment signature.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence and efficiently front-loads the core purpose. The payment note in parentheses is short but not fully explained, slightly reducing clarity. No redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is a computational hasher with two parameters but no output schema. The description does not state what the tool returns (e.g., hex-encoded hash), nor does it clarify the role of the paymentSignature parameter beyond the schema. Given the complexity of EIP-712 and the presence of many sibling tools, more detail is needed for full confidence in invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers 100% of parameters with descriptions. The tool description adds no parameter-specific meaning, so it does not go beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('hasher') and resource ('EIP-712 typed structured data'), and clarifies it is RFC-compliant and avoids known pitfalls like domain separator discrepancies and type string misordering. It is clear what the tool does, but it does not name or differentiate from sibling tools such as verify_evm_signature or generate_permit2_witness_hash.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage: use this when you need a correct EIP-712 typed data hash. However, it does not explicitly state when not to use it or which alternative to choose, despite several closely related EVM/hashing tools existing in the sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_merkle_proofA
Constructs binary SHA-256 Merkle trees and generates lightweight cryptographic inclusion proofs for whitelist and state verification. (0.02 USDC on Base L2)
| Name | Required | Description | Default |
|---|---|---|---|
| payload | Yes | Input parameters or JSON string payload for the tool execution | |
| paymentSignature | No | Base L2 USDC micropayment signature or transaction hash for x402 settlement |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It usefully discloses the algorithm (SHA-256), the output kind (inclusion proofs), and the cost (0.02 USDC on Base L2), but it does not clarify side effects, expected input format, or response structure. This is moderate transparency with meaningful gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that states the core functionality immediately and adds the payment cost parenthetically. There is no repetition, fluff, or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a cryptographic construction tool with no output schema and no annotations, the payload contract and paymentSignature usage are not explained. An agent cannot reliably determine what JSON structure to pass or what form the generated proof will take, so the description is incomplete for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and both parameters have descriptions, so the baseline is 3. The tool description adds no parameter-level meaning; 'payload' remains generic and is not tied to Merkle leaves, tree height, or the target leaf.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses specific verbs ('constructs', 'generates') tied to a clear resource ('binary SHA-256 Merkle trees', 'lightweight cryptographic inclusion proofs') and a stated use case ('whitelist and state verification'). This clearly differentiates it from verification-focused siblings like verify_merkle_airdrop_leaf.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended context is implied by the phrase 'for whitelist and state verification', so an agent gets some situational signal. However, there are no explicit when-to-use or when-not-to-use instructions, nor any mention of alternatives such as verify_merkle_airdrop_leaf or zero_knowledge_merkle_membership_proof.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
merkle_mountain_range_mmr_proverC
Constructs and verifies append-only Merkle Mountain Range (MMR) proofs for lightweight blockchain cross-chain block headers and rolling state proofs. (0.045 USDC on Base L2)
| Name | Required | Description | Default |
|---|---|---|---|
| payload | Yes | Input parameters or JSON string payload for the tool execution | |
| paymentSignature | No | Base L2 USDC micropayment signature or transaction hash for x402 settlement |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It adds useful context (append-only semantics, the 0.045 USDC cost on Base L2) but omits critical behavior: how the paymentSignature parameter figures into settlement, what the output looks like (a proof? a boolean verification result?), and what failure modes exist. For a paid tool with no annotation safety hints, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single compact sentence front-loaded with the action and resource, followed by the use case and a brief cost note. There is no filler, and every clause earns its place; the description is efficient without being minimal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations, no output schema, and a payment-adjacent parameter, the description should explain payload requirements, return values, and the payment flow to let an agent invoke the tool confidently. It does not, and it also leaves the differentiation from similar Merkle proof siblings unresolved. The description covers the domain well but not the operational details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, but both parameter descriptions are generic boilerplate ('Input parameters or JSON string payload for the tool execution') that could apply to any tool in this catalog. The tool description adds no explicit guidance on what the payload should contain (MMR root, leaf index, proof path, block headers) or how paymentSignature should be structured, so it fails to compensate for the vacuous schema text.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states specific verbs ('Constructs and verifies') paired with a precise resource ('append-only Merkle Mountain Range (MMR) proofs') and gives a concrete use case ('lightweight blockchain cross-chain block headers and rolling state proofs'). This goes beyond a tautology of the name, though it does not explicitly name sibling tools like generate_merkle_proof or zero_knowledge_merkle_membership_proof to draw the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'for lightweight blockchain cross-chain block headers and rolling state proofs' clause implies the intended context, giving an agent a rough sense of when this tool fits. However, there are no explicit when-to-use/when-not-to-use conditions or named alternatives, despite several Merkle-adjacent siblings (generate_merkle_proof, verify_merkle_airdrop_leaf, zero_knowledge_merkle_membership_proof) that an agent would need to disambiguate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zero_knowledge_merkle_membership_proofB
Generates and verifies Poseidon hash-based Merkle tree membership proofs for private zero-knowledge credential verification without revealing identity. (0.050 USDC on Base L2)
| Name | Required | Description | Default |
|---|---|---|---|
| payload | Yes | Input parameters or JSON string payload for the tool execution | |
| paymentSignature | No | Base L2 USDC micropayment signature or transaction hash for x402 settlement |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the cost (0.050 USDC on Base L2) and the privacy property (without revealing identity), but it does not state whether the operation is read-only, has side effects, requires network access, or what errors may occur. It partially covers behavioral traits but leaves significant gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence followed by a parenthetical cost note. It is front-loaded with the core function and includes the cost as a secondary detail. There is no fluff, making it highly concise and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a cryptographic tool of this complexity, the description is minimal. It does not explain what the payload should contain (e.g., merkle root, leaf, proof), what the output structure is (no output schema), or any constraints. The absence of these details leaves an agent uncertain about how to invoke the tool correctly. The cost note adds context but does not compensate for missing input/output specifics.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already describes both parameters fully (payload and paymentSignature), achieving 100% coverage. The description adds no additional meaning about the parameters, so the baseline score of 3 applies. It does not clarify expected formats or relationships beyond what the schema states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action ('Generates and verifies') on a specific resource ('Poseidon hash-based Merkle tree membership proofs') and includes the purpose ('private zero-knowledge credential verification without revealing identity'). It distinguishes itself from generic Merkle proof tools by emphasizing the zero-knowledge and Poseidon hash specifics, but it does not explicitly name alternative siblings like generate_merkle_proof or verify_merkle_airdrop_leaf, so it misses a clear differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus its siblings. It does not mention alternatives, conditions, or exclusions. An agent must infer that this is for zero-knowledge credential verification, but there is no explicit routing information.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zk_snark_groth16_proof_verifierA
Verifies off-chain zk-SNARK Groth16 cryptographic proofs over the BN254/alt_bn128 pairing curve, guaranteeing proof validity before gas-expensive on-chain calls. (0.050 USDC on Base L2)
| Name | Required | Description | Default |
|---|---|---|---|
| payload | Yes | Input parameters or JSON string payload for the tool execution | |
| paymentSignature | No | Base L2 USDC micropayment signature or transaction hash for x402 settlement |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the disclosure burden. It does add meaningful behavioral context: the verification is off-chain, it is a cost-saving pre-check, and it costs 0.050 USDC on Base L2. However, it does not disclose what happens for invalid proofs, whether a payment is required up front, or what the return value looks like.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, dense sentence with the core action and curve front-loaded, followed by a useful cost parenthetical. Every element earns its place, and there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's cryptographic complexity, no output schema, no annotations, and a generic payload parameter, the description is not complete enough for confident invocation. It explains why to use the tool but leaves the actual input format and result contract unspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3 even though the tool description adds no parameter-specific detail. The schema's 'payload' description is generic and does not explain how to encode the Groth16 proof, verification key, or public inputs, and the description does not compensate for that.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Verifies'), a precise resource ('off-chain zk-SNARK Groth16 cryptographic proofs'), and the specific curve ('BN254/alt_bn128 pairing curve'). It also clarifies the intended domain ('before gas-expensive on-chain calls'), which helps distinguish it from sibling signature or Merkle verifiers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear usage context: verify Groth16 proofs off-chain before spending gas on-chain, and communicates the cost. It does not explicitly name sibling alternatives or provide when-not-to-use exclusions, so it stops short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
5 tool updates
v1.0.0- First observed
eip712_typed_data_hasher - First observed
generate_merkle_proof - First observed
merkle_mountain_range_mmr_prover - First observed
zero_knowledge_merkle_membership_proof - First observed
zk_snark_groth16_proof_verifier
TDQS
Scored across 5 tools
Three tools revolve around Merkle-style proofs (zero_knowledge_merkle_membership_proof, merkle_mountain_range_mmr_prover, generate_merkle_proof), which could be confused without careful reading. The descriptions do differentiate them by hash function (Poseidon vs SHA-256), structure (binary tree vs MMR), and use case, but the boundaries remain soft for an agent. The Groth16 verifier and EIP-712 hasher are clearly distinct.
Naming mixes conventions: some are long noun phrases (zero_knowledge_merkle_membership_proof, zk_snark_groth16_proof_verifier) while others begin with a verb (generate_merkle_proof) or are pure noun phrases (eip712_typed_data_hasher). There is no predictable verb_noun pattern, and 'proof'/'prover'/'verifier' suffixes are used inconsistently across similar tools.
Five tools is a reasonable, well-scoped set for a cryptography primitives server, with each primitive earning its place. It sits comfortably in the 3-15 range without feeling bloated.
The surface covers Merkle/MMR proof generation and a Groth16 verifier plus EIP-712 hashing, but there are notable gaps such as no Groth16/SNARK proof generation counterpart (only verification), no signature or key utilities, and no generic hashing helper. Agents needing to create SNARK proofs or sign typed data would hit dead ends.
Maintenance
Related MCP Connectors
ZKEvidenceOracle - 14 zero-knowledge proof tools for compliance evidence: Groth16, PLONK.
Portable, offline-verifiable identity for AI agents: DID, challenges, attestations, bundles.
Tamper-evident proof creation and verification for AI agents via MCP, A2A, and REST.
Privacy-first document verification anchored to the public ledger.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables zero-knowledge proof generation and verification, identity verification, and gate checks for privileged agent actions.Apache 2.0

vcc-proverofficial
AlicenseAqualityAmaintenanceGenerates and verifies zero-knowledge proofs locally for Energy Web Verified Compute, keeping private meter readings and blinding salts on the user's machine while enabling agents to submit verifiable proof packages.3185 npmMIT- AlicenseNot gradedqualityBmaintenanceEnables AI agents to construct SHA-256 Merkle trees and generate/verify inclusion proofs, validate JWT HMAC-SHA256 claims, run Schnorr zero-knowledge identification, and enforce constant-time secret comparison with nonce replay protection for tamper-evident state attestation. It runs as a zero-dependency, stdlib-only MCP stdio server for clients such as Claude Desktop, Cursor, and Windsurf.7MIT
- AlicenseNot gradedqualityBmaintenanceEnables agents to construct SHA-256 Merkle trees, generate and verify state inclusion proofs, validate JWT HMAC signatures, perform Schnorr zero-knowledge proofs, and enforce nonce replay protection for immutable state attestation.7MIT