使用说明
项目简介
zkMCP (Zero-Knowledge Proof Model Context Protocol Server) 是一个基于 Model Context Protocol (MCP) 标准构建的服务器,专门为零知识证明 (Zero-Knowledge Proof) 应用场景设计。它利用 circom 和 snarkjs 等工具,为 LLM 客户端提供构建、设置、生成和验证零知识证明的核心功能。通过 zkMCP 服务器,LLM 应用可以安全、高效地利用零知识证明技术,在保护隐私的前提下实现可验证的计算和数据交互。
主要功能点
- 电路构建 (Circuit Building):支持将 Circom 语言编写的电路文件编译为零知识证明系统可执行的格式,为后续的证明生成和验证奠定基础。
- 可信设置 (Trusted Setup):执行零知识证明电路的可信设置仪式,生成证明和验证所需的密钥材料。这是生成有效零知识证明的关键步骤。
- 证明生成 (Proof Generation):根据电路、私有输入和公开输入,生成符合零知识证明协议的证明。证明可以向验证者证明某种计算的正确性,而无需泄露私有输入。
- 证明验证 (Proof Verification):验证已生成的零知识证明是否有效。验证过程仅依赖于公开信息和验证密钥,无需访问私有输入,确保了零知识性。
安装步骤
- 克隆仓库
git clone https://github.com/colygon/zkpmcp.git - 进入 server 目录
cd zkpmcp/server - 安装依赖
npm install - 构建服务器
npm run build
服务器配置
要将 zkproof 服务器配置到 MCP 客户端,您需要在客户端的 MCP 服务器配置文件中添加以下 server 配置。请根据实际情况修改 'command' 和 'env' 中的路径。
{ "mcpServers": { "zkproof": { "command": "node", "args": ["/path/to/zkpmcp/server/build/index.js"], // 请替换为 zkpmcp 服务器 build 后的 index.js 文件的绝对路径 "env": { "ZKINTRO_DIR": "/path/to/circom/projects" // 请替换为您的 circom 项目根目录的绝对路径,例如 zkintro-tutorial 或其他包含 circom 项目的目录 }, "disabled": false, "autoApprove": [] } } }
配置参数说明:
- 'server name': 'zkproof' (服务器名称,客户端通过此名称引用该服务器)
- 'command': 'node' (启动服务器的命令,这里使用 Node.js 运行时)
- 'args': '["/path/to/zkpmcp/server/build/index.js"]' (启动命令的参数,指向 zkMCP 服务器编译后的入口文件)
- 'env': 环境变量配置
- 'ZKINTRO_DIR': 指定 circom 项目的根目录,zkMCP 服务器依赖此环境变量来定位 circom 相关脚本和文件。请务必根据您的实际 circom 项目路径进行修改。
- 'disabled': 'false' (设置为 'false' 表示启用该服务器)
- 'autoApprove': '[]' (自动批准的工具列表,默认为空)
基本使用方法
zkMCP 服务器通过工具 (Tools) 的形式向 MCP 客户端提供零知识证明相关功能。客户端可以使用 MCP 协议的标准方法调用这些工具。
使用 'cline-mcp-cli' 示例:
您可以使用 'cline-mcp-cli' 命令行工具与 zkMCP 服务器进行交互。以下是一些基本示例,展示如何调用 zkMCP 服务器提供的工具:
-
列出所有可用工具
cline-mcp-cli list-tools zkproof -
调用 'build_circuit' 工具构建电路
cline-mcp-cli use-tool zkproof build_circuit '{"circomFile": "age-verification/age-verification.circom"}'请注意,工具参数需要以 JSON 字符串的形式提供。
-
调用其他工具 (例如 'trusted_setup', 'generate_proof', 'verify_proof') 参考 'examples/age-verification/run-age-verification.js' 文件中的示例,了解如何使用 'cline-mcp-cli use-tool' 命令调用不同的 zkproof 工具,并传递相应的参数。
详细工具和参数说明:
zkMCP 服务器提供了以下工具,您可以通过 'list-tools' 命令查看工具的详细信息,包括 'name', 'description', 'inputSchema' 等。
- 'build_circuit': 构建 Circom 电路,参数为 'circomFile' (Circom 文件路径)。
- 'trusted_setup': 执行可信设置,参数为 'r1csFile' (R1CS 文件路径)。
- 'generate_proof': 生成零知识证明,参数包括 'zkeyPath' (Zkey 文件路径), 'wasmPath' (WASM 文件路径), 'inputJsonPath' (输入 JSON 文件路径)。
- 'verify_proof': 验证零知识证明,参数包括 'verificationKey' (验证密钥文件路径), 'publicOutput' (公开输出文件路径), 'proofFile' (证明文件路径)。
请根据您的具体需求和场景,参考示例代码和工具说明,使用 MCP 客户端与 zkMCP 服务器进行交互,完成零知识证明的构建、生成和验证流程。
信息
分类
AI与计算