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,463トークン数(ツール定義)
~3.2 KB一般的なレスポンスサイズ
注意への影響は中程度(128k コンテキストの 1.14%)

これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。

インストール

ワンクリックインストール

これを `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 件