MCP
给 Code Agent 的两套面:公网远程 guidance MCP(Cloudflare)与包装产品 CLI 的本地 stdio MCP。
ProofForge 提供 MCP-V0:代理可检索文档、选择 target,并在本地执行 doctor/install/build,而无需重实现 solc/leo/nargo。
远程边缘仅做 guidance。编译、私钥与 broadcast 仍在开发机,通过 stdio MCP 或 pf CLI 完成。
远程 · Streamable HTTP
Cloudflare Workers MCP
公网端点(v0 无 API key)。文档、catalog、agent 指令、CLI 速查、Aleo 线上 demo 链接。形态对齐 Solana Developer MCP。
- https://proof-forge-mcp.davirain-yin.workers.dev/
- POST https://proof-forge-mcp.davirain-yin.workers.dev/mcp
- /health
本地 · stdio
Python stdio MCP-V0
为 list-targets、doctor、install、build、inspect、local 启动 proof-forge-next。仅 Python 标准库,无额外 pip 依赖。
tools/mcp/proof_forge_mcp_server.py
边界(先读)
- 远程 Worker 不 spawn Lean/CLI、不持钥、不 broadcast。
- MCP 无默认网络 broadcast;产品 CLI network --broadcast 须显式调用。
- Tool Lock 安装绝不 PATH 回退进 PROOF_FORGE_TOOL_ROOT。
- 成功不等于 formal / hermetic / 主网 / deployable=true 证据。
- design-only targets(soroban、icp、openvm)不支持 install。
接入 — 远程
把 Codex、Claude Code 或 mcp-remote 指到公网 /mcp。
# Codex
codex mcp add proof-forge-mcp --url https://proof-forge-mcp.davirain-yin.workers.dev/mcp
# Claude Code
claude mcp add --transport http proof-forge-mcp https://proof-forge-mcp.davirain-yin.workers.dev/mcp
# Cursor / generic local proxy
npx -y mcp-remote https://proof-forge-mcp.davirain-yin.workers.dev/mcp远程工具(guidance)
边缘工具仅返回文本/JSON 指引。
| 工具 | 用途 |
|---|---|
| pf_health | 能力探测:传输层、边界、线上 demo 链接。 |
| pf_list_docs | 列出打包的产品文档(供 pf_get_doc 的 id)。 |
| pf_get_doc | 按 id 取回打包文档(安装面、playbook、钱包指南、catalog 等)。 |
| pf_search_docs | 在打包文档中关键词搜索(Aleo、pf CLI、安装、钱包、targets)。 |
| pf_chain_catalog | 链客户端 catalog:targets、成熟度、frontendClients / frontendTemplate。 |
| pf_target_info | 单个 target 说明:catalog 行 + 推荐本地 pf 命令。 |
| pf_agent_instructions | 给 Code Agent 的规范指令(优先于模型记忆)。 |
| pf_cli_cheatsheet | 简短 pf / proof-forge-next 命令序列。 |
| pf_aleo_live_demo | 已发布的 Aleo Testnet 证据(程序、交易、浏览器、asciinema)。 |
边缘打包的文档
部署时快照;仓库 docs/ 仍是权威源。用 pf_list_docs / pf_get_doc / pf_search_docs。
01-toolchain-install-surface.md安装阶梯 → 本机验证 → SDK / MCP
02-external-program-v1.md外部 ProgramV1:写合约 → build → inspect
03-hello-dapp-agent-playbook.mdHello dApp:Code Agent 剧本(后端 + 制品)
04-chain-client-catalog.md多链客户端 / 前端 catalog
05-distribution-and-packages.md分发:CLI · Lean 包 · 宿主 SDK/MCP
07-aleo-dapp-frontend-wallet.mdAleo dApp 前端:Wallet Adapter · Provable SDK · 与 PF 分工 · 模板
aleo-testnet-walkthrough.mdDemo:Aleo pf 走查(本地 → Testnet)
chain-client-catalog.v1.jsonchain-client-catalog.v1
mcp-stdio-readme.mdStdio MCP-V0 说明
新增 · FCCP 配套
Aleo dApp 前端(Wallet Adapter)
远程 MCP 打包 PRODUCT-ALEO-DAPP-FRONTEND-WALLET,并指向仓库模板 templates/aleo-dapp-ui(钱包 + StateCell UI)。PF 不 vendor/pin @provablehq 包,也不在浏览器代签。
pf_get_doc · 07-aleo-dapp-frontend-wallet.md
新增 · 仓库模板
templates/aleo-dapp-ui
最小 React + Vite UI:把 pf deploy 的 program id 接到官方 Provable Wallet Adapter。默认程序为线上 Testnet demo。不进入 Tool Lock pin。
templates/aleo-dapp-ui
在 GitHub 打开 →- React + Vite · AleoWalletProvider + WalletMultiButton
- Leo / Puzzle / Shield 钱包适配
- 对 StateCell 形态程序 initialize / increment
- 经 explorer REST 刷新 public mapping
- 浏览器不内嵌私钥
快速开始
cd templates/aleo-dapp-ui
cp .env.example .env # edit VITE_ALEO_PROGRAM_ID if needed
npm install
npm run dev
# → http://127.0.0.1:5173环境变量(仅公开)
| 变量 | 默认 | 含义 |
|---|---|---|
| VITE_ALEO_PROGRAM_ID | pfdemo336641.aleo | 链上 program id |
| VITE_ALEO_NETWORK | testnet | testnet | mainnet | canary |
| VITE_ALEO_API | https://api.explorer.provable.com/v1 | Explorer REST 基址 |
| VITE_ALEO_FEE_MICROCREDITS | 100000 | execute 的 public fee 提示 |
期望程序形态(StateCell twin)
- initialize(public u64)
- increment(public u64)
- mappings pf_state_0, initialized
接入你自己的 pf 程序
# monorepo / project with pf
pf new hello --target aleo && cd hello
pf build
pf deploy --network testnet --broadcast \
--private-key-env PF_ALEO_TESTNET_KEY \
--program-id myapp01
# template
echo 'VITE_ALEO_PROGRAM_ID=myapp01.aleo' > ../templates/aleo-dapp-ui/.env此处负责钱包 UX 与用户签名交易;编译/打包仍在 pf CLI / stdio MCP。生态 @provablehq 包不是 PF 产品锁版本。
权威边界
后端合约
ProofForge pf / proof-forge-next
仅开发者本机 CLI env;MCP 不持钥
前端钱包 UX
生态 Wallet Adapter(@provablehq/aleo-wallet-adaptor-*)
密钥留在浏览器扩展钱包
前端链逻辑
@provablehq/sdk · @provablehq/wasm
可选本地 prove;生产优先钱包内 prove
推荐包(生态,非 PF 发货)
| 包名 | 职责 |
|---|---|
| @provablehq/aleo-wallet-adaptor-react | AleoWalletProvider · useWallet |
| @provablehq/aleo-wallet-adaptor-react-ui | WalletModalProvider · WalletMultiButton |
| @provablehq/aleo-wallet-adaptor-leo | Leo Wallet 适配 |
| @provablehq/sdk | Program / Transaction / deploy·execute / RPC |
后端 → 前端对接
- pf setup · pf new · pf build → .aleo + query descriptor
- pf run(本机 VM)→ pf deploy --network testnet(save-only 或 --broadcast)
- 把 program id 写入 templates/aleo-dapp-ui .env(无私钥)
- npm run dev → 钱包连接 → executeTransaction → explorer
不要
- 永不把 APrivateKey… 放进前端 bundle / Vercel 浏览器 env
- 远程 MCP 不得代用户签名
- 同一应用不要混用 demox-labs 与 @provablehq 两套 adapter
Agent 剧本(前端切片)
- F0 pf_chain_catalog target=aleo → frontendTemplate = templates/aleo-dapp-ui
- F1 读 07-aleo-dapp-frontend-wallet.md §3–§5 + §11b
- F2 打开 templates/aleo-dapp-ui(Vite + WalletMultiButton)
- F3 安装 Leo/Puzzle/Shield 扩展 · Testnet 地址
- F4 VITE_ALEO_PROGRAM_ID 来自 pf deploy(无密钥)
- F5 executeTransaction initialize/increment → explorer
默认 Testnet。Mainnet 是应用自己的产品决策——pf CLI 拒绝 mainnet;与 formal 无关。新 dApp 优先 @provablehq,勿混用 demox-labs。
Stdio 工具(本地 CLI)
各工具只 spawn 产品 CLI / 包引擎(pf_chain_catalog 除外,读静态 JSON)。
| 工具 | CLI 映射 | 用途 |
|---|---|---|
| pf_list_targets | proof-forge-next list-targets [--all] --json | 列出物化 targets(已实现 / 全部)。 |
| pf_doctor | proof-forge-next doctor --json | 环境 / tool-root 健康检查。 |
| pf_install | proof-forge-next install --targets … --yes --json | 为 targets 安装锁定工具链(默认 --yes,除非 dryRun)。 |
| pf_build | proof-forge-next build <source> --module … --target … -o … --json | 物化程序。拒绝 broadcast/network 参数。 |
| pf_artifacts | proof-forge-next inspect --output-dir <dir> --json | 检查输出集闭包(路径 / 大小 / 哈希)。 |
| pf_local | proof-forge-next local --target … [--mode sandbox] -- --source … --module … | 本地/sandbox 运行路径。Aleo 为通用接口(需 source+module)。 |
| pf_chain_catalog | static docs/product/chain-client-catalog.v1.json | 静态客户端/前端元数据(不 spawn CLI)。 |
接入 — stdio(Cursor / Claude Desktop)
需要绝对路径。先 lake build 产出 CLI。
{
"mcpServers": {
"proof-forge": {
"command": "/usr/bin/python3",
"args": [
"-I",
"/absolute/path/to/proof_forge/tools/mcp/proof_forge_mcp_server.py"
],
"env": {
"PROOF_FORGE_ROOT": "/absolute/path/to/proof_forge",
"PROOF_FORGE_CLI": "/absolute/path/to/proof_forge/.lake/build/bin/proof-forge-next",
"PROOF_FORGE_TOOL_ROOT": "/absolute/path/to/tool-root/linux-x86_64"
}
}
}
}PROOF_FORGE_ROOT 须含 scripts/proof_forge_doctor.py。若 root 下已有 .lake/build/bin/proof-forge-next,则 PROOF_FORGE_CLI 可选。
自检 / smoke
/usr/bin/python3 -I tools/mcp/proof_forge_mcp_server.py --self-check
scripts/mcp_smoke.shAleo Testnet 线上 demo
远程 MCP(pf_aleo_live_demo)挂出的工程 demo 证据。不是 formal/hermetic/主网。
- 程序: pfdemo336641.aleo
- 录屏: https://asciinema.org/a/1262697
- Deploy 交易: at147hjftmt294hrdgy7…
- Execute 交易: at1j4g47meu322csew7v…
- Leo ≥ 4.4.1 · pf_state_0[0]=8u64, initialized[0]=true
私钥永不内嵌。当前 Testnet base fee 需 Leo ≥ 4.4.1。
打开 Aleo 专区 →