batch_update_nodes
Update multiple planning nodes simultaneously to modify status, titles, and descriptions across a project plan.
Instructions
Update multiple nodes at once
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| plan_id | Yes | Plan ID | |
| updates | Yes | List of node updates |
Implementation Reference
- src/tools.js:693-716 (handler)The handler function that implements the core logic of the batch_update_nodes tool. It iterates through the list of updates, calls the underlying API to update each node individually, and returns a summary of successful updates and any errors encountered.if (name === "batch_update_nodes") { const { plan_id, updates } = args; const results = []; const errors = []; for (const update of updates) { const { node_id, ...updateData } = update; try { const result = await apiClient.nodes.updateNode(plan_id, node_id, updateData); results.push({ node_id, success: true, data: result }); } catch (error) { errors.push({ node_id, success: false, error: error.message }); } } return formatResponse({ total: updates.length, successful: results.length, failed: errors.length, results, errors }); }
- src/tools.js:348-375 (registration)The tool registration entry in the listTools response, defining the name, description, and complete input schema (including validation for plan_id and array of node updates with required node_id).{ name: "batch_update_nodes", description: "Update multiple nodes at once", inputSchema: { type: "object", properties: { plan_id: { type: "string", description: "Plan ID" }, updates: { type: "array", description: "List of node updates", items: { type: "object", properties: { node_id: { type: "string", description: "Node ID" }, status: { type: "string", enum: ["not_started", "in_progress", "completed", "blocked"] }, title: { type: "string" }, description: { type: "string" } }, required: ["node_id"] } } }, required: ["plan_id", "updates"] } },
- src/tools.js:351-373 (schema)The input schema defining the expected parameters for the batch_update_nodes tool, including plan_id (required), and updates array where each item requires node_id and optionally status, title, description.inputSchema: { type: "object", properties: { plan_id: { type: "string", description: "Plan ID" }, updates: { type: "array", description: "List of node updates", items: { type: "object", properties: { node_id: { type: "string", description: "Node ID" }, status: { type: "string", enum: ["not_started", "in_progress", "completed", "blocked"] }, title: { type: "string" }, description: { type: "string" } }, required: ["node_id"] } } }, required: ["plan_id", "updates"]