mcp-server

Create scheduled Gantt charts with critical path from a plain-language plan — no account or key.

我該用這個嗎

品質與安全性

A
說明品質
100%
結構描述完整度
81%
命名品質
95%
汙染風險
100%
權限相符程度
100%
協定合規性
100%

根據工具定義與協定合規性的自動化分析。

上下文成本

~1,463Token(工具定義)
~3.2 KB典型回應大小
中等的注意力影響(128k 上下文的 1.14%)

這是每次將伺服器的工具載入模型上下文時所消耗的約略 token 數量。數量越高,可用於其他工作的注意力就越少。

安裝

一鍵安裝

將以下內容加入你的 `claude_desktop_config.json` 檔案:

{
  "mcpServers": {
    "mcp-server": {
      "command": "npx",
      "args": [
        "@loopgantt/mcp-server"
      ]
    }
  }
}

可執行的套件

npm@loopgantt/mcp-server1.4.0stdio

遠端端點

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

它能做什麼

工具清單

工具(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.

輸入結構描述

{
  "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.

輸入結構描述

{
  "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.

輸入結構描述

{
  "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.

輸入結構描述

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string",
      "description": "Template slug from list_templates"
    }
  },
  "required": [
    "slug"
  ]
}

社群

為此伺服器評分

證據

近期觀測

已驗證未記錄版本4 個工具
已驗證未記錄版本4 個工具