zkproof

Provides a zero-knowledge proof MCP server workflow for Circom-based circuits, including build, setup, prove, and verify steps.
  • typescript

9

GitHub Stars

typescript

Language

6 months ago

First Indexed

2 months ago

Catalog Refreshed

Documentation & install

Readme and setup notes from the catalogue, plus a client-ready config you can copy for your MCP host.

Installation

Add the following to your MCP client configuration file.

Configuration

View docs
{
  "mcpServers": {
    "colygon-zkpmcp": {
      "command": "node",
      "args": [
        "/path/to/zkMCP/server/build/index.js"
      ],
      "env": {
        "ZKINTRO_DIR": "YOUR_CIRCOM_PROJECTS_DIR"
      }
    }
  }
}

zkMCP is a Model Context Protocol server for zero-knowledge proofs that uses circom. It enables you to build circuits, perform trusted setups, generate proofs, and verify proofs in a streamlined MCP workflow, helping you prove statements without revealing underlying data.

How to use

You interact with the zkMCP server through an MCP client to manage circuits, run trusted setups, generate proofs, and verify results. Typical usage patterns include building a circuit from a Circom file, performing the trusted setup for that circuit, generating a proof for a specific witness, and then sending the proof to a verifier to confirm validity without exposing private inputs. The server is designed to work with zero-knowledge proofs that rely on Circom-based circuits and SnarkJS tooling.

How to install

# Prerequisites
#  - Node.js v14 or later
#  - circom v2.0.0 or later
#  - snarkjs

# 1. Clone the project and navigate to the server
git clone https://github.com/yourusername/zkMCP.git
cd zkMCP/server

# 2. Install dependencies
npm install

# 3. Build the server
npm run build

# 4. Add the server to your MCP settings configuration file
# Example entry (adjust paths to your environment)
``````json
{
  "mcpServers": {
    "zkproof": {
      "command": "node",
      "args": ["/path/to/zkMCP/server/build/index.js"],
      "env": {
        "ZKINTRO_DIR": "/path/to/circom/projects"
      },
      "disabled": false,
      "autoApprove": []
    }
  }
}

Notes

  • Ensure Node.js, circom, and snarkjs versions meet the prerequisites.
  • Adapt the paths in the config snippet to your environment before running.

Additional content

Configuration details: The server requires an environment variable ZKINTRO_DIR to point to your Circom project directory. The MCP entry uses a stdio configuration, launching the server with node and the built index script. This setup is designed to integrate with an MCP client that can manage circuits, setups, proofs, and verifications.

Security considerations: Keep the server and dependencies up to date, and restrict access to the MCP client interface to trusted components. Use proper access controls for the Circom sources and verify proofs against trusted verifiers.

Examples: The age-verification scenario demonstrates verifying an age condition without revealing the exact birth date. This pattern is representative of how zero-knowledge proofs can keep user data private while proving compliance or eligibility.

Troubleshooting: If the server fails to start, verify that the build output exists at the specified path and that ZKINTRO_DIR points to a valid Circom project. Check Node.js and npm versions, reinstall dependencies if needed, and review any error messages from the build or start process.

Notes on usage flow

When you start from a clean setup, you build the server, configure the MCP entry, and then use your MCP client to orchestrate circuits, trusted setups, and proofs. The standard flow is build → setup → prove → verify, and you can reuse circuits across proofs once the setup is completed.

Available tools

buildCircuits

Create circuit artifacts from Circom files, compiling high-level circuit definitions into usable constraint systems for proving.

trustedSetup

Run the trusted setup for a given circuit to generate proving and verification keys.

generateProof

Produce a zero-knowledge proof for a specific circuit and witness data.

verifyProof

Verify a generated proof against the corresponding verification key and public input.

Built by
VeilStrat
AI signals for GTM teams
© 2026 VeilStrat. All rights reserved.All systems operational