homareyoshizaki avatar

Ganty MCP

homareyoshizaki/ganty-mcp

Connects Claude to your Ganty workspace so you can query and manipulate Gantt charts in natural language. The interesting bit is that critical path calculation and dependency propagation happen server-side, not in the LLM. You get tools like get_critical_path that returns slack and earliest/latest dates via actual CPM math, and reschedule_and_propagate that simulates (or commits) task shifts with conflict detection and transactional rollback. Useful when you need to ask "what's the critical path" or "if I push this task three days, when does the project finish" without the model guessing at calendar arithmetic. Auth is via bearer tokens from the Ganty dashboard, supports both read and write scopes.

tools
15
transport
HTTP
last updated
Jun 3, 2026

Install

From registry metadata
$ npx add-mcp https://ganty.app/api/mcp --name ganty

Run in your terminal. add-mcp asks which agents to add it to (Claude Code, Codex, Cursor and more). Add -g to install it for every project.

Review the command, arguments and environment values before installing. MCP servers run with your local permissions.

Other ways

Claude Code

$ claude mcp add --transport http ganty https://ganty.app/api/mcp

Run in your terminal. Add --scope user to make it available in every project.

Tools

Verified live · 15 tools

Verified live against the running server on Nov 6, 2026.

list_workspacesGet all workspaces the authenticated user is a member of.

Get all workspaces the authenticated user is a member of.

No parameters. Call it with no arguments.

list_projectsList all projects in a workspace (excluding archived).1 params

List all projects in a workspace (excluding archived).

Parameters* required
workspaceId*string
Workspace ID (UUID)
create_projectCreate a new project in a workspace. Returns the created project. Subject to plan-based project count limits.6 params

Create a new project in a workspace. Returns the created project. Subject to plan-based project count limits.

Parameters* required
colorstring
Hex color (e.g. #3b82f6). Defaults to blue.
descriptionstring
endDatestring
YYYY-MM-DD. Optional.
name*string
Project name
startDatestring
YYYY-MM-DD. Defaults to today.
workspaceId*string
Workspace ID (UUID)
delete_projectPermanently delete a project. All tasks, milestones, and dependencies inside the project are also removed. This cannot be undone.1 params

Permanently delete a project. All tasks, milestones, and dependencies inside the project are also removed. This cannot be undone.

Parameters* required
projectId*string
list_tasksList tasks in a project. Supports optional filtering by name (search), status, and assignee.4 params

List tasks in a project. Supports optional filtering by name (search), status, and assignee.

Parameters* required
assigneeIdstring
Filter by assignee profile ID
projectId*string
Project ID (UUID)
searchstring
Filter task name by case-insensitive substring
statusstring
one of not_started · in_progress · done · on_hold
get_taskGet detailed information about a single task, including assignees and dependencies.1 params

Get detailed information about a single task, including assignees and dependencies.

Parameters* required
taskId*string
Task ID (UUID)
list_milestonesList milestones in a project (key dates such as launch or review gates).1 params

List milestones in a project (key dates such as launch or review gates).

Parameters* required
projectId*string
create_milestoneAdd a milestone (key date) to a project.4 params

Add a milestone (key date) to a project.

Parameters* required
colorstring
Hex color (defaults to #f59e0b)
date*string
YYYY-MM-DD
name*string
projectId*string
create_taskCreate a new task in a project. Dates must be in YYYY-MM-DD format. End date is exclusive (a 1-day task has end = start + 1 day).10 params

Create a new task in a project. Dates must be in YYYY-MM-DD format. End date is exclusive (a 1-day task has end = start + 1 day).

Parameters* required
assigneeIdstring
Profile ID of the assignee
colorstring
Hex color (e.g. #3b82f6)
descriptionstring
endDate*string
YYYY-MM-DD (exclusive end)
name*string
parentIdstring
Parent task ID for hierarchy
progressnumber
projectId*string
startDate*string
YYYY-MM-DD
statusstring
one of not_started · in_progress · done · on_hold
update_taskUpdate fields of an existing task. Only provided fields will be modified.9 params

Update fields of an existing task. Only provided fields will be modified.

Parameters* required
assigneeIdstring
null to unassign
colorstring
descriptionstring
endDatestring
YYYY-MM-DD
namestring
progressnumber
startDatestring
YYYY-MM-DD
statusstring
one of not_started · in_progress · done · on_hold
taskId*string
set_task_progressUpdate the progress percentage of a task (0-100). Status is auto-derived: 0=not_started, 1-99=in_progress, 100=done.2 params

Update the progress percentage of a task (0-100). Status is auto-derived: 0=not_started, 1-99=in_progress, 100=done.

Parameters* required
progress*number
taskId*string
add_dependencyAdd a finish-to-start dependency between two tasks in the same project.3 params

Add a finish-to-start dependency between two tasks in the same project.

Parameters* required
lagDaysnumber
Optional lag in days after predecessor finishes
predecessorId*string
Task that must finish first
successorId*string
Task that can start after predecessor finishes
delete_taskDelete a task. Child tasks and dependencies are removed as well.1 params

Delete a task. Child tasks and dependencies are removed as well.

Parameters* required
taskId*string
get_critical_pathCalculate the critical path of a project on the Ganty side and return it as data (don't ask the model to reason over raw task lists). Uses forward/backward CPM with progress-aware remaining duration. Returns critical_path tasks in order, per-task earliest/latest start/finish +...3 params

Calculate the critical path of a project on the Ganty side and return it as data (don't ask the model to reason over raw task lists). Uses forward/backward CPM with progress-aware remaining duration. Returns critical_path tasks in order, per-task earliest/latest start/finish +...

Parameters* required
as_of_datestring
YYYY-MM-DD. Start point for projecting remaining work. Defaults to today.
business_daysboolean
If true, skip Saturday and Sunday in duration calculations. National holidays are still treated as working days (v1 has no holiday table). Defaults to false.
project_id*string
Project ID (UUID)
reschedule_and_propagateCompute the downstream impact of shifting a single task. Default is dry_run (no DB writes); set mode='commit' to actually persist the changes. Cascades forward only (no pull): successors are pushed only if their predecessor's new end + lag would violate their current start. Ta...7 params

Compute the downstream impact of shifting a single task. Default is dry_run (no DB writes); set mode='commit' to actually persist the changes. Cascades forward only (no pull): successors are pushed only if their predecessor's new end + lag would violate their current start. Ta...

Parameters* required
business_daysboolean
If true, skip Sat/Sun in duration math. Defaults to false.
modestring
dry_run (default): compute and return; do not modify DB. commit: write to DB in a single transaction, but only if no conflicts. Audit logged on commit.one of dry_run · commit
new_start_datestring
Absolute new start date as YYYY-MM-DD. Specify exactly one of shift or new_start_date.
pinned_task_idsarray
Additional task IDs to treat as pinned (in addition to progress=100 tasks).
respect_dependenciesboolean
If false, only the named task moves; successors are not cascaded. Default true.
shiftstring
Relative shift like '+3d' (push back) or '-2d' (pull earlier). Specify exactly one of shift or new_start_date.
task_id*string
Task ID (UUID) to shift

Sponsors

Readme

Ganty MCP

Ganty is a Gantt chart SaaS with a built-in Model Context Protocol (MCP) server that lets AI clients like Claude Desktop and Claude Code drive your projects in natural language — and computes critical paths and shift-impact server-side rather than asking the LLM to do math.

Status: v1.0.0 — production endpoint at https://ganty.app/api/mcp (Streamable HTTP) Free on every Ganty plan including Free.

What makes this different

Most MCP servers expose CRUD over an existing API. Ganty's also exposes calculation tools that compute on the server and return JSON — so the LLM never has to reason about dates, dependencies, or critical paths.


View the full README on GitHub

Details

Repository
github.com/homareyoshizaki/ganty-mcp
Website
ganty.app
Transport
HTTP
Registry
MCP registry, active
Tools verified
Nov 6, 2026