Planning System MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| API_URL | Yes | Planning System API URL (e.g., https://api.agentplanner.io or http://localhost:3000 for local development) | |
| NODE_ENV | No | Environment (development/production) | production |
| USER_API_TOKEN | Yes | Authentication token for the Planning System API | |
| MCP_SERVER_NAME | No | Server name | planning-system-mcp |
| MCP_SERVER_VERSION | No | Server version | 0.2.0 |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| briefingA | Mission control state in one call. Returns goal health summary, pending decisions, my tasks, recent activity, and a top recommendation. Use this as the single read for Cowork live artifacts and the autopilot's first call. |
| task_contextA | Get progressive context for a task. Depth: 1 (task only), 2 (+ neighborhood), 3 (+ knowledge), 4 (+ extended plan/goals/transitive deps). For RPI implement tasks, automatically includes research+plan outputs from the chain. |
| goal_stateA | Comprehensive single-goal read: details, quality assessment, progress, bottlenecks, knowledge gaps, pending decisions, recent activity. Replaces get_goal + goal_path + goal_progress + goal_knowledge_gaps + assess_goal_quality. |
| recall_knowledgeA | Universal knowledge graph query. Returns facts, entities, recent episodes, and contradictions in one shape. Use result_kind to control payload size. Replaces recall_knowledge legacy + find_entities + get_recent_episodes + check_contradictions. |
| list_plansA | List plans with optional filters by status, visibility, or text query. Returns id, title, status, visibility, last update, and link counts so you can pick a plan to operate on without round-tripping briefing. |
| searchB | Text search across plans, nodes, and content. Use for finding entities by title or fragment. |
| plan_analysisC | Advanced plan reads: impact analysis (delay/block/remove), critical path, bottleneck list, or coherence check. |
| list_goalsC | List goals with health rollup. Returns aggregate counts (on_track/at_risk/stale) plus per-goal summary. |
| update_goalB | Atomic goal update. Subsumes update_goal + link_plan_to_goal + unlink_plan_from_goal + add_achiever + remove_achiever. All changes apply together. |
| derive_subgoalA | Propose a sub-goal under an existing parent goal. parent_goal_id is mandatory — agents cannot create top-level goals (strategic direction is human-set). Defaults to status='active' for human-directed creation; pass status='draft' for autonomous loops so a human can review before promotion. Drafts surface in the dashboard pending queue. |
| queue_decisionA | Queue a decision for human review. Writes to the real decisions table (not the knowledge graph). Replaces the autopilot pattern of calling add_learning with entry_type=decision and a 'DECISION NEEDED:' title prefix. Resolves via resolve_decision. |
| resolve_decisionA | Resolve a pending decision. action is 'approve', 'defer', or 'reject'. Use this from Cowork artifact buttons or after a human responds in chat. |
| update_taskA | Atomic task state transition. Updates status, optionally appends a log entry, optionally releases the claim. Idempotent on identical inputs. Replaces quick_status + add_log + release_task fan-out. |
| claim_next_taskA | Pick the next task in scope, claim it, and return its context — all in one call. Resolution order: (1) resume any in_progress task, (2) suggest_next_tasks, (3) my_tasks fallback. Pass fresh:true to skip the resume step. |
| release_taskA | Release a claimed task without changing status. Use for explicit handoff or abandonment. |
| add_learningA | Record a knowledge episode. Use after research, on decisions, or when discovering important context. Graphiti extracts entities/relationships automatically. Surfaces coherence_warnings if the new content contradicts existing facts. |
| form_intentionA | Create a plan that achieves a goal, including an initial phase/task tree, in one call. Defaults to status='active' for human-directed creation; pass status='draft' for autonomous loops so a human can review before promotion. Drafts surface in the dashboard pending queue and auto-promote to active when work begins on any node. |
| extend_intentionA | Add children under an existing phase or task. Use when an agent has implicit authority to decompose work (e.g., a parent task they have claimed). For high-stakes structural proposals, use queue_decision with proposed_subtasks instead. Defaults to status='active'. |
| propose_research_chainA | Create a Research → Plan → Implement triple under an existing parent task or phase. The Research task feeds Plan; Plan feeds Implement (via 'blocks' dependency edges). Use when tackling work with significant unknowns. Defaults to status='active'. |
| link_intentionsA | Create a dependency edge between two existing tasks. Use to express discovered ordering constraints (e.g., agent realizes task B requires task A's output). Server rejects cycles. Both tasks must be in the same plan. |
| unlink_intentionsC | Remove a dependency edge by id. |
| update_planA | Edit any plan property atomically: title, description, status, visibility, GitHub linkage, metadata. Use status='archived' to soft-delete (recoverable via status='active' + restore=true). Hard delete stays REST-only with admin auth. |
| update_nodeA | Edit any node property atomically: title, description, node_type, task_mode, agent_instructions, metadata. Status transitions belong on update_task (which handles claim/log side effects). Rejects node_type changes when the node has children. |
| move_nodeA | Reparent a node within the same plan. Cycle-safe (server rejects moves that would create a tree cycle). Optional position sets the order_index among siblings. |
| delete_planA | Soft-delete a plan by setting status='archived'. Recoverable via update_plan({status: 'active', restore: true}). Hard delete is not agent-callable — use REST + admin token if absolutely needed. |
| delete_nodeA | Soft-delete a node by setting status='archived'. Cascades to children by default. Recoverable via update_task({status: 'not_started'}). |
| share_planA | Atomically change a plan's visibility and add/remove collaborators in one call. Collaborators are specified by user_id (email-based invites stay UI-only for now). Caller must be plan owner or admin. |
| invite_memberA | Add a user to an organization by user_id or email. Caller must be org owner or admin. If email is provided and the user doesn't exist, the API returns 404 (email-invite flow stays UI-only). |
| update_member_roleA | Change a member's role within an organization. Caller must be org owner. Server rejects demoting the last admin. |
| remove_memberA | Remove a member from an organization. Caller must be org owner or admin (admins cannot remove other admins). Server rejects removing the org owner. |
| get_startedA | Onboarding for new agents. Returns the BDI tool surface map and recommended workflows: mission control loop (Cowork), single-task session (Code/CLI), multi-agent claiming (OpenClaw). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/TAgents/agent-planner-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server