Proof
Govern your AI coding agent: frame the work, review the changes, keep a signed decision record.
Connector by ToremLabs · GitHub account verified by the MCP Registry
Chalk Labs
Need help deploying Proof?
Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.
Install
Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.
npx agentmarket install connector/toremlabs-proof
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this server can do and what it asks for, from its tool list and install config. Checked Oct 25, 2026.
- Tools
- 20 read · 24 write · 4 delete · 5 not yet classified
- Secrets
- None asked for
- Install scripts
- Not scanned yet
- Runs as
- Node.js package
Tools by what they do 53
Read from the source code; the running server may list different tools.
Read 20 · Look things up without changing anything.
find_conceptsfind_orphansget_agent_runget_conceptget_concept_proofget_project_graphget_runget_subtreeget_verification_recordget_workspace_summarylist_agent_runslist_concepts
Show 8 more tools
list_edgeslist_pending_handoffslist_projectslist_proofslist_recent_decisionslist_sheetslist_verification_recordssearch_concepts
Write 24 · Create, change, send or run things.
add_challengeadd_conceptadd_evidenceadd_krefadd_to_ideaarchive_conceptbulk_add_conceptscreate_ideacreate_projectlink_conceptsrecord_proofrename_idea
Show 12 more tools
run_operatorrun_operator_and_commitset_idea_membersset_parentset_project_criteriaset_project_identityset_standingstar_conceptsubmit_review_summaryupdate_agent_runupdate_conceptupdate_project
Delete 4 · Delete, drop, revoke or wipe things.
delete_ideadelete_projectremove_conceptremove_concepts
Not yet classified 5 · We could not tell from the name and description.
claim_handoffexpand_conceptrecolor_ideaunarchive_conceptvalidate_concept
Files it touches
- Any path the agent passes to its tools
Tools (53)
Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].
add_challengeRecord an objection (red-team challenge) against a concept, with a severity (low/medium/high) and optional one-line verdict. New objections start UNADDRESSED; every objection must be addressed before the proof gate clears. Appends to any existing challenge on the concept.
add_conceptCreate a new concept (Node). Set parentId whenever you know where this belongs: it becomes a CHILD of that concept and a partition edge is auto-created. Omitting parentId leaves the concept ROOTLESS (no parent at all, not the project root): rootless concepts pile up as an unreadable flat cloud, so only omit it when this genuinely is a new top-level idea. Use find_orphans + set_parent afterward to re-home anything left rootless. Optional `sheet` places it on a named canvas sheet (see list_sheets); omitted lands it on the project's default sheet.
add_evidenceAttach a piece of evidence to a concept: 'support' (FOR the idea) or 'counter' (AGAINST it), with the claim text and an optional source citation. Evidence is one leg of the proof gate — a concept needs at least one supporting piece to be provable.
add_krefConvenience: create a k-ref (knowledge reference) edge from fromId → toId. Equivalent to link_concepts with kind=k-ref.
add_to_ideaAdd a single concept to an existing Idea (idempotent).
archive_conceptArchive a concept (status=archived). Reversible via unarchive_concept.
bulk_add_conceptsCreate many concepts in a single atomic transaction. `items` is an array; each item carries label / description? / parentId? / projectId? / sheet? / tags?. Set parentId on every item you can: an item with no parentId lands ROOTLESS, and a bulk run that leaves many concepts rootless turns the canvas into an unreadable flat cloud. project_id is resolved per-item (explicit > inherited from parent > workspace solo project); `sheet` (a name or id from list_sheets) optionally places an item on a canvas sheet, else it lands on the project's default sheet. Returns the created ids in input order. Run f…
claim_handoffClaim a pending handoff by its run id (from list_pending_handoffs). Atomically takes ownership: the run transitions to 'running' and is attributed to this device, so it can't be double-claimed. Returns the brief to work from. After you finish, close the run with update_agent_run (status + summary + pushedRef/prUrl).
create_ideaCreate a new Idea (a named grouping of concepts) with an optional color and optional starting node membership.
create_projectCreate a new Project (problem-with-direction) with a name and brief. Optional `direction`. When you add concepts under this project, set parentId on each one so it joins the semantic tree: a project full of rootless concepts reads as an unreadable flat cloud. Use find_orphans + set_parent to repair one that already has rootless concepts.
delete_ideaDelete an Idea. Membership rows cascade via FK; the underlying concepts are untouched.
delete_projectDelete a project. By default its concepts are LEFT behind as orphans (find them later with find_orphans). Pass deleteNodes:true to also hard-delete every concept in the project (each cascades its subtree) so no orphans are created.
expand_conceptRecursive Branch — expand a concept by `breadth` children at each of `depth` levels. EXPANSION IS GEOMETRIC: every node at each level is expanded again, so depth=3 breadth=5 is 31 model calls and about 155 new concepts, not 15. Calls are capped at 15; start small (depth=2, breadth=3 is 4 calls) and expand again if the result is worth it. Commits each level immediately so the webapp shows partial results as the run progresses. Optionally takes an `angle` hint that biases the underlying EXPLORE operator. Best when the anchor has few or no children yet; on a dense subtree consider `run_operator(f…
find_conceptsFind concepts by label/substring match. Returns up to k hits, each with id, label, status.
find_orphansSurface concepts no normal traversal reaches, scoped to your workspace: 'projectless' (in no project — typically left behind by delete_project) and 'danglingParent' (parent_id points at a deleted node). Read-only. Clean up with remove_concepts (delete) or set_parent (re-home).
Show 38 more tools
get_agent_runFetch one agent-run record by id (intent, status, summary, error, start/end times). Use to read the brief you were given or to confirm a status update landed.
get_conceptOne concept by id, optionally with its ancestry (parent chain), direct children, and idea memberships.
get_concept_proofRead one concept's full proving state: its evidence, the challenge objections, which project criteria it meets, any recorded proof, and the computed proof gate (what still blocks validation).
get_project_graphEvery node + edge inside one project. Returns a graph the agent can reason over end-to-end. Use for project-wide questions.
get_runFetch an async operator run by its runId. Returns { status: "running" | "done" | "error" }; when "done", the `result` field holds the operator output (candidates / committedIds). Waits up to ~8s for completion before returning, so a simple poll loop converges fast. run_operator / run_operator_and_commit / expand_concept hand back a runId whenever their work exceeds the ~8s fast-path window.
get_subtreeA node and its descendants up to a given depth. Pass the concept as `id` (or `rootId`). Use when the user asks "tell me about everything under X".
get_verification_recordFetch one full verification record (its per-file outcomes: cleared / approved / flagged, with reasons and notes). Read-only.
get_workspace_summaryCounts of nodes / edges / projects / ideas + a one-line overview of each project and idea. Always start here when you don't know what's in the workspace.
link_conceptsCreate an edge between two concepts. kind is one of: 'k-ref' (knowledge reference), 'derived-from' (provenance link), 'semantic-adjacency' (sibling kinship). Partition (parent/child) edges are managed via add_concept / set_parent.
list_agent_runsList agent runs newest-first, optionally narrowed to one project. Use to see recent runs and their outcomes.
list_conceptsList concepts in the workspace or one project. Returns id / label / status / parentId / tags up to `limit` entries (default 500). Use BEFORE making changes to learn what already exists.
list_edgesList every edge in the workspace (or restricted to a project). Filter by kind: partition / k-ref / semantic-adjacency / derived-from / imported-from.
list_pending_handoffsList PENDING handoffs (queued agent runs) the user sent from Proof for THIS device to pick up. Each entry carries the full build brief (problem, concepts to build, acceptance criteria, things to avoid) so you can start immediately. Call this at the start of a session — if a handoff is waiting, claim it with claim_handoff and begin. Includes untargeted handoffs by default.
list_projectsEvery project in the workspace with brief, direction, lifecycle, and node count. Use this to figure out which project the user is asking about.
list_proofsList the proving snapshot for every concept that has any proving state — across the workspace, or restricted to one project (which also reports criteria coverage). Each entry shows support/counter counts, challenge progress, criteria met, and whether the gate is ready.
list_recent_decisionsNodes the user has explicitly resolved (validated, starred, or archived) recently. Use to surface "what did we conclude last week" without a full scan.
list_sheetsList one project's sheets (canvas pages) — id, name, and order, excluding deleted sheets. Nodes with no sheet render on the project's default sheet. Pass a listed name or id as `sheet` to add_concept / bulk_add_concepts to place new concepts on a specific sheet.
list_verification_recordsList the SIGNED verification records (human code-review sign-offs) across the workspace or one project, newest-first. Read-only: this is the human's accountable record — the agent inspects it, it cannot create one.
recolor_ideaChange an Idea's color (any CSS color string).
record_proofRecord a concept's proof and promote it to validated. Snapshots the proof gate (support, criteria met, objections addressed) into a durable proof record. Refuses when the gate isn't clear and returns the blockers; pass force:true to record anyway. The signer is the authenticated user.
remove_conceptHard-delete a concept and its descendants (walks the subtree via parent_id AND partition edges). Edges and project/idea memberships cascade via FK. Refuses to delete a project root node. For many at once, use remove_concepts.
remove_conceptsBulk hard-delete: delete many concepts in one call (each cascades its own subtree). Returns per-id results. Ids already swept up in another id's cascade come back ok:false (not-found) — expected, not fatal. Pair with find_orphans for cleanup.
rename_ideaRename an Idea.
run_operatorRun an ASIT / TRIZ / Contradiction / Free / Combine / Explore operator against one concept (the anchor). Returns CANDIDATE concepts WITHOUT committing them — call `bulk_add_concepts` (or `run_operator_and_commit`) to persist. Use this when you want the agent to vet the candidates before writing. The anchor must already live in a project; the operator pulls in ancestry + validated knowledge in the same project to ground the prompt.
run_operator_and_commitSame as `run_operator`, but immediately writes every top-level candidate as a child of the anchor with a partition edge and a provenance row stamped origin='mcp'. Use when the agent is confident the candidates should land directly on the canvas (e.g. inside an autonomous expand loop). Children-of-children proposed in `partitions[].children` are NOT auto-committed — request them via a separate run.
search_conceptsSubstring search across concept labels, descriptions, partition attributes, rationale, and tags. Use this when the user mentions a concept by name and you don't have its id. (Semantic search is a Phase 19.5 enhancement.)
set_idea_membersReplace an Idea's full membership with `nodeIds`. Reconciles the junction table: inserts missing pairs, deletes pairs no longer in the set. Returns added / removed counts.
set_parentRe-parent an existing concept: nodeId's parent becomes newParentId (or detached when null). Updates BOTH node.parent_id AND the partition edge so the canvas tree stays in sync.
set_project_criteriaReplace a project's success criteria with `criteria` (plain sentences) — the gate record_proof checks before a concept can be validated. Merges by text: a sentence already on the project keeps its existing criterion id (so concepts that meet it stay met), new sentences mint new criteria, and sentences you leave out are removed. Returns the resulting list.
set_project_identitySet a project's IDENTITY — one plain sentence stating what the project fundamentally does for its user — and optionally the design `dimensions` its concept decomposition runs along. The webapp's identity-first analysis writes these too, so only set them when asked or when they are empty (check get_project_graph).
set_standingSet a concept's STANDING — how known / proven the idea is in the wider world. `standing` ∈ 'novel' | 'emerging' | 'established' | 'unknown'. `rationale` is a one-sentence justification (saved as `standing_rationale`). Use this when classifying / judging novelty.
star_conceptToggle the starred flag on a concept (user-favorite marker).
submit_review_summaryAttach the agent's OWN review notes to its run so the human reviewer sees them BEFORE signing off: a summary of what changed, the risks you see, and any files a human should inspect closely. This is inspect + assist only — it does NOT create or sign a verification record (the human's accountable act stays in the Verify surface). When the run has a PR, the result carries proofReview: {url, forTheHuman} — the link where the human reviews and signs, with live sign-off-policy progress when the repo has a policy; ALWAYS repeat proofReview.url in your reply to the user.
unarchive_conceptRevive a previously-archived concept (status=open). Idempotent on already-open nodes.
update_agent_runUpdate the agent-run row you were handed (its id is on the handoff brief as "Agent run id"). Set status to running / succeeded / failed / cancelled and optionally a result summary or error. When you finish, also report pushedRef (the branch you pushed) and/or prUrl (the PR you opened) so the human can review the exact diff, and verificationRecordId once a record is signed. A terminal status stamps the run's end time and records which MCP device closed it. Call this when you start working and again when you finish. When a PR is known, the result carries proofReview: {url, forTheHuman} — the lin…
update_conceptUpdate an existing concept's label, description, tags, partitionAttribute, rationale, or status. Only the fields provided are changed.
update_projectUpdate a project's name / brief / direction / lifecycle. Only fields provided are changed.
validate_conceptMark a concept as validated (status=validated). Optionally also overwrite `rationale`. Idempotent on already-validated nodes.
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 0
- Last commit
- Sep 4, 2026 (1 month ago)
- Last release
- Jul 28, 2026 (3 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- Registry name
io.github.ToremLabs/proof- Version
- 1.0.0
- Auth
- No auth
- Packages
- npm @toremlabs/proof-mcp
- License
- AGPL-3.0
- Repository
- github.com/ToremLabs/proof-mcp
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
More from ToremLabs
Done for you
Rather not set it up yourself?
Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.
See how we build AI agents →Read the case studies
Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.
- launches shipped
- 50+
- launches shipped
- media placements
- 500+
- media placements
- founders on every account
- 2
- founders on every account
Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block
Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.
Get Proof running in your business
Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.
Cite this page
Proof MCP server. Agent Mart. https://agentmart.dev/connectors/toremlabs-proof (last updated 2026-10-24)