com.monopoly-gold.planner/mcp · v2.0.0 · productivity
Planner MCP — provable "done" for AI agents is healthy: it completed an MCP handshake in 1699 ms and exposes 43 tools.
Goal and task planning MCP for Codex and AI agents, with evidence-backed completion.
Endpoint: https://planner.monopoly-gold.com/_mcp (streamable-http)
Repository · Website · JSON · Add to my inventory
| Users (last 30 days) | 0 |
| Handshake | Healthy |
| Auth needed | None |
| Tool count | 43 |
| Latency | 1699 ms |
| Last checked (UTC) | 2026-10-15T22:40:11.068Z |
| Checked (UTC) | Status | Latency | Error |
|---|---|---|---|
| 2026-10-15T22:40:11.068Z | Healthy | 1699 | |
| 2026-10-14T20:40:48.394Z | Healthy | 2064 |
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; затем вызови повторно с подтверждениями. НЕ вызывай без явной просьбы пользователя. |