Skip to content

Claude/echidna mcp#32

Merged
hyperpolymath merged 2 commits intomainfrom
claude/echidna-mcp
Apr 22, 2026
Merged

Claude/echidna mcp#32
hyperpolymath merged 2 commits intomainfrom
claude/echidna-mcp

Conversation

@hyperpolymath
Copy link
Copy Markdown
Owner

No description provided.

claude added 2 commits April 22, 2026 16:39
…tool

Exposes the `echidna` CLI through the Model Context Protocol so Claude
Code / Claude API / other MCP-aware agents can invoke ECHIDNA's 105
prover backends as a first-class tool-use action.

### What ships

- New workspace member `crates/echidna-mcp/` with a Rust binary built
  on rmcp 1.5 (`ToolRouter` + `#[tool_router]` / `#[tool_handler]`
  macros, stdio transport). Single tool: `prove`.
- Tool schema (auto-generated from `ProveParams` via schemars 1):
  - `file: string` (required) — path to proof file (SMT-LIB, Lean,
    Coq, Agda, Isabelle, Mizar, F*, SPASS, Metamath, …)
  - `prover: string` (optional) — backend name; auto-detect if absent
  - `timeout_secs: u32` (optional, default 300)
  Returns `{verified, message, prover, raw_output, stderr}`.
- Stdio transport; log goes to stderr (so MCP clients don't see it on
  stdout). Echidna binary path via `ECHIDNA_BIN` env or `echidna` in PATH.
- Claude Code wiring: `.claude/settings.json` with
  `{"mcpServers": {"echidna": {"command": "echidna-mcp"}}}`.

### Smoke test (verified on this branch)

1. Install z3 (apt) — 4.8.12 in PATH.
2. Trivial SMT-LIB file `(set-logic QF_LIA) (declare-const x Int)
   (assert (> x 0)) (assert (< x 2)) (check-sat)`.
3. Feed the MCP server: initialize → notifications/initialized →
   tools/list → tools/call(prove, {file, prover:"Z3", timeout_secs:30}).
4. Response: `{"verified": true, "message": "✓ Proof verified
   successfully...", "prover": "Z3", ...}`.

End-to-end path works: MCP JSON-RPC → echidna CLI → Z3 → verdict.

### Roadmap update (docs/handover/TODO.md)

Added "Wave-5 (new backend targets, no adapter yet)" section tracking
prover backends that do not yet have an adapter in src/rust/provers/:
- **Andromeda** — scaffold `provers/andromeda.rs`, shells out to
  `andromeda` CLI (OCaml source build required). Open-source (MIT).
- **Theorema** — deferred (Mathematica-based, commercial licence).
- **Globular** — not a CLI prover (web UI for higher category theory);
  skipped unless scoped to graphical proof capture.

### Next sessions

- Install + wire the remaining 7 provers from the agreed MVP subset:
  Coq/Rocq, Isabelle, Agda, Mizar, F*, Lean 4, SPASS (SPASS apt pkg
  unavailable on this env, needs manual), Metamath.
- Containerfile: ECHIDNA + curated provers + the MCP server, so
  agents can `podman run` a self-contained proving service.
- Andromeda backend scaffold (Wave-5 entry #1).
Upgrades the capnp runtime and capnpc code-generator in echidna-wire
to clear RUSTSEC-2025-0143 ("Unsound APIs of public constant::Reader
and StructSchema", fixed in >=0.24). capnpc 0.25 regenerates the
wire module identically and the 3 echidna-wire smoke tests pass.

Only remaining cargo-audit warning is RUSTSEC-2025-0134 (rustls-pemfile
unmaintained) pulled transitively via tonic 0.12 in echidna-grpc; that
is tracked as a separate tonic 0.13 bump campaign.

https://claude.ai/code/session_01NaC5RXjTyr5xg9XXUa2FCC
@chatgpt-codex-connector
Copy link
Copy Markdown

Codex usage limits have been reached for code reviews. Please check with the admins of this repo to increase the limits by adding credits.
Credits must be used to enable repository wide code reviews.

@hyperpolymath hyperpolymath merged commit d5ee691 into main Apr 22, 2026
23 of 40 checks passed
@hyperpolymath hyperpolymath deleted the claude/echidna-mcp branch April 22, 2026 18:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants