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 implementationexamples/
: Example use cases for zero-knowledge proofsage-verification/
: An example that demonstrates how to verify a person's age without revealing their birth date
Installation
Server Installation
-
Clone this repository:
git clone https://github.com/yourusername/zkMCP.git cd zkMCP/server
-
Install dependencies:
npm install
-
Build the server:
npm run build
-
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:
- Build circuits from Circom files
- Perform trusted setup for circuits
- Generate proofs for circuits
- Verify proofs
See the server README 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 age verification README 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.