zkpmcp

zkpmcp

9

zkMCP is an MCP server designed for zero-knowledge proofs via circom. It provides comprehensive tools for building and verifying zero-knowledge proofs, emphasizing privacy by allowing validation without exposing sensitive data.

zkMCP

A Model Context Protocol (MCP) server for zero-knowledge proofs using circom. This repository provides tools for building circuits, performing trusted setup, generating proofs, and verifying proofs.

Repository Structure

  • server/: The MCP server implementation
  • examples/: Example use cases for zero-knowledge proofs
    • age-verification/: An example that demonstrates how to verify a person's age without revealing their birth date

Installation

Server Installation

  1. Clone this repository:

    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:

    {
      "mcpServers": {
        "zkproof": {
          "command": "node",
          "args": ["/path/to/zkMCP/server/build/index.js"],
          "env": {
            "ZKINTRO_DIR": "/path/to/circom/projects"
          },
          "disabled": false,
          "autoApprove": []
        }
      }
    }
    

Prerequisites

  • Node.js (v14 or later)
  • circom (v2.0.0 or later)
  • snarkjs

Usage

Once the server is installed and configured, you can use it to:

  1. Build circuits from Circom files
  2. Perform trusted setup for circuits
  3. Generate proofs for circuits
  4. Verify proofs

See the for detailed usage instructions.

Examples

Age Verification

The age verification example demonstrates how to use zero-knowledge proofs to verify that a person is above a certain age without revealing their actual birth date.

See the for more details.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

This project is licensed under the MIT License - see the LICENSE file for details.