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

A
Qualität der Beschreibung
100%
Vollständigkeit des Schemas
81%
Qualität der Benennung
95%
Risiko der Vergiftung
100%
Übereinstimmung der Berechtigungen
100%
Einhaltung des Protokolls
100%

Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.

Kontextkosten

~1,463Tokens (Tool-Definitionen)
~3.2 KBTypische Antwortgröße
Mittlere Auswirkung auf die Aufmerksamkeit (1.14% von 128k Kontext)

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

npm@loopgantt/mcp-server1.4.0stdio

Remote-Endpunkte

https://loopgantt.com/api/mcpstreamable-http

Was es kann

Tool-Inventar

Tools (4)

🟢 Nur lesen🟡 Schreiben🔴 Löschen⚪ Unbekannt
🟡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

Diesen Server bewerten

Nachweis

Aktuelle Beobachtungen

verifiziertVersion nicht aufgezeichnet4 Tools
verifiziertVersion nicht aufgezeichnet4 Tools