Koskamo

LoopGantt MCP

An official MCP server provided by LoopGantt that allows AI agents to create scheduled Gantt charts, perform critical path analysis, and manage project tasks using natural language or API tools without requiring an account for basic usage.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

LoopGantt MCP logo, by Loopends StudiosVendor evidenceStreamable HTTPNo sign-inEndpoint checked 2026-11-06Operated by Loopends Studios
MCP endpoint (Streamable HTTP)
https://loopgantt.com/api/mcp
Vendor documentation

What its tools do

4 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.

4 of 4 have a description · 0 of 4 declare behavior hints · 1 of 3 with parameters document them all

Checks and signals

Each line is separate evidence, not a trust score.

  • Passed Endpoint answered the live check ·
  • Passed Official MCP Registry namespace is tied to loopgantt.com ·
  • Passed Endpoint is on the registry namespace domain ·
  • Availability 1 of 1 checks passed in 30 days

What you can do with it

  • Create scheduled Gantt charts from plain-language plans
  • Perform critical path analysis and schedule recalculation
  • List and apply industry-specific project templates
  • Manage project tasks and comments via API tools

Source and maintenance

Vendor evidenceRegistry 1.4.0

Protocol and capabilities

Server
loopgantt 1.7.0
MCP protocol negotiated in check
2025-11-25
Tools
4 advertised
Resources
23 advertised
Resource templates
1 advertised
Prompts
1 advertised
Server-advertised capabilities
{
  "tools": {},
  "prompts": {},
  "resources": {}
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

LoopGantt turns a task list into a scheduled Gantt chart (critical-path engine, working-day calendar). No account or API key is needed. create_gantt stores a chart and returns a picture, the dates, the critical path and a link; the link is the ONLY handle to the chart and expires (7 days, 30 once opened, forever once saved to a free account), so always show it to the user. Use schedule_project for what-if questions (nothing is stored) and list_templates / get_template for industry starting points. Durations are working days; duration 0 = milestone; dependencies are the 0-based positions of EARLIER tasks (or { task, type: FS|SS|FF|SF, lag }); group tasks under top-level phases with isPhase: true + parent (the phase position); chain only true prerequisites - independent tasks run in parallel. Ask the user for the start date and any deadline before creating (start defaults to today); pass deadline so the chart shows it. When it would change the plan, also ask (max 2-3 questions, one message): solo or team (drives parallelism), working days (workDays; do not assume Mon-Fri), vacations (holidays). A task with a due date (essay due Oct 15, exam on Nov 3, launch day) takes deadline: YYYY-MM-DD - a marker that never moves the schedule; the reply reports each task fit (buffer or days late). Use create_gantt when the user wants a chart they can open, export or save; use schedule_project only for what-if date math where nothing should be stored. With a LoopGantt API key the account tools run a real project as a team board: create_task (parentId, dependencies, assigneeId), list_tasks with status / assignee / due filters, update_task and complete_task, add_comment and list_comments for notes and handoffs, get_changes(since) to poll cheaply, list_overdue and list_due_soon, create_meeting and list_meetings, and link_external / list_links / find_by_link to tie tasks to PRs, issues and docs in other apps. For a team of agents: create_project with workflow: "agent_board" (stages todo, in_progress, blocked, waiting_approval, done), claim a task for your bot with agentLabel and filter with agent; use one of the project stage ids from list_projects as a status - other values are stored as sent but the board shows them in its first column, and the reply warns you. delete_task needs confirm: true - ask the user first. Every id comes from a previous reply; never invent one.

Tools

4 advertised

create_gantt
Advertised by the server during the last successful anonymous check.

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.

create_gantt input schema
{
  "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"
    }
  }
}
schedule_project
Advertised by the server during the last successful anonymous check.

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.

schedule_project input schema
{
  "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"
    }
  }
}
list_templates
Advertised by the server during the last successful anonymous check.

List LoopGantt's industry project templates with task counts and typical durations. Pick one, fetch it with get_template, adapt it, then create_gantt.

list_templates input schema
{
  "type": "object",
  "properties": {}
}
get_template
Advertised by the server during the last successful anonymous check.

Get one industry template by slug: its task list with durations, ready to adapt and pass to create_gantt.

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

Prompts

1 advertised

plan_project

Advertised by the server during the last successful anonymous check.

Turn a goal into a scheduled Gantt chart: draft a work breakdown with realistic durations and dependencies, create it with create_gantt, and present the picture, the critical path and the link.

goal
What needs to be delivered (required)
deadline
Target end date (YYYY-MM-DD), if any
team_size
How many people work on it

Resources

23 advertised

Software Sprint (2 weeks)

Advertised by the server during the last successful anonymous check.

Software Development template — 8 tasks, ~16 days

Software Sprint (2 weeks) URI
loopgantt://templates/software-sprint

MIME type: application/json

Web Application MVP

Advertised by the server during the last successful anonymous check.

Software Development template — 16 tasks, ~49 days

Web Application MVP URI
loopgantt://templates/web-app-mvp

MIME type: application/json

Mobile App Development

Advertised by the server during the last successful anonymous check.

Software Development template — 18 tasks, ~60 days

Mobile App Development URI
loopgantt://templates/mobile-app

MIME type: application/json

API Development

Advertised by the server during the last successful anonymous check.

Software Development template — 15 tasks, ~38 days

API Development URI
loopgantt://templates/api-development

MIME type: application/json

System Migration

Advertised by the server during the last successful anonymous check.

Software Development template — 15 tasks, ~46 days

System Migration URI
loopgantt://templates/software-migration

MIME type: application/json

Marketing Campaign

Advertised by the server during the last successful anonymous check.

Marketing template — 12 tasks, ~14 days

Marketing Campaign URI
loopgantt://templates/marketing-campaign

MIME type: application/json

Product Launch

Advertised by the server during the last successful anonymous check.

Marketing template — 21 tasks, ~40 days

Product Launch URI
loopgantt://templates/product-launch-marketing

MIME type: application/json

Content Strategy

Advertised by the server during the last successful anonymous check.

Marketing template — 17 tasks, ~51 days

Content Strategy URI
loopgantt://templates/content-strategy

MIME type: application/json

Brand Refresh

Advertised by the server during the last successful anonymous check.

Marketing template — 13 tasks, ~46 days

Brand Refresh URI
loopgantt://templates/brand-refresh

MIME type: application/json

Commercial Construction

Advertised by the server during the last successful anonymous check.

Construction template — 14 tasks, ~178 days

Commercial Construction URI
loopgantt://templates/construction-commercial

MIME type: application/json

Residential Construction

Advertised by the server during the last successful anonymous check.

Construction template — 15 tasks, ~170 days

Residential Construction URI
loopgantt://templates/residential-build

MIME type: application/json

Office Renovation

Advertised by the server during the last successful anonymous check.

Construction template — 13 tasks, ~47 days

Office Renovation URI
loopgantt://templates/renovation

MIME type: application/json

Corporate Event

Advertised by the server during the last successful anonymous check.

Events template — 24 tasks, ~29 days

Corporate Event URI
loopgantt://templates/corporate-event

MIME type: application/json

Conference Planning

Advertised by the server during the last successful anonymous check.

Events template — 19 tasks, ~72 days

Conference Planning URI
loopgantt://templates/conference

MIME type: application/json

Wedding Planning

Advertised by the server during the last successful anonymous check.

Events template — 16 tasks, ~46 days

Wedding Planning URI
loopgantt://templates/wedding

MIME type: application/json

Network Deployment

Advertised by the server during the last successful anonymous check.

IT & Infrastructure template — 26 tasks, ~56 days

Network Deployment URI
loopgantt://templates/network-deployment

MIME type: application/json

Cloud Migration

Advertised by the server during the last successful anonymous check.

IT & Infrastructure template — 18 tasks, ~93 days

Cloud Migration URI
loopgantt://templates/cloud-migration

MIME type: application/json

Security Audit

Advertised by the server during the last successful anonymous check.

IT & Infrastructure template — 13 tasks, ~37 days

Security Audit URI
loopgantt://templates/security-audit

MIME type: application/json

Employee Onboarding

Advertised by the server during the last successful anonymous check.

Human Resources template — 15 tasks, ~25 days

Employee Onboarding URI
loopgantt://templates/employee-onboarding

MIME type: application/json

Recruitment Process

Advertised by the server during the last successful anonymous check.

Human Resources template — 13 tasks, ~46 days

Recruitment Process URI
loopgantt://templates/recruitment

MIME type: application/json

Annual Budget Planning

Advertised by the server during the last successful anonymous check.

Finance template — 12 tasks, ~48 days

Annual Budget Planning URI
loopgantt://templates/budget-planning

MIME type: application/json

Financial Audit

Advertised by the server during the last successful anonymous check.

Finance template — 15 tasks, ~58 days

Financial Audit URI
loopgantt://templates/financial-audit

MIME type: application/json

Process Improvement

Advertised by the server during the last successful anonymous check.

Operations template — 22 tasks, ~36 days

Process Improvement URI
loopgantt://templates/process-improvement

MIME type: application/json

LoopGantt industry template

Advertised by the server during the last successful anonymous check.

One industry template with its task list, as JSON (slugs from list_templates)

LoopGantt industry template URI template
loopgantt://templates/{slug}

MIME type: application/json

90-day uptime

A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.

Too few checks for a percentage yet (1 of 1 answered).

  1. 2026-11-06: 1 of 1 checks answered

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
1001 ms
95th percentile latency
1001 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 1001 ms · metadata changed · 4 tool(s), 23 resource(s), 1 resource template(s), 1 prompt(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http loopgantt-mcp https://loopgantt.com/api/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add loopgantt-mcp --url https://loopgantt.com/api/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable loopgantt-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "loopgantt-mcp": {
      "url": "https://loopgantt.com/api/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "loopgantt-mcp": {
      "type": "streamableHttp",
      "url": "https://loopgantt.com/api/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start loopgantt-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "loopgantt-mcp": {
      "type": "http",
      "url": "https://loopgantt.com/api/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http loopgantt-mcp https://loopgantt.com/api/mcp

Claude Desktop

Open Claude Settings > Connectors > Add custom connector, enter this server URL and enable it for the conversation. This is a manual remote-connector handoff, not a desktop JSON configuration.
Claude Desktop configuration
https://loopgantt.com/api/mcp

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "loopgantt-mcp": {
      "serverUrl": "https://loopgantt.com/api/mcp"
    }
  }
}

Let your agent find its tools

Find servers like LoopGantt MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.

Do you run LoopGantt MCP?

Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.

Claim this listing