Quick Start¶
Running the MCP server¶
After installing, start the server:
uv run curate-ipsum
The server communicates over stdin/stdout using the MCP protocol. Connect an MCP client (Claude Desktop, Claude Code, etc.) and the tools become available.
First workflow: mutation testing¶
Detect your project’s mutation framework:
Call
detect_frameworkswith your project’s working directory. The server auto-detects Stryker, mutmut, cosmic-ray, poodle, or universalmutator.Run mutation tests:
Call
run_mutation_testswith a command likenpx stryker runormutmut run. The server parses the report and stores the results.Check region metrics:
Call
get_region_metricsto see mutation score and PID-like trending metrics for any code region (file, class, function, or line range).
Second workflow: graph-spectral analysis¶
Extract the call graph:
Call
extract_call_graphwith your Python project directory. The server builds a full call graph with SCC analysis and persists it to SQLite.Partition the codebase:
Call
compute_partitioningto apply Fiedler spectral partitioning — recursively bipartitions the graph using the second eigenvector of the Laplacian.Query reachability:
Call
query_reachabilitybetween two functions. Uses Kameda O(1) index on planar subgraphs with BFS fallback for non-planar edges.
Third workflow: verified synthesis¶
Add evidence and assertions to the theory:
Call
store_evidenceandadd_assertionto build up a belief revision theory about your code.Synthesize a verified patch:
Call
synthesize_patch— the CEGIS engine uses LLM candidates + genetic algorithm evolution + Z3 verification to produce a formally checked patch.Review provenance:
Call
get_provenanceandwhy_believeto inspect the evidence chain behind any assertion.
Service stack (Docker Compose)¶
For the full experience with persistent ChromaDB and angr symbolic execution:
make docker-up-verify # starts Chroma + angr runner
uv run curate-ipsum # server connects to running services