create_node
Add phases, tasks, or milestones to hierarchical plans in the Planning System MCP Server. Specify node details like title, description, status, and due dates to structure project planning.
Instructions
Create a new node in a plan
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| plan_id | Yes | Plan ID | |
| parent_id | No | Parent node ID (optional, defaults to root) | |
| node_type | Yes | Node type | |
| title | Yes | Node title | |
| description | No | Node description | |
| status | No | Node status | not_started |
| context | No | Additional context for the node | |
| agent_instructions | No | Instructions for AI agents working on this node | |
| acceptance_criteria | No | Criteria for node completion | |
| due_date | No | Due date (ISO format) | |
| metadata | No | Additional metadata |
Implementation Reference
- src/tools.js:548-551 (handler)MCP tool handler for 'create_node'. Destructures plan_id and remaining args as nodeData, calls apiClient.nodes.createNode, and returns formatted response.if (name === "create_node") { const { plan_id, ...nodeData } = args; const result = await apiClient.nodes.createNode(plan_id, nodeData); return formatResponse(result);
- src/tools.js:173-198 (schema)Input schema definition for the 'create_node' tool, specifying parameters, types, enums, and required fields.inputSchema: { type: "object", properties: { plan_id: { type: "string", description: "Plan ID" }, parent_id: { type: "string", description: "Parent node ID (optional, defaults to root)" }, node_type: { type: "string", description: "Node type", enum: ["phase", "task", "milestone"] }, title: { type: "string", description: "Node title" }, description: { type: "string", description: "Node description" }, status: { type: "string", description: "Node status", enum: ["not_started", "in_progress", "completed", "blocked"], default: "not_started" }, context: { type: "string", description: "Additional context for the node" }, agent_instructions: { type: "string", description: "Instructions for AI agents working on this node" }, acceptance_criteria: { type: "string", description: "Criteria for node completion" }, due_date: { type: "string", description: "Due date (ISO format)" }, metadata: { type: "object", description: "Additional metadata" } }, required: ["plan_id", "node_type", "title"] }
- src/tools.js:170-199 (registration)Registration of the 'create_node' tool in the MCP tools list, including name, description, and full input schema.{ name: "create_node", description: "Create a new node in a plan", inputSchema: { type: "object", properties: { plan_id: { type: "string", description: "Plan ID" }, parent_id: { type: "string", description: "Parent node ID (optional, defaults to root)" }, node_type: { type: "string", description: "Node type", enum: ["phase", "task", "milestone"] }, title: { type: "string", description: "Node title" }, description: { type: "string", description: "Node description" }, status: { type: "string", description: "Node status", enum: ["not_started", "in_progress", "completed", "blocked"], default: "not_started" }, context: { type: "string", description: "Additional context for the node" }, agent_instructions: { type: "string", description: "Instructions for AI agents working on this node" }, acceptance_criteria: { type: "string", description: "Criteria for node completion" }, due_date: { type: "string", description: "Due date (ISO format)" }, metadata: { type: "object", description: "Additional metadata" } }, required: ["plan_id", "node_type", "title"] } },
- src/api-client.js:137-140 (helper)API client helper function that performs the actual HTTP POST to create a node via the backend API.createNode: async (planId, nodeData) => { const response = await apiClient.post(`/plans/${planId}/nodes`, nodeData); return response.data; },