mcp-server
Create scheduled Gantt charts with critical path from a plain-language plan — no account or key.
Sollte ich dies verwenden
Qualität und Sicherheit
Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.
Kontextkosten
Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.
Installieren
Installation mit einem Klick
Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:
{
"mcpServers": {
"mcp-server": {
"command": "npx",
"args": [
"@loopgantt/mcp-server"
]
}
}
}Ausführbare Pakete
1.4.0stdioRemote-Endpunkte
https://loopgantt.com/api/mcpstreamable-httpWas es kann
Tool-Inventar
Tools (4)
🟡create_gantt(name, description, startDate, deadline, workDays, ...)
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.
Eingabe-Schema
{
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Project name"
},
"description": {
"type": "string",
"description": "Optional one-line description"
},
"startDate": {
"type": "string",
"description": "YYYY-MM-DD (defaults to today)"
},
"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"
},
"workDays": {
"type": "array",
"items": {
"type": "integer",
"minimum": 1,
"maximum": 7
},
"description": "Working weekdays as ISO numbers 1 (Mon) … 7 (Sun). Default Mon–Fri."
},
"holidays": {
"type": "array",
"items": {
"type": "string"
},
"description": "Non-working dates, YYYY-MM-DD"
},
"tasks": {
"type": "array",
"minItems": 1,
"maxItems": 300,
"items": {
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"description": "Task name"
},
"duration": {
"type": "integer",
"minimum": 0,
"description": "Working days (default 1). 0 makes the task a milestone."
},
"isMilestone": {
"type": "boolean",
"description": "Milestone (zero duration, drawn as a diamond)"
},
"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."
},
"parent": {
"type": "integer",
"minimum": 0,
"description": "Position (0-based) of an EARLIER task with isPhase=true that this task belongs to"
},
"description": {
"type": "string"
},
"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."
},
"dependencies": {
"type": "array",
"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",
"items": {
"oneOf": [
{
"type": "integer",
"minimum": 0
},
{
"type": "object",
"required": [
"task"
],
"properties": {
"task": {
"type": "integer",
"minimum": 0
},
"type": {
"type": "string",
"enum": [
"FS",
"SS",
"FF",
"SF"
]
},
"lag": {
"type": "integer"
}
}
}
]
}
}
}
}
}
},
"required": [
"name",
"tasks"
]
}🟡schedule_project(name, description, startDate, deadline, workDays, ...)
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.
Eingabe-Schema
{
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Project name"
},
"description": {
"type": "string",
"description": "Optional one-line description"
},
"startDate": {
"type": "string",
"description": "YYYY-MM-DD (defaults to today)"
},
"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"
},
"workDays": {
"type": "array",
"items": {
"type": "integer",
"minimum": 1,
"maximum": 7
},
"description": "Working weekdays as ISO numbers 1 (Mon) … 7 (Sun). Default Mon–Fri."
},
"holidays": {
"type": "array",
"items": {
"type": "string"
},
"description": "Non-working dates, YYYY-MM-DD"
},
"tasks": {
"type": "array",
"minItems": 1,
"maxItems": 300,
"items": {
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"description": "Task name"
},
"duration": {
"type": "integer",
"minimum": 0,
"description": "Working days (default 1). 0 makes the task a milestone."
},
"isMilestone": {
"type": "boolean",
"description": "Milestone (zero duration, drawn as a diamond)"
},
"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."
},
"parent": {
"type": "integer",
"minimum": 0,
"description": "Position (0-based) of an EARLIER task with isPhase=true that this task belongs to"
},
"description": {
"type": "string"
},
"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."
},
"dependencies": {
"type": "array",
"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",
"items": {
"oneOf": [
{
"type": "integer",
"minimum": 0
},
{
"type": "object",
"required": [
"task"
],
"properties": {
"task": {
"type": "integer",
"minimum": 0
},
"type": {
"type": "string",
"enum": [
"FS",
"SS",
"FF",
"SF"
]
},
"lag": {
"type": "integer"
}
}
}
]
}
}
}
}
}
},
"required": [
"tasks"
]
}🟡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.
Eingabe-Schema
{
"type": "object",
"properties": {}
}🟡get_template(slug)
Get one industry template by slug: its task list with durations, ready to adapt and pass to create_gantt.
Eingabe-Schema
{
"type": "object",
"properties": {
"slug": {
"type": "string",
"description": "Template slug from list_templates"
}
},
"required": [
"slug"
]
}Community
Nachweis