{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_zdxzzmbwdumu","handle":"planner-mcp-provable-done-for-ai-agents","url":"https://wellknown.network/agents/planner-mcp-provable-done-for-ai-agents","links":{"self":"https://wellknown.network/agents/planner-mcp-provable-done-for-ai-agents/record.json","html":"https://wellknown.network/agents/planner-mcp-provable-done-for-ai-agents","markdown":"https://wellknown.network/agents/planner-mcp-provable-done-for-ai-agents/record.md","api":"https://wellknown.network/api/v1/agents/planner-mcp-provable-done-for-ai-agents","status":"https://wellknown.network/api/v1/agents/planner-mcp-provable-done-for-ai-agents/status","claim":"https://wellknown.network/agents/planner-mcp-provable-done-for-ai-agents/claim","claimApi":"https://wellknown.network/api/v1/claims","badge":"https://wellknown.network/agents/planner-mcp-provable-done-for-ai-agents/badge.svg","openapi":"https://wellknown.network/openapi.json"},"ard":{"identifier":"urn:air:planner.monopoly-gold.com:server:planner-mcp-provable-done-for-ai-agents","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"Planner MCP — provable \"done\" for AI agents","summary":"Goal and task planning MCP for Codex and AI agents, with evidence-backed completion.","description":"Goal and task planning MCP for Codex and AI agents, with evidence-backed completion.","publisher":{"name":"com.monopoly-gold.planner","url":null},"homepage":"https://planner.monopoly-gold.com/connect/codex?utm_source=mcp-registry&utm_medium=referral&utm_campaign=mcp-directory","repository":"https://github.com/dev-lab-global/planner","version":"2.0.0","license":null,"protocols":["mcp"],"tags":[],"pricing":null,"endpoints":[{"url":"https://planner.monopoly-gold.com/_mcp","type":"mcp_streamable_http","auth":null,"probeable":true}],"skills":null,"tools":null,"extra":{"updatedAt":"2026-09-04T17:06:37.179709Z","publishedAt":"2026-09-04T17:06:37.179709Z","registryName":"com.monopoly-gold.planner/mcp"},"attribution":{"kind":"mcp_registry","name":"mcp_registry","repoUrl":"mcp_registry","summary":"mcp_registry","version":"mcp_registry","description":"mcp_registry","homepageUrl":"mcp_registry","publisherName":"mcp_registry"}},"derived":{"capabilities":[{"slug":"dev.version-control","name":"Version Control","confidence":1,"provenance":"derived"},{"slug":"productivity.tasks","name":"Tasks & To-do","confidence":0.948,"provenance":"derived"},{"slug":"knowledge.reasoning","name":"Reasoning & Planning","confidence":0.938,"provenance":"derived"},{"slug":"dev.ci-cd","name":"CI/CD & Deploy","confidence":0.933,"provenance":"derived"},{"slug":"documents.contracts","name":"Contracts & Legal","confidence":0.525,"provenance":"derived"},{"slug":"data.database","name":"Databases","confidence":0.525,"provenance":"derived"},{"slug":"content.writing","name":"Writing & Editing","confidence":0.51,"provenance":"derived"}],"categories":["content","data","dev","documents","knowledge","productivity"]},"observed":{"status":"live","statusReason":"Responded 1h ago.","lastOkAt":"2026-09-05T22:25:46.641Z","lastProbedAt":"2026-09-05T22:25:46.641Z","statusComputedAt":"2026-09-05T22:26:42.374Z","reliability30d":{"probes":1,"successRate":1,"p50Ms":406},"latestObservations":[{"at":"2026-09-05T22:25:46.641Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":406,"error":null,"detail":{"tools":[{"name":"project-list","description":"List all projects with optional status filter (active/archived/paused). Returns id, title, slug, webUrl, icon, and goals_count for each project. Use project-get"},{"name":"project-create","description":"Create a new project container for goals. Requires title and a unique slug (lowercase a-z, 0-9, hyphens). Optional: description, status (active/archived/paused,"},{"name":"project-get","description":"Fetch full project details: title, slug, status, description, icon, tags, repository info, sourceRef ({type,url,ref} for remote-research or null), goals breakdo"},{"name":"project-update","description":"Partial update of a project — only the fields you pass are changed; omitted fields are untouched. Updatable: title, slug, description, status (active/archived/p"},{"name":"project-delete","description":"Delete a project. If the project has goals, pass force=true to cascade-delete them all; without force, the call is rejected with the goals count. Returns delete"},{"name":"project-add-dependency","description":"Declare that one project depends on another (depends-on relationship). Accepts UUID or slug for both sides. Idempotent: if the dependency already exists, return"},{"name":"project-remove-dependency","description":"Remove a project dependency. Two lookup modes: pass dependency_id (UUID of the link itself), or pass both projectId and dependsOnProjectId (UUID or slug). Retur"},{"name":"goal-list","description":"List goals with optional filters: projectId (UUID), status (backlog/checking_ac/checking_ac_failed/checking_ac_errored/ready_for_work/in_progress/blocked/done/c"},{"name":"goal-create","description":"Create a goal/task/milestone/habit in the planning tree. Two modes: grove (default) — enforces acceptance criteria gate on status transitions (AC required befor"},{"name":"goal-get","description":"Fetch full details of a single goal: title, description, status, priority, type, mode, children, acceptance criteria (with evidence coverage), blockers, tags, d"},{"name":"goal-update","description":"Partial update of a goal — only the fields you pass are changed; omitted fields are untouched. Updatable: title, status, priority (1-5), description, type, tags"},{"name":"goal-delete","description":"IRREVERSIBLY delete a goal and all its descendants (children, evidence, blockers). Prefer goal-update status=cancelled to preserve history, or goal-block to mar"},{"name":"goal-move","description":"Move a goal to a different parent or project. Pass newParentId=UUID to reparent (inherits project from new parent), newParentId=null to make root. Optional proj"},{"name":"goal-reorder","description":"Set display order of sibling goals within the same parent and priority band. Pass an array of goal UUIDs in the desired order — each is assigned position = its "},{"name":"goal-block","description":"Add a blocker to a goal (blockers are additive — each call appends a new one, existing blockers are preserved). Sets status to blocked. Optionally create an inl"},{"name":"goal-remove-blocker","description":"Remove a blocker from a goal by blocker UUID. If it was the last active blocker, the goal automatically returns to its previous status (in_progress or backlog)."},{"name":"goal-todo","description":"Quick-capture a task or improvement idea into a project. Creates a backlog task with priority 4 (low) and auto-adds the \"suggestion\" tag. Resolves project by sl"},{"name":"goal-add-note","description":"Add a free-form note (markdown supported) to a goal — decisions taken, dead ends hit, context worth carrying into the next session. Notes are NOT evidence: they"},{"name":"goal-remove-note","description":"Remove a note from a goal by note UUID. Note ids come from goal-get (notes[].id). Deletes only the note — never touches acceptance criteria, evidence or blocker"},{"name":"goal-tree","description":"Fetch the full goal hierarchy as a nested tree. Optional filters: projectId (UUID) to scope to one project, rootId (UUID) to get a subtree. Each node includes i"},{"name":"goal-summary","description":"Aggregate statistics across all goals (or scoped to a projectId): total count, breakdown by status, root count, blocked count, and overdue count. Useful for dai"},{"name":"goal-add-criterion","description":"Append an acceptance criterion to a goal. The text must describe an observable check over an artifact (e.g. \"GET /api/health returns 200 with {status:ok}\"), not"},{"name":"goal-update-criterion","description":"Update an acceptance criterion: its text and/or its class + probe. probeClass=post-deploy requires an executable probeSpec {method, url, expect:{http_code, body"},{"name":"goal-remove-criterion","description":"Remove an acceptance criterion from a goal. Grove mode: only while goal is in backlog (frozen once started). Standard mode: until goal is done. Cascades to all "},{"name":"goal-attach-evidence","description":"PRIMARY path to close a Grove goal: this is the ONLY tool that covers an acceptance criterion. Attach binary evidence (screenshot, log dump, API response, expor"},{"name":"goal-request-upload","description":"PREFERRED path to attach a LARGE binary evidence file (screenshot, log dump, PDF, session transcript — anything > ~1 KB) to an acceptance criterion. Returns a o"},{"name":"goal-add-evidence-text","description":"SUBORDINATE / supplementary path — does NOT close an acceptance criterion. Adds a text-only note (URL to a permanent external source like CI run / GitHub commit"},{"name":"goal-remove-evidence","description":"Delete an evidence record by UUID. Forbidden if the owning goal is already done (evidence is frozen after close). Removes both the database record and the attac"},{"name":"goal-add-assumption","description":"Add an assumption to a goal edge (parent→this goal). An assumption is an explicit premise: \"why does completing this goal contribute to the parent?\" Requires th"},{"name":"goal-update-assumption","description":"Update text or signpost of an assumption. Status cannot be changed manually — transitions happen only via evidence judge verdicts."},{"name":"goal-remove-assumption","description":"Remove an assumption from a goal edge."},{"name":"goal-suggest-assumptions","description":"LLM generates suggested assumptions for a goal edge (parent→child). Returns 2-4 assumptions with signposts and type classification. Author should review, edit, "},{"name":"goal-attach-assumption-evidence","description":"Attach text evidence to an assumption and judge it. The judge evaluates whether the evidence supports or challenges the assumption and automatically transitions"},{"name":"goal-request-ac-change","description":"Request a change to an acceptance criterion. grounds=unreachable (default): the AC cannot be proven — requires ≥3 failed evidence attempts (weak/mismatch) with "},{"name":"goal-resolve-escalation","description":"Resolve a pending AC escalation. Owner decides: edit (provide new AC text), split (move AC to a child goal), drop (remove the AC outright, optionally with a lin"},{"name":"goal-attach-file","description":"Attach a small file (mockup, diagram, screenshot, PDF) to a GOAL as a description attachment — NOT evidence: it is not bound to any acceptance criterion, is nev"},{"name":"goal-dismiss-red-team","description":"Dismiss the red-team finding that blocks a goal from starting, when you disagree with the verdict. Requires a reason of at least 80 characters explaining why th"},{"name":"goal-recent-unresolved","description":"Pull-инбокс для «подхватить и довести» в неосновное окно. По одному проекту, за окно N дней, статусы для подхвата (очередь исполнителя — ready_for_work и checki"},{"name":"goal-record-iteration-certificate","description":"Record one completed LeanSolver iteration against the current tracked contract. Result artifact refs must resolve to existing evidence or goal_attachment rows o"},{"name":"goal-register-iteration-finding","description":"Register an immutable LeanSolver finding against the currently tracked goal contract. subjectRefs must be goal-scoped refs of kind goal, criterion, or assumptio"},{"name":"goal-start-iteration-tracking","description":"Explicitly start LeanSolver iteration tracking for the goal contract currently stored by Planner. Planner computes the contract fingerprint server-side from tit"},{"name":"account-delete","description":"НЕОБРАТИМО удалить свой аккаунт и ВСЕ данные (проекты, цели, evidence, историю). Двухшаговый барьер: вызови без аргументов — получишь предупреждение и challenge"}],"toolCount":42,"serverName":"com.monopoly-gold.planner/mcp","capabilities":["logging","completions","prompts","resources","tools"],"serverVersion":"2.0.0","protocolVersion":"2025-06-18"}}],"tools":[{"name":"project-list","description":"List all projects with optional status filter (active/archived/paused). Returns id, title, slug, webUrl, icon, and goals_count for each project. Use project-get"},{"name":"project-create","description":"Create a new project container for goals. Requires title and a unique slug (lowercase a-z, 0-9, hyphens). Optional: description, status (active/archived/paused,"},{"name":"project-get","description":"Fetch full project details: title, slug, status, description, icon, tags, repository info, sourceRef ({type,url,ref} for remote-research or null), goals breakdo"},{"name":"project-update","description":"Partial update of a project — only the fields you pass are changed; omitted fields are untouched. Updatable: title, slug, description, status (active/archived/p"},{"name":"project-delete","description":"Delete a project. If the project has goals, pass force=true to cascade-delete them all; without force, the call is rejected with the goals count. Returns delete"},{"name":"project-add-dependency","description":"Declare that one project depends on another (depends-on relationship). Accepts UUID or slug for both sides. Idempotent: if the dependency already exists, return"},{"name":"project-remove-dependency","description":"Remove a project dependency. Two lookup modes: pass dependency_id (UUID of the link itself), or pass both projectId and dependsOnProjectId (UUID or slug). Retur"},{"name":"goal-list","description":"List goals with optional filters: projectId (UUID), status (backlog/checking_ac/checking_ac_failed/checking_ac_errored/ready_for_work/in_progress/blocked/done/c"},{"name":"goal-create","description":"Create a goal/task/milestone/habit in the planning tree. Two modes: grove (default) — enforces acceptance criteria gate on status transitions (AC required befor"},{"name":"goal-get","description":"Fetch full details of a single goal: title, description, status, priority, type, mode, children, acceptance criteria (with evidence coverage), blockers, tags, d"},{"name":"goal-update","description":"Partial update of a goal — only the fields you pass are changed; omitted fields are untouched. Updatable: title, status, priority (1-5), description, type, tags"},{"name":"goal-delete","description":"IRREVERSIBLY delete a goal and all its descendants (children, evidence, blockers). Prefer goal-update status=cancelled to preserve history, or goal-block to mar"},{"name":"goal-move","description":"Move a goal to a different parent or project. Pass newParentId=UUID to reparent (inherits project from new parent), newParentId=null to make root. Optional proj"},{"name":"goal-reorder","description":"Set display order of sibling goals within the same parent and priority band. Pass an array of goal UUIDs in the desired order — each is assigned position = its "},{"name":"goal-block","description":"Add a blocker to a goal (blockers are additive — each call appends a new one, existing blockers are preserved). Sets status to blocked. Optionally create an inl"},{"name":"goal-remove-blocker","description":"Remove a blocker from a goal by blocker UUID. If it was the last active blocker, the goal automatically returns to its previous status (in_progress or backlog)."},{"name":"goal-todo","description":"Quick-capture a task or improvement idea into a project. Creates a backlog task with priority 4 (low) and auto-adds the \"suggestion\" tag. Resolves project by sl"},{"name":"goal-add-note","description":"Add a free-form note (markdown supported) to a goal — decisions taken, dead ends hit, context worth carrying into the next session. Notes are NOT evidence: they"},{"name":"goal-remove-note","description":"Remove a note from a goal by note UUID. Note ids come from goal-get (notes[].id). Deletes only the note — never touches acceptance criteria, evidence or blocker"},{"name":"goal-tree","description":"Fetch the full goal hierarchy as a nested tree. Optional filters: projectId (UUID) to scope to one project, rootId (UUID) to get a subtree. Each node includes i"},{"name":"goal-summary","description":"Aggregate statistics across all goals (or scoped to a projectId): total count, breakdown by status, root count, blocked count, and overdue count. Useful for dai"},{"name":"goal-add-criterion","description":"Append an acceptance criterion to a goal. The text must describe an observable check over an artifact (e.g. \"GET /api/health returns 200 with {status:ok}\"), not"},{"name":"goal-update-criterion","description":"Update an acceptance criterion: its text and/or its class + probe. probeClass=post-deploy requires an executable probeSpec {method, url, expect:{http_code, body"},{"name":"goal-remove-criterion","description":"Remove an acceptance criterion from a goal. Grove mode: only while goal is in backlog (frozen once started). Standard mode: until goal is done. Cascades to all "},{"name":"goal-attach-evidence","description":"PRIMARY path to close a Grove goal: this is the ONLY tool that covers an acceptance criterion. Attach binary evidence (screenshot, log dump, API response, expor"},{"name":"goal-request-upload","description":"PREFERRED path to attach a LARGE binary evidence file (screenshot, log dump, PDF, session transcript — anything > ~1 KB) to an acceptance criterion. Returns a o"},{"name":"goal-add-evidence-text","description":"SUBORDINATE / supplementary path — does NOT close an acceptance criterion. Adds a text-only note (URL to a permanent external source like CI run / GitHub commit"},{"name":"goal-remove-evidence","description":"Delete an evidence record by UUID. Forbidden if the owning goal is already done (evidence is frozen after close). Removes both the database record and the attac"},{"name":"goal-add-assumption","description":"Add an assumption to a goal edge (parent→this goal). An assumption is an explicit premise: \"why does completing this goal contribute to the parent?\" Requires th"},{"name":"goal-update-assumption","description":"Update text or signpost of an assumption. Status cannot be changed manually — transitions happen only via evidence judge verdicts."},{"name":"goal-remove-assumption","description":"Remove an assumption from a goal edge."},{"name":"goal-suggest-assumptions","description":"LLM generates suggested assumptions for a goal edge (parent→child). Returns 2-4 assumptions with signposts and type classification. Author should review, edit, "},{"name":"goal-attach-assumption-evidence","description":"Attach text evidence to an assumption and judge it. The judge evaluates whether the evidence supports or challenges the assumption and automatically transitions"},{"name":"goal-request-ac-change","description":"Request a change to an acceptance criterion. grounds=unreachable (default): the AC cannot be proven — requires ≥3 failed evidence attempts (weak/mismatch) with "},{"name":"goal-resolve-escalation","description":"Resolve a pending AC escalation. Owner decides: edit (provide new AC text), split (move AC to a child goal), drop (remove the AC outright, optionally with a lin"},{"name":"goal-attach-file","description":"Attach a small file (mockup, diagram, screenshot, PDF) to a GOAL as a description attachment — NOT evidence: it is not bound to any acceptance criterion, is nev"},{"name":"goal-dismiss-red-team","description":"Dismiss the red-team finding that blocks a goal from starting, when you disagree with the verdict. Requires a reason of at least 80 characters explaining why th"},{"name":"goal-recent-unresolved","description":"Pull-инбокс для «подхватить и довести» в неосновное окно. По одному проекту, за окно N дней, статусы для подхвата (очередь исполнителя — ready_for_work и checki"},{"name":"goal-record-iteration-certificate","description":"Record one completed LeanSolver iteration against the current tracked contract. Result artifact refs must resolve to existing evidence or goal_attachment rows o"},{"name":"goal-register-iteration-finding","description":"Register an immutable LeanSolver finding against the currently tracked goal contract. subjectRefs must be goal-scoped refs of kind goal, criterion, or assumptio"},{"name":"goal-start-iteration-tracking","description":"Explicitly start LeanSolver iteration tracking for the goal contract currently stored by Planner. Planner computes the contract fingerprint server-side from tit"},{"name":"account-delete","description":"НЕОБРАТИМО удалить свой аккаунт и ВСЕ данные (проекты, цели, evidence, историю). Двухшаговый барьер: вызови без аргументов — получишь предупреждение и challenge"}],"package":null},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"mcp_registry","key":"com.monopoly-gold.planner/mcp","url":"https://registry.modelcontextprotocol.io/v0/servers/com.monopoly-gold.planner%2Fmcp","firstSeenAt":"2026-09-05T20:18:52.258Z","fetchedAt":"2026-09-05T20:18:52.258Z","normalizedAt":"2026-09-05T20:18:52.258Z"}]},"firstSeenAt":"2026-09-05T20:18:52.258Z","updatedAt":"2026-09-05T22:26:51.417Z"}