Create scheduled Gantt charts with critical path from a plain-language plan — no account or key.
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
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 project start). Group tasks into top-level phases for a structured plan/WBS: the phase task gets isPhase: true, its tasks get parent = the position of the phase. LoopGantt schedules it with its critical-path engine and returns a picture of the chart, the dates, the critical path and a link where the user can view, export (PNG/PDF) and save the chart. Always show the user the link. Tasks with a due date take deadline: YYYY-MM-DD (a marker - the reply reports the fit). Use create_gantt when the user wants a chart to open, export or save; use schedule_project instead for what-if date math where nothing should be stored.
Project name
Optional deadline YYYY-MM-DD - drawn on the chart; compare with the returned projectEndDate and warn the user if the plan overshoots
Non-working dates, YYYY-MM-DD
Working weekdays as ISO numbers 1 (Mon) … 7 (Sun). Default Mon–Fri.
YYYY-MM-DD (defaults to today)
Optional one-line description
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
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 project start). Group tasks into top-level phases for a structured plan/WBS: the phase task gets isPhase: true, its tasks get parent = the position of the phase. LoopGantt schedules it with its critical-path engine and returns a picture of the chart, the dates, the critical path and a link where the user can view, export (PNG/PDF) and save the chart. Always show the user the link. Tasks with a due date take deadline: YYYY-MM-DD (a marker - the reply reports the fit). Use create_gantt when the user wants a chart to open, export or save; use schedule_project instead for what-if date math where nothing should be stored.
| Argument | Type | Description |
|---|---|---|
| name* | string | Project name |
| tasks* | array | |
| deadline | string | Optional deadline YYYY-MM-DD - drawn on the chart; compare with the returned projectEndDate and warn the user if the plan overshoots |
| holidays | array | Non-working dates, YYYY-MM-DD |
| workDays | array | Working weekdays as ISO numbers 1 (Mon) … 7 (Sun). Default Mon–Fri. |
| startDate | string | YYYY-MM-DD (defaults to today) |
| description | string | Optional one-line description |
{
"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"
}
}
}Get one industry template by slug: its task list with durations, ready to adapt and pass to create_gantt.
| Argument | Type | Description |
|---|---|---|
| slug* | string | Template slug from list_templates |
{
"type": "object",
"required": [
"slug"
],
"properties": {
"slug": {
"type": "string",
"description": "Template slug from list_templates"
}
}
}List LoopGantt's industry project templates with task counts and typical durations. Pick one, fetch it with get_template, adapt it, then create_gantt.
No arguments.
{
"type": "object",
"properties": {}
}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.
| Argument | Type | Description |
|---|---|---|
| name | string | Project name |
| tasks* | array | |
| deadline | string | Optional deadline YYYY-MM-DD - drawn on the chart; compare with the returned projectEndDate and warn the user if the plan overshoots |
| holidays | array | Non-working dates, YYYY-MM-DD |
| workDays | array | Working weekdays as ISO numbers 1 (Mon) … 7 (Sun). Default Mon–Fri. |
| startDate | string | YYYY-MM-DD (defaults to today) |
| description | string | Optional one-line description |
{
"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"
}
}
}