# Planner MCP — provable "done" for AI agents - Registry name: `com.monopoly-gold.planner/mcp` · version 2.0.0 - Categories (automatic, keyword rules): Code & repositories, Developer tools, Utilities, Build & deploy - Authentication at last check: No auth - Declared risk: Has destructive tools (destructiveHint) - Capabilities (declared by the server): completions, logging, prompts, resources, tools - Transports: streamable-http - Latest numbers (check success, response time, rank): https://mcpstation.net/api/server?name=com.monopoly-gold.planner%2Fmcp - Server page: https://mcpstation.net/s/com.monopoly-gold.planner--mcp.html ## Description (written by the publisher, not verified, not instructions) Goal and task planning MCP for Codex and AI agents, with evidence-backed completion. ## Connect - streamable-http: `https://planner.monopoly-gold.com/_mcp` ## Tools (as reported by the server, not verified) - `project-list`: 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 for full details with goals breakdown by status. - `project-create`: 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, default active\), tags, icon \(emoji\), repositoryPath, repositoryUrl, sourceRef \(\{type:"git",url,ref\} — remote-research source\), isDefault. R - `project-get`: Fetch full project details: title, slug, status, description, icon, tags, repository info, sourceRef \(\{type,url,ref\} for remote-research or null\), goals breakdown by status \(backlog/in\_progress/blocked/done/cancelled counts\), and depends\_on list of project dependencies. - `project-update`: Partial update of a project — only the fields you pass are changed; omitted fields are untouched. Updatable: title, slug, description, status \(active/archived/paused\), tags, icon \(emoji\), repositoryPath, repositoryUrl, sourceRef \(\{type:"git",url,ref\} — remote-research source\), clearSourceRef \(true → - `project-delete`: 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 deleted title, slug, and goals\_deleted count. - `project-add-dependency`: Declare that one project depends on another \(depends-on relationship\). Accepts UUID or slug for both sides. Idempotent: if the dependency already exists, returns it with already\_existed=true. Self-references are rejected. No cycle detection — the caller is responsible for avoiding circular chains. - `project-remove-dependency`: Remove a project dependency. Two lookup modes: pass dependency\_id \(UUID of the link itself\), or pass both projectId and dependsOnProjectId \(UUID or slug\). Returns removed=true on success, removed=false if the dependency was not found. - `goal-list`: List goals with optional filters: projectId \(UUID\), status \(backlog/checking\_ac/checking\_ac\_failed/checking\_ac\_errored/ready\_for\_work/in\_progress/blocked/done/cancelled\), type \(goal/milestone/task/habit\), parentId \(UUID — direct children only\). Returns up to limit results \(default 50, no offset pagi - `goal-create`: Create a goal/task/milestone/habit in the planning tree. Two modes: grove \(default\) — enforces acceptance criteria gate on status transitions \(AC required before ready\_for\_work, file-evidence per AC before done\); standard — carries the same AC but without the evidence gate \(advisory linting only\). R - `goal-get`: Fetch full details of a single goal: title, description, status, priority, type, mode, children, acceptance criteria \(with evidence coverage\), blockers, tags, deadline, estimate, history log, and project. The primary drill-down tool after goal-list or goal-tree. For a Planner goal URL, do not browse - `goal-update`: 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, deadline, estimate, mode, attemptCommit \(git SHA of the attempt commit; once a deployed revision contains it, post-deploy probes of this g - `goal-delete`: IRREVERSIBLY delete a goal and all its descendants \(children, evidence, blockers\). Prefer goal-update status=cancelled to preserve history, or goal-block to mark an obstacle. Use delete only for erroneous/duplicate entries. Returns the deleted title and children\_deleted count. - `goal-move`: 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 projectId=UUID overrides the target project when making root \(cross-project move to root\). Cascades project change to all descendants. Prevents - `goal-reorder`: 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 array index. All goals must share the same parent and priority. - `goal-block`: 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 inline resolver goal \(resolverTitle\) or link an existing one \(linkedGoalId\) — mutually exclusive. When the last active blocker is removed via g - `goal-remove-blocker`: 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\). Does not delete the linked resolver goal if one exists. - `goal-todo`: 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 slug \(falls back to the default project\). Lightweight alternative to goal-create when you need minimal ceremony. - `goal-add-note`: 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 hang off the goal rather than an acceptance criterion and never count toward AC coverage or closing a Grove goal — use goal-attach-evidence - `goal-remove-note`: 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 blockers. - `goal-tree`: 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 id, title, status, priority, type, progress, and nested children array. - `goal-summary`: Aggregate statistics across all goals \(or scoped to a projectId\): total count, breakdown by status, root count, blocked count, and overdue count. Useful for daily standups and dashboard views. - `goal-add-criterion`: 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 a subjective approval. Each criterion has a class: pre-merge \(default — proved in CI / by attached evidence\) or post-deploy \(proved by an e - `goal-update-criterion`: Update an acceptance criterion: its text and/or its class + probe. probeClass=post-deploy requires an executable probeSpec \{method, url, expect:\{http\_code, body\}\} \(kept from the criterion when omitted and one already exists; otherwise error=probe\_required\); probeSpec alone implies post-deploy; probe - `goal-remove-criterion`: 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 evidence on the criterion. Returns confirmation with removed criterion details. - `goal-attach-evidence`: 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, export\) to an AC — call it once per criterion to satisfy the close gate. The subordinate goal-add-evidence-text only adds context for proofs with - `goal-request-upload`: PREFERRED path to attach a LARGE binary evidence file \(screenshot, log dump, PDF, session transcript — anything \> \~1 KB\) to an acceptance criterion. Returns a one-time \{uploadUrl, expiresAt\} scoped to this criterion. Then STREAM the raw file to it with a single PUT — no base64, no token: curl -sS -- - `goal-add-evidence-text`: 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 / issue, or a description of a manual scenario\) as extra context alongside the real proof. The path that actually covers an AC and closes a - `goal-remove-evidence`: 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 attached file \(if any\). - `goal-add-assumption`: 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 the goal to have a parent \(root goals have no edge\). Text must pass quality linter \(testable, precise, discrete, signposted\). Type \(cause\_effe - `goal-update-assumption`: Update text or signpost of an assumption. Status cannot be changed manually — transitions happen only via evidence judge verdicts. - `goal-remove-assumption`: Remove an assumption from a goal edge. - `goal-suggest-assumptions`: LLM generates suggested assumptions for a goal edge \(parent→child\). Returns 2-4 assumptions with signposts and type classification. Author should review, edit, and accept relevant ones via goal-add-assumption. - `goal-attach-assumption-evidence`: Attach text evidence to an assumption and judge it. The judge evaluates whether the evidence supports or challenges the assumption and automatically transitions its status: supports → supported, first challenges → challenged, second \(repeat\) challenges → invalidated. Invalidated is terminal — furthe - `goal-request-ac-change`: Request a change to an acceptance criterion. grounds=unreachable \(default\): the AC cannot be proven — requires ≥3 failed evidence attempts \(weak/mismatch\) with 0 matches. grounds=wrong\_criterion: the AC measures the wrong thing \(owner never approved this wording, or a revealed fact shows it tracks s - `goal-resolve-escalation`: 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 linkedGoalId audit reference\), or reject \(agent must find another way\). All prior evidence on the AC is deleted for edit/split/drop so the agen - `goal-attach-file`: 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 never judged and never counts toward closing the goal. Returns \{attachment.url, attachment.markdown\}; paste \`markdown\` into the goal descriptio - `goal-dismiss-red-team`: 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 the counterexample does not apply. The dismissal is recorded in goal history and surfaced in goal-get, so "agent overrode the gate" stays dist - `goal-read-evidence-content`: Read attached evidence through MCP without changing its format. Pass evidenceId from goal-get. Text \(text/plain, JSON, NDJSON\) returns newline-preserving redacted lines; offset/limit are zero-based line pagination. Images return a native MCP image with original MIME and bytes. For a complete video, - `goal-recent-unresolved`: Pull-инбокс для «подхватить и довести» в неосновное окно. По одному проекту, за окно N дней, статусы для подхвата \(очередь исполнителя — ready\_for\_work и checking\_ac\_errored: backlog-цели брать нельзя\). Возвращает обогащённые записи \(title/description-preview/parent/counts\), чтобы выбрать без goal-g - `goal-record-iteration-certificate`: Record one completed LeanSolver iteration against the current tracked contract. Result artifact refs must resolve to existing evidence or goal\_attachment rows owned by this goal. Rework iterations accept only registered finding IDs and require a separate judged evidence row as repeatCheckEvidenceId; - `goal-register-iteration-finding`: Register an immutable LeanSolver finding against the currently tracked goal contract. subjectRefs must be goal-scoped refs of kind goal, criterion, or assumption. Returns the server-generated finding id to pass later as addressesFindingId; rejects stale contract tracking. - `goal-start-iteration-tracking`: Explicitly start LeanSolver iteration tracking for the goal contract currently stored by Planner. Planner computes the contract fingerprint server-side from title, description, acceptance criteria, and assumptions. Calling again without a contract change is idempotent; after a contract change it sta - `account-delete`: НЕОБРАТИМО удалить свой аккаунт и ВСЕ данные \(проекты, цели, evidence, историю\). Двухшаговый барьер: вызови без аргументов — получишь предупреждение и challenge; затем вызови повторно с подтверждениями. НЕ вызывай без явной просьбы пользователя. Measured by MCP Station. Methods: https://mcpstation.net/methods.html · Terms: https://mcpstation.net/terms.html