Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,071Paid calls: 1,548Letters: 14Defects: 1,324counted 3 min ago
teppi

Server definition

Hash
sha256:d447a47c4df8e8fce43abc2f6ebdc392e143aacb176a8a1718218bb3221a28d6
What it is
What a remote MCP server returned when asked what it offers: 15 tools

The blob, as servednamed by its sha256

{ "instructions": "Ganty is a Gantt chart SaaS for project management.\n\nThis MCP server exposes tools to:\n- List/inspect workspaces, projects, tasks, and milestones\n- Create, update, and delete tasks\n- Manage task progress and dependencies\n\nTypical workflow:\n1. list_workspaces → pick a workspace\n2. list_projects(workspaceId) → pick a project\n3. list_tasks(projectId) → understand the current state\n4. create_task / update_task / set_task_progress to make changes\n\nAll dates use YYYY-MM-DD format. End dates are exclusive: a 1-day task on\n2026-05-15 has startDate=\"2026-05-15\" and endDate=\"2026-05-16\".", "tools": [ { "description": "Add a finish-to-start dependency between two tasks in the same project.", "inputSchema": { "additionalProperties": false, "properties": { "lagDays": { "description": "Optional lag in days after predecessor finishes", "type": "number" }, "predecessorId": { "description": "Task that must finish first", "type": "string" }, "successorId": { "description": "Task that can start after predecessor finishes", "type": "string" } }, "required": [ "predecessorId", "successorId" ], "type": "object" }, "name": "add_dependency", "outputSchema": null }, { "description": "Add a milestone (key date) to a project.", "inputSchema": { "additionalProperties": false, "properties": { "color": { "description": "Hex color (defaults to #f59e0b)", "type": "string" }, "date": { "description": "YYYY-MM-DD", "type": "string" }, "name": { "type": "string" }, "projectId": { "type": "string" } }, "required": [ "projectId", "name", "date" ], "type": "object" }, "name": "create_milestone", "outputSchema": null }, { "description": "Create a new project in a workspace. Returns the created project. Subject to plan-based project count limits.", "inputSchema": { "additionalProperties": false, "properties": { "color": { "description": "Hex color (e.g. #3b82f6). Defaults to blue.", "type": "string" }, "description": { "type": "string" }, "endDate": { "description": "YYYY-MM-DD. Optional.", "type": "string" }, "name": { "description": "Project name", "type": "string" }, "startDate": { "description": "YYYY-MM-DD. Defaults to today.", "type": "string" }, "workspaceId": { "description": "Workspace ID (UUID)", "type": "string" } }, "required": [ "workspaceId", "name" ], "type": "object" }, "name": "create_project", "outputSchema": null }, { "description": "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).", "inputSchema": { "additionalProperties": false, "properties": { "assigneeId": { "description": "Profile ID of the assignee", "type": "string" }, "color": { "description": "Hex color (e.g. #3b82f6)", "type": "string" }, "description": { "type": "string" }, "endDate": { "description": "YYYY-MM-DD (exclusive end)", "type": "string" }, "name": { "type": "string" }, "parentId": { "description": "Parent task ID for hierarchy", "type": "string" }, "progress": { "maximum": 100, "minimum": 0, "type": "number" }, "projectId": { "type": "string" }, "startDate": { "description": "YYYY-MM-DD", "type": "string" }, "status": { "enum": [ "not_started", "in_progress", "done", "on_hold" ], "type": "string" } }, "required": [ "projectId", "name", "startDate", "endDate" ], "type": "object" }, "name": "create_task", "outputSchema": null }, { "description": "Permanently delete a project. All tasks, milestones, and dependencies inside the project are also removed. This cannot be undone.", "inputSchema": { "additionalProperties": false, "properties": { "projectId": { "type": "string" } }, "required": [ "projectId" ], "type": "object" }, "name": "delete_project", "outputSchema": null }, { "description": "Delete a task. Child tasks and dependencies are removed as well.", "inputSchema": { "additionalProperties": false, "properties": { "taskId": { "type": "string" } }, "required": [ "taskId" ], "type": "object" }, "name": "delete_task", "outputSchema": null }, { "description": "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 + slack, project_end_date, and total_duration_days. v1 limitations: Finish-to-Start dependencies only (Ganty has no other types), calendar days by default (business_days=true skips Sat/Sun but no holiday table), ignores multi-period segments, no resource calendars. Returns { error: 'cyclic_dependency', cycle } if a cycle is detected.", "inputSchema": { "additionalProperties": false, "properties": { "as_of_date": { "description": "YYYY-MM-DD. Start point for projecting remaining work. Defaults to today.", "type": "string" }, "business_days": { "description": "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.", "type": "boolean" }, "project_id": { "description": "Project ID (UUID)", "type": "string" } }, "required": [ "project_id" ], "type": "object" }, "name": "get_critical_path", "outputSchema": null }, { "description": "Get detailed information about a single task, including assignees and dependencies.", "inputSchema": { "additionalProperties": false, "properties": { "taskId": { "description": "Task ID (UUID)", "type": "string" } }, "required": [ "taskId" ], "type": "object" }, "name": "get_task", "outputSchema": null }, { "description": "List milestones in a project (key dates such as launch or review gates).", "inputSchema": { "additionalProperties": false, "properties": { "projectId": { "type": "string" } }, "required": [ "projectId" ], "type": "object" }, "name": "list_milestones", "outputSchema": null }, { "description": "List all projects in a workspace (excluding archived).", "inputSchema": { "additionalProperties": false, "properties": { "workspaceId": { "description": "Workspace ID (UUID)", "type": "string" } }, "required": [ "workspaceId" ], "type": "object" }, "name": "list_projects", "outputSchema": null }, { "description": "List tasks in a project. Supports optional filtering by name (search), status, and assignee.", "inputSchema": { "additionalProperties": false, "properties": { "assigneeId": { "description": "Filter by assignee profile ID", "type": "string" }, "projectId": { "description": "Project ID (UUID)", "type": "string" }, "search": { "description": "Filter task name by case-insensitive substring", "type": "string" }, "status": { "enum": [ "not_started", "in_progress", "done", "on_hold" ], "type": "string" } }, "required": [ "projectId" ], "type": "object" }, "name": "list_tasks", "outputSchema": null }, { "description": "Get all workspaces the authenticated user is a member of.", "inputSchema": { "additionalProperties": false, "properties": {}, "type": "object" }, "name": "list_workspaces", "outputSchema": null }, { "description": "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. Tasks with progress=100 are treated as pinned; pass pinned_task_ids for additional pins. When a pin would be violated, the change is recorded in 'conflicts' and not propagated further. In mode='commit', if any conflicts exist nothing is written (all-or-nothing transaction). Same v1 limitations as get_critical_path: FS only, calendar days by default, no holiday table, ignores multi-period segments.", "inputSchema": { "additionalProperties": false, "properties": { "business_days": { "description": "If true, skip Sat/Sun in duration math. Defaults to false.", "type": "boolean" }, "mode": { "description": "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.", "enum": [ "dry_run", "commit" ], "type": "string" }, "new_start_date": { "description": "Absolute new start date as YYYY-MM-DD. Specify exactly one of shift or new_start_date.", "type": "string" }, "pinned_task_ids": { "description": "Additional task IDs to treat as pinned (in addition to progress=100 tasks).", "items": { "type": "string" }, "type": "array" }, "respect_dependencies": { "description": "If false, only the named task moves; successors are not cascaded. Default true.", "type": "boolean" }, "shift": { "description": "Relative shift like '+3d' (push back) or '-2d' (pull earlier). Specify exactly one of shift or new_start_date.", "type": "string" }, "task_id": { "description": "Task ID (UUID) to shift", "type": "string" } }, "required": [ "task_id" ], "type": "object" }, "name": "reschedule_and_propagate", "outputSchema": null }, { "description": "Update the progress percentage of a task (0-100). Status is auto-derived: 0=not_started, 1-99=in_progress, 100=done.", "inputSchema": { "additionalProperties": false, "properties": { "progress": { "maximum": 100, "minimum": 0, "type": "number" }, "taskId": { "type": "string" } }, "required": [ "taskId", "progress" ], "type": "object" }, "name": "set_task_progress", "outputSchema": null }, { "description": "Update fields of an existing task. Only provided fields will be modified.", "inputSchema": { "additionalProperties": false, "properties": { "assigneeId": { "description": "null to unassign", "type": [ "string", "null" ] }, "color": { "type": "string" }, "description": { "type": "string" }, "endDate": { "description": "YYYY-MM-DD", "type": "string" }, "name": { "type": "string" }, "progress": { "maximum": 100, "minimum": 0, "type": "number" }, "startDate": { "description": "YYYY-MM-DD", "type": "string" }, "status": { "enum": [ "not_started", "in_progress", "done", "on_hold" ], "type": "string" }, "taskId": { "type": "string" } }, "required": [ "taskId" ], "type": "object" }, "name": "update_task", "outputSchema": null } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:d447a47c4df8e8fce43abc2f6ebdc392e143aacb176a8a1718218bb3221a28d6 | sha256sum