Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,071Paid calls: 1,533Letters: 13Defects: 1,322counted just now
teppi

Server definition

Hash
sha256:2b7a1566d7b447705f6862956d040186b624291a50fa30b572d29f30966fa1a5
What it is
What a remote MCP server returned when asked what it offers: 4 tools

The blob, as servednamed by its sha256

{ "instructions": "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.", "tools": [ { "description": "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.", "inputSchema": { "properties": { "deadline": { "description": "Optional deadline YYYY-MM-DD - drawn on the chart; compare with the returned projectEndDate and warn the user if the plan overshoots", "type": "string" }, "description": { "description": "Optional one-line description", "type": "string" }, "holidays": { "description": "Non-working dates, YYYY-MM-DD", "items": { "type": "string" }, "type": "array" }, "name": { "description": "Project name", "type": "string" }, "startDate": { "description": "YYYY-MM-DD (defaults to today)", "type": "string" }, "tasks": { "items": { "properties": { "deadline": { "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.", "type": "string" }, "dependencies": { "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": [ { "minimum": 0, "type": "integer" }, { "properties": { "lag": { "type": "integer" }, "task": { "minimum": 0, "type": "integer" }, "type": { "enum": [ "FS", "SS", "FF", "SF" ], "type": "string" } }, "required": [ "task" ], "type": "object" } ] }, "type": "array" }, "description": { "type": "string" }, "duration": { "description": "Working days (default 1). 0 makes the task a milestone.", "minimum": 0, "type": "integer" }, "isMilestone": { "description": "Milestone (zero duration, drawn as a diamond)", "type": "boolean" }, "isPhase": { "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.", "type": "boolean" }, "name": { "description": "Task name", "type": "string" }, "parent": { "description": "Position (0-based) of an EARLIER task with isPhase=true that this task belongs to", "minimum": 0, "type": "integer" } }, "required": [ "name" ], "type": "object" }, "maxItems": 300, "minItems": 1, "type": "array" }, "workDays": { "description": "Working weekdays as ISO numbers 1 (Mon) … 7 (Sun). Default Mon–Fri.", "items": { "maximum": 7, "minimum": 1, "type": "integer" }, "type": "array" } }, "required": [ "name", "tasks" ], "type": "object" }, "name": "create_gantt", "outputSchema": null }, { "description": "Get one industry template by slug: its task list with durations, ready to adapt and pass to create_gantt.", "inputSchema": { "properties": { "slug": { "description": "Template slug from list_templates", "type": "string" } }, "required": [ "slug" ], "type": "object" }, "name": "get_template", "outputSchema": null }, { "description": "List LoopGantt's industry project templates with task counts and typical durations. Pick one, fetch it with get_template, adapt it, then create_gantt.", "inputSchema": { "properties": {}, "type": "object" }, "name": "list_templates", "outputSchema": null }, { "description": "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.", "inputSchema": { "properties": { "deadline": { "description": "Optional deadline YYYY-MM-DD - drawn on the chart; compare with the returned projectEndDate and warn the user if the plan overshoots", "type": "string" }, "description": { "description": "Optional one-line description", "type": "string" }, "holidays": { "description": "Non-working dates, YYYY-MM-DD", "items": { "type": "string" }, "type": "array" }, "name": { "description": "Project name", "type": "string" }, "startDate": { "description": "YYYY-MM-DD (defaults to today)", "type": "string" }, "tasks": { "items": { "properties": { "deadline": { "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.", "type": "string" }, "dependencies": { "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": [ { "minimum": 0, "type": "integer" }, { "properties": { "lag": { "type": "integer" }, "task": { "minimum": 0, "type": "integer" }, "type": { "enum": [ "FS", "SS", "FF", "SF" ], "type": "string" } }, "required": [ "task" ], "type": "object" } ] }, "type": "array" }, "description": { "type": "string" }, "duration": { "description": "Working days (default 1). 0 makes the task a milestone.", "minimum": 0, "type": "integer" }, "isMilestone": { "description": "Milestone (zero duration, drawn as a diamond)", "type": "boolean" }, "isPhase": { "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.", "type": "boolean" }, "name": { "description": "Task name", "type": "string" }, "parent": { "description": "Position (0-based) of an EARLIER task with isPhase=true that this task belongs to", "minimum": 0, "type": "integer" } }, "required": [ "name" ], "type": "object" }, "maxItems": 300, "minItems": 1, "type": "array" }, "workDays": { "description": "Working weekdays as ISO numbers 1 (Mon) … 7 (Sun). Default Mon–Fri.", "items": { "maximum": 7, "minimum": 1, "type": "integer" }, "type": "array" } }, "required": [ "tasks" ], "type": "object" }, "name": "schedule_project", "outputSchema": null } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:2b7a1566d7b447705f6862956d040186b624291a50fa30b572d29f30966fa1a5 | sha256sum