{"serverId":"mcp-registry/com.loopgantt/mcp-server","tools":[{"name":"create_gantt","fixed":{"name":"create_gantt","description":"Create a Gantt chart from a task list — no account or API key needed. YOU author the plan: list the tasks in execution order with realistic working-day durations and dependencies (0-based positions of earlier tasks; use { task, type, lag } for start-to-start/finish-to-finish links or lag). Milestones have duration 0. Only add a dependency where a task truly needs another one finished - independent tasks should run in PARALLEL (share a predecessor, or take no dependencies at all and start at the ","inputSchema":{"type":"object","required":["name","tasks"],"properties":{"name":{"type":"string","description":"Project name"},"tasks":{"type":"array","items":{"type":"object","required":["name"],"properties":{"name":{"type":"string","description":"Task name"},"parent":{"type":"integer","minimum":0,"description":"Position (0-based) of an EARLIER task with isPhase=true that this task belongs to"},"isPhase":{"type":"boolean","description":"Top-level phase (a group). Tasks join it with parent = this position. Phases take no dependencies and no parent; their dates become the envelope of their tasks."},"deadline":{"type":"string","description":"Finish-by date YYYY-MM-DD for a task with a due date (essay due, exam day, launch). A MARKER: the task is still scheduled normally and the reply reports its fit - buffer or days late."},"duration":{"type":"integer","minimum":0,"description":"Working days (default 1). 0 makes the task a milestone."},"description":{"type":"string"},"isMilestone":{"type":"boolean","description":"Milestone (zero duration, drawn as a diamond)"},"dependencies":{"type":"array","items":{"oneOf":[{"type":"integer","minimum":0},{"type":"object","required":["task"],"properties":{"lag":{"type":"integer"},"task":{"type":"integer","minimum":0},"type":{"enum":["FS","SS","FF","SF"],"type":"string"}}}]},"description":"Predecessors: positions (0-based) of EARLIER tasks in this list, or objects { task, type: FS|SS|FF|SF, lag } for typed links / lag in days"}}},"maxItems":300,"minItems":1},"deadline":{"type":"string","description":"Optional deadline YYYY-MM-DD - drawn on the chart; compare with the returned projectEndDate and warn the user if the plan overshoots"},"holidays":{"type":"array","items":{"type":"string"},"description":"Non-working dates, YYYY-MM-DD"},"workDays":{"type":"array","items":{"type":"integer","maximum":7,"minimum":1},"description":"Working weekdays as ISO numbers 1 (Mon) … 7 (Sun). Default Mon–Fri."},"startDate":{"type":"string","description":"YYYY-MM-DD (defaults to today)"},"description":{"type":"string","description":"Optional one-line description"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":737,"tokensAfter":737},{"name":"get_template","fixed":{"name":"get_template","description":"Get one industry template by slug: its task list with durations, ready to adapt and pass to create_gantt.","inputSchema":{"type":"object","required":["slug"],"properties":{"slug":{"type":"string","description":"Template slug from list_templates"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":80,"tokensAfter":80},{"name":"list_templates","fixed":{"name":"list_templates","description":"List LoopGantt's industry project templates with task counts and typical durations. Pick one, fetch it with get_template, adapt it, then create_gantt.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":67,"tokensAfter":67},{"name":"schedule_project","fixed":{"name":"schedule_project","description":"Compute a schedule without storing anything: dates, critical path, float and project end for a task list (same input shape as create_gantt; name optional). Use it to answer \"what is the critical path?\", \"when would this finish?\", \"how much slack does X have?\". Use create_gantt when the user wants a chart they can open.","inputSchema":{"type":"object","required":["tasks"],"properties":{"name":{"type":"string","description":"Project name"},"tasks":{"type":"array","items":{"type":"object","required":["name"],"properties":{"name":{"type":"string","description":"Task name"},"parent":{"type":"integer","minimum":0,"description":"Position (0-based) of an EARLIER task with isPhase=true that this task belongs to"},"isPhase":{"type":"boolean","description":"Top-level phase (a group). Tasks join it with parent = this position. Phases take no dependencies and no parent; their dates become the envelope of their tasks."},"deadline":{"type":"string","description":"Finish-by date YYYY-MM-DD for a task with a due date (essay due, exam day, launch). A MARKER: the task is still scheduled normally and the reply reports its fit - buffer or days late."},"duration":{"type":"integer","minimum":0,"description":"Working days (default 1). 0 makes the task a milestone."},"description":{"type":"string"},"isMilestone":{"type":"boolean","description":"Milestone (zero duration, drawn as a diamond)"},"dependencies":{"type":"array","items":{"oneOf":[{"type":"integer","minimum":0},{"type":"object","required":["task"],"properties":{"lag":{"type":"integer"},"task":{"type":"integer","minimum":0},"type":{"enum":["FS","SS","FF","SF"],"type":"string"}}}]},"description":"Predecessors: positions (0-based) of EARLIER tasks in this list, or objects { task, type: FS|SS|FF|SF, lag } for typed links / lag in days"}}},"maxItems":300,"minItems":1},"deadline":{"type":"string","description":"Optional deadline YYYY-MM-DD - drawn on the chart; compare with the returned projectEndDate and warn the user if the plan overshoots"},"holidays":{"type":"array","items":{"type":"string"},"description":"Non-working dates, YYYY-MM-DD"},"workDays":{"type":"array","items":{"type":"integer","maximum":7,"minimum":1},"description":"Working weekdays as ISO numbers 1 (Mon) … 7 (Sun). Default Mon–Fri."},"startDate":{"type":"string","description":"YYYY-MM-DD (defaults to today)"},"description":{"type":"string","description":"Optional one-line description"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":688,"tokensAfter":688}],"toolsChanged":4,"tokensSaved":0,"todo":[{"tool":"create_gantt","params":["tasks"]},{"tool":"schedule_project","params":["tasks"]}],"note":"Deterministic fixes. Changes marked verify need a human look before shipping (renames, inferred annotations, inferred types, removed text). Parameter descriptions in `todo` need to be written by someone who knows the API."}