Koskamo

Damper MCP

Damper MCP enables AI coding agents to interact with the Damper product loop, allowing them to pick up roadmap tasks, gather context, attach review evidence like screenshots and diagrams, and publish changelogs upon completion.

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.

Damper MCP logo, by DamperVendor evidenceStreamable HTTPNo sign-inEndpoint checked 2026-11-01Operated by Damper
You need:Find your key in the dashboard under Settings → API Keys
MCP endpoint (Streamable HTTP)
https://api.usedamper.com/mcp
Vendor documentation

What you can do with it

  • Pick up and lock roadmap tasks
  • Attach review evidence such as screenshots
  • Publish changelog entries to subscribers
  • Retrieve project context and rules

Source and maintenance

Vendor evidenceRegistry 0.6.0

Protocol and capabilities

Server
damper 0.6.0
MCP protocol
2025-06-18
Tools
141 advertised
Resources
Not advertised
Resource templates
Not advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": true
  }
}

Tools

141 advertised

list_projects — List Projects
Advertised by the server during the last successful anonymous check.
Advertised read-only

List all projects accessible with this API key. Use this to find project IDs for other tools. **Start here** to discover which projects you can work with.

list_projects input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {}
}
list_projects output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projects"
  ],
  "properties": {
    "projects": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "id",
          "name",
          "slug",
          "createdAt",
          "taskCount",
          "feedbackCount"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          },
          "createdAt": {
            "type": "string"
          },
          "taskCount": {
            "type": "number"
          },
          "feedbackCount": {
            "type": "number"
          }
        },
        "additionalProperties": false
      }
    }
  },
  "additionalProperties": false
}
list_projects annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_agent_instructions — Get Agent Instructions
Advertised by the server during the last successful anonymous check.
Advertised read-only

Get the canonical Damper workflow instructions. Use this to set up or update CLAUDE.md in a project.

get_agent_instructions input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "format": {
      "enum": [
        "markdown",
        "section"
      ],
      "type": "string",
      "description": "markdown = full file, section = just the Damper section (default: section)"
    }
  }
}
get_agent_instructions output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "format",
    "content",
    "lastModified",
    "revision"
  ],
  "properties": {
    "format": {
      "enum": [
        "markdown",
        "section"
      ],
      "type": "string"
    },
    "content": {
      "type": "string"
    },
    "revision": {
      "type": "string",
      "description": "Monotonic canonical instruction revision for bootstrap drift checks"
    },
    "lastModified": {
      "type": "string",
      "description": "ISO date when instructions were last updated"
    }
  },
  "additionalProperties": false
}
get_agent_instructions annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
list_tasks — List Tasks
Advertised by the server during the last successful anonymous check.
Advertised read-only

Get roadmap tasks. Returns backlog/planned/in-progress by default. Search by title, description, plan, user story, or exact label, and filter by type, quarter, etc. Use `query` before paginating when checking whether a matching task already exists. Returns up to 50 tasks by default. Response includes `total` count. Tasks with incomplete blockers are excluded automatically. Task summaries include available dates such as `createdAt`, `updatedAt`, `startDate`, and `dueDate`. If total > returned tasks, paginate with offset (e.g. offset=50 for page 2). **Recommended:** Call `get_project_context` before starting work to understand codebase patterns.

list_tasks input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId"
  ],
  "properties": {
    "sort": {
      "enum": [
        "importance",
        "newest",
        "votes"
      ],
      "type": "string",
      "description": "Sort order: importance (priority+votes, default), newest, or votes"
    },
    "type": {
      "enum": [
        "bug",
        "feature",
        "improvement",
        "task"
      ],
      "type": "string",
      "description": "Filter by task type"
    },
    "limit": {
      "type": "number",
      "description": "Max tasks to return (default: 50)"
    },
    "query": {
      "type": "string",
      "description": "Search task title, description, implementation plan, user stories, or an exact label"
    },
    "offset": {
      "type": "number",
      "description": "Skip first N tasks for pagination (default: 0)"
    },
    "status": {
      "enum": [
        "backlog",
        "planned",
        "in_progress",
        "in_review",
        "done",
        "closed",
        "all"
      ],
      "type": "string"
    },
    "quarter": {
      "type": "string",
      "description": "Filter by quarter (e.g., \"Q1 2025\") or \"none\" for unscheduled"
    },
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    },
    "hasSelfAssessment": {
      "type": "boolean",
      "description": "Filter to tasks that have or do not have a submitted structured self-assessment"
    }
  }
}
list_tasks output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "project",
    "total",
    "tasks"
  ],
  "properties": {
    "tasks": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "id",
          "title",
          "type",
          "status",
          "priority",
          "createdAt",
          "updatedAt",
          "feedbackCount",
          "hasImplementationPlan"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "effort": {
            "type": [
              "string",
              "null"
            ]
          },
          "labels": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "status": {
            "type": "string"
          },
          "dueDate": {
            "type": [
              "string",
              "null"
            ]
          },
          "quarter": {
            "type": [
              "string",
              "null"
            ]
          },
          "priority": {
            "type": "string"
          },
          "createdAt": {
            "type": "string"
          },
          "publicUrl": {
            "type": [
              "string",
              "null"
            ]
          },
          "startDate": {
            "type": [
              "string",
              "null"
            ]
          },
          "updatedAt": {
            "type": "string"
          },
          "feedbackCount": {
            "type": "number"
          },
          "subtaskProgress": {
            "anyOf": [
              {
                "type": "object",
                "required": [
                  "done",
                  "total"
                ],
                "properties": {
                  "done": {
                    "type": "number"
                  },
                  "total": {
                    "type": "number"
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "null"
              }
            ]
          },
          "hasSelfAssessment": {
            "type": "boolean"
          },
          "hasImplementationPlan": {
            "type": "boolean"
          },
          "hasNonEmptySelfAssessment": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      }
    },
    "total": {
      "type": "number"
    },
    "project": {
      "type": "string"
    }
  },
  "additionalProperties": false
}
list_tasks annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_task — Get Task
Advertised by the server during the last successful anonymous check.
Advertised read-only

Get task details. Defaults to a compact view (plan, current progress, subtasks, PRs, unresolved decisions, completion receipt, evidence counts) — no `agentNotes` dump. Pass `detailMode: "full"` for the legacy full payload (agentNotes, all sessions/commits inline), or request specific sections on demand with `include` (e.g. `["timeline"]` for composed history, `["checklist"]`, `["selfAssessment"]`, `["commits"]`, `["sessions"]`) while staying compact otherwise.

get_task input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId",
    "taskId"
  ],
  "properties": {
    "taskId": {
      "type": "string",
      "description": "Task ID"
    },
    "include": {
      "type": "array",
      "items": {
        "enum": [
          "timeline",
          "checklist",
          "selfAssessment",
          "commits",
          "sessions"
        ],
        "type": "string"
      },
      "description": "Extra sections to load on demand, e.g. [\"timeline\"] for composed history, even in compact mode."
    },
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    },
    "detailMode": {
      "enum": [
        "compact",
        "full"
      ],
      "type": "string",
      "description": "compact (default here) omits agentNotes and inline history; full restores the legacy payload."
    },
    "timelineLimit": {
      "type": "integer",
      "maximum": 100,
      "minimum": 1,
      "description": "Timeline page size (1-100, default 20). Only applies when include contains \"timeline\"."
    },
    "timelineCursor": {
      "type": "string",
      "description": "Opaque cursor from a previous timeline page's nextCursor, for paging further back."
    }
  }
}
get_task output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "detailMode",
    "id",
    "title",
    "type",
    "status",
    "voteScore",
    "feedback"
  ],
  "properties": {
    "id": {
      "type": "string"
    },
    "type": {
      "type": "string"
    },
    "title": {
      "type": "string"
    },
    "effort": {
      "type": [
        "string",
        "null"
      ]
    },
    "labels": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "status": {
      "type": "string"
    },
    "commits": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "id",
          "hash",
          "message",
          "sessionId",
          "source",
          "recordedAt"
        ],
        "properties": {
          "id": {
            "type": [
              "string",
              "null"
            ]
          },
          "hash": {
            "type": "string"
          },
          "source": {
            "type": "string",
            "description": "add_commit | complete_task | migration | legacy_notes"
          },
          "message": {
            "type": "string"
          },
          "sessionId": {
            "type": [
              "string",
              "null"
            ]
          },
          "recordedAt": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "additionalProperties": false
      }
    },
    "dueDate": {
      "type": [
        "string",
        "null"
      ]
    },
    "project": {
      "type": "object",
      "required": [
        "name"
      ],
      "properties": {
        "name": {
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "quarter": {
      "type": [
        "string",
        "null"
      ]
    },
    "feedback": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "id",
          "title",
          "description",
          "voterCount"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "voterCount": {
            "type": "number"
          },
          "description": {
            "type": "string"
          },
          "submittedBy": {
            "type": "string"
          },
          "attachmentUrls": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "additionalProperties": false
      }
    },
    "priority": {
      "type": [
        "string",
        "null"
      ]
    },
    "sessions": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "id",
          "startedAt",
          "outcome"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "model": {
            "type": [
              "string",
              "null"
            ]
          },
          "endedAt": {
            "type": [
              "string",
              "null"
            ]
          },
          "outcome": {
            "type": "string"
          },
          "agentName": {
            "type": [
              "string",
              "null"
            ]
          },
          "startedAt": {
            "type": "string"
          },
          "delegations": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "agent"
              ],
              "properties": {
                "agent": {
                  "type": "string"
                },
                "model": {
                  "type": "string"
                },
                "description": {
                  "type": "string"
                }
              },
              "additionalProperties": false
            }
          },
          "reasoningEffort": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "additionalProperties": false
      }
    },
    "subtasks": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "id",
          "title",
          "done"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "done": {
            "type": "boolean"
          },
          "title": {
            "type": "string"
          },
          "dueDate": {
            "type": [
              "string",
              "null"
            ]
          },
          "startDate": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "additionalProperties": false
      }
    },
    "timeline": {
      "type": "object",
      "required": [
        "events",
        "nextCursor",
        "total"
      ],
      "properties": {
        "total": {
          "type": "number"
        },
        "events": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "id",
              "type",
              "occurredAt",
              "summary"
            ],
            "properties": {
              "id": {
                "type": "string"
              },
              "type": {
                "type": "string"
              },
              "details": {
                "type": "object",
                "propertyNames": {
                  "type": "string"
                },
                "additionalProperties": {}
              },
              "summary": {
                "type": "string"
              },
              "occurredAt": {
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        },
        "nextCursor": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "additionalProperties": false
    },
    "publicUrl": {
      "type": [
        "string",
        "null"
      ]
    },
    "startDate": {
      "type": [
        "string",
        "null"
      ]
    },
    "voteScore": {
      "type": "number"
    },
    "agentNotes": {
      "type": [
        "string",
        "null"
      ]
    },
    "detailMode": {
      "enum": [
        "compact",
        "full"
      ],
      "type": "string"
    },
    "description": {
      "type": [
        "string",
        "null"
      ]
    },
    "userStories": {
      "type": [
        "string",
        "null"
      ]
    },
    "agentSummary": {
      "type": [
        "string",
        "null"
      ]
    },
    "dashboardUrl": {
      "type": "string",
      "description": "Full dashboard URL of the affected resource"
    },
    "pullRequests": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "url",
          "state"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "url": {
            "type": "string"
          },
          "repo": {
            "type": [
              "string",
              "null"
            ]
          },
          "state": {
            "type": "string"
          },
          "title": {
            "type": [
              "string",
              "null"
            ]
          },
          "branch": {
            "type": [
              "string",
              "null"
            ]
          },
          "number": {
            "type": [
              "number",
              "null"
            ]
          },
          "closedAt": {
            "type": [
              "string",
              "null"
            ]
          },
          "mergedAt": {
            "type": [
              "string",
              "null"
            ]
          },
          "openedAt": {
            "type": "string"
          },
          "sessionId": {
            "type": [
              "string",
              "null"
            ]
          },
          "headRevision": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "additionalProperties": false
      }
    },
    "publicUrlNote": {
      "type": [
        "string",
        "null"
      ]
    },
    "agentStartedAt": {
      "type": [
        "string",
        "null"
      ]
    },
    "attachmentUrls": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "HTTP URLs for all feedback screenshot attachments linked to this task"
    },
    "evidenceCounts": {
      "type": "object",
      "required": [
        "timelineEvents",
        "checklistConfirmations",
        "sessions",
        "commits",
        "notes",
        "selfAssessments"
      ],
      "properties": {
        "notes": {
          "type": "number"
        },
        "commits": {
          "type": "number"
        },
        "sessions": {
          "type": "number"
        },
        "timelineEvents": {
          "type": "number"
        },
        "selfAssessments": {
          "type": "number"
        },
        "checklistConfirmations": {
          "type": "number"
        }
      },
      "additionalProperties": false
    },
    "selfAssessment": {
      "anyOf": [
        {
          "type": "object",
          "required": [
            "missingContext",
            "toolIssues",
            "processGaps",
            "submittedAt"
          ],
          "properties": {
            "model": {
              "type": [
                "string",
                "null"
              ]
            },
            "toolIssues": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "processGaps": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "submittedAt": {
              "type": "string"
            },
            "missingContext": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "reasoningEffort": {
              "type": [
                "string",
                "null"
              ]
            }
          },
          "additionalProperties": false
        },
        {
          "type": "null"
        }
      ]
    },
    "currentProgress": {
      "anyOf": [
        {
          "type": "object",
          "required": [
            "text",
            "updatedAt"
          ],
          "properties": {
            "text": {
              "type": "string"
            },
            "updatedAt": {
              "type": [
                "string",
                "null"
              ]
            }
          },
          "additionalProperties": false
        },
        {
          "type": "null"
        }
      ]
    },
    "agentCompletedAt": {
      "type": [
        "string",
        "null"
      ]
    },
    "completionReceipt": {
      "anyOf": [
        {
          "type": "object",
          "required": [
            "outcome",
            "deliveredScope",
            "pullRequest",
            "proofSummary",
            "residualRisks",
            "completedAt"
          ],
          "properties": {
            "outcome": {
              "type": "string"
            },
            "evidence": {
              "type": "object",
              "required": [
                "apiExamples",
                "screenshots",
                "expectedApiExamples",
                "expectedScreenshots",
                "notApplicableReason"
              ],
              "properties": {
                "diagrams": {
                  "type": "number"
                },
                "apiExamples": {
                  "type": "number"
                },
                "screenshots": {
                  "type": "number"
                },
                "expectedDiagrams": {
                  "enum": [
                    "off",
                    "suggested",
                    "required"
                  ],
                  "type": "string"
                },
                "expectedApiExamples": {
                  "enum": [
                    "off",
                    "suggested",
                    "required"
                  ],
                  "type": "string"
                },
                "expectedScreenshots": {
                  "enum": [
                    "off",
                    "suggested",
                    "required"
                  ],
                  "type": "string"
                },
                "notApplicableReason": {
                  "type": [
                    "string",
                    "null"
                  ]
                }
              },
              "additionalProperties": false
            },
            "completedAt": {
              "type": "string"
            },
            "pullRequest": {
              "anyOf": [
                {
                  "type": "object",
                  "required": [
                    "url",
                    "headRevision",
                    "state"
                  ],
                  "properties": {
                    "url": {
                      "type": "string"
                    },
                    "state": {
                      "type": "string"
                    },
                    "headRevision": {
                      "type": [
                        "string",
                        "null"
                      ]
                    }
                  },
                  "additionalProperties": false
                },
                {
                  "type": "null"
                }
              ]
            },
            "proofSummary": {
              "type": "object",
              "required": [
                "passed",
                "skipped",
                "failed"
              ],
              "properties": {
                "failed": {
                  "type": "number"
                },
                "passed": {
                  "type": "number"
                },
                "skipped": {
                  "type": "number"
                }
              },
              "additionalProperties": false
            },
            "residualRisks": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "deliveredScope": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "additionalProperties": false
        },
        {
          "type": "null"
        }
      ]
    },
    "latestReviewRound": {
      "anyOf": [
        {
          "type": "object",
          "required": [
            "round",
            "verdict",
            "stage",
            "comment",
            "createdAt",
            "changesRequested"
          ],
          "properties": {
            "round": {
              "type": "number"
            },
            "stage": {
              "type": [
                "string",
                "null"
              ],
              "description": "'partial' or 'complete' (the stage the reviewer decided), or null"
            },
            "comment": {
              "type": [
                "string",
                "null"
              ]
            },
            "verdict": {
              "type": "string"
            },
            "createdAt": {
              "type": "string"
            },
            "changesRequested": {
              "type": "array",
              "items": {
                "type": "object",
                "required": [
                  "kind",
                  "key",
                  "title",
                  "reviewComment"
                ],
                "properties": {
                  "key": {
                    "type": "string"
                  },
                  "kind": {
                    "type": "string"
                  },
                  "title": {
                    "type": "string"
                  },
                  "reviewComment": {
                    "type": [
                      "string",
                      "null"
                    ]
                  }
                },
                "additionalProperties": false
              }
            }
          },
          "description": "Reviewer decision on the most recent review request; present only when it decided that request.",
          "additionalProperties": false
        },
        {
          "type": "null"
        }
      ]
    },
    "contextMaintenance": {
      "anyOf": [
        {
          "type": "object",
          "required": [
            "disposition",
            "touchedPaths"
          ],
          "properties": {
            "analysis": {
              "anyOf": [
                {},
                {
                  "type": "null"
                }
              ]
            },
            "basisHash": {
              "type": [
                "string",
                "null"
              ]
            },
            "analyzedAt": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "date-time",
                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
                },
                {
                  "type": "null"
                }
              ]
            },
            "disposition": {},
            "touchedPaths": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "touchedPathEvidence": {
              "anyOf": [
                {},
                {
                  "type": "null"
                }
              ]
            }
          },
          "additionalProperties": false
        },
        {
          "type": "null"
        }
      ]
    },
    "implementationPlan": {
      "type": [
        "string",
        "null"
      ]
    },
    "reviewInstructions": {
      "type": [
        "string",
        "null"
      ]
    },
    "unresolvedDecisions": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "id",
          "kind",
          "text",
          "createdAt"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "kind": {
            "enum": [
              "blocker",
              "open_question"
            ],
            "type": "string"
          },
          "text": {
            "type": "string"
          },
          "createdAt": {
            "type": "string"
          }
        },
        "additionalProperties": false
      }
    },
    "checklistConfirmations": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "id",
          "itemId",
          "status",
          "evidence",
          "proofType",
          "commandsRun",
          "filesAffected",
          "notes",
          "skipReason",
          "completionBatchId",
          "sessionId",
          "createdAt"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "notes": {
            "type": [
              "string",
              "null"
            ]
          },
          "itemId": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "evidence": {
            "type": [
              "string",
              "null"
            ]
          },
          "createdAt": {
            "type": "string"
          },
          "proofType": {
            "type": [
              "string",
              "null"
            ]
          },
          "sessionId": {
            "type": [
              "string",
              "null"
            ]
          },
          "skipReason": {
            "type": [
              "string",
              "null"
            ]
          },
          "commandsRun": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "filesAffected": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "completionBatchId": {
            "type": "string"
          }
        },
        "additionalProperties": false
      }
    }
  },
  "additionalProperties": false
}
get_task annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
list_self_assessments — List Self-Assessments
Advertised by the server during the last successful anonymous check.
Advertised read-only

List recent structured agent self-assessments for a project. Use this miss log to find recurring missingContext/toolIssues/processGaps and improve project context.

list_self_assessments input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId"
  ],
  "properties": {
    "limit": {
      "type": "number",
      "description": "Max assessments to return (default: 50, max: 200)"
    },
    "model": {
      "type": "string",
      "description": "Only include assessments reported for this exact model identifier"
    },
    "since": {
      "type": "string",
      "description": "Only include assessments submitted at or after this date/time"
    },
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    },
    "nonEmptyOnly": {
      "type": "boolean",
      "description": "Only include assessments with at least one reported gap (default: true)"
    }
  }
}
list_self_assessments output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "assessments",
    "topMissingContext"
  ],
  "properties": {
    "assessments": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "taskId",
          "title",
          "status",
          "date",
          "selfAssessment"
        ],
        "properties": {
          "date": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "taskId": {
            "type": "string"
          },
          "selfAssessment": {
            "anyOf": [
              {
                "type": "object",
                "required": [
                  "missingContext",
                  "toolIssues",
                  "processGaps",
                  "submittedAt"
                ],
                "properties": {
                  "model": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "toolIssues": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "processGaps": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "submittedAt": {
                    "type": "string"
                  },
                  "missingContext": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "reasoningEffort": {
                    "type": [
                      "string",
                      "null"
                    ]
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "additionalProperties": false
      }
    },
    "topMissingContext": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "theme",
          "count"
        ],
        "properties": {
          "count": {
            "type": "number"
          },
          "theme": {
            "type": "string"
          }
        },
        "additionalProperties": false
      }
    },
    "topMissingContextByModel": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "model",
          "topMissingContext"
        ],
        "properties": {
          "model": {
            "type": "string"
          },
          "topMissingContext": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "theme",
                "count"
              ],
              "properties": {
                "count": {
                  "type": "number"
                },
                "theme": {
                  "type": "string"
                }
              },
              "additionalProperties": false
            }
          }
        },
        "additionalProperties": false
      }
    }
  },
  "additionalProperties": false
}
list_self_assessments annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
update_task — Update Task
Advertised by the server during the last successful anonymous check.

Update task fields like description, implementation plan, priority, effort, quarter, start/due dates, labels, or visibility. Pass status "closed" to discard a task that will not ship. Useful for refining task details as you learn more about the work. Set startDate and dueDate when planning so the task appears on the roadmap timeline.

update_task input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId",
    "taskId"
  ],
  "properties": {
    "title": {
      "type": "string",
      "description": "Task title (max 60 chars, sentence case, no trailing period). Verb prefix: bug → \"Fix …\", feature → \"Add …\", improvement → \"Improve …\", task → \"Set up …\" / \"Update …\""
    },
    "effort": {
      "anyOf": [
        {
          "enum": [
            "xs",
            "s",
            "m",
            "l",
            "xl"
          ],
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "Estimated effort"
    },
    "labels": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Labels/tags"
    },
    "status": {
      "type": "string",
      "const": "closed",
      "description": "Set to \"closed\" to discard a task that will not ship (not deployable or no longer used). Releases the lock and hides it from the public roadmap and default lists. Use abandon_task instead to just stop working on it."
    },
    "taskId": {
      "type": "string",
      "description": "Task ID"
    },
    "dueDate": {
      "type": [
        "string",
        "null"
      ],
      "description": "Target completion date (YYYY-MM-DD). Null clears."
    },
    "quarter": {
      "type": [
        "string",
        "null"
      ],
      "description": "Target quarter (e.g., \"Q1 2025\"). Dates and variants such as \"2025-Q1\" are stored as \"Q1 2025\"."
    },
    "isPublic": {
      "type": "boolean",
      "description": "Whether task is visible on public roadmap"
    },
    "priority": {
      "anyOf": [
        {
          "enum": [
            "high",
            "medium",
            "low"
          ],
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "Task priority"
    },
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    },
    "startDate": {
      "type": [
        "string",
        "null"
      ],
      "description": "Planned start date (YYYY-MM-DD). Set together with dueDate to place the task on the roadmap timeline. Null clears."
    },
    "description": {
      "type": "string",
      "description": "Task description (shown on public roadmap). Write for end users: 1-3 sentences on what changes and why it matters. No code references, file paths, or jargon."
    },
    "userStories": {
      "type": "string",
      "description": "User stories describing how users interact with the feature (markdown, internal only). Format: \"As a [role], I [action] so that [benefit].\" Include UI flows, buttons clicked, pages visited, API calls made."
    },
    "currentProgress": {
      "type": [
        "string",
        "null"
      ],
      "description": "Replaces the single progress snapshot shown in compact `get_task`. The previous non-empty snapshot is kept in history as a timeline event, not lost. Pass null to clear it. Use this instead of `add_note` for \"where things stand right now\" — notes are for decisions/blockers, not status updates."
    },
    "implementationPlan": {
      "type": "string",
      "description": "Implementation plan (markdown, internal only - never shown publicly)"
    },
    "reviewInstructions": {
      "type": "string",
      "description": "Review instructions (markdown). What the reviewer should test, verify, or check. Write specific, actionable steps — not a restatement of what was done. PUBLICLY VISIBLE while the item is in review: the public roadmap shows this as \"What to verify\", so write it for an external reader and keep internal detail (credentials, internal paths, private URLs) out of it."
    }
  }
}
update_task output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "id",
    "title"
  ],
  "properties": {
    "id": {
      "type": "string"
    },
    "title": {
      "type": "string"
    },
    "effort": {
      "type": [
        "string",
        "null"
      ]
    },
    "labels": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "status": {
      "type": "string"
    },
    "dueDate": {
      "type": [
        "string",
        "null"
      ]
    },
    "message": {
      "type": "string"
    },
    "quarter": {
      "type": [
        "string",
        "null"
      ]
    },
    "isPublic": {
      "type": "boolean"
    },
    "priority": {
      "type": [
        "string",
        "null"
      ]
    },
    "startDate": {
      "type": [
        "string",
        "null"
      ]
    },
    "description": {
      "type": [
        "string",
        "null"
      ]
    },
    "userStories": {
      "type": [
        "string",
        "null"
      ]
    },
    "dashboardUrl": {
      "type": "string",
      "description": "Full dashboard URL of the affected resource"
    },
    "currentProgress": {
      "anyOf": [
        {
          "type": "object",
          "required": [
            "text",
            "updatedAt"
          ],
          "properties": {
            "text": {
              "type": "string"
            },
            "updatedAt": {
              "type": [
                "string",
                "null"
              ]
            }
          },
          "additionalProperties": false
        },
        {
          "type": "null"
        }
      ]
    },
    "implementationPlan": {
      "type": [
        "string",
        "null"
      ]
    },
    "reviewInstructions": {
      "type": [
        "string",
        "null"
      ]
    }
  },
  "additionalProperties": false
}
update_task annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
create_task — Create Task
Advertised by the server during the last successful anonymous check.

Create a new roadmap task. Use for importing from TODO files or creating work items. When the task comes from customer feedback, pass `feedbackIds` to link it in the same call: the feedback status follows the task and followers are notified, the same as linking later with `link_feedback_to_task`. Unknown feedback IDs fail the call before anything is created.

create_task input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId",
    "title"
  ],
  "properties": {
    "type": {
      "enum": [
        "bug",
        "feature",
        "improvement",
        "task"
      ],
      "type": "string",
      "description": "Task type (default: feature)"
    },
    "title": {
      "type": "string",
      "description": "Task title (max 60 chars, sentence case, no trailing period). Use verb prefix matching the type: bug → \"Fix …\", feature → \"Add …\", improvement → \"Improve …\", task → \"Set up …\" / \"Update …\". E.g., \"Add dark mode support\", \"Fix login timeout on slow connections\""
    },
    "status": {
      "enum": [
        "backlog",
        "planned",
        "in_progress",
        "in_review",
        "done",
        "closed"
      ],
      "type": "string"
    },
    "dueDate": {
      "type": "string",
      "description": "Target completion date (YYYY-MM-DD)"
    },
    "isPublic": {
      "type": "boolean",
      "description": "Whether task is visible on public roadmap (default: true)"
    },
    "priority": {
      "enum": [
        "high",
        "medium",
        "low"
      ],
      "type": "string",
      "description": "Task priority"
    },
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    },
    "startDate": {
      "type": "string",
      "description": "Planned start date (YYYY-MM-DD). Set together with dueDate to place the task on the roadmap timeline."
    },
    "description": {
      "type": "string",
      "description": "Task description (shown on public roadmap). Write for end users: 1-3 sentences on what changes and why it matters. No code references, file paths, or jargon."
    },
    "feedbackIds": {
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 128,
        "minLength": 1
      },
      "maxItems": 50,
      "description": "Feedback IDs this task addresses (from list_feedback). Linked on creation."
    },
    "userStories": {
      "type": "string",
      "description": "User stories describing how users interact with the feature (markdown, internal only). Format: \"As a [role], I [action] so that [benefit].\" Include UI flows, buttons clicked, pages visited, API calls made."
    },
    "implementationPlan": {
      "type": "string",
      "description": "Implementation plan (markdown, internal only - never shown publicly)"
    }
  }
}
create_task output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "id",
    "title",
    "type",
    "status"
  ],
  "properties": {
    "id": {
      "type": "string"
    },
    "type": {
      "type": "string"
    },
    "title": {
      "type": "string"
    },
    "status": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "isPublic": {
      "type": "boolean"
    },
    "dashboardUrl": {
      "type": "string",
      "description": "Full dashboard URL of the affected resource"
    },
    "linkedFeedbackIds": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "additionalProperties": false
}
create_task annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
add_note — Add Note
Advertised by the server during the last successful anonymous check.

Add a note to a task, or resolve a previously reported blocker/open_question. Use ONLY for non-obvious approach decisions and blockers — do not restate commits, checklist confirmations, or self-assessment findings here; those are already stored structurally and shown in `get_task`. **Do NOT use for:** Session start/end ceremony, commit logging (use `add_commit`), status updates (use `update_task` with `currentProgress`), or restating what code changes do. **`kind` (default `observation`):** - `observation` / `decision` — appended to the free-text note log (Decision gets a **Decision:** prefix) - `blocker` / `open_question` — stored as a structured, resolvable event; the response includes `eventId`. Resolve it later by calling `add_note` again with `resolves: "<eventId>"` - `milestone` — stored as a structured timeline event, not resolvable **Templates** (copy and fill in): Decision: ``` **Decision:** Chose `libraryName` over `alternative` because it supports X and has fewer dependencies ``` Blocker: ``` Cannot proceed with `featureName` until: - Dependency X is merged - API endpoint Y is available ``` Observation: ``` Found that `componentName` already handles X via `methodName` — reusing instead of reimplementing ```

add_note input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId",
    "taskId",
    "note"
  ],
  "properties": {
    "kind": {
      "enum": [
        "observation",
        "decision",
        "blocker",
        "open_question",
        "milestone"
      ],
      "type": "string",
      "description": "Note kind (default: observation). blocker/open_question/milestone are structured, resolvable events — see description."
    },
    "note": {
      "type": "string",
      "description": "Markdown-formatted note, or the resolution text when `resolves` is set. Use `code` for technical names and bullet lists for multiple points."
    },
    "taskId": {
      "type": "string"
    },
    "resolves": {
      "type": "string",
      "description": "Event id of a previously reported blocker/open_question to resolve. `note` becomes the resolution text."
    },
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    }
  }
}
add_note output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "taskId",
    "success"
  ],
  "properties": {
    "taskId": {
      "type": "string"
    },
    "eventId": {
      "type": "string"
    },
    "success": {
      "type": "boolean"
    },
    "dashboardUrl": {
      "type": "string",
      "description": "Full dashboard URL of the affected resource"
    }
  },
  "additionalProperties": false
}
add_note annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
add_commit — Add Commit
Advertised by the server during the last successful anonymous check.

Log a commit for a task (secondary detail — the linked pull request is the primary deliverable, see `link_pr`). **When to use:** - After a notable commit: log hash and message - When completing work: optionally pass commits to complete_task instead **Example:** After `git commit`, call this with the commit hash and message.

add_commit input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId",
    "taskId",
    "hash",
    "message"
  ],
  "properties": {
    "hash": {
      "type": "string",
      "description": "Commit hash (short or full)"
    },
    "taskId": {
      "type": "string"
    },
    "message": {
      "type": "string",
      "description": "Commit message in conventional commits format: type(scope): description. E.g., \"feat(auth): add OAuth login\""
    },
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    }
  }
}
add_commit output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "taskId",
    "hash",
    "success"
  ],
  "properties": {
    "hash": {
      "type": "string"
    },
    "taskId": {
      "type": "string"
    },
    "success": {
      "type": "boolean"
    },
    "dashboardUrl": {
      "type": "string",
      "description": "Full dashboard URL of the affected resource"
    }
  },
  "additionalProperties": false
}
add_commit annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
link_pr — Link Pull Request
Advertised by the server during the last successful anonymous check.

Link the pull request that delivers this task. The PR is the primary deliverable of a task — call this as soon as the PR exists, and call it again with `state: "merged"` after merge. Upserts by URL, so repeated calls update the same PR record. **When to use:** - Right after opening a PR for the task (`gh pr create`): link it with url, branch, and title - After the PR is merged or closed: call again with the new state - Alternatively pass a `pr` object to complete_task if the PR was not linked earlier For GitHub URLs the repo and PR number are derived automatically.

link_pr input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId",
    "taskId",
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "Pull request URL (e.g. https://github.com/owner/repo/pull/42)"
    },
    "repo": {
      "type": "string",
      "description": "Repository as \"owner/name\". Derived from GitHub URLs automatically."
    },
    "state": {
      "enum": [
        "draft",
        "open",
        "merged",
        "closed"
      ],
      "type": "string",
      "description": "PR state (default: open)"
    },
    "title": {
      "type": "string",
      "description": "PR title"
    },
    "branch": {
      "type": "string",
      "description": "Head branch name"
    },
    "number": {
      "type": "integer",
      "maximum": 9007199254740991,
      "minimum": -9007199254740991,
      "description": "PR number. Derived from GitHub URLs automatically."
    },
    "taskId": {
      "type": "string"
    },
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    },
    "headRevision": {
      "type": "string",
      "description": "Head commit SHA or repository revision when known"
    }
  }
}
link_pr output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "taskId",
    "pullRequest",
    "success"
  ],
  "properties": {
    "taskId": {
      "type": "string"
    },
    "success": {
      "type": "boolean"
    },
    "pullRequest": {
      "type": "object",
      "required": [
        "url",
        "state"
      ],
      "properties": {
        "id": {
          "type": "string"
        },
        "url": {
          "type": "string"
        },
        "repo": {
          "type": [
            "string",
            "null"
          ]
        },
        "state": {
          "type": "string"
        },
        "title": {
          "type": [
            "string",
            "null"
          ]
        },
        "branch": {
          "type": [
            "string",
            "null"
          ]
        },
        "number": {
          "type": [
            "number",
            "null"
          ]
        },
        "closedAt": {
          "type": [
            "string",
            "null"
          ]
        },
        "mergedAt": {
          "type": [
            "string",
            "null"
          ]
        },
        "openedAt": {
          "type": "string"
        },
        "sessionId": {
          "type": [
            "string",
            "null"
          ]
        },
        "headRevision": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "additionalProperties": false
    },
    "dashboardUrl": {
      "type": "string",
      "description": "Full dashboard URL of the affected resource"
    }
  },
  "additionalProperties": false
}
link_pr annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
create_subtask — Create Subtask
Advertised by the server during the last successful anonymous check.

Add a new subtask to a task. Useful for breaking down work into smaller steps. Optionally set startDate/dueDate (YYYY-MM-DD) so the subtask appears on the roadmap timeline.

create_subtask input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId",
    "taskId",
    "title"
  ],
  "properties": {
    "title": {
      "type": "string",
      "description": "Subtask title — short imperative phrase, e.g., \"Add validation to login form\""
    },
    "taskId": {
      "type": "string",
      "description": "Task ID"
    },
    "dueDate": {
      "type": "string",
      "description": "Target completion date (YYYY-MM-DD)"
    },
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    },
    "startDate": {
      "type": "string",
      "description": "Planned start date (YYYY-MM-DD)"
    }
  }
}
create_subtask output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "taskId",
    "subtask",
    "totalSubtasks"
  ],
  "properties": {
    "taskId": {
      "type": "string"
    },
    "subtask": {
      "type": "object",
      "required": [
        "id",
        "title",
        "done"
      ],
      "properties": {
        "id": {
          "type": "string"
        },
        "done": {
          "type": "boolean"
        },
        "title": {
          "type": "string"
        },
        "dueDate": {
          "type": [
            "string",
            "null"
          ]
        },
        "startDate": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "additionalProperties": false
    },
    "dashboardUrl": {
      "type": "string",
      "description": "Full dashboard URL of the affected resource"
    },
    "totalSubtasks": {
      "type": "number"
    }
  },
  "additionalProperties": false
}
create_subtask annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
update_subtask — Update Subtask
Advertised by the server during the last successful anonymous check.

Update a subtask: mark it done/not done and/or set its timeline dates. Use get_task to see subtask IDs. Dates are YYYY-MM-DD; null clears a date.

update_subtask input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId",
    "taskId",
    "subtaskId"
  ],
  "properties": {
    "done": {
      "type": "boolean",
      "description": "Whether the subtask is done"
    },
    "taskId": {
      "type": "string",
      "description": "Task ID"
    },
    "dueDate": {
      "type": [
        "string",
        "null"
      ],
      "description": "Target completion date (YYYY-MM-DD). Null clears."
    },
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    },
    "startDate": {
      "type": [
        "string",
        "null"
      ],
      "description": "Planned start date (YYYY-MM-DD). Null clears."
    },
    "subtaskId": {
      "type": "string",
      "description": "Subtask ID"
    }
  }
}
update_subtask output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "taskId",
    "subtaskId",
    "done",
    "progress"
  ],
  "properties": {
    "done": {
      "type": "boolean"
    },
    "taskId": {
      "type": "string"
    },
    "dueDate": {
      "type": [
        "string",
        "null"
      ]
    },
    "progress": {
      "type": "object",
      "required": [
        "done",
        "total"
      ],
      "properties": {
        "done": {
          "type": "number"
        },
        "total": {
          "type": "number"
        }
      },
      "additionalProperties": false
    },
    "startDate": {
      "type": [
        "string",
        "null"
      ]
    },
    "subtaskId": {
      "type": "string"
    },
    "dashboardUrl": {
      "type": "string",
      "description": "Full dashboard URL of the affected resource"
    }
  },
  "additionalProperties": false
}
update_subtask annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
delete_subtask — Delete Subtask
Advertised by the server during the last successful anonymous check.
Advertised destructive

Remove a subtask from a task. Use get_task to see subtask IDs.

delete_subtask input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId",
    "taskId",
    "subtaskId"
  ],
  "properties": {
    "taskId": {
      "type": "string",
      "description": "Task ID"
    },
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    },
    "subtaskId": {
      "type": "string",
      "description": "Subtask ID"
    }
  }
}
delete_subtask output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "taskId",
    "subtaskId",
    "remaining"
  ],
  "properties": {
    "taskId": {
      "type": "string"
    },
    "remaining": {
      "type": "number"
    },
    "subtaskId": {
      "type": "string"
    },
    "dashboardUrl": {
      "type": "string",
      "description": "Full dashboard URL of the affected resource"
    }
  },
  "additionalProperties": false
}
delete_subtask annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": true
}
delete_task — Delete Task
Advertised by the server during the last successful anonymous check.
Advertised destructive

Permanently delete a task. Only works on tasks in backlog or planned status with no commits.

delete_task input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId",
    "taskId"
  ],
  "properties": {
    "taskId": {
      "type": "string"
    },
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    }
  }
}
delete_task output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "id",
    "deleted"
  ],
  "properties": {
    "id": {
      "type": "string"
    },
    "deleted": {
      "type": "boolean"
    },
    "dashboardUrl": {
      "type": "string",
      "description": "Full dashboard URL of the affected resource"
    }
  },
  "additionalProperties": false
}
delete_task annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": true
}
add_task_dependency — Add Task Dependency
Advertised by the server during the last successful anonymous check.

Add a dependency between roadmap tasks. The blocker task must be done before the blocked task can be worked on. Provide either blockerId (this task is blocked by another) or blockedId (this task blocks another).

add_task_dependency input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId",
    "taskId"
  ],
  "properties": {
    "taskId": {
      "type": "string",
      "description": "Task ID that is either the blocker or the blocked task"
    },
    "blockedId": {
      "type": "string",
      "description": "Task that is blocked until blocker is done"
    },
    "blockerId": {
      "type": "string",
      "description": "Task that must be completed first"
    },
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    }
  }
}
add_task_dependency output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "id",
    "projectId",
    "createdAt",
    "blockerId",
    "blockedId",
    "blocker",
    "blocked"
  ],
  "properties": {
    "id": {
      "type": "string"
    },
    "blocked": {
      "type": "object",
      "required": [
        "id",
        "title",
        "status"
      ],
      "properties": {
        "id": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "status": {
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "blocker": {
      "type": "object",
      "required": [
        "id",
        "title",
        "status"
      ],
      "properties": {
        "id": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "status": {
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "blockedId": {
      "type": "string"
    },
    "blockerId": {
      "type": "string"
    },
    "createdAt": {
      "type": "string"
    },
    "projectId": {
      "type": "string"
    },
    "dashboardUrl": {
      "type": "string",
      "description": "Full dashboard URL of the affected resource"
    }
  },
  "additionalProperties": false
}
add_task_dependency annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
remove_task_dependency — Remove Task Dependency
Advertised by the server during the last successful anonymous check.
Advertised destructive

Remove a task dependency by dependency ID.

remove_task_dependency input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId",
    "dependencyId"
  ],
  "properties": {
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    },
    "dependencyId": {
      "type": "string",
      "description": "Dependency ID to remove"
    }
  }
}
remove_task_dependency output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "success"
  ],
  "properties": {
    "success": {
      "type": "boolean"
    },
    "dashboardUrl": {
      "type": "string",
      "description": "Full dashboard URL of the affected resource"
    }
  },
  "additionalProperties": false
}
remove_task_dependency annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": true
}
add_api_example — Add API Example
Advertised by the server during the last successful anonymous check.

Attach a request/response example for an API endpoint you added or changed, so the reviewer can check the contract in Damper without running anything. Add one per changed endpoint (more for distinct cases, e.g. success and validation error — give each its own `key`). **Upserts by key:** the key defaults to "METHOD /path STATUS", so a success and each error case of one route are separate examples; calling again with the same key replaces the example. **Security:** use seeded/test data only. Authorization, cookie and API-key headers are always redacted. **Changed endpoints:** pass `beforeResponse` to show what the endpoint returned before your change.

add_api_example input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId",
    "taskId",
    "method",
    "path",
    "response"
  ],
  "properties": {
    "key": {
      "type": "string",
      "description": "Stable identity for this example (default \"METHOD /path STATUS\", e.g. \"POST /invoices 422\"). Reuse it to replace."
    },
    "path": {
      "type": "string",
      "description": "Path with example values, e.g. /invoices?status=paid or /invoices/inv_123"
    },
    "group": {
      "type": "string",
      "description": "Resource to group under (default: first path segment)"
    },
    "title": {
      "type": "string",
      "description": "Short label, e.g. \"Filter by metadata list\" (default \"METHOD /path\")"
    },
    "change": {
      "enum": [
        "added",
        "changed",
        "removed"
      ],
      "type": "string",
      "description": "added = new endpoint/page, changed = existing one behaves or looks different, removed = gone (default: changed)"
    },
    "method": {
      "type": "string",
      "description": "HTTP method, e.g. GET, POST, PATCH"
    },
    "taskId": {
      "type": "string"
    },
    "request": {
      "type": "object",
      "properties": {
        "body": {
          "description": "JSON body (object/array) or raw string. Keep it to the fields that matter; bodies over 16 KB are truncated."
        },
        "query": {
          "type": "object",
          "propertyNames": {
            "type": "string"
          },
          "additionalProperties": {}
        },
        "headers": {
          "type": "object",
          "propertyNames": {
            "type": "string"
          },
          "additionalProperties": {
            "type": "string"
          }
        }
      }
    },
    "response": {
      "type": "object",
      "required": [
        "status"
      ],
      "properties": {
        "body": {
          "description": "JSON body (object/array) or raw string. Keep it to the fields that matter; bodies over 16 KB are truncated."
        },
        "status": {
          "type": "integer",
          "maximum": 9007199254740991,
          "minimum": -9007199254740991,
          "description": "HTTP status code"
        },
        "headers": {
          "type": "object",
          "propertyNames": {
            "type": "string"
          },
          "additionalProperties": {
            "type": "string"
          }
        }
      }
    },
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    },
    "description": {
      "type": "string",
      "description": "What this example demonstrates and what to check"
    },
    "beforeResponse": {
      "type": "object",
      "required": [
        "status"
      ],
      "properties": {
        "body": {
          "description": "JSON body (object/array) or raw string. Keep it to the fields that matter; bodies over 16 KB are truncated."
        },
        "status": {
          "type": "integer",
          "maximum": 9007199254740991,
          "minimum": -9007199254740991
        }
      },
      "description": "For changed endpoints: the response before your change"
    }
  }
}
add_api_example output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "artifact",
    "replaced"
  ],
  "properties": {
    "artifact": {
      "type": "object",
      "required": [
        "id",
        "kind",
        "key",
        "group",
        "title",
        "description",
        "change",
        "sortOrder",
        "data",
        "hasImage",
        "hasBeforeImage",
        "pendingUpload",
        "reviewStatus",
        "reviewComment",
        "reviewedAt",
        "reviewedBy",
        "sessionId",
        "createdAt",
        "updatedAt"
      ],
      "properties": {
        "id": {
          "type": "string"
        },
        "key": {
          "type": "string"
        },
        "data": {
          "type": "object",
          "propertyNames": {
            "type": "string"
          },
          "additionalProperties": {}
        },
        "kind": {
          "enum": [
            "api_example",
            "screenshot",
            "diagram"
          ],
          "type": "string"
        },
        "group": {
          "type": [
            "string",
            "null"
          ]
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "string"
        },
        "hasImage": {
          "type": "boolean"
        },
        "createdAt": {
          "type": "string"
        },
        "sessionId": {
          "type": [
            "string",
            "null"
          ]
        },
        "sortOrder": {
          "type": "number"
        },
        "updatedAt": {
          "type": "string"
        },
        "imageWidth": {
          "type": [
            "number",
            "null"
          ]
        },
        "reviewedAt": {
          "type": [
            "string",
            "null"
          ]
        },
        "reviewedBy": {
          "type": [
            "string",
            "null"
          ]
        },
        "description": {
          "type": [
            "string",
            "null"
          ]
        },
        "imageHeight": {
          "type": [
            "number",
            "null"
          ]
        },
        "reviewStatus": {
          "type": "string"
        },
        "pendingUpload": {
          "type": "boolean"
        },
        "reviewComment": {
          "type": [
            "string",
            "null"
          ]
        },
        "hasBeforeImage": {
          "type": "boolean"
        },
        "beforeImageWidth": {
          "type": [
            "number",
            "null"
          ]
        },
        "beforeImageHeight": {
          "type": [
            "number",
            "null"
          ]
        }
      },
      "additionalProperties": false
    },
    "replaced": {
      "type": "boolean"
    },
    "dashboardUrl": {
      "type": "string",
      "description": "Full dashboard URL of the affected resource"
    }
  },
  "additionalProperties": false
}
add_api_example annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
add_screenshot — Add Screenshot
Advertised by the server during the last successful anonymous check.

Attach a screenshot of a page or screen you added or changed, so the reviewer sees the result in Damper. Capture every changed page in each relevant state (default, empty, loading, error, validation…), using the locale/theme/viewport the project asks for (see start_task). Give each state its own call. **Two ways to send the image:** - `image: { base64 }` — inline, fine for small images. - `requestUpload: true` — returns a one-time URL; then run `curl -X PUT -H "Content-Type: image/png" --data-binary @shot.png "<url>"`. Prefer this from a shell: it keeps large images out of your context. **Upserts by key:** the key defaults to page:state[:theme:locale:viewport]; reuse it to replace a capture. **Before/after:** for changed pages, send `beforeImage` (or `requestBeforeUpload`) to enable a comparison. **Size:** capture the viewport at 1–2× device scale, not the full page, unless the change sits below the fold. Damper re-encodes uploads to WebP (max 2560px wide) and makes a thumbnail, so bigger captures only cost upload time. **Privacy:** seeded/test data only — no real customer data. Max 5 MB per image, 60 screenshots per task.

add_screenshot input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId",
    "taskId",
    "page"
  ],
  "properties": {
    "key": {
      "type": "string",
      "description": "Stable identity (default derived from page/state/theme/locale/viewport)"
    },
    "page": {
      "type": "string",
      "description": "Page or screen name, e.g. \"Invoices list\" or \"Settings › Billing\""
    },
    "image": {
      "type": "object",
      "required": [
        "base64"
      ],
      "properties": {
        "base64": {
          "type": "string",
          "description": "Base64 image data, or a data URL (data:image/png;base64,…)"
        },
        "contentType": {
          "type": "string",
          "description": "image/png, image/jpeg, image/webp or image/gif (not needed for data URLs)"
        }
      }
    },
    "route": {
      "type": "string",
      "description": "Route or URL path, e.g. /invoices?status=paid"
    },
    "state": {
      "type": "string",
      "description": "State shown, e.g. default, empty, loading, error, validation (default: default)"
    },
    "theme": {
      "type": "string",
      "description": "light or dark"
    },
    "title": {
      "type": "string"
    },
    "change": {
      "enum": [
        "added",
        "changed",
        "removed"
      ],
      "type": "string",
      "description": "added = new endpoint/page, changed = existing one behaves or looks different, removed = gone (default: changed)"
    },
    "locale": {
      "type": "string",
      "description": "Locale shown, e.g. en"
    },
    "taskId": {
      "type": "string"
    },
    "viewport": {
      "type": "string",
      "description": "desktop, mobile, or WIDTHxHEIGHT"
    },
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    },
    "beforeImage": {
      "type": "object",
      "required": [
        "base64"
      ],
      "properties": {
        "base64": {
          "type": "string",
          "description": "Base64 image data, or a data URL (data:image/png;base64,…)"
        },
        "contentType": {
          "type": "string",
          "description": "image/png, image/jpeg, image/webp or image/gif (not needed for data URLs)"
        }
      },
      "description": "The same page before your change"
    },
    "description": {
      "type": "string",
      "description": "What changed on this page and what to look at"
    },
    "requestUpload": {
      "type": "boolean",
      "description": "Return a one-time PUT URL for the image instead of sending base64"
    },
    "requestBeforeUpload": {
      "type": "boolean",
      "description": "Return a one-time PUT URL for the before image"
    }
  }
}
add_screenshot output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "artifact",
    "replaced"
  ],
  "properties": {
    "upload": {
      "type": "object",
      "required": [
        "method",
        "expiresAt",
        "instructions"
      ],
      "properties": {
        "url": {
          "type": "string"
        },
        "method": {
          "type": "string"
        },
        "beforeUrl": {
          "type": "string"
        },
        "expiresAt": {
          "type": "string"
        },
        "instructions": {
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "artifact": {
      "type": "object",
      "required": [
        "id",
        "kind",
        "key",
        "group",
        "title",
        "description",
        "change",
        "sortOrder",
        "data",
        "hasImage",
        "hasBeforeImage",
        "pendingUpload",
        "reviewStatus",
        "reviewComment",
        "reviewedAt",
        "reviewedBy",
        "sessionId",
        "createdAt",
        "updatedAt"
      ],
      "properties": {
        "id": {
          "type": "string"
        },
        "key": {
          "type": "string"
        },
        "data": {
          "type": "object",
          "propertyNames": {
            "type": "string"
          },
          "additionalProperties": {}
        },
        "kind": {
          "enum": [
            "api_example",
            "screenshot",
            "diagram"
          ],
          "type": "string"
        },
        "group": {
          "type": [
            "string",
            "null"
          ]
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "string"
        },
        "hasImage": {
          "type": "boolean"
        },
        "createdAt": {
          "type": "string"
        },
        "sessionId": {
          "type": [
            "string",
            "null"
          ]
        },
        "sortOrder": {
          "type": "number"
        },
        "updatedAt": {
          "type": "string"
        },
        "imageWidth": {
          "type": [
            "number",
            "null"
          ]
        },
        "reviewedAt": {
          "type": [
            "string",
            "null"
          ]
        },
        "reviewedBy": {
          "type": [
            "string",
            "null"
          ]
        },
        "description": {
          "type": [
            "string",
            "null"
          ]
        },
        "imageHeight": {
          "type": [
            "number",
            "null"
          ]
        },
        "reviewStatus": {
          "type": "string"
        },
        "pendingUpload": {
          "type": "boolean"
        },
        "reviewComment": {
          "type": [
            "string",
            "null"
          ]
        },
        "hasBeforeImage": {
          "type": "boolean"
        },
        "beforeImageWidth": {
          "type": [
            "number",
            "null"
          ]
        },
        "beforeImageHeight": {
          "type": [
            "number",
            "null"
          ]
        }
      },
      "additionalProperties": false
    },
    "replaced": {
      "type": "boolean"
    },
    "dashboardUrl": {
      "type": "string",
      "description": "Full dashboard URL of the affected resource"
    }
  },
  "additionalProperties": false
}
add_screenshot annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
add_diagram — Add Diagram
Advertised by the server during the last successful anonymous check.

Attach a Mermaid diagram that explains the logic or structure behind a change, so the reviewer can follow it without reading the diff. OPTIONAL — add one only when it clarifies something a list of endpoints or screenshots cannot: a decision tree or branching rule, a multi-step flow, a state machine, a call sequence, or how the touched modules, tables or classes relate. Skip it for simple changes. **Types** (first line of `source`): `flowchart TD` (decision trees, flows, dependency maps), `stateDiagram-v2`, `sequenceDiagram`, `classDiagram`, `erDiagram`. No `%%{init}` directives or `click` handlers. **Keep it small:** about 15 nodes or fewer, short labels, one idea per diagram. Quote labels that contain punctuation, e.g. `A["No tax line?"]`. **Mark what changed** in flowcharts and state diagrams by tagging nodes `:::added`, `:::changed` or `:::removed` (e.g. `B["Retry with backoff"]:::changed`) — Damper colours them; do not add your own `classDef` colours. **Before/after:** for a changed flow pass `beforeSource` with the previous diagram. **Upserts by key** (default: slug of the title); calling again with the same key replaces the diagram. Never put secrets or real customer data in labels.

add_diagram input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId",
    "taskId",
    "title",
    "source"
  ],
  "properties": {
    "key": {
      "type": "string",
      "description": "Stable identity (default: slug of the title). Reuse it to replace."
    },
    "group": {
      "type": "string",
      "description": "Optional grouping label, e.g. the feature or module"
    },
    "title": {
      "type": "string",
      "description": "Short label, e.g. \"VOD booking type by tax line\""
    },
    "change": {
      "enum": [
        "added",
        "changed",
        "removed"
      ],
      "type": "string",
      "description": "added = new endpoint/page, changed = existing one behaves or looks different, removed = gone (default: changed)"
    },
    "source": {
      "type": "string",
      "description": "Mermaid source, starting with the diagram type, e.g. \"flowchart TD\\n  A[Start] --> B{Tax line?}\""
    },
    "taskId": {
      "type": "string"
    },
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    },
    "description": {
      "type": "string",
      "description": "What the diagram shows and what to check"
    },
    "beforeSource": {
      "type": "string",
      "description": "For changed flows: the Mermaid source before your change"
    }
  }
}
add_diagram output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "artifact",
    "replaced"
  ],
  "properties": {
    "artifact": {
      "type": "object",
      "required": [
        "id",
        "kind",
        "key",
        "group",
        "title",
        "description",
        "change",
        "sortOrder",
        "data",
        "hasImage",
        "hasBeforeImage",
        "pendingUpload",
        "reviewStatus",
        "reviewComment",
        "reviewedAt",
        "reviewedBy",
        "sessionId",
        "createdAt",
        "updatedAt"
      ],
      "properties": {
        "id": {
          "type": "string"
        },
        "key": {
          "type": "string"
        },
        "data": {
          "type": "object",
          "propertyNames": {
            "type": "string"
          },
          "additionalProperties": {}
        },
        "kind": {
          "enum": [
            "api_example",
            "screenshot",
            "diagram"
          ],
          "type": "string"
        },
        "group": {
          "type": [
            "string",
            "null"
          ]
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "string"
        },
        "hasImage": {
          "type": "boolean"
        },
        "createdAt": {
          "type": "string"
        },
        "sessionId": {
          "type": [
            "string",
            "null"
          ]
        },
        "sortOrder": {
          "type": "number"
        },
        "updatedAt": {
          "type": "string"
        },
        "imageWidth": {
          "type": [
            "number",
            "null"
          ]
        },
        "reviewedAt": {
          "type": [
            "string",
            "null"
          ]
        },
        "reviewedBy": {
          "type": [
            "string",
            "null"
          ]
        },
        "description": {
          "type": [
            "string",
            "null"
          ]
        },
        "imageHeight": {
          "type": [
            "number",
            "null"
          ]
        },
        "reviewStatus": {
          "type": "string"
        },
        "pendingUpload": {
          "type": "boolean"
        },
        "reviewComment": {
          "type": [
            "string",
            "null"
          ]
        },
        "hasBeforeImage": {
          "type": "boolean"
        },
        "beforeImageWidth": {
          "type": [
            "number",
            "null"
          ]
        },
        "beforeImageHeight": {
          "type": [
            "number",
            "null"
          ]
        }
      },
      "additionalProperties": false
    },
    "replaced": {
      "type": "boolean"
    },
    "dashboardUrl": {
      "type": "string",
      "description": "Full dashboard URL of the affected resource"
    }
  },
  "additionalProperties": false
}
add_diagram annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
list_review_artifacts — List Review Artifacts
Advertised by the server during the last successful anonymous check.
Advertised read-only

List the API examples, screenshots and diagrams attached to a task, with the reviewer's verdict on each (approved / changes_requested + comment). Use it to check coverage before complete_task, and to find artifacts a reviewer asked you to redo.

list_review_artifacts input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId",
    "taskId"
  ],
  "properties": {
    "taskId": {
      "type": "string"
    },
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    }
  }
}
list_review_artifacts output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "artifacts"
  ],
  "properties": {
    "artifacts": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "id",
          "kind",
          "key",
          "group",
          "title",
          "description",
          "change",
          "sortOrder",
          "data",
          "hasImage",
          "hasBeforeImage",
          "pendingUpload",
          "reviewStatus",
          "reviewComment",
          "reviewedAt",
          "reviewedBy",
          "sessionId",
          "createdAt",
          "updatedAt"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "key": {
            "type": "string"
          },
          "data": {
            "type": "object",
            "propertyNames": {
              "type": "string"
            },
            "additionalProperties": {}
          },
          "kind": {
            "enum": [
              "api_example",
              "screenshot",
              "diagram"
            ],
            "type": "string"
          },
          "group": {
            "type": [
              "string",
              "null"
            ]
          },
          "title": {
            "type": "string"
          },
          "change": {
            "type": "string"
          },
          "hasImage": {
            "type": "boolean"
          },
          "createdAt": {
            "type": "string"
          },
          "sessionId": {
            "type": [
              "string",
              "null"
            ]
          },
          "sortOrder": {
            "type": "number"
          },
          "updatedAt": {
            "type": "string"
          },
          "imageWidth": {
            "type": [
              "number",
              "null"
            ]
          },
          "reviewedAt": {
            "type": [
              "string",
              "null"
            ]
          },
          "reviewedBy": {
            "type": [
              "string",
              "null"
            ]
          },
          "description": {
            "type": [
              "string",
              "null"
            ]
          },
          "imageHeight": {
            "type": [
              "number",
              "null"
            ]
          },
          "reviewStatus": {
            "type": "string"
          },
          "pendingUpload": {
            "type": "boolean"
          },
          "reviewComment": {
            "type": [
              "string",
              "null"
            ]
          },
          "hasBeforeImage": {
            "type": "boolean"
          },
          "beforeImageWidth": {
            "type": [
              "number",
              "null"
            ]
          },
          "beforeImageHeight": {
            "type": [
              "number",
              "null"
            ]
          }
        },
        "additionalProperties": false
      }
    }
  },
  "additionalProperties": false
}
list_review_artifacts annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
remove_review_artifact — Remove Review Artifact
Advertised by the server during the last successful anonymous check.
Advertised destructive

Remove an API example, screenshot or diagram from a task, by id or by kind + key (e.g. a page that no longer changes).

remove_review_artifact input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId",
    "taskId"
  ],
  "properties": {
    "id": {
      "type": "string"
    },
    "key": {
      "type": "string"
    },
    "kind": {
      "enum": [
        "api_example",
        "screenshot",
        "diagram"
      ],
      "type": "string"
    },
    "taskId": {
      "type": "string"
    },
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    }
  }
}
remove_review_artifact output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "removed"
  ],
  "properties": {
    "removed": {
      "type": "object",
      "required": [
        "id",
        "key",
        "kind"
      ],
      "properties": {
        "id": {
          "type": "string"
        },
        "key": {
          "type": "string"
        },
        "kind": {
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "dashboardUrl": {
      "type": "string",
      "description": "Full dashboard URL of the affected resource"
    }
  },
  "additionalProperties": false
}
remove_review_artifact annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": true
}
start_task — Start Task
Advertised by the server during the last successful anonymous check.

Lock and start a task. Fails if locked by another agent unless force=true. Use force=true to take over a task from another agent (e.g., if they abandoned it). Returns project context index with relevant sections for the task. If the reviewer decided your latest review request, the response starts with a `latestReviewRound` feedback block: address it before anything else. **IMPORTANT:** After starting, use get_context_section to read relevant sections. Project context contains architecture and patterns you MUST follow. **Workflow after starting:** 1. Read relevant context sections (architecture, conventions, etc.) 2. Do work on a feature branch 3. Open a pull request for the change and link it with link_pr — the PR is the deliverable 4. request_review as soon as something is reviewable (no user confirmation needed), or when stopping for the session 5. complete_task (done) or abandon_task (stopping)

start_task input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId",
    "taskId"
  ],
  "properties": {
    "force": {
      "type": "boolean",
      "description": "Take over lock from another agent"
    },
    "taskId": {
      "type": "string"
    },
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    },
    "criticalRuleMode": {
      "enum": [
        "relevant",
        "all",
        "none"
      ],
      "type": "string",
      "description": "Critical rules to include. Defaults to relevant; all restores the legacy full payload."
    }
  }
}
start_task output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "id",
    "status",
    "message"
  ],
  "properties": {
    "id": {
      "type": "string"
    },
    "status": {
      "type": "string"
    },
    "context": {
      "type": "object",
      "required": [
        "isEmpty",
        "index"
      ],
      "properties": {
        "hint": {
          "type": "string"
        },
        "index": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "section",
              "preview",
              "updatedAt"
            ],
            "properties": {
              "tags": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "title": {
                "type": "string"
              },
              "preview": {
                "type": "string"
              },
              "section": {
                "type": "string"
              },
              "appliesTo": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "updatedAt": {
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        },
        "isEmpty": {
          "type": "boolean"
        },
        "criticalRules": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "criticalRuleMode": {
          "enum": [
            "relevant",
            "all",
            "none"
          ],
          "type": "string"
        },
        "relevantSections": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "criticalRuleSections": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "section",
              "criticalRules"
            ],
            "properties": {
              "section": {
                "type": "string"
              },
              "criticalRules": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            },
            "additionalProperties": false
          }
        },
        "repositoryContextHints": {
          "type": "object",
          "required": [
            "hints",
            "omittedCount",
            "projectContextUrl",
            "docsUrl"
          ],
          "properties": {
            "hints": {
              "type": "array",
              "items": {
                "type": "object",
                "required": [
                  "kind",
                  "repositoryKey",
                  "reasonCode",
                  "reason",
                  "command"
                ],
                "properties": {
                  "kind": {
                    "enum": [
                      "setup",
                      "refresh",
                      "unavailable"
                    ],
                    "type": "string"
                  },
                  "reason": {
                    "type": "string",
                    "maxLength": 500,
                    "minLength": 1
                  },
                  "command": {
                    "type": "string",
                    "maxLength": 500,
                    "minLength": 1
                  },
                  "reasonCode": {
                    "enum": [
                      "no_receipt",
                      "managed_section_changed",
                      "managed_section_deleted",
                      "status_unavailable"
                    ],
                    "type": "string"
                  },
                  "repositoryKey": {
                    "type": "string",
                    "maxLength": 100,
                    "minLength": 1
                  }
                },
                "additionalProperties": false
              },
              "maxItems": 3,
              "minItems": 1
            },
            "docsUrl": {
              "type": "string",
              "format": "uri"
            },
            "omittedCount": {
              "type": "integer",
              "maximum": 9007199254740991,
              "minimum": 0
            },
            "projectContextUrl": {
              "type": "string",
              "format": "uri"
            }
          },
          "additionalProperties": false
        }
      },
      "additionalProperties": false
    },
    "message": {
      "type": "string"
    },
    "lockedAt": {
      "type": "string"
    },
    "lockedBy": {
      "type": "string"
    },
    "dashboardUrl": {
      "type": "string",
      "description": "Full dashboard URL of the affected resource"
    },
    "reviewEvidence": {
      "type": [
        "string",
        "null"
      ]
    },
    "latestReviewRound": {
      "anyOf": [
        {
          "type": "object",
          "required": [
            "round",
            "verdict",
            "stage",
            "comment",
            "createdAt",
            "changesRequested"
          ],
          "properties": {
            "round": {
              "type": "number"
            },
            "stage": {
              "type": [
                "string",
                "null"
              ],
              "description": "'partial' or 'complete' (the stage the reviewer decided), or null"
            },
            "comment": {
              "type": [
                "string",
                "null"
              ]
            },
            "verdict": {
              "type": "string"
            },
            "createdAt": {
              "type": "string"
            },
            "changesRequested": {
              "type": "array",
              "items": {
                "type": "object",
                "required": [
                  "kind",
                  "key",
                  "title",
                  "reviewComment"
                ],
                "properties": {
                  "key": {
                    "type": "string"
                  },
                  "kind": {
                    "type": "string"
                  },
                  "title": {
                    "type": "string"
                  },
                  "reviewComment": {
                    "type": [
                      "string",
                      "null"
                    ]
                  }
                },
                "additionalProperties": false
              }
            }
          },
          "description": "Reviewer decision on the most recent review request; present only when it decided that request.",
          "additionalProperties": false
        },
        {
          "type": "null"
        }
      ]
    },
    "completionChecklist": {
      "type": "object",
      "required": [
        "version",
        "migratedFromLegacy",
        "groups",
        "standards",
        "availableScopes",
        "scopeGuidance"
      ],
      "properties": {
        "groups": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "id",
              "title",
              "itemCount",
              "subitemCount"
            ],
            "properties": {
              "id": {
                "type": "string"
              },
              "when": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "title": {
                "type": "string"
              },
              "appliesTo": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "itemCount": {
                "type": "number"
              },
              "description": {
                "type": "string"
              },
              "riskDomains": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "subitemCount": {
                "type": "number"
              }
            },
            "additionalProperties": false
          }
        },
        "version": {
          "type": "number"
        },
        "standards": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "id",
              "title",
              "section"
            ],
            "properties": {
              "id": {
                "type": "string"
              },
              "when": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "title": {
                "type": "string"
              },
              "section": {
                "type": "string"
              },
              "appliesTo": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "description": {
                "type": "string"
              },
              "riskDomains": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            },
            "additionalProperties": false
          }
        },
        "scopeGuidance": {
          "type": "object",
          "required": [
            "scopeBias",
            "whenUncertain",
            "proofFirst",
            "examples"
          ],
          "properties": {
            "examples": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "scopeBias": {
              "type": "string"
            },
            "proofFirst": {
              "type": "string"
            },
            "whenUncertain": {
              "type": "string"
            }
          },
          "additionalProperties": false
        },
        "availableScopes": {
          "type": "object",
          "required": [
            "appliesTo",
            "changeKinds",
            "riskDomains"
          ],
          "properties": {
            "appliesTo": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "changeKinds": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "riskDomains": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "additionalProperties": false
        },
        "migratedFromLegacy": {
          "type": "boolean"
        }
      },
      "additionalProperties": false
    },
    "contextMaintenancePolicy": {
      "type": "object",
      "required": [
        "mode",
        "requireForChangeKinds",
        "requireForRiskDomains",
        "blockOnUnverifiedFallback",
        "requireFixtureValidationAfterRoutingWrites",
        "allowScopedAgentWrites",
        "riskVerificationWindows"
      ],
      "properties": {
        "mode": {
          "enum": [
            "off",
            "advisory",
            "required"
          ],
          "type": "string",
          "default": "advisory"
        },
        "requireForChangeKinds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "default": []
        },
        "requireForRiskDomains": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "default": []
        },
        "allowScopedAgentWrites": {
          "type": "boolean",
          "default": false
        },
        "riskVerificationWindows": {
          "type": "object",
          "default": {},
          "propertyNames": {
            "type": "string"
          },
          "additionalProperties": {
            "type": "integer",
            "maximum": 9007199254740991,
            "exclusiveMinimum": 0
          }
        },
        "blockOnUnverifiedFallback": {
          "type": "boolean",
          "default": false
        },
        "autoCreateDebtTaskThreshold": {
          "type": "integer",
          "maximum": 9007199254740991,
          "exclusiveMinimum": 0
        },
        "defaultVerificationWindowDays": {
          "type": "integer",
          "maximum": 9007199254740991,
          "exclusiveMinimum": 0
        },
        "requireFixtureValidationAfterRoutingWrites": {
          "type": "boolean",
          "default": true
        }
      },
      "additionalProperties": false
    }
  },
  "additionalProperties": false
}
start_task annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
review_task — Review Task
Advertised by the server during the last successful anonymous check.

Optional standalone self-review step. You can also pass `selfAssessment` directly to `complete_task` instead. Reflect on your session: what project knowledge was missing, what tools were confusing, what process gaps caused friction. This drives project improvements. If you have findings, propose improvements to the user after this call (e.g., `update_context_section` for missing docs, `report_issue` for tool problems).

review_task input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId",
    "taskId",
    "selfAssessment"
  ],
  "properties": {
    "taskId": {
      "type": "string"
    },
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    },
    "selfAssessment": {
      "type": "object",
      "properties": {
        "model": {
          "type": "string",
          "description": "Model identifier used for the session, if known"
        },
        "toolIssues": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "MCP tools or workflow steps that were confusing, broken, or could be improved"
        },
        "processGaps": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Gaps in specs, checklists, or conventions that caused friction or mistakes"
        },
        "missingContext": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Project knowledge that was missing or wrong — things you had to figure out that should be documented for future agents"
        },
        "reasoningEffort": {
          "type": "string",
          "description": "Reasoning effort used for the session, if known"
        }
      },
      "description": "Reflect on your session: what went well, what knowledge was missing, what caused friction. Be honest — this drives project improvements. Pass empty object if nothing to report."
    }
  }
}
review_task output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "id",
    "status"
  ],
  "properties": {
    "id": {
      "type": "string"
    },
    "status": {
      "type": "string"
    },
    "dashboardUrl": {
      "type": "string",
      "description": "Full dashboard URL of the affected resource"
    },
    "completionChecklist": {
      "type": "object",
      "required": [
        "version",
        "migratedFromLegacy",
        "groups",
        "standards",
        "availableScopes",
        "scopeGuidance"
      ],
      "properties": {
        "groups": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "id",
              "title",
              "itemCount",
              "subitemCount"
            ],
            "properties": {
              "id": {
                "type": "string"
              },
              "when": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "title": {
                "type": "string"
              },
              "appliesTo": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "itemCount": {
                "type": "number"
              },
              "description": {
                "type": "string"
              },
              "riskDomains": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "subitemCount": {
                "type": "number"
              }
            },
            "additionalProperties": false
          }
        },
        "version": {
          "type": "number"
        },
        "standards": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "id",
              "title",
              "section"
            ],
            "properties": {
              "id": {
                "type": "string"
              },
              "when": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "title": {
                "type": "string"
              },
              "section": {
                "type": "string"
              },
              "appliesTo": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "description": {
                "type": "string"
              },
              "riskDomains": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            },
            "additionalProperties": false
          }
        },
        "scopeGuidance": {
          "type": "object",
          "required": [
            "scopeBias",
            "whenUncertain",
            "proofFirst",
            "examples"
          ],
          "properties": {
            "examples": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "scopeBias": {
              "type": "string"
            },
            "proofFirst": {
              "type": "string"
            },
            "whenUncertain": {
              "type": "string"
            }
          },
          "additionalProperties": false
        },
        "availableScopes": {
          "type": "object",
          "required": [
            "appliesTo",
            "changeKinds",
            "riskDomains"
          ],
          "properties": {
            "appliesTo": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "changeKinds": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "riskDomains": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "additionalProperties": false
        },
        "migratedFromLegacy": {
          "type": "boolean"
        }
      },
      "additionalProperties": false
    }
  },
  "additionalProperties": false
}
review_task annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
complete_task — Complete Task
Advertised by the server during the last successful anonymous check.

Mark task as ready for review (in_review). A human will verify and move it to done. Pass `skipReview: true` to mark as done immediately (use when the human explicitly asks). If the task is already in_review (put there by a previous complete_task call), calling this again will move it directly to done — no checklist required (already confirmed). Tasks put in review with `request_review` are the exception: wait for the reviewer, then resume with start_task. **Self-assessment (required):** Pass `selfAssessment` reflecting on your session — what project knowledge was missing, what tools were confusing, what process gaps caused friction. Pass empty object `{}` if nothing to report. For non-trivial code work, include at least one concrete entry instead of an all-empty assessment. Also pass `model` and `reasoningEffort` when known; top-level values override nested selfAssessment metadata. You can also call `review_task` separately before this, but passing `selfAssessment` here is simpler. **Before calling:** 1. Push all commits and open a pull request for the change — the PR is the primary deliverable 2. Link the PR with `link_pr`, or pass it here via the `pr` parameter 3. Check if project context docs need updating **Completion checklist:** If the project has a completion checklist (shown in `start_task` response), load relevant branches with `get_completion_checklist`, then resolve each active item by `itemId`. Use `status: "done"` with structured proof, or `status: "skipped"` for not-applicable items. If the checklist uses scope dimensions, pass `checklistScope` with explicit `appliesTo`, `changeKinds`, and `riskDomains` as needed. If a task crosses surfaces or contracts, bias toward broader scope rather than narrower scope. **Pull request:** Pass `pr` ({url, branch?, title?, state?}) if the PR is not yet linked. Commits are a secondary detail; the linked PR is what reviewers look at. **Delegations:** If you delegated work to sub-agents during this session, report them via `delegations` ([{agent, model?, description?}]). **Commits:** Pass commits array to log them at completion (convenience for final commits). **Completion receipt:** Pass `outcome` (defaults to `summary`), `deliveredScope` (defaults to titles of done subtasks), and `residualRisks` to build the compact completion receipt shown by `get_task`. This is what future agents and reviewers see instead of re-reading the full history. **Review instructions:** When sending to review (default), provide `reviewInstructions` — specific steps for the reviewer: what to test in UI, edge cases, areas of risk. Not a restatement of what was done. These are PUBLICLY VISIBLE on the roadmap while the item is in review, so write them for an external reader and keep credentials, internal paths, and private URLs out of them. **Review evidence:** When the change scope (declared `checklistScope`, scope inferred from `touchedPaths`, and what `prepare_completion` recorded) matches the project policy — `contract_changes` → API examples (`add_api_example`), `rendering_changes` / `public_output_changes` → screenshots (`add_screenshot`), and diagrams (`add_diagram`) when the project requires them — the evidence must be attached first. Missing suggested evidence comes back as `evidenceWarnings`; missing required evidence blocks the hand-off (error code `review_evidence_missing` listing each missing kind and the change kinds/surfaces that need it) unless you pass `evidenceNotApplicable` with the reason. After a review round, only artifacts attached since the reviewer's decision count. `prepare_completion` reports what is missing ahead of time. **Preview:** pass `previewUrl` when the change is running somewhere the reviewer can open (e.g. a Tailscale URL); internal only, never public. **Waiting:** when the task lands in in_review, the response tells you how to wait with `damper review wait <taskId>` (exit 10 = needs work, 0 = approved, 2 = timed out, 1 = error) if the Damper CLI is installed. Returns documentation update suggestions.

complete_task input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId",
    "taskId",
    "summary"
  ],
  "properties": {
    "pr": {
      "type": "object",
      "required": [
        "url"
      ],
      "properties": {
        "url": {
          "type": "string",
          "description": "Pull request URL (e.g. https://github.com/owner/repo/pull/42)"
        },
        "repo": {
          "type": "string",
          "description": "Repository as \"owner/name\". Derived from GitHub URLs automatically."
        },
        "state": {
          "enum": [
            "draft",
            "open",
            "merged",
            "closed"
          ],
          "type": "string",
          "description": "PR state (default: open)"
        },
        "title": {
          "type": "string",
          "description": "PR title"
        },
        "branch": {
          "type": "string",
          "description": "Head branch name"
        },
        "number": {
          "type": "integer",
          "maximum": 9007199254740991,
          "minimum": -9007199254740991,
          "description": "PR number. Derived from GitHub URLs automatically."
        },
        "headRevision": {
          "type": "string",
          "description": "Head commit SHA or repository revision when known"
        }
      },
      "description": "Pull request delivering this task, if not already linked via link_pr. Upserts by URL."
    },
    "model": {
      "type": "string",
      "description": "Model identifier used for this task/session, e.g. claude-opus-4.8 or gpt-5.5. Overrides selfAssessment.model."
    },
    "taskId": {
      "type": "string"
    },
    "commits": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "hash",
          "message"
        ],
        "properties": {
          "hash": {
            "type": "string",
            "description": "Commit hash (short or full)"
          },
          "message": {
            "type": "string",
            "description": "Commit message"
          }
        }
      },
      "description": "Optional: commits to log at completion"
    },
    "outcome": {
      "type": "string",
      "description": "One-line outcome for the completion receipt (defaults to `summary`)."
    },
    "summary": {
      "type": "string",
      "description": "Brief one-line summary of what was done, written for end users. Focus on the outcome, not the implementation."
    },
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    },
    "previewUrl": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 2000
        },
        {
          "type": "null"
        }
      ],
      "description": "Optional http(s) URL where the reviewer can open the running change, e.g. a Tailscale URL like http://laptop.tailnet.ts.net:5173. Private hosts are fine (it is never fetched by the server). INTERNAL: shown only to reviewers in the dashboard, never on public roadmaps. Pass null to clear."
    },
    "skipReview": {
      "type": "boolean",
      "description": "Skip human review and mark task as done immediately (default: false, task goes to in_review)"
    },
    "delegations": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "agent"
        ],
        "properties": {
          "agent": {
            "type": "string",
            "description": "Sub-agent name or type, e.g. \"Explore\" or \"code-reviewer\""
          },
          "model": {
            "type": "string",
            "description": "Model the sub-agent ran on, if known"
          },
          "description": {
            "type": "string",
            "description": "What was delegated"
          }
        }
      },
      "description": "Sub-agent delegations that happened during this session"
    },
    "touchedPaths": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Repository-relative paths changed by the task. Git-aware clients should derive this list automatically when possible."
    },
    "confirmations": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "itemId",
          "status"
        ],
        "properties": {
          "notes": {
            "type": "string",
            "description": "Extra completion notes or proof context"
          },
          "itemId": {
            "type": "string",
            "description": "Checklist item id from `get_completion_checklist`"
          },
          "status": {
            "enum": [
              "done",
              "skipped"
            ],
            "type": "string",
            "description": "Whether the item was completed or skipped as not applicable"
          },
          "evidence": {
            "type": "string",
            "description": "Short human-readable proof summary for `done` items"
          },
          "proofType": {
            "type": "string",
            "description": "Proof layer used, e.g. unit, integration, contract, smoke, rendered_output, example_validation, build_validation"
          },
          "skipReason": {
            "type": "string",
            "description": "Why the item was skipped"
          },
          "commandsRun": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Commands run as part of the proof"
          },
          "filesAffected": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Files, surfaces, or areas affected"
          }
        }
      },
      "description": "Completion checklist resolutions — resolve each active item by `itemId` with structured proof"
    },
    "residualRisks": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Known residual risks or follow-ups left after this completion, for the completion receipt."
    },
    "checklistScope": {
      "type": "object",
      "properties": {
        "appliesTo": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Touched surfaces or checklist scope tags, e.g. [\"server\", \"dashboard\"]"
        },
        "changeKinds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Change kinds in scope, e.g. [\"behavior_changes\", \"contract_changes\"]"
        },
        "riskDomains": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Higher-risk domains in scope, e.g. [\"money\", \"compliance\"]"
        }
      },
      "description": "Required when the checklist uses scoped appliesTo / when / riskDomains rules"
    },
    "deliveredScope": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "What was delivered, for the completion receipt (defaults to titles of done subtasks, else empty)."
    },
    "selfAssessment": {
      "description": "Self-review of your session. Object with optional keys: missingContext (string[]), toolIssues (string[]), processGaps (string[]), model, reasoningEffort. Reflect on what went well, what knowledge was missing, what caused friction. Pass {} if nothing to report."
    },
    "reasoningEffort": {
      "type": "string",
      "description": "Reasoning effort used for this task/session, e.g. low, medium, high. Overrides selfAssessment.reasoningEffort."
    },
    "contextDisposition": {
      "type": "object",
      "required": [
        "status"
      ],
      "properties": {
        "reason": {
          "type": "string"
        },
        "status": {
          "enum": [
            "updated",
            "verified_current",
            "not_applicable",
            "deferred"
          ],
          "type": "string"
        },
        "updates": {
          "type": "array",
          "items": {
            "anyOf": [
              {
                "type": "object",
                "required": [
                  "kind",
                  "name"
                ],
                "properties": {
                  "kind": {
                    "enum": [
                      "section",
                      "route",
                      "bundle",
                      "relation",
                      "fixture"
                    ],
                    "type": "string"
                  },
                  "name": {
                    "type": "string",
                    "minLength": 1
                  },
                  "version": {
                    "type": "integer",
                    "maximum": 9007199254740991,
                    "exclusiveMinimum": 0
                  }
                }
              },
              {
                "type": "object",
                "required": [
                  "kind",
                  "reference",
                  "description"
                ],
                "properties": {
                  "kind": {
                    "type": "string",
                    "const": "external"
                  },
                  "reference": {
                    "type": "string",
                    "minLength": 3
                  },
                  "description": {
                    "type": "string",
                    "minLength": 8
                  }
                }
              }
            ]
          }
        },
        "verification": {
          "type": "object",
          "properties": {
            "commandsRun": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "healthAudited": {
              "type": "boolean"
            },
            "routingValidated": {
              "type": "boolean"
            }
          }
        },
        "deferredTaskId": {
          "type": "string",
          "minLength": 1
        },
        "affectedSections": {
          "type": "array",
          "items": {
            "type": "string",
            "minLength": 1
          }
        }
      },
      "description": "Explicit disposition of context impact: updated, verified_current, not_applicable, or deferred."
    },
    "reviewInstructions": {
      "type": "string",
      "description": "What the reviewer should test or verify (markdown). Recommended when sending to review (default behavior). Write specific, actionable steps: what to test in the UI, what edge cases to check, what areas might break. Not a restatement of the summary. PUBLICLY VISIBLE while the item is in review — write for an external reader and keep credentials, internal paths, and private URLs out of it."
    },
    "touchedPathEvidence": {
      "type": "object",
      "required": [
        "source"
      ],
      "properties": {
        "source": {
          "enum": [
            "agent",
            "git",
            "pull_request",
            "client_derived"
          ],
          "type": "string"
        },
        "baseRevision": {
          "type": "string",
          "minLength": 1
        },
        "headRevision": {
          "type": "string",
          "minLength": 1
        },
        "pullRequestUrl": {
          "type": "string",
          "format": "uri"
        }
      },
      "description": "Provenance for touchedPaths. Agent-supplied evidence is accepted but labeled lower confidence."
    },
    "evidenceNotApplicable": {
      "type": "string",
      "maxLength": 1000,
      "description": "Why review evidence the project expects for the change scope does not apply (e.g. \"internal endpoint, no public contract change\"). Recorded on the completion receipt and timeline."
    }
  }
}
complete_task output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "id",
    "status"
  ],
  "properties": {
    "id": {
      "type": "string"
    },
    "status": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "dashboardUrl": {
      "type": "string",
      "description": "Full dashboard URL of the affected resource"
    },
    "documentation": {
      "type": "object",
      "required": [
        "hasContext",
        "affectedSections",
        "reminder"
      ],
      "properties": {
        "reminder": {
          "type": "string"
        },
        "hasContext": {
          "type": "boolean"
        },
        "affectedSections": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "additionalProperties": false
    },
    "evidenceWarnings": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "completionReceipt": {
      "anyOf": [
        {
          "type": "object",
          "required": [
            "outcome",
            "deliveredScope",
            "pullRequest",
            "proofSummary",
            "residualRisks",
            "completedAt"
          ],
          "properties": {
            "outcome": {
              "type": "string"
            },
            "evidence": {
              "type": "object",
              "required": [
                "apiExamples",
                "screenshots",
                "expectedApiExamples",
                "expectedScreenshots",
                "notApplicableReason"
              ],
              "properties": {
                "diagrams": {
                  "type": "number"
                },
                "apiExamples": {
                  "type": "number"
                },
                "screenshots": {
                  "type": "number"
                },
                "expectedDiagrams": {
                  "enum": [
                    "off",
                    "suggested",
                    "required"
                  ],
                  "type": "string"
                },
                "expectedApiExamples": {
                  "enum": [
                    "off",
                    "suggested",
                    "required"
                  ],
                  "type": "string"
                },
                "expectedScreenshots": {
                  "enum": [
                    "off",
                    "suggested",
                    "required"
                  ],
                  "type": "string"
                },
                "notApplicableReason": {
                  "type": [
                    "string",
                    "null"
                  ]
                }
              },
              "additionalProperties": false
            },
            "completedAt": {
              "type": "string"
            },
            "pullRequest": {
              "anyOf": [
                {
                  "type": "object",
                  "required": [
                    "url",
                    "headRevision",
                    "state"
                  ],
                  "properties": {
                    "url": {
                      "type": "string"
                    },
                    "state": {
                      "type": "string"
                    },
                    "headRevision": {
                      "type": [
                        "string",
                        "null"
                      ]
                    }
                  },
                  "additionalProperties": false
                },
                {
                  "type": "null"
                }
              ]
            },
            "proofSummary": {
              "type": "object",
              "required": [
                "passed",
                "skipped",
                "failed"
              ],
              "properties": {
                "failed": {
                  "type": "number"
                },
                "passed": {
                  "type": "number"
                },
                "skipped": {
                  "type": "number"
                }
              },
              "additionalProperties": false
            },
            "residualRisks": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "deliveredScope": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "additionalProperties": false
        },
        {
          "type": "null"
        }
      ]
    },
    "contextMaintenance": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    }
  },
  "additionalProperties": false
}
complete_task annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
request_review — Request Review
Advertised by the server during the last successful anonymous check.

Lightweight hand-off into review: move an in_progress task to in_review as soon as a human could review it (a working slice, an opened PR, attached screenshots or API examples, or when you are about to stop for the session). Do not leave reviewable work in in_progress. No checklist, PR, or self-assessment is required, and **no user confirmation is needed** — it is reversible and does not commit or merge. `complete_task` still needs confirmation. **Requirements:** the task must be in_progress and you must hold its lock (from start_task). **Effect:** status becomes in_review, the lock is released (so reviewers can act on it), and your session is closed. A reviewer approves or sends it back with feedback; resume with `start_task` if it comes back. **Stage:** `complete` (default) means the task is finished pending review. `partial` means a reviewable slice with more work to follow: approving it returns the task to in_progress instead of done. `complete_task` on a task waiting for a stage review requested here is rejected until the reviewer decides. **Review evidence:** the hand-off is checked against the project's review evidence policy for the change scope: `checklistScope` and `touchedPaths` passed here, unioned with what `prepare_completion` recorded; `prepare_work`'s expected paths count per the project's `plannedScope` (default: only when nothing else is known). Each kind's level comes from its base level and the project's rules; preview it with `get_completion_checklist` and your scope. Missing **required** API examples, screenshots or diagrams block it with error code `review_evidence_missing`, naming each missing kind and the change kinds/surfaces that need it. Attach them (`add_api_example`, `add_screenshot`, `add_diagram`) or, when they genuinely do not apply, pass `evidenceNotApplicable` with the reason (recorded on the timeline). A `partial` stage only warns unless the project sets `partialStageEvidence: "block"`; projects with `checkDirectDone` also check moving a task straight to done. After a review decision, only artifacts attached since that decision count, so each round carries evidence for what it changed. Approving the review re-checks the same evidence. Call `prepare_completion` first to see what is missing. **Review instructions:** optional steps for the reviewer. They are PUBLICLY VISIBLE on the roadmap while the item is in review — keep credentials, internal paths, and private URLs out of them. **Preview:** pass `previewUrl` when the change is running somewhere the reviewer can open (e.g. a Tailscale URL); it is internal only and never shown publicly. **Waiting:** if the Damper CLI is installed, run `damper review wait <taskId>` as a background command (exit 10 = needs work, 0 = approved, 2 = timed out, 1 = error).

request_review input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId",
    "taskId",
    "summary"
  ],
  "properties": {
    "stage": {
      "enum": [
        "partial",
        "complete"
      ],
      "type": "string",
      "description": "\"complete\" (default): finished pending review. \"partial\": a reviewable slice, more work follows; approval returns the task to in_progress."
    },
    "taskId": {
      "type": "string"
    },
    "summary": {
      "type": "string",
      "minLength": 1,
      "description": "What is reviewable right now, written for the reviewer."
    },
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    },
    "previewUrl": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 2000
        },
        {
          "type": "null"
        }
      ],
      "description": "Optional http(s) URL where the reviewer can open the running change, e.g. a Tailscale URL like http://laptop.tailnet.ts.net:5173. Private hosts are fine (it is never fetched by the server). INTERNAL: shown only to reviewers in the dashboard, never on public roadmaps. Pass null to clear."
    },
    "touchedPaths": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Repository-relative paths this hand-off changed; their routed change kinds and surfaces join the scope."
    },
    "checklistScope": {
      "type": "object",
      "properties": {
        "appliesTo": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Touched surfaces, e.g. [\"server\", \"dashboard\"]"
        },
        "changeKinds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Change kinds of this hand-off, e.g. [\"rendering_changes\"]"
        },
        "riskDomains": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Higher-risk domains, e.g. [\"billing\"]"
        }
      },
      "description": "Scope of what this hand-off changed; decides which review evidence is required."
    },
    "reviewInstructions": {
      "type": "string",
      "description": "What the reviewer should test or verify (markdown). PUBLICLY VISIBLE while the item is in review — keep credentials, internal paths, and private URLs out of it."
    },
    "evidenceNotApplicable": {
      "type": "string",
      "maxLength": 1000,
      "description": "Why required review evidence does not apply to this hand-off (e.g. \"copy-only change, no rendered page\"). Recorded on the task timeline."
    }
  }
}
request_review output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "id",
    "status",
    "stage"
  ],
  "properties": {
    "id": {
      "type": "string"
    },
    "stage": {
      "enum": [
        "partial",
        "complete"
      ],
      "type": "string"
    },
    "status": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "evidence": {
      "type": "object",
      "required": [
        "scope",
        "since",
        "expected",
        "counts",
        "missingRequired",
        "warnings",
        "waived"
      ],
      "properties": {
        "gaps": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "kind",
              "mode",
              "message",
              "changeKinds",
              "appliesTo",
              "riskDomains"
            ],
            "properties": {
              "kind": {
                "enum": [
                  "apiExamples",
                  "screenshots",
                  "diagrams"
                ],
                "type": "string"
              },
              "mode": {
                "enum": [
                  "off",
                  "suggested",
                  "required"
                ],
                "type": "string"
              },
              "reason": {
                "type": "string",
                "description": "Why this level applies: the base level or the rule that raised it"
              },
              "message": {
                "type": "string"
              },
              "appliesTo": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "changeKinds": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "riskDomains": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            },
            "additionalProperties": false
          }
        },
        "scope": {
          "type": "object",
          "required": [
            "appliesTo",
            "changeKinds",
            "riskDomains"
          ],
          "properties": {
            "appliesTo": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "changeKinds": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "riskDomains": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "additionalProperties": false
        },
        "since": {
          "type": [
            "string",
            "null"
          ],
          "description": "Only artifacts attached after this moment (the last review decision) count; null = all"
        },
        "counts": {
          "type": "object",
          "required": [
            "apiExamples",
            "screenshots",
            "diagrams"
          ],
          "properties": {
            "diagrams": {
              "type": "number"
            },
            "apiExamples": {
              "type": "number"
            },
            "screenshots": {
              "type": "number"
            }
          },
          "additionalProperties": false
        },
        "waived": {
          "type": [
            "string",
            "null"
          ]
        },
        "blocking": {
          "type": "boolean",
          "description": "Whether missingRequired blocks this transition (false for a partial stage the project only warns on)"
        },
        "expected": {
          "type": "object",
          "required": [
            "apiExamples",
            "screenshots",
            "diagrams"
          ],
          "properties": {
            "diagrams": {
              "enum": [
                "off",
                "suggested",
                "required"
              ],
              "type": "string"
            },
            "apiExamples": {
              "enum": [
                "off",
                "suggested",
                "required"
              ],
              "type": "string"
            },
            "screenshots": {
              "enum": [
                "off",
                "suggested",
                "required"
              ],
              "type": "string"
            }
          },
          "additionalProperties": false
        },
        "warnings": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "requirements": {
          "type": "object",
          "required": [
            "apiExamples",
            "screenshots",
            "diagrams"
          ],
          "properties": {
            "diagrams": {
              "type": "object",
              "required": [
                "level",
                "source",
                "reason"
              ],
              "properties": {
                "level": {
                  "enum": [
                    "off",
                    "suggested",
                    "required"
                  ],
                  "type": "string"
                },
                "reason": {
                  "type": "string"
                },
                "source": {
                  "enum": [
                    "base",
                    "rule",
                    "not_triggered"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            "apiExamples": {
              "type": "object",
              "required": [
                "level",
                "source",
                "reason"
              ],
              "properties": {
                "level": {
                  "enum": [
                    "off",
                    "suggested",
                    "required"
                  ],
                  "type": "string"
                },
                "reason": {
                  "type": "string"
                },
                "source": {
                  "enum": [
                    "base",
                    "rule",
                    "not_triggered"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            "screenshots": {
              "type": "object",
              "required": [
                "level",
                "source",
                "reason"
              ],
              "properties": {
                "level": {
                  "enum": [
                    "off",
                    "suggested",
                    "required"
                  ],
                  "type": "string"
                },
                "reason": {
                  "type": "string"
                },
                "source": {
                  "enum": [
                    "base",
                    "rule",
                    "not_triggered"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            }
          },
          "description": "Why each kind has its level",
          "additionalProperties": false
        },
        "scopeSources": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "missingRequired": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "kind",
              "mode",
              "message",
              "changeKinds",
              "appliesTo",
              "riskDomains"
            ],
            "properties": {
              "kind": {
                "enum": [
                  "apiExamples",
                  "screenshots",
                  "diagrams"
                ],
                "type": "string"
              },
              "mode": {
                "enum": [
                  "off",
                  "suggested",
                  "required"
                ],
                "type": "string"
              },
              "reason": {
                "type": "string",
                "description": "Why this level applies: the base level or the rule that raised it"
              },
              "message": {
                "type": "string"
              },
              "appliesTo": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "changeKinds": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "riskDomains": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            },
            "additionalProperties": false
          }
        }
      },
      "additionalProperties": false
    },
    "dashboardUrl": {
      "type": "string",
      "description": "Full dashboard URL of the affected resource"
    }
  },
  "additionalProperties": false
}
request_review annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
abandon_task — Abandon Task
Advertised by the server during the last successful anonymous check.

Release lock and return task to planned status. Works for in_progress and in_review tasks. **Before calling:** 1. Push any WIP commits **Summary parameter:** What was done, what remains, blockers. Helps the next agent.

abandon_task input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId",
    "taskId"
  ],
  "properties": {
    "taskId": {
      "type": "string"
    },
    "summary": {
      "type": "string",
      "description": "Handoff summary: what was done, what remains, any blockers"
    },
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    }
  }
}
abandon_task output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "id",
    "status",
    "message"
  ],
  "properties": {
    "id": {
      "type": "string"
    },
    "status": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "dashboardUrl": {
      "type": "string",
      "description": "Full dashboard URL of the affected resource"
    }
  },
  "additionalProperties": false
}
abandon_task annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
list_context_sections — List Context Sections
Advertised by the server during the last successful anonymous check.
Advertised read-only

List available project context sections with brief previews.

list_context_sections input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId"
  ],
  "properties": {
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    }
  }
}
list_context_sections output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "sections",
    "isEmpty"
  ],
  "properties": {
    "isEmpty": {
      "type": "boolean"
    },
    "sections": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "section",
          "updatedAt",
          "source",
          "preview"
        ],
        "properties": {
          "tags": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "source": {
            "type": "string"
          },
          "preview": {
            "type": "string"
          },
          "section": {
            "type": "string"
          },
          "appliesTo": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "updatedAt": {
            "type": "string"
          },
          "criticalRules": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "additionalProperties": false
      }
    }
  },
  "additionalProperties": false
}
list_context_sections annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
resolve_context — Resolve Context
Advertised by the server during the last successful anonymous check.
Advertised read-only

Resolve touched file paths to governing context sections, critical rules, risk domains, and suggested checklist scope. Uses routing/path-to-context when present and falls back to module paths plus section metadata.

resolve_context input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId",
    "paths"
  ],
  "properties": {
    "paths": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "minItems": 1,
      "description": "Repository-relative file paths or globs touched by the change"
    },
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    },
    "detailMode": {
      "enum": [
        "compact",
        "full"
      ],
      "type": "string",
      "description": "Per-path detail. Compact (default) deduplicates metadata into the top-level sections list."
    },
    "changeKinds": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Caller-known change kinds to union with kinds inferred from matching routing rows."
    },
    "fallbackMode": {
      "enum": [
        "minimal",
        "broad"
      ],
      "type": "string",
      "description": "Fallback breadth when no routing rule matches. Defaults to minimal; broad restores legacy appliesTo expansion."
    }
  }
}
resolve_context output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "paths",
    "sections",
    "riskDomains",
    "fallbackMode",
    "detailMode",
    "checklistScope"
  ],
  "properties": {
    "paths": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "path",
          "sections",
          "resolutionStrategy",
          "fallback",
          "warnings",
          "riskDomains",
          "checklistScope"
        ],
        "properties": {
          "path": {
            "type": "string"
          },
          "fallback": {
            "type": "boolean"
          },
          "sections": {
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "type": "object",
                  "required": [
                    "section",
                    "preview",
                    "updatedAt",
                    "tags",
                    "appliesTo",
                    "criticalRules",
                    "matchedBy"
                  ],
                  "properties": {
                    "tags": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "preview": {
                      "type": "string"
                    },
                    "section": {
                      "type": "string"
                    },
                    "appliesTo": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "matchedBy": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "updatedAt": {
                      "type": "string"
                    },
                    "criticalRules": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  },
                  "additionalProperties": false
                },
                {
                  "type": "object",
                  "required": [
                    "section",
                    "matchedBy"
                  ],
                  "properties": {
                    "section": {
                      "type": "string"
                    },
                    "matchedBy": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  },
                  "additionalProperties": false
                }
              ]
            }
          },
          "warnings": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "riskDomains": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "routingSource": {
            "anyOf": [
              {
                "enum": [
                  "structured",
                  "markdown"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "checklistScope": {
            "type": "object",
            "required": [
              "appliesTo",
              "changeKinds",
              "riskDomains"
            ],
            "properties": {
              "appliesTo": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "changeKinds": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "riskDomains": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            },
            "additionalProperties": false
          },
          "resolutionStrategy": {
            "enum": [
              "routing",
              "module-broad",
              "minimal-baseline",
              "none"
            ],
            "type": "string"
          }
        },
        "additionalProperties": false
      }
    },
    "sections": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "section",
          "preview",
          "updatedAt",
          "tags",
          "appliesTo",
          "criticalRules",
          "matchedBy"
        ],
        "properties": {
          "tags": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "preview": {
            "type": "string"
          },
          "section": {
            "type": "string"
          },
          "appliesTo": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "matchedBy": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "updatedAt": {
            "type": "string"
          },
          "criticalRules": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "additionalProperties": false
      }
    },
    "detailMode": {
      "enum": [
        "compact",
        "full"
      ],
      "type": "string"
    },
    "riskDomains": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "fallbackMode": {
      "enum": [
        "minimal",
        "broad"
      ],
      "type": "string"
    },
    "checklistScope": {
      "type": "object",
      "required": [
        "appliesTo",
        "changeKinds",
        "riskDomains"
      ],
      "properties": {
        "appliesTo": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "changeKinds": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "riskDomains": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "additionalProperties": false
    }
  },
  "additionalProperties": false
}
resolve_context annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_context_section — Get Context Section
Advertised by the server during the last successful anonymous check.
Advertised read-only

Get full content of a specific context section. Supports glob patterns for hierarchical sections. **Hierarchical paths**: For monorepos or large projects, sections can be organized hierarchically (e.g., "api/architecture", "api/endpoints/auth"). Use glob patterns to fetch multiple: - `api/*` - direct children only (api/architecture, api/testing) - `api/**` - all descendants (api/architecture, api/endpoints/auth)

get_context_section input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId",
    "section"
  ],
  "properties": {
    "section": {
      "type": "string",
      "description": "Section name or glob pattern (e.g., \"overview\", \"api/architecture\", \"api/*\", \"api/**\")"
    },
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    }
  }
}
get_context_section output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "tags": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "title": {
      "type": "string"
    },
    "source": {
      "type": "string"
    },
    "content": {
      "type": "string"
    },
    "pattern": {
      "type": "string"
    },
    "section": {
      "type": "string"
    },
    "version": {
      "type": [
        "number",
        "string"
      ]
    },
    "readOnly": {
      "type": "boolean"
    },
    "sections": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "section",
          "content",
          "updatedAt",
          "source"
        ],
        "properties": {
          "tags": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "source": {
            "type": "string"
          },
          "content": {
            "type": "string"
          },
          "section": {
            "type": "string"
          },
          "appliesTo": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "updatedAt": {
            "type": "string"
          },
          "criticalRules": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "additionalProperties": false
      }
    },
    "appliesTo": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "generated": {
      "type": "boolean"
    },
    "updatedAt": {
      "type": "string"
    },
    "routeCount": {
      "type": "number"
    },
    "dashboardUrl": {
      "type": "string",
      "description": "Full dashboard URL of the affected resource"
    },
    "criticalRules": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "verifiedPaths": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "lastVerifiedAt": {
      "type": [
        "string",
        "null"
      ]
    },
    "verifiedRepositoryRevision": {
      "type": [
        "string",
        "null"
      ]
    }
  },
  "additionalProperties": false
}
get_context_section annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
update_context_section — Update Context Section
Advertised by the server during the last successful anonymous check.

Upload/update a project context section. Use after analyzing local codebase. This action shares documentation with the Damper project for future AI agents. **When to use hierarchical names**: For monorepos or large projects, use paths like `api/architecture`, `api/testing` to organize by module. For simple projects, flat names like `overview`, `conventions` are sufficient. **criticalRules**: Short, actionable rules that agents MUST follow. These are surfaced automatically in `start_task` and `get_project_context` responses. ⚠️ SECURITY WARNING: Do NOT include sensitive information.

update_context_section input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId",
    "section",
    "content"
  ],
  "properties": {
    "tags": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Categorization tags"
    },
    "content": {
      "type": "string",
      "description": "Markdown documentation for this section. Must NOT contain secrets, API keys, or sensitive data."
    },
    "section": {
      "type": "string",
      "pattern": "^[a-z][a-z0-9-]{0,49}(\\/[a-z][a-z0-9-]{0,49}){0,2}$",
      "description": "Section name or path (e.g., \"overview\", \"api/architecture\"). Max 3 levels."
    },
    "appliesTo": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Module names this section applies to"
    },
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    },
    "criticalRules": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Must-follow rules shown in start_task/get_project_context"
    }
  }
}
update_context_section output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "success",
    "section"
  ],
  "properties": {
    "tags": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "section": {
      "type": "string"
    },
    "success": {
      "type": "boolean"
    },
    "version": {
      "type": "number"
    },
    "warnings": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "appliesTo": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "dashboardUrl": {
      "type": "string",
      "description": "Full dashboard URL of the affected resource"
    },
    "criticalRules": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "additionalProperties": false
}
update_context_section annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
delete_context_section — Delete Context Section
Advertised by the server during the last successful anonymous check.
Advertised destructive

Delete a project context section. Use when documentation is outdated or no longer relevant.

delete_context_section input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId",
    "section"
  ],
  "properties": {
    "section": {
      "type": "string",
      "pattern": "^[a-z][a-z0-9-]{0,49}(\\/[a-z][a-z0-9-]{0,49}){0,2}$",
      "description": "Section name or path to delete"
    },
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    }
  }
}
delete_context_section output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "success",
    "section"
  ],
  "properties": {
    "section": {
      "type": "string"
    },
    "success": {
      "type": "boolean"
    },
    "dashboardUrl": {
      "type": "string",
      "description": "Full dashboard URL of the affected resource"
    }
  },
  "additionalProperties": false
}
delete_context_section annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": true
}
sync_project_context — Sync Project Context
Advertised by the server during the last successful anonymous check.

Bulk upload all project context sections at once. Use after analyzing a codebase. ⚠️ SECURITY WARNING: Do NOT include sensitive information.

sync_project_context input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId",
    "sections"
  ],
  "properties": {
    "sections": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "section",
          "content"
        ],
        "properties": {
          "tags": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "content": {
            "type": "string"
          },
          "section": {
            "type": "string",
            "pattern": "^[a-z][a-z0-9-]{0,49}(\\/[a-z][a-z0-9-]{0,49}){0,2}$"
          },
          "appliesTo": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "criticalRules": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      }
    },
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    }
  }
}
sync_project_context output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "success",
    "sectionsUpdated"
  ],
  "properties": {
    "skipped": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "section",
          "reason"
        ],
        "properties": {
          "reason": {
            "type": "string"
          },
          "section": {
            "type": "string"
          }
        },
        "additionalProperties": false
      }
    },
    "success": {
      "type": "boolean"
    },
    "dashboardUrl": {
      "type": "string",
      "description": "Full dashboard URL of the affected resource"
    },
    "sectionsUpdated": {
      "type": "number"
    }
  },
  "additionalProperties": false
}
sync_project_context annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_project_context — Get Project Context
Advertised by the server during the last successful anonymous check.
Advertised read-only

Get project context index (token-efficient). Returns section list with previews. Use get_context_section to fetch full content for sections you need. **IMPORTANT:** Call this at session start. Contains architecture, conventions, and patterns you MUST follow. Skipping this leads to mistakes and inconsistent code.

get_project_context input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId"
  ],
  "properties": {
    "taskId": {
      "type": "string",
      "description": "If provided, highlights sections relevant to this task"
    },
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    },
    "criticalRuleMode": {
      "enum": [
        "relevant",
        "all",
        "none"
      ],
      "type": "string",
      "description": "Critical rules to include. Defaults to relevant. Use all for the legacy full payload."
    }
  }
}
get_project_context output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "isEmpty",
    "index"
  ],
  "properties": {
    "hint": {
      "type": "string"
    },
    "index": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "section",
          "preview",
          "updatedAt"
        ],
        "properties": {
          "tags": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "title": {
            "type": "string"
          },
          "preview": {
            "type": "string"
          },
          "section": {
            "type": "string"
          },
          "appliesTo": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "updatedAt": {
            "type": "string"
          }
        },
        "additionalProperties": false
      }
    },
    "isEmpty": {
      "type": "boolean"
    },
    "criticalRules": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "criticalRuleMode": {
      "enum": [
        "relevant",
        "all",
        "none"
      ],
      "type": "string"
    },
    "relevantSections": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "criticalRuleSections": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "section",
          "criticalRules"
        ],
        "properties": {
          "section": {
            "type": "string"
          },
          "criticalRules": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "additionalProperties": false
      }
    },
    "repositoryContextHints": {
      "type": "object",
      "required": [
        "hints",
        "omittedCount",
        "projectContextUrl",
        "docsUrl"
      ],
      "properties": {
        "hints": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "kind",
              "repositoryKey",
              "reasonCode",
              "reason",
              "command"
            ],
            "properties": {
              "kind": {
                "enum": [
                  "setup",
                  "refresh",
                  "unavailable"
                ],
                "type": "string"
              },
              "reason": {
                "type": "string",
                "maxLength": 500,
                "minLength": 1
              },
              "command": {
                "type": "string",
                "maxLength": 500,
                "minLength": 1
              },
              "reasonCode": {
                "enum": [
                  "no_receipt",
                  "managed_section_changed",
                  "managed_section_deleted",
                  "status_unavailable"
                ],
                "type": "string"
              },
              "repositoryKey": {
                "type": "string",
                "maxLength": 100,
                "minLength": 1
              }
            },
            "additionalProperties": false
          },
          "maxItems": 3,
          "minItems": 1
        },
        "docsUrl": {
          "type": "string",
          "format": "uri"
        },
        "omittedCount": {
          "type": "integer",
          "maximum": 9007199254740991,
          "minimum": 0
        },
        "projectContextUrl": {
          "type": "string",
          "format": "uri"
        }
      },
      "additionalProperties": false
    }
  },
  "additionalProperties": false
}
get_project_context annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_section_blocks — Get Section Blocks
Advertised by the server during the last successful anonymous check.
Advertised read-only

Get a block index for a context section. Returns headings with character counts. Use to selectively load only relevant parts with `get_section_block_content`.

get_section_blocks input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId",
    "section"
  ],
  "properties": {
    "section": {
      "type": "string",
      "description": "Section name (e.g., \"api\", \"testing\")"
    },
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    }
  }
}
get_section_blocks output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "section",
    "blocks",
    "totalChars"
  ],
  "properties": {
    "blocks": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "id",
          "heading",
          "level",
          "charCount"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "level": {
            "type": "number"
          },
          "heading": {
            "type": [
              "string",
              "null"
            ]
          },
          "charCount": {
            "type": "number"
          }
        },
        "additionalProperties": false
      }
    },
    "section": {
      "type": "string"
    },
    "totalChars": {
      "type": "number"
    }
  },
  "additionalProperties": false
}
get_section_blocks annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_section_block_content — Get Section Block Content
Advertised by the server during the last successful anonymous check.
Advertised read-only

Get the full content of specific blocks within a section. Use `get_section_blocks` first to see available block IDs, then fetch only the ones you need.

get_section_block_content input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId",
    "section",
    "blockIds"
  ],
  "properties": {
    "section": {
      "type": "string",
      "description": "Section name"
    },
    "blockIds": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Block IDs to fetch"
    },
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    }
  }
}
get_section_block_content output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "section",
    "blocks",
    "totalChars"
  ],
  "properties": {
    "blocks": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "id",
          "heading",
          "level",
          "content",
          "charCount"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "level": {
            "type": "number"
          },
          "content": {
            "type": "string"
          },
          "heading": {
            "type": [
              "string",
              "null"
            ]
          },
          "charCount": {
            "type": "number"
          }
        },
        "additionalProperties": false
      }
    },
    "section": {
      "type": "string"
    },
    "totalChars": {
      "type": "number"
    }
  },
  "additionalProperties": false
}
get_section_block_content annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
prepare_work — Prepare Feature Work
Advertised by the server during the last successful anonymous check.
Advertised read-only

Build a deterministic, compact work packet with governing context, a shadow graph comparison and provenance, path-owned surfaces, checklist scope, project verification, unvalidated route-fixture representation, instruction drift, and guarded delegation guidance. `verificationCommands` come only from the project's own configuration (its verificationCommands setting, bundle verificationProfiles and quality-gate sections); when none apply the list is empty and `verificationGuidance` explains how to configure them. With `taskId`, also returns `reviewEvidence`: the screenshots, API examples and diagrams the project expects for this scope and how many are attached.

prepare_work input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId"
  ],
  "properties": {
    "mode": {
      "enum": [
        "implementation",
        "review",
        "audit"
      ],
      "type": "string"
    },
    "intent": {
      "type": "string",
      "maxLength": 2000
    },
    "taskId": {
      "type": "string",
      "maxLength": 100
    },
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    },
    "changeKinds": {
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 500
      },
      "maxItems": 100
    },
    "likelyPaths": {
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 1000,
        "minLength": 1
      },
      "maxItems": 100
    },
    "contractStatus": {
      "enum": [
        "settled",
        "unsettled",
        "unknown"
      ],
      "type": "string"
    },
    "bootstrapVersion": {
      "type": "string",
      "maxLength": 50
    }
  }
}
prepare_work output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "reviewEvidence": {
      "type": "object",
      "required": [
        "scope",
        "since",
        "expected",
        "counts",
        "missingRequired",
        "warnings"
      ],
      "properties": {
        "gaps": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "kind",
              "mode",
              "message",
              "changeKinds",
              "appliesTo",
              "riskDomains"
            ],
            "properties": {
              "kind": {
                "enum": [
                  "apiExamples",
                  "screenshots",
                  "diagrams"
                ],
                "type": "string"
              },
              "mode": {
                "enum": [
                  "off",
                  "suggested",
                  "required"
                ],
                "type": "string"
              },
              "reason": {
                "type": "string",
                "description": "Why this level applies: the base level or the rule that raised it"
              },
              "message": {
                "type": "string"
              },
              "appliesTo": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "changeKinds": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "riskDomains": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            },
            "additionalProperties": false
          }
        },
        "scope": {
          "type": "object",
          "required": [
            "appliesTo",
            "changeKinds",
            "riskDomains"
          ],
          "properties": {
            "appliesTo": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "changeKinds": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "riskDomains": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "additionalProperties": false
        },
        "since": {
          "type": [
            "string",
            "null"
          ],
          "description": "Only artifacts attached after this moment (the last review decision) count; null = all"
        },
        "counts": {
          "type": "object",
          "required": [
            "apiExamples",
            "screenshots",
            "diagrams"
          ],
          "properties": {
            "diagrams": {
              "type": "number"
            },
            "apiExamples": {
              "type": "number"
            },
            "screenshots": {
              "type": "number"
            }
          },
          "additionalProperties": false
        },
        "blocking": {
          "type": "boolean",
          "description": "Whether missingRequired blocks this transition (false for a partial stage the project only warns on)"
        },
        "expected": {
          "type": "object",
          "required": [
            "apiExamples",
            "screenshots",
            "diagrams"
          ],
          "properties": {
            "diagrams": {
              "enum": [
                "off",
                "suggested",
                "required"
              ],
              "type": "string"
            },
            "apiExamples": {
              "enum": [
                "off",
                "suggested",
                "required"
              ],
              "type": "string"
            },
            "screenshots": {
              "enum": [
                "off",
                "suggested",
                "required"
              ],
              "type": "string"
            }
          },
          "additionalProperties": false
        },
        "warnings": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "requirements": {
          "type": "object",
          "required": [
            "apiExamples",
            "screenshots",
            "diagrams"
          ],
          "properties": {
            "diagrams": {
              "type": "object",
              "required": [
                "level",
                "source",
                "reason"
              ],
              "properties": {
                "level": {
                  "enum": [
                    "off",
                    "suggested",
                    "required"
                  ],
                  "type": "string"
                },
                "reason": {
                  "type": "string"
                },
                "source": {
                  "enum": [
                    "base",
                    "rule",
                    "not_triggered"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            "apiExamples": {
              "type": "object",
              "required": [
                "level",
                "source",
                "reason"
              ],
              "properties": {
                "level": {
                  "enum": [
                    "off",
                    "suggested",
                    "required"
                  ],
                  "type": "string"
                },
                "reason": {
                  "type": "string"
                },
                "source": {
                  "enum": [
                    "base",
                    "rule",
                    "not_triggered"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            "screenshots": {
              "type": "object",
              "required": [
                "level",
                "source",
                "reason"
              ],
              "properties": {
                "level": {
                  "enum": [
                    "off",
                    "suggested",
                    "required"
                  ],
                  "type": "string"
                },
                "reason": {
                  "type": "string"
                },
                "source": {
                  "enum": [
                    "base",
                    "rule",
                    "not_triggered"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            }
          },
          "description": "Why each kind has its level",
          "additionalProperties": false
        },
        "scopeSources": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "missingRequired": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "kind",
              "mode",
              "message",
              "changeKinds",
              "appliesTo",
              "riskDomains"
            ],
            "properties": {
              "kind": {
                "enum": [
                  "apiExamples",
                  "screenshots",
                  "diagrams"
                ],
                "type": "string"
              },
              "mode": {
                "enum": [
                  "off",
                  "suggested",
                  "required"
                ],
                "type": "string"
              },
              "reason": {
                "type": "string",
                "description": "Why this level applies: the base level or the rule that raised it"
              },
              "message": {
                "type": "string"
              },
              "appliesTo": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "changeKinds": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "riskDomains": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            },
            "additionalProperties": false
          }
        }
      },
      "additionalProperties": false
    },
    "verificationCommands": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "verificationGuidance": {
      "type": [
        "string",
        "null"
      ]
    },
    "repositoryContextHints": {
      "type": "object",
      "required": [
        "hints",
        "omittedCount",
        "projectContextUrl",
        "docsUrl"
      ],
      "properties": {
        "hints": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "kind",
              "repositoryKey",
              "reasonCode",
              "reason",
              "command"
            ],
            "properties": {
              "kind": {
                "enum": [
                  "setup",
                  "refresh",
                  "unavailable"
                ],
                "type": "string"
              },
              "reason": {
                "type": "string",
                "maxLength": 500,
                "minLength": 1
              },
              "command": {
                "type": "string",
                "maxLength": 500,
                "minLength": 1
              },
              "reasonCode": {
                "enum": [
                  "no_receipt",
                  "managed_section_changed",
                  "managed_section_deleted",
                  "status_unavailable"
                ],
                "type": "string"
              },
              "repositoryKey": {
                "type": "string",
                "maxLength": 100,
                "minLength": 1
              }
            },
            "additionalProperties": false
          },
          "maxItems": 3,
          "minItems": 1
        },
        "docsUrl": {
          "type": "string",
          "format": "uri"
        },
        "omittedCount": {
          "type": "integer",
          "maximum": 9007199254740991,
          "minimum": 0
        },
        "projectContextUrl": {
          "type": "string",
          "format": "uri"
        }
      },
      "additionalProperties": false
    }
  },
  "additionalProperties": {}
}
prepare_work annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
audit_context_health — Audit Context Health
Advertised by the server during the last successful anonymous check.
Advertised read-only

Find invalid route taxonomy, weak or uncovered fixtures, missing baselines, route overlap, stale knowledge, and fallback usage.

audit_context_health input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId"
  ],
  "properties": {
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    },
    "staleDays": {
      "type": "integer",
      "maximum": 9007199254740991,
      "exclusiveMinimum": 0
    }
  }
}
audit_context_health output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {},
  "additionalProperties": {}
}
audit_context_health annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_context_graph — Get Context Graph
Advertised by the server during the last successful anonymous check.
Advertised read-only

Inspect the typed graph projection derived from context routes, sections, bundles, modules, and optional project-authored relationships.

get_context_graph input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId"
  ],
  "properties": {
    "limit": {
      "type": "integer",
      "maximum": 1000,
      "exclusiveMinimum": 0
    },
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    },
    "includeDerived": {
      "type": "boolean"
    }
  }
}
get_context_graph output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {},
  "additionalProperties": {}
}
get_context_graph annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
resolve_context_graph — Resolve Context Graph
Advertised by the server during the last successful anonymous check.
Advertised read-only

Run bounded shadow-mode graph traversal for repository paths. Returns ranked context candidates and full provenance without changing authoritative route resolution.

resolve_context_graph input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId",
    "paths"
  ],
  "properties": {
    "paths": {
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 1000,
        "minLength": 1
      },
      "maxItems": 100,
      "minItems": 1
    },
    "maxDepth": {
      "type": "integer",
      "maximum": 4,
      "minimum": 1
    },
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    },
    "changeKinds": {
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 500
      },
      "maxItems": 100
    },
    "maxCandidates": {
      "type": "integer",
      "maximum": 100,
      "minimum": 1
    }
  }
}
resolve_context_graph output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {},
  "additionalProperties": {}
}
resolve_context_graph annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
list_context_relations — List Context Relationships
Advertised by the server during the last successful anonymous check.
Advertised read-only

List project-authored typed relationships layered over the derived context graph.

list_context_relations input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId"
  ],
  "properties": {
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    }
  }
}
list_context_relations output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {},
  "additionalProperties": {}
}
list_context_relations annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
upsert_context_relation — Upsert Context Relationship
Advertised by the server during the last successful anonymous check.

Create or update an explicit typed relationship. Existing routes, bundles, modules, and section metadata remain authoritative; use relationships for missing cross-surface or semantic links.

upsert_context_relation input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId",
    "name",
    "fromKind",
    "fromKey",
    "relation",
    "toKind",
    "toKey"
  ],
  "properties": {
    "name": {
      "type": "string",
      "maxLength": 100,
      "minLength": 1
    },
    "toKey": {
      "type": "string",
      "maxLength": 1000,
      "minLength": 1
    },
    "source": {
      "type": "string",
      "maxLength": 100,
      "minLength": 1
    },
    "toKind": {
      "enum": [
        "route",
        "path_pattern",
        "context_section",
        "module",
        "surface",
        "bundle",
        "change_kind",
        "risk_domain",
        "verification_profile",
        "critical_rule",
        "feature",
        "artifact",
        "decision"
      ],
      "type": "string"
    },
    "enabled": {
      "type": "boolean"
    },
    "fromKey": {
      "type": "string",
      "maxLength": 1000,
      "minLength": 1
    },
    "fromKind": {
      "enum": [
        "route",
        "path_pattern",
        "context_section",
        "module",
        "surface",
        "bundle",
        "change_kind",
        "risk_domain",
        "verification_profile",
        "critical_rule",
        "feature",
        "artifact",
        "decision"
      ],
      "type": "string"
    },
    "metadata": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    },
    "relation": {
      "enum": [
        "matches",
        "governs",
        "includes",
        "applies_to",
        "depends_on",
        "groups",
        "activates",
        "requires",
        "generated_from",
        "consumed_by",
        "documented_by",
        "implements",
        "relates_to",
        "supersedes"
      ],
      "type": "string"
    },
    "authority": {
      "enum": [
        "mandatory",
        "advisory",
        "generated"
      ],
      "type": "string"
    },
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    },
    "confidence": {
      "type": "number",
      "maximum": 1,
      "minimum": 0
    },
    "description": {
      "type": "string",
      "maxLength": 5000
    }
  }
}
upsert_context_relation output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "dashboardUrl": {
      "type": "string",
      "description": "Full dashboard URL of the affected resource"
    }
  },
  "additionalProperties": {}
}
upsert_context_relation annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
delete_context_relation — Delete Context Relationship
Advertised by the server during the last successful anonymous check.
Advertised destructive

Delete a project-authored context relationship. Derived graph edges are not mutable through this tool.

delete_context_relation input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId",
    "name"
  ],
  "properties": {
    "name": {
      "type": "string",
      "maxLength": 100,
      "minLength": 1
    },
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    }
  }
}
delete_context_relation output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "dashboardUrl": {
      "type": "string",
      "description": "Full dashboard URL of the affected resource"
    }
  },
  "additionalProperties": {}
}
delete_context_relation annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": true
}
list_context_routes — List Context Routes
Advertised by the server during the last successful anonymous check.
Advertised read-only

List structured path-to-context routes in priority order.

list_context_routes input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId"
  ],
  "properties": {
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    }
  }
}
list_context_routes output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {},
  "additionalProperties": {}
}
list_context_routes annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
upsert_context_route — Upsert Context Route
Advertised by the server during the last successful anonymous check.

Create or update a validated structured context route.

upsert_context_route input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId",
    "name",
    "patterns",
    "sections"
  ],
  "properties": {
    "name": {
      "type": "string",
      "maxLength": 100,
      "minLength": 1
    },
    "enabled": {
      "type": "boolean"
    },
    "patterns": {
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 500
      },
      "maxItems": 100,
      "minItems": 1
    },
    "priority": {
      "type": "integer",
      "maximum": 9007199254740991,
      "minimum": -9007199254740991
    },
    "sections": {
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 500
      },
      "maxItems": 100,
      "minItems": 1
    },
    "appliesTo": {
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 500
      },
      "maxItems": 100
    },
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    },
    "changeKinds": {
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 500
      },
      "maxItems": 100
    },
    "description": {
      "type": "string",
      "maxLength": 5000
    },
    "riskDomains": {
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 500
      },
      "maxItems": 100
    }
  }
}
upsert_context_route output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "dashboardUrl": {
      "type": "string",
      "description": "Full dashboard URL of the affected resource"
    }
  },
  "additionalProperties": {}
}
upsert_context_route annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
delete_context_route — Delete Context Route
Advertised by the server during the last successful anonymous check.
Advertised destructive

Delete a structured context route by name.

delete_context_route input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId",
    "name"
  ],
  "properties": {
    "name": {
      "type": "string",
      "maxLength": 100,
      "minLength": 1
    },
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    }
  }
}
delete_context_route output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "dashboardUrl": {
      "type": "string",
      "description": "Full dashboard URL of the affected resource"
    }
  },
  "additionalProperties": {}
}
delete_context_route annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": true
}
preview_context_route_migration — Preview Context Route Migration
Advertised by the server during the last successful anonymous check.
Advertised read-only

Parse Markdown routing into structured route candidates without writing them.

preview_context_route_migration input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId"
  ],
  "properties": {
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    }
  }
}
preview_context_route_migration output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {},
  "additionalProperties": {}
}
preview_context_route_migration annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
validate_context_routing — Validate Context Routing
Advertised by the server during the last successful anonymous check.
Advertised read-only

Run project route fixtures against the production context resolver.

validate_context_routing input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId"
  ],
  "properties": {
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    }
  }
}
validate_context_routing output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {},
  "additionalProperties": {}
}
validate_context_routing annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
compare_context_resolution — Compare Context Resolution
Advertised by the server during the last successful anonymous check.
Advertised read-only

Compare structured routing output with legacy Markdown routing for repository paths.

compare_context_resolution input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId",
    "paths"
  ],
  "properties": {
    "paths": {
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 1000,
        "minLength": 1
      },
      "maxItems": 100,
      "minItems": 1
    },
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    }
  }
}
compare_context_resolution output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {},
  "additionalProperties": {}
}
compare_context_resolution annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
list_context_bundles — List Context Bundles
Advertised by the server during the last successful anonymous check.
Advertised read-only

List versioned context bundles and recent versions.

list_context_bundles input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId"
  ],
  "properties": {
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    }
  }
}
list_context_bundles output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {},
  "additionalProperties": {}
}
list_context_bundles annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
upsert_context_bundle — Upsert Context Bundle
Advertised by the server during the last successful anonymous check.

Create or update a coherent context bundle. Semantic changes record immutable versions; identical retries are no-ops.

upsert_context_bundle input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId",
    "name",
    "sections"
  ],
  "properties": {
    "name": {
      "type": "string",
      "maxLength": 100,
      "minLength": 1
    },
    "sections": {
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 500
      },
      "maxItems": 100,
      "minItems": 1
    },
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    },
    "description": {
      "type": "string",
      "maxLength": 5000
    },
    "examplePaths": {
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 1000,
        "minLength": 1
      },
      "maxItems": 100
    },
    "entryPatterns": {
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 500
      },
      "maxItems": 100
    },
    "verificationProfiles": {
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 500
      },
      "maxItems": 100
    }
  }
}
upsert_context_bundle output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "dashboardUrl": {
      "type": "string",
      "description": "Full dashboard URL of the affected resource"
    }
  },
  "additionalProperties": {}
}
upsert_context_bundle annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
get_context_bundle — Get Context Bundle
Advertised by the server during the last successful anonymous check.
Advertised read-only

Get a context bundle with immutable version snapshots, optionally selecting one version.

get_context_bundle input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId",
    "name"
  ],
  "properties": {
    "name": {
      "type": "string",
      "maxLength": 100,
      "minLength": 1
    },
    "version": {
      "type": "integer",
      "maximum": 9007199254740991,
      "exclusiveMinimum": 0
    },
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    }
  }
}
get_context_bundle output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {},
  "additionalProperties": {}
}
get_context_bundle annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
delete_context_bundle — Delete Context Bundle
Advertised by the server during the last successful anonymous check.
Advertised destructive

Delete a context bundle and its version history.

delete_context_bundle input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId",
    "name"
  ],
  "properties": {
    "name": {
      "type": "string",
      "maxLength": 100,
      "minLength": 1
    },
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    }
  }
}
delete_context_bundle output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "dashboardUrl": {
      "type": "string",
      "description": "Full dashboard URL of the affected resource"
    }
  },
  "additionalProperties": {}
}
delete_context_bundle annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": true
}
list_context_fixtures — List Context Fixtures
Advertised by the server during the last successful anonymous check.
Advertised read-only

List executable context routing expectations.

list_context_fixtures input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId"
  ],
  "properties": {
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    }
  }
}
list_context_fixtures output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {},
  "additionalProperties": {}
}
list_context_fixtures annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
upsert_context_fixture — Upsert Context Fixture
Advertised by the server during the last successful anonymous check.

Create or update intended executable expectations for an important repository path. Derive assertions from project truth and verified code behavior, never by copying the current resolver output; only write project context when authorized, then run validate_context_routing.

upsert_context_fixture input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId",
    "name",
    "path"
  ],
  "properties": {
    "name": {
      "type": "string",
      "maxLength": 100,
      "minLength": 1
    },
    "path": {
      "type": "string",
      "maxLength": 1000,
      "minLength": 1
    },
    "paths": {
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 1000,
        "minLength": 1
      },
      "maxItems": 100
    },
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    },
    "mustInclude": {
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 500
      },
      "maxItems": 100
    },
    "mustNotApplyTo": {
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 500
      },
      "maxItems": 100
    },
    "mustNotInclude": {
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 500
      },
      "maxItems": 100
    },
    "expectedAppliesTo": {
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 500
      },
      "maxItems": 100
    },
    "mustNotRiskDomains": {
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 500
      },
      "maxItems": 100
    },
    "expectedChangeKinds": {
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 500
      },
      "maxItems": 100
    },
    "expectedRiskDomains": {
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 500
      },
      "maxItems": 100
    },
    "mustNotRoutingSources": {
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 500
      },
      "maxItems": 100
    },
    "expectedRoutingSources": {
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 500
      },
      "maxItems": 100
    },
    "mustNotVerificationCommands": {
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 500
      },
      "maxItems": 100
    },
    "expectedVerificationCommands": {
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 500
      },
      "maxItems": 100
    }
  }
}
upsert_context_fixture output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "dashboardUrl": {
      "type": "string",
      "description": "Full dashboard URL of the affected resource"
    }
  },
  "additionalProperties": {}
}
upsert_context_fixture annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
report_context_feedback — Report Context Feedback
Advertised by the server during the last successful anonymous check.

Report missing, irrelevant, or incorrectly routed knowledge without storing prompts or source code.

report_context_feedback input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId"
  ],
  "properties": {
    "notes": {
      "type": "string",
      "maxLength": 2000
    },
    "taskId": {
      "type": "string",
      "maxLength": 100
    },
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    },
    "missingContext": {
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 500
      },
      "maxItems": 100
    },
    "incorrectRouting": {
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 500
      },
      "maxItems": 100
    },
    "irrelevantContext": {
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 500
      },
      "maxItems": 100
    },
    "acceptedRegressions": {
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 500
      },
      "maxItems": 100
    },
    "usefulGraphCandidates": {
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 500
      },
      "maxItems": 100
    }
  }
}
report_context_feedback output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "dashboardUrl": {
      "type": "string",
      "description": "Full dashboard URL of the affected resource"
    }
  },
  "additionalProperties": {}
}
report_context_feedback annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
delete_context_fixture — Delete Context Fixture
Advertised by the server during the last successful anonymous check.
Advertised destructive

Delete an executable routing fixture by name.

delete_context_fixture input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId",
    "name"
  ],
  "properties": {
    "name": {
      "type": "string",
      "maxLength": 100,
      "minLength": 1
    },
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    }
  }
}
delete_context_fixture output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "dashboardUrl": {
      "type": "string",
      "description": "Full dashboard URL of the affected resource"
    }
  },
  "additionalProperties": {}
}
delete_context_fixture annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": true
}
prepare_completion — Prepare Task Completion
Advertised by the server during the last successful anonymous check.
Advertised read-only

Resolve final touched paths, compare them with the prepare_work snapshot, detect version drift and scope expansion, and generate context disposition evidence. Also returns `reviewEvidence` for the final scope: which screenshots, API examples and diagrams the project expects, how many are attached (since the last review decision, if any), and `missingRequired` gaps that would block `request_review` / `complete_task`. The scope is recorded on the task so the hand-off checks the same thing.

prepare_completion input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId",
    "taskId",
    "touchedPaths"
  ],
  "properties": {
    "taskId": {
      "type": "string"
    },
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    },
    "changeKinds": {
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 500
      },
      "maxItems": 100
    },
    "touchedPaths": {
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 1000,
        "minLength": 1
      },
      "maxItems": 100
    },
    "derivedTouchedPaths": {
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 1000,
        "minLength": 1
      },
      "maxItems": 100
    },
    "touchedPathEvidence": {
      "type": "object",
      "properties": {},
      "additionalProperties": {}
    },
    "implementationSummary": {
      "type": "string",
      "maxLength": 5000
    },
    "derivedTouchedPathEvidence": {
      "type": "object",
      "properties": {},
      "additionalProperties": {}
    }
  }
}
prepare_completion output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "reviewEvidence": {
      "type": "object",
      "required": [
        "scope",
        "since",
        "expected",
        "counts",
        "missingRequired",
        "warnings"
      ],
      "properties": {
        "gaps": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "kind",
              "mode",
              "message",
              "changeKinds",
              "appliesTo",
              "riskDomains"
            ],
            "properties": {
              "kind": {
                "enum": [
                  "apiExamples",
                  "screenshots",
                  "diagrams"
                ],
                "type": "string"
              },
              "mode": {
                "enum": [
                  "off",
                  "suggested",
                  "required"
                ],
                "type": "string"
              },
              "reason": {
                "type": "string",
                "description": "Why this level applies: the base level or the rule that raised it"
              },
              "message": {
                "type": "string"
              },
              "appliesTo": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "changeKinds": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "riskDomains": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            },
            "additionalProperties": false
          }
        },
        "scope": {
          "type": "object",
          "required": [
            "appliesTo",
            "changeKinds",
            "riskDomains"
          ],
          "properties": {
            "appliesTo": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "changeKinds": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "riskDomains": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "additionalProperties": false
        },
        "since": {
          "type": [
            "string",
            "null"
          ],
          "description": "Only artifacts attached after this moment (the last review decision) count; null = all"
        },
        "counts": {
          "type": "object",
          "required": [
            "apiExamples",
            "screenshots",
            "diagrams"
          ],
          "properties": {
            "diagrams": {
              "type": "number"
            },
            "apiExamples": {
              "type": "number"
            },
            "screenshots": {
              "type": "number"
            }
          },
          "additionalProperties": false
        },
        "blocking": {
          "type": "boolean",
          "description": "Whether missingRequired blocks this transition (false for a partial stage the project only warns on)"
        },
        "expected": {
          "type": "object",
          "required": [
            "apiExamples",
            "screenshots",
            "diagrams"
          ],
          "properties": {
            "diagrams": {
              "enum": [
                "off",
                "suggested",
                "required"
              ],
              "type": "string"
            },
            "apiExamples": {
              "enum": [
                "off",
                "suggested",
                "required"
              ],
              "type": "string"
            },
            "screenshots": {
              "enum": [
                "off",
                "suggested",
                "required"
              ],
              "type": "string"
            }
          },
          "additionalProperties": false
        },
        "warnings": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "requirements": {
          "type": "object",
          "required": [
            "apiExamples",
            "screenshots",
            "diagrams"
          ],
          "properties": {
            "diagrams": {
              "type": "object",
              "required": [
                "level",
                "source",
                "reason"
              ],
              "properties": {
                "level": {
                  "enum": [
                    "off",
                    "suggested",
                    "required"
                  ],
                  "type": "string"
                },
                "reason": {
                  "type": "string"
                },
                "source": {
                  "enum": [
                    "base",
                    "rule",
                    "not_triggered"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            "apiExamples": {
              "type": "object",
              "required": [
                "level",
                "source",
                "reason"
              ],
              "properties": {
                "level": {
                  "enum": [
                    "off",
                    "suggested",
                    "required"
                  ],
                  "type": "string"
                },
                "reason": {
                  "type": "string"
                },
                "source": {
                  "enum": [
                    "base",
                    "rule",
                    "not_triggered"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            "screenshots": {
              "type": "object",
              "required": [
                "level",
                "source",
                "reason"
              ],
              "properties": {
                "level": {
                  "enum": [
                    "off",
                    "suggested",
                    "required"
                  ],
                  "type": "string"
                },
                "reason": {
                  "type": "string"
                },
                "source": {
                  "enum": [
                    "base",
                    "rule",
                    "not_triggered"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            }
          },
          "description": "Why each kind has its level",
          "additionalProperties": false
        },
        "scopeSources": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "missingRequired": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "kind",
              "mode",
              "message",
              "changeKinds",
              "appliesTo",
              "riskDomains"
            ],
            "properties": {
              "kind": {
                "enum": [
                  "apiExamples",
                  "screenshots",
                  "diagrams"
                ],
                "type": "string"
              },
              "mode": {
                "enum": [
                  "off",
                  "suggested",
                  "required"
                ],
                "type": "string"
              },
              "reason": {
                "type": "string",
                "description": "Why this level applies: the base level or the rule that raised it"
              },
              "message": {
                "type": "string"
              },
              "appliesTo": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "changeKinds": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "riskDomains": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            },
            "additionalProperties": false
          }
        }
      },
      "additionalProperties": false
    }
  },
  "additionalProperties": {}
}
prepare_completion annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
preview_context_update — Preview Context Update
Advertised by the server during the last successful anonymous check.
Advertised read-only

Preview a section replacement or stable-block patch, including semantic changes and sensitive-data warnings, without writing.

preview_context_update input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId",
    "section"
  ],
  "properties": {
    "content": {
      "type": "string"
    },
    "section": {
      "type": "string"
    },
    "metadata": {
      "type": "object",
      "properties": {
        "tags": {
          "type": "array",
          "items": {
            "type": "string",
            "maxLength": 500
          },
          "maxItems": 100
        },
        "appliesTo": {
          "type": "array",
          "items": {
            "type": "string",
            "maxLength": 500
          },
          "maxItems": 100
        },
        "criticalRules": {
          "type": "array",
          "items": {
            "type": "string",
            "maxLength": 500
          },
          "maxItems": 100
        }
      }
    },
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    },
    "operations": {
      "type": "array",
      "items": {
        "oneOf": [
          {
            "type": "object",
            "required": [
              "op",
              "blockId",
              "content"
            ],
            "properties": {
              "op": {
                "type": "string",
                "const": "replace_block"
              },
              "blockId": {
                "type": "string"
              },
              "content": {
                "type": "string"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "op",
              "blockId",
              "content"
            ],
            "properties": {
              "op": {
                "type": "string",
                "const": "insert_after"
              },
              "blockId": {
                "type": "string"
              },
              "content": {
                "type": "string"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "op",
              "blockId"
            ],
            "properties": {
              "op": {
                "type": "string",
                "const": "delete_block"
              },
              "blockId": {
                "type": "string"
              }
            }
          }
        ]
      }
    },
    "references": {
      "type": "object",
      "properties": {
        "routes": {
          "type": "array",
          "items": {
            "type": "string",
            "maxLength": 500
          },
          "maxItems": 100
        },
        "bundles": {
          "type": "array",
          "items": {
            "type": "string",
            "maxLength": 500
          },
          "maxItems": 100
        },
        "sections": {
          "type": "array",
          "items": {
            "type": "string",
            "maxLength": 500
          },
          "maxItems": 100
        },
        "surfaces": {
          "type": "array",
          "items": {
            "type": "string",
            "maxLength": 500
          },
          "maxItems": 100
        },
        "relations": {
          "type": "array",
          "items": {
            "type": "string",
            "maxLength": 500
          },
          "maxItems": 100
        },
        "riskDomains": {
          "type": "array",
          "items": {
            "type": "string",
            "maxLength": 500
          },
          "maxItems": 100
        },
        "verificationProfiles": {
          "type": "array",
          "items": {
            "type": "string",
            "maxLength": 500
          },
          "maxItems": 100
        }
      }
    }
  }
}
preview_context_update output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {},
  "additionalProperties": {}
}
preview_context_update annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
patch_context_section — Patch Context Section
Advertised by the server during the last successful anonymous check.

Apply stable-block operations with optimistic concurrency and immutable version snapshots.

patch_context_section input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId",
    "section",
    "ifVersion"
  ],
  "properties": {
    "section": {
      "type": "string"
    },
    "metadata": {
      "type": "object",
      "properties": {
        "tags": {
          "type": "array",
          "items": {
            "type": "string",
            "maxLength": 500
          },
          "maxItems": 100
        },
        "appliesTo": {
          "type": "array",
          "items": {
            "type": "string",
            "maxLength": 500
          },
          "maxItems": 100
        },
        "criticalRules": {
          "type": "array",
          "items": {
            "type": "string",
            "maxLength": 500
          },
          "maxItems": 100
        }
      }
    },
    "ifVersion": {
      "type": "integer",
      "maximum": 9007199254740991,
      "exclusiveMinimum": 0
    },
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    },
    "operations": {
      "type": "array",
      "items": {
        "oneOf": [
          {
            "type": "object",
            "required": [
              "op",
              "blockId",
              "content"
            ],
            "properties": {
              "op": {
                "type": "string",
                "const": "replace_block"
              },
              "blockId": {
                "type": "string"
              },
              "content": {
                "type": "string"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "op",
              "blockId",
              "content"
            ],
            "properties": {
              "op": {
                "type": "string",
                "const": "insert_after"
              },
              "blockId": {
                "type": "string"
              },
              "content": {
                "type": "string"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "op",
              "blockId"
            ],
            "properties": {
              "op": {
                "type": "string",
                "const": "delete_block"
              },
              "blockId": {
                "type": "string"
              }
            }
          }
        ]
      },
      "minItems": 1
    }
  }
}
patch_context_section output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "dashboardUrl": {
      "type": "string",
      "description": "Full dashboard URL of the affected resource"
    }
  },
  "additionalProperties": {}
}
patch_context_section annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
upsert_context_block — Upsert Context Block
Advertised by the server during the last successful anonymous check.

Replace or append a stable context block while preserving unrelated blocks. The Markdown content must begin with a level-2 or level-3 heading whose generated slug exactly matches blockId.

upsert_context_block input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId",
    "section",
    "blockId",
    "content",
    "ifVersion"
  ],
  "properties": {
    "blockId": {
      "type": "string",
      "description": "Stable ID generated from the block heading, for example \"document-item-tax-suppressed\" for \"## Document Item Tax Suppressed\"."
    },
    "content": {
      "type": "string",
      "description": "Complete Markdown block beginning with a ## or ### heading whose generated slug exactly matches blockId."
    },
    "section": {
      "type": "string"
    },
    "ifVersion": {
      "type": "integer",
      "maximum": 9007199254740991,
      "exclusiveMinimum": 0
    },
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    },
    "insertAfterBlockId": {
      "type": "string"
    }
  }
}
upsert_context_block output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "dashboardUrl": {
      "type": "string",
      "description": "Full dashboard URL of the affected resource"
    }
  },
  "additionalProperties": {}
}
upsert_context_block annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
verify_context_section — Verify Context Section
Advertised by the server during the last successful anonymous check.

Record repository verification without mutating section content.

verify_context_section input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId",
    "section"
  ],
  "properties": {
    "note": {
      "type": "string",
      "maxLength": 2000
    },
    "taskId": {
      "type": "string"
    },
    "section": {
      "type": "string"
    },
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    },
    "verifiedPaths": {
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 1000,
        "minLength": 1
      },
      "maxItems": 100
    },
    "repositoryRevision": {
      "type": "string"
    }
  }
}
verify_context_section output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "dashboardUrl": {
      "type": "string",
      "description": "Full dashboard URL of the affected resource"
    }
  },
  "additionalProperties": {}
}
verify_context_section annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
render_context_routes_markdown — Render Context Routes Markdown
Advertised by the server during the last successful anonymous check.
Advertised read-only

Render the canonical structured route mapping as deterministic generated Markdown.

render_context_routes_markdown input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId"
  ],
  "properties": {
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    }
  }
}
render_context_routes_markdown output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {},
  "additionalProperties": {}
}
render_context_routes_markdown annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
list_context_maintenance_candidates — List Context Maintenance Candidates
Advertised by the server during the last successful anonymous check.
Advertised read-only

List the current deduplicated context-maintenance queue without refreshing or mutating it.

list_context_maintenance_candidates input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId"
  ],
  "properties": {
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    }
  }
}
list_context_maintenance_candidates output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {},
  "additionalProperties": {}
}
list_context_maintenance_candidates annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
refresh_context_maintenance_candidates — Refresh Context Maintenance Candidates
Advertised by the server during the last successful anonymous check.

Aggregate privacy-safe feedback, self-assessment gaps, and fallback telemetry; may auto-create private tasks when project policy enables it.

refresh_context_maintenance_candidates input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId"
  ],
  "properties": {
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    }
  }
}
refresh_context_maintenance_candidates output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "dashboardUrl": {
      "type": "string",
      "description": "Full dashboard URL of the affected resource"
    }
  },
  "additionalProperties": {}
}
refresh_context_maintenance_candidates annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
convert_context_maintenance_candidate — Convert Context Maintenance Candidate
Advertised by the server during the last successful anonymous check.

Convert a candidate into a deduplicated private context-maintenance roadmap task.

convert_context_maintenance_candidate input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId",
    "candidateId"
  ],
  "properties": {
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    },
    "candidateId": {
      "type": "string"
    }
  }
}
convert_context_maintenance_candidate output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "dashboardUrl": {
      "type": "string",
      "description": "Full dashboard URL of the affected resource"
    }
  },
  "additionalProperties": {}
}
convert_context_maintenance_candidate annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
list_feedback — List Feedback
Advertised by the server during the last successful anonymous check.
Advertised read-only

Get user feedback. Useful for understanding user needs. Feedback summaries include available dates such as `createdAt`, `updatedAt`, `firstOccurredAt`, and `lastOccurredAt`, and `attachmentCount` (screenshots or files the submitter attached; download them with `get_feedback_attachment`).

list_feedback input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId"
  ],
  "properties": {
    "limit": {
      "type": "number"
    },
    "status": {
      "enum": [
        "new",
        "under_review",
        "planned",
        "in_progress",
        "done",
        "closed"
      ],
      "type": "string"
    },
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    }
  }
}
list_feedback output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "feedback"
  ],
  "properties": {
    "feedback": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "id",
          "title",
          "type",
          "status",
          "voterCount",
          "isPublic",
          "createdAt",
          "updatedAt"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "source": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "isPublic": {
            "type": "boolean"
          },
          "aiSummary": {
            "type": [
              "string",
              "null"
            ]
          },
          "createdAt": {
            "type": "string"
          },
          "updatedAt": {
            "type": "string"
          },
          "voteScore": {
            "type": "number"
          },
          "voterCount": {
            "type": "number"
          },
          "description": {
            "type": "string"
          },
          "linkedTaskId": {
            "type": [
              "string",
              "null"
            ]
          },
          "lastOccurredAt": {
            "type": [
              "string",
              "null"
            ]
          },
          "attachmentCount": {
            "type": "number"
          },
          "firstOccurredAt": {
            "type": [
              "string",
              "null"
            ]
          },
          "occurrenceCount": {
            "type": "number"
          }
        },
        "additionalProperties": false
      }
    }
  },
  "additionalProperties": false
}
list_feedback annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_feedback — Get Feedback
Advertised by the server during the last successful anonymous check.
Advertised read-only

Get feedback details with votes, comments and a list of attachments. Download an attachment with `get_feedback_attachment`.

get_feedback input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId",
    "feedbackId"
  ],
  "properties": {
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    },
    "feedbackId": {
      "type": "string"
    }
  }
}
get_feedback output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "id",
    "title",
    "description",
    "type",
    "status",
    "voteScore",
    "isPublic",
    "voters",
    "comments"
  ],
  "properties": {
    "id": {
      "type": "string"
    },
    "type": {
      "type": "string"
    },
    "title": {
      "type": "string"
    },
    "source": {
      "type": "string"
    },
    "status": {
      "type": "string"
    },
    "voters": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "email",
          "plan"
        ],
        "properties": {
          "plan": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "votedAt": {
            "type": "string"
          }
        },
        "additionalProperties": false
      }
    },
    "comments": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "author",
          "body"
        ],
        "properties": {
          "body": {
            "type": "string"
          },
          "author": {
            "type": "string"
          },
          "createdAt": {
            "type": "string"
          },
          "attachments": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "id",
                "name",
                "contentType",
                "url"
              ],
              "properties": {
                "id": {
                  "type": "string"
                },
                "url": {
                  "type": "string",
                  "description": "Public image link for the screenshot (also what the customer sees in the email)"
                },
                "name": {
                  "type": "string"
                },
                "contentType": {
                  "type": "string"
                }
              },
              "additionalProperties": false
            }
          }
        },
        "additionalProperties": false
      }
    },
    "isPublic": {
      "type": "boolean"
    },
    "metadata": {},
    "aiSummary": {
      "type": [
        "string",
        "null"
      ]
    },
    "voteScore": {
      "type": "number"
    },
    "description": {
      "type": "string"
    },
    "dashboardUrl": {
      "type": "string",
      "description": "Full dashboard URL of the affected resource"
    },
    "linkedTaskId": {
      "type": [
        "string",
        "null"
      ]
    },
    "attachmentUrls": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Dashboard URLs (need a signed-in browser session); agents download with get_feedback_attachment"
    },
    "lastOccurredAt": {
      "type": [
        "string",
        "null"
      ]
    },
    "attachmentCount": {
      "type": "number"
    },
    "firstOccurredAt": {
      "type": [
        "string",
        "null"
      ]
    },
    "occurrenceCount": {
      "type": "number"
    }
  },
  "additionalProperties": false
}
get_feedback annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_feedback_attachment — Get Feedback Attachment
Advertised by the server during the last successful anonymous check.
Advertised read-only

Download a screenshot or file attached to a feedback item. `index` is the 0-based position shown by `get_feedback` (`attachmentCount` in `list_feedback` / `get_feedback` tells you how many exist). Images come back as image content you can view; other files come back as an embedded resource with base64 data.

get_feedback_attachment input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId",
    "feedbackId"
  ],
  "properties": {
    "index": {
      "type": "integer",
      "default": 0,
      "maximum": 9007199254740991,
      "minimum": 0,
      "description": "0-based attachment index (default: 0)"
    },
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    },
    "feedbackId": {
      "type": "string"
    }
  }
}
get_feedback_attachment output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "feedbackId",
    "index",
    "attachmentCount",
    "name",
    "contentType",
    "sizeBytes"
  ],
  "properties": {
    "name": {
      "type": "string"
    },
    "index": {
      "type": "number"
    },
    "sizeBytes": {
      "type": "number"
    },
    "feedbackId": {
      "type": "string"
    },
    "contentType": {
      "type": "string"
    },
    "dashboardUrl": {
      "type": "string",
      "description": "Full dashboard URL of the affected resource"
    },
    "attachmentCount": {
      "type": "number"
    }
  },
  "additionalProperties": false
}
get_feedback_attachment annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
update_feedback — Update Feedback
Advertised by the server during the last successful anonymous check.

Update feedback status or visibility.

update_feedback input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId",
    "feedbackId"
  ],
  "properties": {
    "status": {
      "enum": [
        "new",
        "under_review",
        "planned",
        "in_progress",
        "done",
        "closed"
      ],
      "type": "string"
    },
    "isPublic": {
      "type": "boolean"
    },
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    },
    "feedbackId": {
      "type": "string"
    }
  }
}
update_feedback output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "id",
    "title",
    "status",
    "type",
    "isPublic"
  ],
  "properties": {
    "id": {
      "type": "string"
    },
    "type": {
      "type": "string"
    },
    "title": {
      "type": "string"
    },
    "status": {
      "type": "string"
    },
    "isPublic": {
      "type": "boolean"
    },
    "dashboardUrl": {
      "type": "string",
      "description": "Full dashboard URL of the affected resource"
    }
  },
  "additionalProperties": false
}
update_feedback annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
reply_to_feedback — Reply to Feedback
Advertised by the server during the last successful anonymous check.

Reply to a feedback item as a team member. The reply will be visible to the customer. Send follow-up info to the feedback author by setting `notifyCustomer` (emails them) and optionally adding up to 3 `attachments` (PNG/JPEG/WebP/GIF screenshots, 3 MB each) that appear in the email and on the public feedback page.

reply_to_feedback input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId",
    "feedbackId",
    "content"
  ],
  "properties": {
    "content": {
      "type": "string",
      "description": "Reply message content"
    },
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    },
    "feedbackId": {
      "type": "string",
      "description": "ID of the feedback item to reply to"
    },
    "attachments": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "base64"
        ],
        "properties": {
          "name": {
            "type": "string",
            "description": "File name shown to the customer (default: screenshot-N)"
          },
          "base64": {
            "type": "string",
            "description": "Base64 image data, or a data URL (data:image/png;base64,…)"
          },
          "contentType": {
            "type": "string",
            "description": "image/png, image/jpeg, image/webp or image/gif (not needed for data URLs)"
          }
        }
      },
      "maxItems": 3,
      "description": "Screenshots to attach to the reply (max 3, 3 MB each)"
    },
    "notifyCustomer": {
      "type": "boolean",
      "default": false,
      "description": "Send email notification to the customer"
    }
  }
}
reply_to_feedback output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "id",
    "feedbackId",
    "content",
    "author",
    "createdAt"
  ],
  "properties": {
    "id": {
      "type": "string"
    },
    "author": {
      "type": "string"
    },
    "content": {
      "type": "string"
    },
    "createdAt": {
      "type": "string",
      "format": "date-time",
      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
    },
    "feedbackId": {
      "type": "string"
    },
    "attachments": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "id",
          "name",
          "contentType",
          "url"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "url": {
            "type": "string",
            "description": "Public image link for the screenshot (also what the customer sees in the email)"
          },
          "name": {
            "type": "string"
          },
          "contentType": {
            "type": "string"
          }
        },
        "additionalProperties": false
      }
    },
    "dashboardUrl": {
      "type": "string",
      "description": "Full dashboard URL of the affected resource"
    }
  },
  "additionalProperties": false
}
reply_to_feedback annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
report_issue — Report Issue
Advertised by the server during the last successful anonymous check.

Report an error, bug, or feature request with MCP tools or suggest improvements. Reports that contain personal data, secrets, or chat transcripts are kept private automatically.

report_issue input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId",
    "category",
    "title",
    "description"
  ],
  "properties": {
    "title": {
      "type": "string"
    },
    "context": {
      "type": "object",
      "properties": {
        "taskId": {
          "type": "string"
        },
        "toolName": {
          "type": "string"
        },
        "errorMessage": {
          "type": "string"
        }
      }
    },
    "category": {
      "enum": [
        "error",
        "feature_request",
        "improvement"
      ],
      "type": "string"
    },
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    },
    "description": {
      "type": "string"
    }
  }
}
report_issue output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "id",
    "title",
    "type",
    "status",
    "isDuplicate",
    "existingIssueId"
  ],
  "properties": {
    "id": {
      "type": "string"
    },
    "type": {
      "type": "string"
    },
    "title": {
      "type": "string"
    },
    "status": {
      "type": "string"
    },
    "isDuplicate": {
      "type": "boolean"
    },
    "dashboardUrl": {
      "type": "string",
      "description": "Full dashboard URL of the affected resource"
    },
    "existingIssueId": {
      "type": [
        "string",
        "null"
      ]
    }
  },
  "additionalProperties": false
}
report_issue annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
link_feedback_to_task — Link Feedback to Task
Advertised by the server during the last successful anonymous check.

Link feedback items to an existing roadmap task. Linked feedback status follows the task and followers are notified once the task is past backlog, the same as linking from the dashboard. To link while creating a task, pass `feedbackIds` to `create_task`. Already-linked and unknown IDs are reported back instead of failing the call; it fails only if none of the IDs exist.

link_feedback_to_task input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId",
    "taskId",
    "feedbackIds"
  ],
  "properties": {
    "taskId": {
      "type": "string"
    },
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    },
    "feedbackIds": {
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 128,
        "minLength": 1
      },
      "maxItems": 50,
      "minItems": 1
    }
  }
}
link_feedback_to_task output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "taskId",
    "linkedFeedbackIds",
    "totalLinkedFeedback",
    "feedbackTitles"
  ],
  "properties": {
    "taskId": {
      "type": "string"
    },
    "dashboardUrl": {
      "type": "string",
      "description": "Full dashboard URL of the affected resource"
    },
    "feedbackTitles": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "linkedFeedbackIds": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "notFoundFeedbackIds": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "totalLinkedFeedback": {
      "type": "number"
    },
    "alreadyLinkedFeedbackIds": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "additionalProperties": false
}
link_feedback_to_task annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
list_pages — List Pages
Advertised by the server during the last successful anonymous check.
Advertised read-only

List content pages and database pages for a project. Database row pages are included with their parentId.

list_pages input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId"
  ],
  "properties": {
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    }
  }
}
list_pages output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "pages"
  ],
  "properties": {
    "pages": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "id",
          "title",
          "kind"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "icon": {
            "type": [
              "string",
              "null"
            ]
          },
          "kind": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "people": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "id"
              ],
              "properties": {
                "id": {
                  "type": "string"
                },
                "name": {
                  "type": "string"
                },
                "role": {
                  "type": "string"
                },
                "email": {
                  "type": "string"
                }
              },
              "additionalProperties": {}
            }
          },
          "content": {
            "type": "string"
          },
          "parentId": {
            "type": [
              "string",
              "null"
            ]
          },
          "position": {
            "type": "number"
          },
          "createdAt": {
            "type": [
              "string",
              "null"
            ]
          },
          "updatedAt": {
            "type": [
              "string",
              "null"
            ]
          },
          "archivedAt": {
            "type": [
              "string",
              "null"
            ]
          },
          "createdById": {
            "type": [
              "string",
              "null"
            ]
          },
          "updatedById": {
            "type": [
              "string",
              "null"
            ]
          },
          "canonicalKey": {
            "type": [
              "string",
              "null"
            ]
          },
          "contentWidth": {
            "enum": [
              "normal",
              "wide"
            ],
            "type": "string"
          },
          "exposeToAgents": {
            "type": "boolean"
          },
          "propertyValues": {
            "type": "object",
            "description": "Values keyed by property ID. Dates: YYYY-MM-DD strings; null clears a value.",
            "propertyNames": {
              "type": "string"
            },
            "additionalProperties": {}
          }
        },
        "additionalProperties": {}
      }
    }
  },
  "additionalProperties": false
}
list_pages annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
search_pages — Search Pages
Advertised by the server during the last successful anonymous check.
Advertised read-only

Search pages and linked project knowledge by title/content.

search_pages input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId",
    "query"
  ],
  "properties": {
    "limit": {
      "type": "integer",
      "maximum": 50,
      "minimum": 1
    },
    "query": {
      "type": "string",
      "minLength": 1
    },
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    }
  }
}
search_pages output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "results"
  ],
  "properties": {
    "results": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "type",
          "id",
          "title",
          "url"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "url": {
            "type": "string"
          },
          "icon": {
            "type": [
              "string",
              "null"
            ]
          },
          "type": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "snippet": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "additionalProperties": {}
      }
    }
  },
  "additionalProperties": false
}
search_pages annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_page — Get Page
Advertised by the server during the last successful anonymous check.
Advertised read-only

Read a page, including live content, linked people, propertyValues keyed by property ID, and update timestamp for conflict-safe edits. Full data is included in text and structured output.

get_page input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId",
    "pageId"
  ],
  "properties": {
    "pageId": {
      "type": "string"
    },
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    }
  }
}
get_page output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "page"
  ],
  "properties": {
    "page": {
      "type": "object",
      "required": [
        "id",
        "title",
        "kind"
      ],
      "properties": {
        "id": {
          "type": "string"
        },
        "icon": {
          "type": [
            "string",
            "null"
          ]
        },
        "kind": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "people": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "id"
            ],
            "properties": {
              "id": {
                "type": "string"
              },
              "name": {
                "type": "string"
              },
              "role": {
                "type": "string"
              },
              "email": {
                "type": "string"
              }
            },
            "additionalProperties": {}
          }
        },
        "content": {
          "type": "string"
        },
        "parentId": {
          "type": [
            "string",
            "null"
          ]
        },
        "position": {
          "type": "number"
        },
        "createdAt": {
          "type": [
            "string",
            "null"
          ]
        },
        "updatedAt": {
          "type": [
            "string",
            "null"
          ]
        },
        "archivedAt": {
          "type": [
            "string",
            "null"
          ]
        },
        "createdById": {
          "type": [
            "string",
            "null"
          ]
        },
        "updatedById": {
          "type": [
            "string",
            "null"
          ]
        },
        "canonicalKey": {
          "type": [
            "string",
            "null"
          ]
        },
        "contentWidth": {
          "enum": [
            "normal",
            "wide"
          ],
          "type": "string"
        },
        "exposeToAgents": {
          "type": "boolean"
        },
        "propertyValues": {
          "type": "object",
          "description": "Values keyed by property ID. Dates: YYYY-MM-DD strings; null clears a value.",
          "propertyNames": {
            "type": "string"
          },
          "additionalProperties": {}
        }
      },
      "additionalProperties": {}
    },
    "dashboardUrl": {
      "type": "string",
      "description": "Full dashboard URL of the affected resource"
    }
  },
  "additionalProperties": false
}
get_page annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
create_page — Create Page
Advertised by the server during the last successful anonymous check.

Create a normal page, database page, or database row page. For rows, pass parentId as the database page ID and propertyValues by property ID.

create_page input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId"
  ],
  "properties": {
    "kind": {
      "enum": [
        "note",
        "meeting",
        "research",
        "doc",
        "database"
      ],
      "type": "string"
    },
    "title": {
      "type": "string"
    },
    "content": {
      "type": "string"
    },
    "parentId": {
      "type": [
        "string",
        "null"
      ]
    },
    "position": {
      "type": "number"
    },
    "personIds": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    },
    "canonicalKey": {
      "type": "string",
      "maxLength": 500,
      "minLength": 1
    },
    "contentWidth": {
      "enum": [
        "normal",
        "wide"
      ],
      "type": "string"
    },
    "propertyValues": {
      "type": "object",
      "description": "Values keyed by property ID. Dates: YYYY-MM-DD strings; null clears a value.",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    }
  }
}
create_page output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "page"
  ],
  "properties": {
    "page": {
      "type": "object",
      "required": [
        "id",
        "title",
        "kind"
      ],
      "properties": {
        "id": {
          "type": "string"
        },
        "icon": {
          "type": [
            "string",
            "null"
          ]
        },
        "kind": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "people": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "id"
            ],
            "properties": {
              "id": {
                "type": "string"
              },
              "name": {
                "type": "string"
              },
              "role": {
                "type": "string"
              },
              "email": {
                "type": "string"
              }
            },
            "additionalProperties": {}
          }
        },
        "content": {
          "type": "string"
        },
        "parentId": {
          "type": [
            "string",
            "null"
          ]
        },
        "position": {
          "type": "number"
        },
        "createdAt": {
          "type": [
            "string",
            "null"
          ]
        },
        "updatedAt": {
          "type": [
            "string",
            "null"
          ]
        },
        "archivedAt": {
          "type": [
            "string",
            "null"
          ]
        },
        "createdById": {
          "type": [
            "string",
            "null"
          ]
        },
        "updatedById": {
          "type": [
            "string",
            "null"
          ]
        },
        "canonicalKey": {
          "type": [
            "string",
            "null"
          ]
        },
        "contentWidth": {
          "enum": [
            "normal",
            "wide"
          ],
          "type": "string"
        },
        "exposeToAgents": {
          "type": "boolean"
        },
        "propertyValues": {
          "type": "object",
          "description": "Values keyed by property ID. Dates: YYYY-MM-DD strings; null clears a value.",
          "propertyNames": {
            "type": "string"
          },
          "additionalProperties": {}
        }
      },
      "additionalProperties": {}
    },
    "dashboardUrl": {
      "type": "string",
      "description": "Full dashboard URL of the affected resource"
    }
  },
  "additionalProperties": false
}
create_page annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
update_page — Update Page
Advertised by the server during the last successful anonymous check.

Update page title, icon, content, content width, kind, agent visibility, or linked people. If ifUpdatedAt is omitted, the tool reads the latest page timestamp first.

update_page input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId",
    "pageId"
  ],
  "properties": {
    "icon": {
      "type": [
        "string",
        "null"
      ]
    },
    "kind": {
      "enum": [
        "note",
        "meeting",
        "research",
        "doc",
        "database"
      ],
      "type": "string"
    },
    "title": {
      "type": "string"
    },
    "pageId": {
      "type": "string"
    },
    "content": {
      "type": "string"
    },
    "personIds": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    },
    "ifUpdatedAt": {
      "type": "string",
      "format": "date-time",
      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
    },
    "contentWidth": {
      "enum": [
        "normal",
        "wide"
      ],
      "type": "string"
    },
    "exposeToAgents": {
      "type": "boolean"
    }
  }
}
update_page output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "page"
  ],
  "properties": {
    "page": {
      "type": "object",
      "required": [
        "id",
        "title",
        "kind"
      ],
      "properties": {
        "id": {
          "type": "string"
        },
        "icon": {
          "type": [
            "string",
            "null"
          ]
        },
        "kind": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "people": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "id"
            ],
            "properties": {
              "id": {
                "type": "string"
              },
              "name": {
                "type": "string"
              },
              "role": {
                "type": "string"
              },
              "email": {
                "type": "string"
              }
            },
            "additionalProperties": {}
          }
        },
        "content": {
          "type": "string"
        },
        "parentId": {
          "type": [
            "string",
            "null"
          ]
        },
        "position": {
          "type": "number"
        },
        "createdAt": {
          "type": [
            "string",
            "null"
          ]
        },
        "updatedAt": {
          "type": [
            "string",
            "null"
          ]
        },
        "archivedAt": {
          "type": [
            "string",
            "null"
          ]
        },
        "createdById": {
          "type": [
            "string",
            "null"
          ]
        },
        "updatedById": {
          "type": [
            "string",
            "null"
          ]
        },
        "canonicalKey": {
          "type": [
            "string",
            "null"
          ]
        },
        "contentWidth": {
          "enum": [
            "normal",
            "wide"
          ],
          "type": "string"
        },
        "exposeToAgents": {
          "type": "boolean"
        },
        "propertyValues": {
          "type": "object",
          "description": "Values keyed by property ID. Dates: YYYY-MM-DD strings; null clears a value.",
          "propertyNames": {
            "type": "string"
          },
          "additionalProperties": {}
        }
      },
      "additionalProperties": {}
    },
    "dashboardUrl": {
      "type": "string",
      "description": "Full dashboard URL of the affected resource"
    }
  },
  "additionalProperties": false
}
update_page annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
move_page — Move Page
Advertised by the server during the last successful anonymous check.

Move a page under another page/database or reorder it. Use parentId null for a top-level page.

move_page input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId",
    "pageId"
  ],
  "properties": {
    "pageId": {
      "type": "string"
    },
    "parentId": {
      "type": [
        "string",
        "null"
      ]
    },
    "position": {
      "type": "number"
    },
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    }
  }
}
move_page output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "page"
  ],
  "properties": {
    "page": {
      "type": "object",
      "required": [
        "id",
        "title",
        "kind"
      ],
      "properties": {
        "id": {
          "type": "string"
        },
        "icon": {
          "type": [
            "string",
            "null"
          ]
        },
        "kind": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "people": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "id"
            ],
            "properties": {
              "id": {
                "type": "string"
              },
              "name": {
                "type": "string"
              },
              "role": {
                "type": "string"
              },
              "email": {
                "type": "string"
              }
            },
            "additionalProperties": {}
          }
        },
        "content": {
          "type": "string"
        },
        "parentId": {
          "type": [
            "string",
            "null"
          ]
        },
        "position": {
          "type": "number"
        },
        "createdAt": {
          "type": [
            "string",
            "null"
          ]
        },
        "updatedAt": {
          "type": [
            "string",
            "null"
          ]
        },
        "archivedAt": {
          "type": [
            "string",
            "null"
          ]
        },
        "createdById": {
          "type": [
            "string",
            "null"
          ]
        },
        "updatedById": {
          "type": [
            "string",
            "null"
          ]
        },
        "canonicalKey": {
          "type": [
            "string",
            "null"
          ]
        },
        "contentWidth": {
          "enum": [
            "normal",
            "wide"
          ],
          "type": "string"
        },
        "exposeToAgents": {
          "type": "boolean"
        },
        "propertyValues": {
          "type": "object",
          "description": "Values keyed by property ID. Dates: YYYY-MM-DD strings; null clears a value.",
          "propertyNames": {
            "type": "string"
          },
          "additionalProperties": {}
        }
      },
      "additionalProperties": {}
    },
    "dashboardUrl": {
      "type": "string",
      "description": "Full dashboard URL of the affected resource"
    }
  },
  "additionalProperties": false
}
move_page annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
duplicate_page — Duplicate Page
Advertised by the server during the last successful anonymous check.

Duplicate a page, including database row property values and linked people.

duplicate_page input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId",
    "pageId"
  ],
  "properties": {
    "pageId": {
      "type": "string"
    },
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    }
  }
}
duplicate_page output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "page"
  ],
  "properties": {
    "page": {
      "type": "object",
      "required": [
        "id",
        "title",
        "kind"
      ],
      "properties": {
        "id": {
          "type": "string"
        },
        "icon": {
          "type": [
            "string",
            "null"
          ]
        },
        "kind": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "people": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "id"
            ],
            "properties": {
              "id": {
                "type": "string"
              },
              "name": {
                "type": "string"
              },
              "role": {
                "type": "string"
              },
              "email": {
                "type": "string"
              }
            },
            "additionalProperties": {}
          }
        },
        "content": {
          "type": "string"
        },
        "parentId": {
          "type": [
            "string",
            "null"
          ]
        },
        "position": {
          "type": "number"
        },
        "createdAt": {
          "type": [
            "string",
            "null"
          ]
        },
        "updatedAt": {
          "type": [
            "string",
            "null"
          ]
        },
        "archivedAt": {
          "type": [
            "string",
            "null"
          ]
        },
        "createdById": {
          "type": [
            "string",
            "null"
          ]
        },
        "updatedById": {
          "type": [
            "string",
            "null"
          ]
        },
        "canonicalKey": {
          "type": [
            "string",
            "null"
          ]
        },
        "contentWidth": {
          "enum": [
            "normal",
            "wide"
          ],
          "type": "string"
        },
        "exposeToAgents": {
          "type": "boolean"
        },
        "propertyValues": {
          "type": "object",
          "description": "Values keyed by property ID. Dates: YYYY-MM-DD strings; null clears a value.",
          "propertyNames": {
            "type": "string"
          },
          "additionalProperties": {}
        }
      },
      "additionalProperties": {}
    },
    "dashboardUrl": {
      "type": "string",
      "description": "Full dashboard URL of the affected resource"
    }
  },
  "additionalProperties": false
}
duplicate_page annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
archive_page — Archive Page
Advertised by the server during the last successful anonymous check.
Advertised destructive

Archive a page and its child pages. This is a soft delete.

archive_page input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId",
    "pageId"
  ],
  "properties": {
    "pageId": {
      "type": "string"
    },
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    }
  }
}
archive_page output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "success"
  ],
  "properties": {
    "success": {
      "type": "boolean"
    },
    "dashboardUrl": {
      "type": "string",
      "description": "Full dashboard URL of the affected resource"
    },
    "archivedCount": {
      "type": "number"
    }
  },
  "additionalProperties": false
}
archive_page annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": true
}
get_page_database — Get Page Database
Advertised by the server during the last successful anonymous check.
Advertised read-only

Read the complete database definition and every row, including property IDs, names, types, options and propertyValues keyed by property ID in text and structured output. Use only for small databases or an intentional full audit; prefer get_page_database_schema and query_page_database for growing databases.

get_page_database input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId",
    "databasePageId"
  ],
  "properties": {
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    },
    "databasePageId": {
      "type": "string"
    }
  }
}
get_page_database output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "properties",
    "views",
    "templates",
    "rows",
    "relationLabels"
  ],
  "properties": {
    "rows": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "id",
          "title",
          "kind"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "icon": {
            "type": [
              "string",
              "null"
            ]
          },
          "kind": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "people": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "id"
              ],
              "properties": {
                "id": {
                  "type": "string"
                },
                "name": {
                  "type": "string"
                },
                "role": {
                  "type": "string"
                },
                "email": {
                  "type": "string"
                }
              },
              "additionalProperties": {}
            }
          },
          "content": {
            "type": "string"
          },
          "parentId": {
            "type": [
              "string",
              "null"
            ]
          },
          "position": {
            "type": "number"
          },
          "createdAt": {
            "type": [
              "string",
              "null"
            ]
          },
          "updatedAt": {
            "type": [
              "string",
              "null"
            ]
          },
          "archivedAt": {
            "type": [
              "string",
              "null"
            ]
          },
          "createdById": {
            "type": [
              "string",
              "null"
            ]
          },
          "updatedById": {
            "type": [
              "string",
              "null"
            ]
          },
          "canonicalKey": {
            "type": [
              "string",
              "null"
            ]
          },
          "contentWidth": {
            "enum": [
              "normal",
              "wide"
            ],
            "type": "string"
          },
          "exposeToAgents": {
            "type": "boolean"
          },
          "propertyValues": {
            "type": "object",
            "description": "Values keyed by property ID. Dates: YYYY-MM-DD strings; null clears a value.",
            "propertyNames": {
              "type": "string"
            },
            "additionalProperties": {}
          }
        },
        "additionalProperties": {}
      }
    },
    "views": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "id",
          "databasePageId",
          "name"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "position": {
            "type": "number"
          },
          "createdAt": {
            "type": [
              "string",
              "null"
            ]
          },
          "updatedAt": {
            "type": [
              "string",
              "null"
            ]
          },
          "databasePageId": {
            "type": "string"
          }
        },
        "additionalProperties": {}
      }
    },
    "templates": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "id",
          "databasePageId",
          "name"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "position": {
            "type": "number"
          },
          "createdAt": {
            "type": [
              "string",
              "null"
            ]
          },
          "updatedAt": {
            "type": [
              "string",
              "null"
            ]
          },
          "databasePageId": {
            "type": "string"
          }
        },
        "additionalProperties": {}
      }
    },
    "properties": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "id",
          "databasePageId",
          "name"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "position": {
            "type": "number"
          },
          "createdAt": {
            "type": [
              "string",
              "null"
            ]
          },
          "updatedAt": {
            "type": [
              "string",
              "null"
            ]
          },
          "databasePageId": {
            "type": "string"
          }
        },
        "additionalProperties": {}
      }
    },
    "dashboardUrl": {
      "type": "string",
      "description": "Full dashboard URL of the affected resource"
    },
    "relationLabels": {
      "type": "object",
      "required": [
        "roadmap",
        "feedback"
      ],
      "properties": {
        "roadmap": {
          "type": "object",
          "propertyNames": {
            "type": "string"
          },
          "additionalProperties": {
            "type": "object",
            "required": [
              "title",
              "status"
            ],
            "properties": {
              "title": {
                "type": "string"
              },
              "status": {
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        },
        "feedback": {
          "type": "object",
          "propertyNames": {
            "type": "string"
          },
          "additionalProperties": {
            "type": "object",
            "required": [
              "title",
              "status"
            ],
            "properties": {
              "title": {
                "type": "string"
              },
              "status": {
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        }
      },
      "additionalProperties": false
    }
  },
  "additionalProperties": false
}
get_page_database annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_page_database_schema — Get Page Database Schema
Advertised by the server during the last successful anonymous check.
Advertised read-only

Read all property IDs, names, types, options, views, and templates without downloading rows. Full definitions are included in text and structured output.

get_page_database_schema input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId",
    "databasePageId"
  ],
  "properties": {
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    },
    "databasePageId": {
      "type": "string"
    }
  }
}
get_page_database_schema output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "properties",
    "views",
    "templates"
  ],
  "properties": {
    "views": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "id",
          "databasePageId",
          "name"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "position": {
            "type": "number"
          },
          "createdAt": {
            "type": [
              "string",
              "null"
            ]
          },
          "updatedAt": {
            "type": [
              "string",
              "null"
            ]
          },
          "databasePageId": {
            "type": "string"
          }
        },
        "additionalProperties": {}
      }
    },
    "templates": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "id",
          "databasePageId",
          "name"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "position": {
            "type": "number"
          },
          "createdAt": {
            "type": [
              "string",
              "null"
            ]
          },
          "updatedAt": {
            "type": [
              "string",
              "null"
            ]
          },
          "databasePageId": {
            "type": "string"
          }
        },
        "additionalProperties": {}
      }
    },
    "properties": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "id",
          "databasePageId",
          "name"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "position": {
            "type": "number"
          },
          "createdAt": {
            "type": [
              "string",
              "null"
            ]
          },
          "updatedAt": {
            "type": [
              "string",
              "null"
            ]
          },
          "databasePageId": {
            "type": "string"
          }
        },
        "additionalProperties": {}
      }
    },
    "dashboardUrl": {
      "type": "string",
      "description": "Full dashboard URL of the affected resource"
    }
  },
  "additionalProperties": false
}
get_page_database_schema annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
query_page_database — Query Page Database
Advertised by the server during the last successful anonymous check.
Advertised read-only

Read a bounded page of database rows using metadata or property filters, stable cursor pagination, a resumable polling cursor, and optional property/content projection. Custom date properties support comparison filters via propertyId and sorting via sort.propertyId (empty dates last). Dates use YYYY-MM-DD strings. Use updatedAt ascending (the default) for incremental polling; other sort cursors are for pagination only. Full projected rows are included in text and structured output. For array properties, in matches any supplied member while contains requires every supplied member. Prefer this over get_page_database for polling or growing databases.

query_page_database input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId",
    "databasePageId"
  ],
  "properties": {
    "sort": {
      "type": "object",
      "required": [
        "direction"
      ],
      "properties": {
        "field": {
          "enum": [
            "createdAt",
            "updatedAt"
          ],
          "type": "string"
        },
        "direction": {
          "enum": [
            "asc",
            "desc"
          ],
          "type": "string"
        },
        "propertyId": {
          "type": "string",
          "minLength": 1
        }
      }
    },
    "limit": {
      "type": "integer",
      "maximum": 100,
      "minimum": 1
    },
    "cursor": {
      "type": "string"
    },
    "filters": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "operator"
        ],
        "properties": {
          "field": {
            "enum": [
              "id",
              "canonicalKey",
              "title",
              "kind",
              "createdAt",
              "updatedAt"
            ],
            "type": "string"
          },
          "value": {},
          "operator": {
            "enum": [
              "equals",
              "not_equals",
              "in",
              "contains",
              "greater_than",
              "greater_than_or_equal",
              "less_than",
              "less_than_or_equal",
              "is_empty",
              "is_not_empty"
            ],
            "type": "string"
          },
          "propertyId": {
            "type": "string"
          }
        }
      },
      "maxItems": 20
    },
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    },
    "propertyIds": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "maxItems": 100
    },
    "includeTotal": {
      "type": "boolean"
    },
    "databasePageId": {
      "type": "string"
    },
    "includeContent": {
      "type": "boolean"
    }
  }
}
query_page_database output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "rows",
    "relationLabels",
    "hasMore",
    "nextCursor",
    "resumeCursor"
  ],
  "properties": {
    "rows": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "id",
          "title",
          "kind"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "icon": {
            "type": [
              "string",
              "null"
            ]
          },
          "kind": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "people": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "id"
              ],
              "properties": {
                "id": {
                  "type": "string"
                },
                "name": {
                  "type": "string"
                },
                "role": {
                  "type": "string"
                },
                "email": {
                  "type": "string"
                }
              },
              "additionalProperties": {}
            }
          },
          "content": {
            "type": "string"
          },
          "parentId": {
            "type": [
              "string",
              "null"
            ]
          },
          "position": {
            "type": "number"
          },
          "createdAt": {
            "type": [
              "string",
              "null"
            ]
          },
          "updatedAt": {
            "type": [
              "string",
              "null"
            ]
          },
          "archivedAt": {
            "type": [
              "string",
              "null"
            ]
          },
          "createdById": {
            "type": [
              "string",
              "null"
            ]
          },
          "updatedById": {
            "type": [
              "string",
              "null"
            ]
          },
          "canonicalKey": {
            "type": [
              "string",
              "null"
            ]
          },
          "contentWidth": {
            "enum": [
              "normal",
              "wide"
            ],
            "type": "string"
          },
          "exposeToAgents": {
            "type": "boolean"
          },
          "propertyValues": {
            "type": "object",
            "description": "Values keyed by property ID. Dates: YYYY-MM-DD strings; null clears a value.",
            "propertyNames": {
              "type": "string"
            },
            "additionalProperties": {}
          }
        },
        "additionalProperties": {}
      }
    },
    "total": {
      "type": "number"
    },
    "hasMore": {
      "type": "boolean"
    },
    "nextCursor": {
      "type": [
        "string",
        "null"
      ]
    },
    "resumeCursor": {
      "type": [
        "string",
        "null"
      ]
    },
    "relationLabels": {
      "type": "object",
      "required": [
        "roadmap",
        "feedback"
      ],
      "properties": {
        "roadmap": {
          "type": "object",
          "propertyNames": {
            "type": "string"
          },
          "additionalProperties": {
            "type": "object",
            "required": [
              "title",
              "status"
            ],
            "properties": {
              "title": {
                "type": "string"
              },
              "status": {
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        },
        "feedback": {
          "type": "object",
          "propertyNames": {
            "type": "string"
          },
          "additionalProperties": {
            "type": "object",
            "required": [
              "title",
              "status"
            ],
            "properties": {
              "title": {
                "type": "string"
              },
              "status": {
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        }
      },
      "additionalProperties": false
    }
  },
  "additionalProperties": false
}
query_page_database annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
upsert_database_row — Upsert Database Row
Advertised by the server during the last successful anonymous check.

Create or update one database row by a parent-scoped canonical key. Retries with unchanged input are no-ops. Values are keyed by property ID. Date values are YYYY-MM-DD strings (for example, 2026-09-13); null clears a value.

upsert_database_row input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId",
    "databasePageId",
    "canonicalKey"
  ],
  "properties": {
    "icon": {
      "type": [
        "string",
        "null"
      ]
    },
    "kind": {
      "enum": [
        "note",
        "meeting",
        "research",
        "doc"
      ],
      "type": "string"
    },
    "title": {
      "type": "string"
    },
    "content": {
      "type": "string"
    },
    "personIds": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    },
    "canonicalKey": {
      "type": "string",
      "maxLength": 500,
      "minLength": 1
    },
    "contentWidth": {
      "enum": [
        "normal",
        "wide"
      ],
      "type": "string"
    },
    "databasePageId": {
      "type": "string"
    },
    "propertyValues": {
      "type": "object",
      "description": "Values keyed by property ID. Dates: YYYY-MM-DD strings; null clears a value.",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    }
  }
}
upsert_database_row output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "page",
    "created",
    "changed"
  ],
  "properties": {
    "page": {
      "type": "object",
      "required": [
        "id",
        "title",
        "kind"
      ],
      "properties": {
        "id": {
          "type": "string"
        },
        "icon": {
          "type": [
            "string",
            "null"
          ]
        },
        "kind": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "people": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "id"
            ],
            "properties": {
              "id": {
                "type": "string"
              },
              "name": {
                "type": "string"
              },
              "role": {
                "type": "string"
              },
              "email": {
                "type": "string"
              }
            },
            "additionalProperties": {}
          }
        },
        "content": {
          "type": "string"
        },
        "parentId": {
          "type": [
            "string",
            "null"
          ]
        },
        "position": {
          "type": "number"
        },
        "createdAt": {
          "type": [
            "string",
            "null"
          ]
        },
        "updatedAt": {
          "type": [
            "string",
            "null"
          ]
        },
        "archivedAt": {
          "type": [
            "string",
            "null"
          ]
        },
        "createdById": {
          "type": [
            "string",
            "null"
          ]
        },
        "updatedById": {
          "type": [
            "string",
            "null"
          ]
        },
        "canonicalKey": {
          "type": [
            "string",
            "null"
          ]
        },
        "contentWidth": {
          "enum": [
            "normal",
            "wide"
          ],
          "type": "string"
        },
        "exposeToAgents": {
          "type": "boolean"
        },
        "propertyValues": {
          "type": "object",
          "description": "Values keyed by property ID. Dates: YYYY-MM-DD strings; null clears a value.",
          "propertyNames": {
            "type": "string"
          },
          "additionalProperties": {}
        }
      },
      "additionalProperties": {}
    },
    "changed": {
      "type": "boolean"
    },
    "created": {
      "type": "boolean"
    },
    "dashboardUrl": {
      "type": "string",
      "description": "Full dashboard URL of the affected resource"
    }
  },
  "additionalProperties": false
}
upsert_database_row annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
create_task_from_page — Create Task From Page
Advertised by the server during the last successful anonymous check.

Create a roadmap task from a page. Copies the page title and content excerpt into the task, links the page as a source backlink, and updates a `roadmap` database property on the row when present.

create_task_from_page input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId",
    "pageId"
  ],
  "properties": {
    "type": {
      "enum": [
        "bug",
        "feature",
        "improvement",
        "task"
      ],
      "type": "string"
    },
    "title": {
      "type": "string"
    },
    "pageId": {
      "type": "string"
    },
    "status": {
      "enum": [
        "backlog",
        "planned",
        "in_progress",
        "in_review",
        "done",
        "closed"
      ],
      "type": "string"
    },
    "quarter": {
      "type": [
        "string",
        "null"
      ]
    },
    "isPublic": {
      "type": "boolean"
    },
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    },
    "description": {
      "type": "string"
    }
  }
}
create_task_from_page output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "roadmapItem"
  ],
  "properties": {
    "roadmapItem": {
      "type": "object",
      "required": [
        "id",
        "title"
      ],
      "properties": {
        "id": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "status": {
          "type": "string"
        },
        "quarter": {
          "type": [
            "string",
            "null"
          ]
        },
        "isPublic": {
          "type": "boolean"
        },
        "description": {
          "type": [
            "string",
            "null"
          ]
        },
        "implementationPlan": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "additionalProperties": {}
    },
    "dashboardUrl": {
      "type": "string",
      "description": "Full dashboard URL of the affected resource"
    }
  },
  "additionalProperties": false
}
create_task_from_page annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
create_database_property — Create Database Property
Advertised by the server during the last successful anonymous check.

Add a property column to a page database. Property type. Relation types: `page` (linked page IDs), `roadmap` (linked roadmap task IDs), `feedback` (linked feedback IDs). Relation values are string arrays and sync PageLink backlinks.

create_database_property input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId",
    "databasePageId"
  ],
  "properties": {
    "name": {
      "type": "string"
    },
    "type": {
      "enum": [
        "text",
        "number",
        "select",
        "multi_select",
        "status",
        "date",
        "checkbox",
        "url",
        "email",
        "phone",
        "person",
        "page",
        "roadmap",
        "feedback"
      ],
      "type": "string",
      "description": "Property type. Relation types: `page` (linked page IDs), `roadmap` (linked roadmap task IDs), `feedback` (linked feedback IDs). Relation values are string arrays and sync PageLink backlinks."
    },
    "hidden": {
      "type": "boolean"
    },
    "options": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    },
    "position": {
      "type": "number"
    },
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    },
    "databasePageId": {
      "type": "string"
    }
  }
}
create_database_property output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "property"
  ],
  "properties": {
    "property": {
      "type": "object",
      "required": [
        "id",
        "databasePageId",
        "name"
      ],
      "properties": {
        "id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "position": {
          "type": "number"
        },
        "createdAt": {
          "type": [
            "string",
            "null"
          ]
        },
        "updatedAt": {
          "type": [
            "string",
            "null"
          ]
        },
        "databasePageId": {
          "type": "string"
        }
      },
      "additionalProperties": {}
    },
    "dashboardUrl": {
      "type": "string",
      "description": "Full dashboard URL of the affected resource"
    }
  },
  "additionalProperties": false
}
create_database_property annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
update_database_property — Update Database Property
Advertised by the server during the last successful anonymous check.

Rename, hide, reorder, or change options/type for a database property. Property type. Relation types: `page` (linked page IDs), `roadmap` (linked roadmap task IDs), `feedback` (linked feedback IDs). Relation values are string arrays and sync PageLink backlinks.

update_database_property input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId",
    "databasePageId",
    "propertyId"
  ],
  "properties": {
    "name": {
      "type": "string"
    },
    "type": {
      "enum": [
        "text",
        "number",
        "select",
        "multi_select",
        "status",
        "date",
        "checkbox",
        "url",
        "email",
        "phone",
        "person",
        "page",
        "roadmap",
        "feedback"
      ],
      "type": "string",
      "description": "Property type. Relation types: `page` (linked page IDs), `roadmap` (linked roadmap task IDs), `feedback` (linked feedback IDs). Relation values are string arrays and sync PageLink backlinks."
    },
    "hidden": {
      "type": "boolean"
    },
    "options": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    },
    "position": {
      "type": "number"
    },
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    },
    "propertyId": {
      "type": "string"
    },
    "databasePageId": {
      "type": "string"
    }
  }
}
update_database_property output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "property"
  ],
  "properties": {
    "property": {
      "type": "object",
      "required": [
        "id",
        "databasePageId",
        "name"
      ],
      "properties": {
        "id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "position": {
          "type": "number"
        },
        "createdAt": {
          "type": [
            "string",
            "null"
          ]
        },
        "updatedAt": {
          "type": [
            "string",
            "null"
          ]
        },
        "databasePageId": {
          "type": "string"
        }
      },
      "additionalProperties": {}
    },
    "dashboardUrl": {
      "type": "string",
      "description": "Full dashboard URL of the affected resource"
    }
  },
  "additionalProperties": false
}
update_database_property annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
update_database_row_values — Update Database Row Values
Advertised by the server during the last successful anonymous check.

Set database property values for a row page. Values are keyed by property ID. Date values are YYYY-MM-DD strings (for example, 2026-09-13); null clears a value.

update_database_row_values input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId",
    "databasePageId",
    "pageId",
    "values"
  ],
  "properties": {
    "pageId": {
      "type": "string"
    },
    "values": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    },
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    },
    "databasePageId": {
      "type": "string"
    }
  }
}
update_database_row_values output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "values",
    "updatedAt"
  ],
  "properties": {
    "values": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    },
    "updatedAt": {
      "type": "string"
    },
    "dashboardUrl": {
      "type": "string",
      "description": "Full dashboard URL of the affected resource"
    }
  },
  "additionalProperties": false
}
update_database_row_values annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
update_database_view — Update Database View
Advertised by the server during the last successful anonymous check.

Update a database view layout, visible columns, sort, filters, name, or position. Table and list layouts stack one list per value when config.groupByPropertyId is set; config.groupOrder is that group order. Board already groups into columns. Calendar does not stack groups.

update_database_view input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId",
    "databasePageId",
    "viewId"
  ],
  "properties": {
    "name": {
      "type": "string"
    },
    "sort": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    },
    "config": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    },
    "layout": {
      "enum": [
        "table",
        "list",
        "board",
        "calendar"
      ],
      "type": "string"
    },
    "viewId": {
      "type": "string"
    },
    "filters": {
      "type": "array",
      "items": {
        "type": "object",
        "propertyNames": {
          "type": "string"
        },
        "additionalProperties": {}
      }
    },
    "position": {
      "type": "number"
    },
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    },
    "databasePageId": {
      "type": "string"
    },
    "visiblePropertyIds": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  }
}
update_database_view output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "view"
  ],
  "properties": {
    "view": {
      "type": "object",
      "required": [
        "id",
        "databasePageId",
        "name"
      ],
      "properties": {
        "id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "position": {
          "type": "number"
        },
        "createdAt": {
          "type": [
            "string",
            "null"
          ]
        },
        "updatedAt": {
          "type": [
            "string",
            "null"
          ]
        },
        "databasePageId": {
          "type": "string"
        }
      },
      "additionalProperties": {}
    },
    "dashboardUrl": {
      "type": "string",
      "description": "Full dashboard URL of the affected resource"
    }
  },
  "additionalProperties": false
}
update_database_view annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
create_database_view — Create Database View
Advertised by the server during the last successful anonymous check.

Create a saved database view with table, list, board, or calendar layout.

create_database_view input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId",
    "databasePageId"
  ],
  "properties": {
    "name": {
      "type": "string"
    },
    "sort": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    },
    "config": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    },
    "layout": {
      "enum": [
        "table",
        "list",
        "board",
        "calendar"
      ],
      "type": "string"
    },
    "filters": {
      "type": "array",
      "items": {
        "type": "object",
        "propertyNames": {
          "type": "string"
        },
        "additionalProperties": {}
      }
    },
    "position": {
      "type": "number"
    },
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    },
    "databasePageId": {
      "type": "string"
    },
    "visiblePropertyIds": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  }
}
create_database_view output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "view"
  ],
  "properties": {
    "view": {
      "type": "object",
      "required": [
        "id",
        "databasePageId",
        "name"
      ],
      "properties": {
        "id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "position": {
          "type": "number"
        },
        "createdAt": {
          "type": [
            "string",
            "null"
          ]
        },
        "updatedAt": {
          "type": [
            "string",
            "null"
          ]
        },
        "databasePageId": {
          "type": "string"
        }
      },
      "additionalProperties": {}
    },
    "dashboardUrl": {
      "type": "string",
      "description": "Full dashboard URL of the affected resource"
    }
  },
  "additionalProperties": false
}
create_database_view annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
delete_database_view — Delete Database View
Advertised by the server during the last successful anonymous check.
Advertised destructive

Delete a saved database view. A database must keep at least one view.

delete_database_view input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId",
    "databasePageId",
    "viewId"
  ],
  "properties": {
    "viewId": {
      "type": "string"
    },
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    },
    "databasePageId": {
      "type": "string"
    }
  }
}
delete_database_view output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "success"
  ],
  "properties": {
    "success": {
      "type": "boolean"
    },
    "dashboardUrl": {
      "type": "string",
      "description": "Full dashboard URL of the affected resource"
    }
  },
  "additionalProperties": false
}
delete_database_view annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": true
}
create_database_template — Create Database Template
Advertised by the server during the last successful anonymous check.

Create a database-level page template with content and default property values.

create_database_template input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId",
    "databasePageId"
  ],
  "properties": {
    "kind": {
      "enum": [
        "note",
        "meeting",
        "research",
        "doc",
        "database"
      ],
      "type": "string"
    },
    "name": {
      "type": "string"
    },
    "content": {
      "type": "string"
    },
    "position": {
      "type": "number"
    },
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    },
    "databasePageId": {
      "type": "string"
    },
    "propertyDefaults": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    }
  }
}
create_database_template output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "template"
  ],
  "properties": {
    "template": {
      "type": "object",
      "required": [
        "id",
        "databasePageId",
        "name"
      ],
      "properties": {
        "id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "position": {
          "type": "number"
        },
        "createdAt": {
          "type": [
            "string",
            "null"
          ]
        },
        "updatedAt": {
          "type": [
            "string",
            "null"
          ]
        },
        "databasePageId": {
          "type": "string"
        }
      },
      "additionalProperties": {}
    },
    "dashboardUrl": {
      "type": "string",
      "description": "Full dashboard URL of the affected resource"
    }
  },
  "additionalProperties": false
}
create_database_template annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
get_page_backlinks — Get Page Backlinks
Advertised by the server during the last successful anonymous check.
Advertised read-only

List pages that link to a page.

get_page_backlinks input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId",
    "pageId"
  ],
  "properties": {
    "pageId": {
      "type": "string"
    },
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    }
  }
}
get_page_backlinks output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "backlinks"
  ],
  "properties": {
    "backlinks": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "id",
          "title",
          "kind"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "icon": {
            "type": [
              "string",
              "null"
            ]
          },
          "kind": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "people": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "id"
              ],
              "properties": {
                "id": {
                  "type": "string"
                },
                "name": {
                  "type": "string"
                },
                "role": {
                  "type": "string"
                },
                "email": {
                  "type": "string"
                }
              },
              "additionalProperties": {}
            }
          },
          "content": {
            "type": "string"
          },
          "parentId": {
            "type": [
              "string",
              "null"
            ]
          },
          "position": {
            "type": "number"
          },
          "createdAt": {
            "type": [
              "string",
              "null"
            ]
          },
          "updatedAt": {
            "type": [
              "string",
              "null"
            ]
          },
          "archivedAt": {
            "type": [
              "string",
              "null"
            ]
          },
          "createdById": {
            "type": [
              "string",
              "null"
            ]
          },
          "updatedById": {
            "type": [
              "string",
              "null"
            ]
          },
          "canonicalKey": {
            "type": [
              "string",
              "null"
            ]
          },
          "contentWidth": {
            "enum": [
              "normal",
              "wide"
            ],
            "type": "string"
          },
          "exposeToAgents": {
            "type": "boolean"
          },
          "propertyValues": {
            "type": "object",
            "description": "Values keyed by property ID. Dates: YYYY-MM-DD strings; null clears a value.",
            "propertyNames": {
              "type": "string"
            },
            "additionalProperties": {}
          }
        },
        "additionalProperties": {}
      }
    }
  },
  "additionalProperties": false
}
get_page_backlinks annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
list_templates — List Templates
Advertised by the server during the last successful anonymous check.
Advertised read-only

List available code templates for this project.

list_templates input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId"
  ],
  "properties": {
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    }
  }
}
list_templates output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "templates",
    "isEmpty"
  ],
  "properties": {
    "isEmpty": {
      "type": "boolean"
    },
    "templates": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "name",
          "preview",
          "updatedAt"
        ],
        "properties": {
          "name": {
            "type": "string"
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "preview": {
            "type": "string"
          },
          "updatedAt": {
            "type": "string"
          },
          "description": {
            "type": [
              "string",
              "null"
            ]
          },
          "filePattern": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "additionalProperties": false
      }
    }
  },
  "additionalProperties": false
}
list_templates annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_template — Get Template
Advertised by the server during the last successful anonymous check.
Advertised read-only

Get full content of a specific code template.

get_template input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId",
    "name"
  ],
  "properties": {
    "name": {
      "type": "string"
    },
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    }
  }
}
get_template output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "name",
    "content",
    "updatedAt"
  ],
  "properties": {
    "name": {
      "type": "string"
    },
    "tags": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "content": {
      "type": "string"
    },
    "updatedAt": {
      "type": "string"
    },
    "description": {
      "type": [
        "string",
        "null"
      ]
    },
    "filePattern": {
      "type": [
        "string",
        "null"
      ]
    }
  },
  "additionalProperties": false
}
get_template annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
update_template — Update Template
Advertised by the server during the last successful anonymous check.

Create or update a code template.

update_template input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId",
    "name",
    "content"
  ],
  "properties": {
    "name": {
      "type": "string",
      "pattern": "^[a-z][a-z0-9-]{0,49}$"
    },
    "tags": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "content": {
      "type": "string"
    },
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    },
    "description": {
      "type": "string"
    },
    "filePattern": {
      "type": "string"
    }
  }
}
update_template output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "success",
    "name"
  ],
  "properties": {
    "name": {
      "type": "string"
    },
    "tags": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "success": {
      "type": "boolean"
    },
    "description": {
      "type": [
        "string",
        "null"
      ]
    },
    "filePattern": {
      "type": [
        "string",
        "null"
      ]
    },
    "dashboardUrl": {
      "type": "string",
      "description": "Full dashboard URL of the affected resource"
    }
  },
  "additionalProperties": false
}
update_template annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
sync_templates — Sync Templates
Advertised by the server during the last successful anonymous check.

Bulk upload multiple templates at once.

sync_templates input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId",
    "templates"
  ],
  "properties": {
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    },
    "templates": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "name",
          "content"
        ],
        "properties": {
          "name": {
            "type": "string",
            "pattern": "^[a-z][a-z0-9-]{0,49}$"
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "content": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "filePattern": {
            "type": "string"
          }
        }
      }
    }
  }
}
sync_templates output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "success",
    "templatesUpdated"
  ],
  "properties": {
    "success": {
      "type": "boolean"
    },
    "dashboardUrl": {
      "type": "string",
      "description": "Full dashboard URL of the affected resource"
    },
    "templatesUpdated": {
      "type": "number"
    }
  },
  "additionalProperties": false
}
sync_templates annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
list_modules — List Modules
Advertised by the server during the last successful anonymous check.
Advertised read-only

List registered modules in this monorepo.

list_modules input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId"
  ],
  "properties": {
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    }
  }
}
list_modules output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "modules",
    "isEmpty"
  ],
  "properties": {
    "isEmpty": {
      "type": "boolean"
    },
    "modules": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "name",
          "path",
          "updatedAt"
        ],
        "properties": {
          "name": {
            "type": "string"
          },
          "path": {
            "type": "string"
          },
          "port": {
            "type": [
              "number",
              "null"
            ]
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "dependsOn": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "updatedAt": {
            "type": "string"
          },
          "description": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "additionalProperties": false
      }
    }
  },
  "additionalProperties": false
}
list_modules annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_module — Get Module
Advertised by the server during the last successful anonymous check.
Advertised read-only

Get details of a specific module.

get_module input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId",
    "name"
  ],
  "properties": {
    "name": {
      "type": "string"
    },
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    }
  }
}
get_module output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "name",
    "path",
    "updatedAt"
  ],
  "properties": {
    "name": {
      "type": "string"
    },
    "path": {
      "type": "string"
    },
    "port": {
      "type": [
        "number",
        "null"
      ]
    },
    "tags": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "dependsOn": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "updatedAt": {
      "type": "string"
    },
    "description": {
      "type": [
        "string",
        "null"
      ]
    }
  },
  "additionalProperties": false
}
get_module annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
update_module — Update Module
Advertised by the server during the last successful anonymous check.

Register or update a module in the registry.

update_module input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId",
    "name",
    "path"
  ],
  "properties": {
    "name": {
      "type": "string",
      "pattern": "^[a-z][a-z0-9-]{0,49}$"
    },
    "path": {
      "type": "string"
    },
    "port": {
      "type": [
        "number",
        "null"
      ]
    },
    "tags": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "dependsOn": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    },
    "description": {
      "type": "string"
    }
  }
}
update_module output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "success",
    "name",
    "path"
  ],
  "properties": {
    "name": {
      "type": "string"
    },
    "path": {
      "type": "string"
    },
    "port": {
      "type": [
        "number",
        "null"
      ]
    },
    "tags": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "success": {
      "type": "boolean"
    },
    "dependsOn": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "description": {
      "type": [
        "string",
        "null"
      ]
    },
    "dashboardUrl": {
      "type": "string",
      "description": "Full dashboard URL of the affected resource"
    }
  },
  "additionalProperties": false
}
update_module annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
sync_modules — Sync Modules
Advertised by the server during the last successful anonymous check.
Advertised destructive

Bulk upload multiple modules at once.

sync_modules input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId",
    "modules"
  ],
  "properties": {
    "modules": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "name",
          "path"
        ],
        "properties": {
          "name": {
            "type": "string",
            "pattern": "^[a-z][a-z0-9-]{0,49}$"
          },
          "path": {
            "type": "string"
          },
          "port": {
            "type": [
              "number",
              "null"
            ]
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "dependsOn": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "description": {
            "type": "string"
          }
        }
      }
    },
    "replace": {
      "type": "boolean",
      "description": "When true, deletes modules not included in this payload so the registry exactly matches the supplied list"
    },
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    }
  }
}
sync_modules output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "success",
    "modulesUpdated"
  ],
  "properties": {
    "success": {
      "type": "boolean"
    },
    "dashboardUrl": {
      "type": "string",
      "description": "Full dashboard URL of the affected resource"
    },
    "modulesDeleted": {
      "type": "number"
    },
    "modulesUpdated": {
      "type": "number"
    }
  },
  "additionalProperties": false
}
sync_modules annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": true
}
delete_module — Delete Module
Advertised by the server during the last successful anonymous check.
Advertised destructive

Delete a registered module by name.

delete_module input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId",
    "name"
  ],
  "properties": {
    "name": {
      "type": "string",
      "pattern": "^[a-z][a-z0-9-]{0,49}$"
    },
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    }
  }
}
delete_module output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "success",
    "name"
  ],
  "properties": {
    "name": {
      "type": "string"
    },
    "success": {
      "type": "boolean"
    },
    "dashboardUrl": {
      "type": "string",
      "description": "Full dashboard URL of the affected resource"
    }
  },
  "additionalProperties": false
}
delete_module annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": true
}
list_changelogs — List Changelogs
Advertised by the server during the last successful anonymous check.
Advertised read-only

List changelogs for the project. Filter by status (draft, published).

list_changelogs input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId"
  ],
  "properties": {
    "sort": {
      "enum": [
        "newest",
        "oldest"
      ],
      "type": "string"
    },
    "limit": {
      "type": "number"
    },
    "status": {
      "enum": [
        "draft",
        "published"
      ],
      "type": "string"
    },
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    }
  }
}
list_changelogs output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "changelogs"
  ],
  "properties": {
    "changelogs": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "id",
          "title",
          "status",
          "roadmapItemCount",
          "contentPreview"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "date": {
            "type": [
              "string",
              "null"
            ]
          },
          "title": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "version": {
            "type": [
              "string",
              "null"
            ]
          },
          "publishedAt": {
            "type": [
              "string",
              "null"
            ]
          },
          "roadmapItems": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "id",
                "title",
                "type"
              ],
              "properties": {
                "id": {
                  "type": "string"
                },
                "type": {
                  "type": "string"
                },
                "title": {
                  "type": "string"
                }
              },
              "additionalProperties": false
            }
          },
          "contentPreview": {
            "type": "string"
          },
          "roadmapItemCount": {
            "type": "number"
          }
        },
        "additionalProperties": false
      }
    }
  },
  "additionalProperties": false
}
list_changelogs annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
create_changelog — Create Changelog
Advertised by the server during the last successful anonymous check.

Create a new changelog entry.

create_changelog input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId",
    "title"
  ],
  "properties": {
    "date": {
      "type": "string"
    },
    "title": {
      "type": "string"
    },
    "status": {
      "enum": [
        "draft",
        "published"
      ],
      "type": "string"
    },
    "content": {
      "type": "string"
    },
    "summary": {
      "type": "string",
      "maxLength": 280
    },
    "version": {
      "type": "string"
    },
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    }
  }
}
create_changelog output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "id",
    "title",
    "status"
  ],
  "properties": {
    "id": {
      "type": "string"
    },
    "date": {
      "type": [
        "string",
        "null"
      ]
    },
    "title": {
      "type": "string"
    },
    "status": {
      "type": "string"
    },
    "version": {
      "type": [
        "string",
        "null"
      ]
    },
    "dashboardUrl": {
      "type": "string",
      "description": "Full dashboard URL of the affected resource"
    }
  },
  "additionalProperties": false
}
create_changelog annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
update_changelog — Update Changelog
Advertised by the server during the last successful anonymous check.

Update a changelog entry.

update_changelog input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId",
    "changelogId"
  ],
  "properties": {
    "date": {
      "type": "string"
    },
    "title": {
      "type": "string"
    },
    "status": {
      "enum": [
        "draft",
        "published"
      ],
      "type": "string"
    },
    "content": {
      "type": "string"
    },
    "summary": {
      "type": "string",
      "maxLength": 280
    },
    "version": {
      "type": "string"
    },
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    },
    "changelogId": {
      "type": "string"
    }
  }
}
update_changelog output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "id",
    "title",
    "status"
  ],
  "properties": {
    "id": {
      "type": "string"
    },
    "date": {
      "type": [
        "string",
        "null"
      ]
    },
    "title": {
      "type": "string"
    },
    "status": {
      "type": "string"
    },
    "version": {
      "type": [
        "string",
        "null"
      ]
    },
    "publishedAt": {
      "type": [
        "string",
        "null"
      ]
    },
    "dashboardUrl": {
      "type": "string",
      "description": "Full dashboard URL of the affected resource"
    }
  },
  "additionalProperties": false
}
update_changelog annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
add_to_changelog — Add to Changelog
Advertised by the server during the last successful anonymous check.

Add completed tasks to a changelog. Private tasks can be linked; their titles/descriptions are not exposed in public changelog output and are surfaced as an "other updates" count.

add_to_changelog input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId",
    "changelogId",
    "taskIds"
  ],
  "properties": {
    "taskIds": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    },
    "changelogId": {
      "type": "string"
    }
  }
}
add_to_changelog output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "id",
    "title",
    "roadmapItemCount",
    "addedItems"
  ],
  "properties": {
    "id": {
      "type": "string"
    },
    "title": {
      "type": "string"
    },
    "addedItems": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "id",
          "title"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "title": {
            "type": "string"
          }
        },
        "additionalProperties": false
      }
    },
    "dashboardUrl": {
      "type": "string",
      "description": "Full dashboard URL of the affected resource"
    },
    "roadmapItemCount": {
      "type": "number"
    }
  },
  "additionalProperties": false
}
add_to_changelog annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
publish_changelog — Publish Changelog
Advertised by the server during the last successful anonymous check.

Publish a changelog with optional email and Twitter notifications.

publish_changelog input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId",
    "changelogId"
  ],
  "properties": {
    "title": {
      "type": "string"
    },
    "summary": {
      "type": "string",
      "maxLength": 280
    },
    "version": {
      "type": "string"
    },
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    },
    "sendEmail": {
      "type": "boolean"
    },
    "changelogId": {
      "type": "string"
    },
    "postToTwitter": {
      "type": "boolean"
    }
  }
}
publish_changelog output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "id",
    "title",
    "publishedAt"
  ],
  "properties": {
    "id": {
      "type": "string"
    },
    "title": {
      "type": "string"
    },
    "emailsSent": {
      "type": "number"
    },
    "publishedAt": {
      "type": "string"
    },
    "twitterPost": {
      "type": "object",
      "required": [
        "success"
      ],
      "properties": {
        "error": {
          "type": "string"
        },
        "postUrl": {
          "type": "string"
        },
        "success": {
          "type": "boolean"
        }
      },
      "additionalProperties": false
    },
    "dashboardUrl": {
      "type": "string",
      "description": "Full dashboard URL of the affected resource"
    }
  },
  "additionalProperties": false
}
publish_changelog annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
delete_changelog — Delete Changelog
Advertised by the server during the last successful anonymous check.
Advertised destructive

Permanently delete a changelog entry.

delete_changelog input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId",
    "changelogId"
  ],
  "properties": {
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    },
    "changelogId": {
      "type": "string"
    }
  }
}
delete_changelog output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "success",
    "id",
    "title"
  ],
  "properties": {
    "id": {
      "type": "string"
    },
    "title": {
      "type": "string"
    },
    "success": {
      "type": "boolean"
    },
    "dashboardUrl": {
      "type": "string",
      "description": "Full dashboard URL of the affected resource"
    }
  },
  "additionalProperties": false
}
delete_changelog annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": true
}
get_completion_checklist — Get Completion Checklist
Advertised by the server during the last successful anonymous check.
Advertised read-only

Load detailed completion checklist branches for the project. Use after `start_task` or `review_task` because those only return a checklist index. Filters: `groupIds`, `itemIds`, `appliesTo`, `changeKinds`, or `riskDomains` to load only the relevant subset. When scope is uncertain, bias broader rather than narrower. **Review evidence:** the response also includes `reviewEvidence`: the project's review evidence policy (base level, trigger change kinds and rules per kind) and, when `appliesTo` / `changeKinds` / `riskDomains` are given, the level each of API examples, screenshots and diagrams has for that scope and why. It is evaluated exactly as the hand-off gate (request_review / complete_task) does, so use it to preview what will be enforced.

get_completion_checklist input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId"
  ],
  "properties": {
    "itemIds": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "groupIds": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "appliesTo": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    },
    "changeKinds": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "riskDomains": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  }
}
get_completion_checklist output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "completionChecklist"
  ],
  "properties": {
    "reviewEvidence": {
      "type": "object",
      "required": [
        "policy",
        "forScope"
      ],
      "properties": {
        "policy": {
          "type": "object",
          "required": [
            "apiExamples",
            "screenshots",
            "diagrams",
            "partialStageEvidence",
            "plannedScope",
            "checkDirectDone"
          ],
          "properties": {
            "diagrams": {
              "type": "object",
              "required": [
                "base",
                "changeKinds",
                "rules"
              ],
              "properties": {
                "base": {
                  "enum": [
                    "off",
                    "suggested",
                    "required"
                  ],
                  "type": "string"
                },
                "rules": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "required": [
                      "level",
                      "description"
                    ],
                    "properties": {
                      "level": {
                        "enum": [
                          "off",
                          "suggested",
                          "required"
                        ],
                        "type": "string"
                      },
                      "appliesTo": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      "changeKinds": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      "description": {
                        "type": "string"
                      },
                      "riskDomains": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "changeKinds": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              },
              "additionalProperties": false
            },
            "apiExamples": {
              "type": "object",
              "required": [
                "base",
                "changeKinds",
                "rules"
              ],
              "properties": {
                "base": {
                  "enum": [
                    "off",
                    "suggested",
                    "required"
                  ],
                  "type": "string"
                },
                "rules": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "required": [
                      "level",
                      "description"
                    ],
                    "properties": {
                      "level": {
                        "enum": [
                          "off",
                          "suggested",
                          "required"
                        ],
                        "type": "string"
                      },
                      "appliesTo": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      "changeKinds": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      "description": {
                        "type": "string"
                      },
                      "riskDomains": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "changeKinds": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              },
              "additionalProperties": false
            },
            "screenshots": {
              "type": "object",
              "required": [
                "base",
                "changeKinds",
                "rules"
              ],
              "properties": {
                "base": {
                  "enum": [
                    "off",
                    "suggested",
                    "required"
                  ],
                  "type": "string"
                },
                "rules": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "required": [
                      "level",
                      "description"
                    ],
                    "properties": {
                      "level": {
                        "enum": [
                          "off",
                          "suggested",
                          "required"
                        ],
                        "type": "string"
                      },
                      "appliesTo": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      "changeKinds": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      "description": {
                        "type": "string"
                      },
                      "riskDomains": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "changeKinds": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              },
              "additionalProperties": false
            },
            "plannedScope": {
              "enum": [
                "fallback",
                "always",
                "never"
              ],
              "type": "string"
            },
            "checkDirectDone": {
              "type": "boolean"
            },
            "partialStageEvidence": {
              "enum": [
                "warn",
                "block"
              ],
              "type": "string"
            }
          },
          "additionalProperties": false
        },
        "forScope": {
          "anyOf": [
            {
              "type": "object",
              "required": [
                "scope",
                "requirements"
              ],
              "properties": {
                "scope": {
                  "type": "object",
                  "required": [
                    "appliesTo",
                    "changeKinds",
                    "riskDomains"
                  ],
                  "properties": {
                    "appliesTo": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "changeKinds": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "riskDomains": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  },
                  "additionalProperties": false
                },
                "requirements": {
                  "type": "object",
                  "required": [
                    "apiExamples",
                    "screenshots",
                    "diagrams"
                  ],
                  "properties": {
                    "diagrams": {
                      "type": "object",
                      "required": [
                        "level",
                        "source",
                        "reason"
                      ],
                      "properties": {
                        "level": {
                          "enum": [
                            "off",
                            "suggested",
                            "required"
                          ],
                          "type": "string"
                        },
                        "reason": {
                          "type": "string"
                        },
                        "source": {
                          "enum": [
                            "base",
                            "rule",
                            "not_triggered"
                          ],
                          "type": "string"
                        }
                      },
                      "additionalProperties": false
                    },
                    "apiExamples": {
                      "type": "object",
                      "required": [
                        "level",
                        "source",
                        "reason"
                      ],
                      "properties": {
                        "level": {
                          "enum": [
                            "off",
                            "suggested",
                            "required"
                          ],
                          "type": "string"
                        },
                        "reason": {
                          "type": "string"
                        },
                        "source": {
                          "enum": [
                            "base",
                            "rule",
                            "not_triggered"
                          ],
                          "type": "string"
                        }
                      },
                      "additionalProperties": false
                    },
                    "screenshots": {
                      "type": "object",
                      "required": [
                        "level",
                        "source",
                        "reason"
                      ],
                      "properties": {
                        "level": {
                          "enum": [
                            "off",
                            "suggested",
                            "required"
                          ],
                          "type": "string"
                        },
                        "reason": {
                          "type": "string"
                        },
                        "source": {
                          "enum": [
                            "base",
                            "rule",
                            "not_triggered"
                          ],
                          "type": "string"
                        }
                      },
                      "additionalProperties": false
                    }
                  },
                  "additionalProperties": false
                }
              },
              "additionalProperties": false
            },
            {
              "type": "null"
            }
          ],
          "description": "Present when appliesTo / changeKinds / riskDomains filters were given: the level each kind has for that scope, as the hand-off gate evaluates it"
        }
      },
      "additionalProperties": false
    },
    "completionChecklist": {
      "type": "object",
      "required": [
        "version",
        "migratedFromLegacy",
        "groups",
        "standards",
        "availableScopes",
        "scopeGuidance"
      ],
      "properties": {
        "groups": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "id",
              "title",
              "items"
            ],
            "properties": {
              "id": {
                "type": "string"
              },
              "when": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "items": {
                "type": "array",
                "items": {
                  "type": "object",
                  "required": [
                    "id",
                    "title"
                  ],
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "when": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "title": {
                      "type": "string"
                    },
                    "subitems": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "required": [
                          "id",
                          "title"
                        ],
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "when": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "title": {
                            "type": "string"
                          },
                          "appliesTo": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "description": {
                            "type": "string"
                          },
                          "riskDomains": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          }
                        },
                        "additionalProperties": false
                      }
                    },
                    "appliesTo": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "proofTypes": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "description": {
                      "type": "string"
                    },
                    "riskDomains": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  },
                  "additionalProperties": false
                }
              },
              "title": {
                "type": "string"
              },
              "appliesTo": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "description": {
                "type": "string"
              },
              "riskDomains": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            },
            "additionalProperties": false
          }
        },
        "version": {
          "type": "number"
        },
        "standards": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "id",
              "title",
              "section"
            ],
            "properties": {
              "id": {
                "type": "string"
              },
              "when": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "title": {
                "type": "string"
              },
              "section": {
                "type": "string"
              },
              "appliesTo": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "description": {
                "type": "string"
              },
              "riskDomains": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            },
            "additionalProperties": false
          }
        },
        "scopeGuidance": {
          "type": "object",
          "required": [
            "scopeBias",
            "whenUncertain",
            "proofFirst",
            "examples"
          ],
          "properties": {
            "examples": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "scopeBias": {
              "type": "string"
            },
            "proofFirst": {
              "type": "string"
            },
            "whenUncertain": {
              "type": "string"
            }
          },
          "additionalProperties": false
        },
        "availableScopes": {
          "type": "object",
          "required": [
            "appliesTo",
            "changeKinds",
            "riskDomains"
          ],
          "properties": {
            "appliesTo": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "changeKinds": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "riskDomains": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "additionalProperties": false
        },
        "migratedFromLegacy": {
          "type": "boolean"
        }
      },
      "additionalProperties": false
    }
  },
  "additionalProperties": false
}
get_completion_checklist annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
patch_completion_checklist — Patch Completion Checklist
Advertised by the server during the last successful anonymous check.

Apply a scoped patch to the project completion checklist, touching only the branches you name. Groups, items, subitems, and standards are matched by `id`; entries with an unknown or omitted id are appended. Item ids are unique document-wide, so naming an item under a different group moves it rather than duplicating it. Listing groups/items/subitems only ever adds or merges — deleting is explicit, via the `remove*` fields. Anything the patch does not mention is left unchanged, so this is the safe way to amend taxonomy incrementally — use `update_project_settings` only when you intend to replace the entire document. Define `availableScopes` before writing context routes: route `appliesTo`, `changeKinds`, and `riskDomains` are validated against it, and unknown values are reported as health findings rather than rejected outright.

patch_completion_checklist input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId"
  ],
  "properties": {
    "groups": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Existing group id to merge into; omit to append a new group"
          },
          "when": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "items": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string"
                },
                "when": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "title": {
                  "type": "string"
                },
                "subitems": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string"
                      },
                      "when": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      "title": {
                        "type": "string"
                      },
                      "appliesTo": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      "description": {
                        "type": "string"
                      },
                      "riskDomains": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      }
                    }
                  }
                },
                "appliesTo": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "proofTypes": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "description": {
                  "type": "string"
                },
                "riskDomains": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              }
            }
          },
          "title": {
            "type": "string"
          },
          "appliesTo": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "description": {
            "type": "string"
          },
          "riskDomains": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      }
    },
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    },
    "standards": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "when": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "title": {
            "type": "string"
          },
          "section": {
            "type": "string"
          },
          "appliesTo": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "description": {
            "type": "string"
          },
          "riskDomains": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      }
    },
    "removeItemIds": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Item ids to remove; item ids are unique document-wide"
    },
    "scopeGuidance": {
      "type": "object",
      "properties": {
        "examples": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "scopeBias": {
          "type": "string"
        },
        "proofFirst": {
          "type": "string"
        },
        "whenUncertain": {
          "type": "string"
        }
      }
    },
    "removeGroupIds": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "availableScopes": {
      "type": "object",
      "properties": {
        "appliesTo": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "changeKinds": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "riskDomains": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "description": "Taxonomy that context routes are validated against; merged per provided key"
    },
    "removeSubitemIds": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Qualified `itemId/subitemId`, since subitem ids are only unique within their item"
    },
    "removeStandardIds": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  }
}
patch_completion_checklist output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "completionChecklist",
    "message"
  ],
  "properties": {
    "message": {
      "type": "string"
    },
    "dashboardUrl": {
      "type": "string",
      "description": "Full dashboard URL of the affected resource"
    },
    "completionChecklist": {
      "type": "object",
      "required": [
        "version",
        "migratedFromLegacy",
        "groups",
        "standards",
        "availableScopes",
        "scopeGuidance"
      ],
      "properties": {
        "groups": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "id",
              "title",
              "itemCount",
              "subitemCount"
            ],
            "properties": {
              "id": {
                "type": "string"
              },
              "when": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "title": {
                "type": "string"
              },
              "appliesTo": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "itemCount": {
                "type": "number"
              },
              "description": {
                "type": "string"
              },
              "riskDomains": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "subitemCount": {
                "type": "number"
              }
            },
            "additionalProperties": false
          }
        },
        "version": {
          "type": "number"
        },
        "standards": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "id",
              "title",
              "section"
            ],
            "properties": {
              "id": {
                "type": "string"
              },
              "when": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "title": {
                "type": "string"
              },
              "section": {
                "type": "string"
              },
              "appliesTo": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "description": {
                "type": "string"
              },
              "riskDomains": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            },
            "additionalProperties": false
          }
        },
        "scopeGuidance": {
          "type": "object",
          "required": [
            "scopeBias",
            "whenUncertain",
            "proofFirst",
            "examples"
          ],
          "properties": {
            "examples": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "scopeBias": {
              "type": "string"
            },
            "proofFirst": {
              "type": "string"
            },
            "whenUncertain": {
              "type": "string"
            }
          },
          "additionalProperties": false
        },
        "availableScopes": {
          "type": "object",
          "required": [
            "appliesTo",
            "changeKinds",
            "riskDomains"
          ],
          "properties": {
            "appliesTo": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "changeKinds": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "riskDomains": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "additionalProperties": false
        },
        "migratedFromLegacy": {
          "type": "boolean"
        }
      },
      "additionalProperties": false
    }
  },
  "additionalProperties": false
}
patch_completion_checklist annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
preview_completion_checklist_migration — Preview Completion Checklist Migration
Advertised by the server during the last successful anonymous check.
Advertised read-only

Preview how a legacy flat completion checklist could be regrouped into native V2. Flags broad items, command-dump style items, and title-derived ids before writing the migrated document.

preview_completion_checklist_migration input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId"
  ],
  "properties": {
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    }
  }
}
preview_completion_checklist_migration output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "preview"
  ],
  "properties": {
    "preview": {
      "type": "object",
      "required": [
        "source",
        "migratedFromLegacy",
        "preview",
        "issues",
        "recommendedGroups"
      ],
      "properties": {
        "issues": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "code",
              "level",
              "message"
            ],
            "properties": {
              "code": {
                "type": "string"
              },
              "level": {
                "enum": [
                  "info",
                  "warning"
                ],
                "type": "string"
              },
              "itemId": {
                "type": "string"
              },
              "groupId": {
                "type": "string"
              },
              "message": {
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        },
        "source": {
          "enum": [
            "empty",
            "legacy",
            "v2"
          ],
          "type": "string"
        },
        "preview": {
          "type": "object",
          "required": [
            "version",
            "groups"
          ],
          "properties": {
            "groups": {
              "type": "array",
              "items": {
                "type": "object",
                "required": [
                  "title",
                  "items"
                ],
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "when": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "items": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "required": [
                        "title"
                      ],
                      "properties": {
                        "id": {
                          "type": "string"
                        },
                        "when": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "title": {
                          "type": "string"
                        },
                        "subitems": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "title"
                            ],
                            "properties": {
                              "id": {
                                "type": "string"
                              },
                              "when": {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              "title": {
                                "type": "string"
                              },
                              "appliesTo": {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              "description": {
                                "type": "string"
                              },
                              "riskDomains": {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              }
                            },
                            "additionalProperties": false
                          }
                        },
                        "appliesTo": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "proofTypes": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "description": {
                          "type": "string"
                        },
                        "riskDomains": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        }
                      },
                      "additionalProperties": false
                    }
                  },
                  "title": {
                    "type": "string"
                  },
                  "appliesTo": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "description": {
                    "type": "string"
                  },
                  "riskDomains": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  }
                },
                "additionalProperties": false
              }
            },
            "version": {
              "type": "number",
              "const": 2
            },
            "standards": {
              "type": "array",
              "items": {
                "type": "object",
                "required": [
                  "title",
                  "section"
                ],
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "when": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "title": {
                    "type": "string"
                  },
                  "section": {
                    "type": "string"
                  },
                  "appliesTo": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "description": {
                    "type": "string"
                  },
                  "riskDomains": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  }
                },
                "additionalProperties": false
              }
            },
            "scopeGuidance": {
              "type": "object",
              "properties": {
                "examples": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "scopeBias": {
                  "type": "string"
                },
                "proofFirst": {
                  "type": "string"
                },
                "whenUncertain": {
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            "availableScopes": {
              "type": "object",
              "properties": {
                "appliesTo": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "changeKinds": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "riskDomains": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              },
              "additionalProperties": false
            }
          },
          "additionalProperties": false
        },
        "recommendedGroups": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "migratedFromLegacy": {
          "type": "boolean"
        }
      },
      "additionalProperties": false
    }
  },
  "additionalProperties": false
}
preview_completion_checklist_migration annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_project_settings — Get Project Settings
Advertised by the server during the last successful anonymous check.
Advertised read-only

View current project settings, including the completion checklist index, standards refs, scope guidance, and the review evidence policy: per kind (apiExamples, screenshots, diagrams) a base level, the change kinds that trigger it, and rules that raise or lower it for specific surfaces, change kinds or risk domains; plus partialStageEvidence (partial hand-offs warn or block), plannedScope (whether prepare_work expected paths count) and checkDirectDone (whether moving straight to done is checked). Use `get_completion_checklist` to load detailed checklist branches.

get_project_settings input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId"
  ],
  "properties": {
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    }
  }
}
get_project_settings output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "completionChecklist",
    "contextMaintenancePolicy"
  ],
  "properties": {
    "completionChecklist": {
      "type": "object",
      "required": [
        "version",
        "migratedFromLegacy",
        "groups",
        "standards",
        "availableScopes",
        "scopeGuidance"
      ],
      "properties": {
        "groups": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "id",
              "title",
              "itemCount",
              "subitemCount"
            ],
            "properties": {
              "id": {
                "type": "string"
              },
              "when": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "title": {
                "type": "string"
              },
              "appliesTo": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "itemCount": {
                "type": "number"
              },
              "description": {
                "type": "string"
              },
              "riskDomains": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "subitemCount": {
                "type": "number"
              }
            },
            "additionalProperties": false
          }
        },
        "version": {
          "type": "number"
        },
        "standards": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "id",
              "title",
              "section"
            ],
            "properties": {
              "id": {
                "type": "string"
              },
              "when": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "title": {
                "type": "string"
              },
              "section": {
                "type": "string"
              },
              "appliesTo": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "description": {
                "type": "string"
              },
              "riskDomains": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            },
            "additionalProperties": false
          }
        },
        "scopeGuidance": {
          "type": "object",
          "required": [
            "scopeBias",
            "whenUncertain",
            "proofFirst",
            "examples"
          ],
          "properties": {
            "examples": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "scopeBias": {
              "type": "string"
            },
            "proofFirst": {
              "type": "string"
            },
            "whenUncertain": {
              "type": "string"
            }
          },
          "additionalProperties": false
        },
        "availableScopes": {
          "type": "object",
          "required": [
            "appliesTo",
            "changeKinds",
            "riskDomains"
          ],
          "properties": {
            "appliesTo": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "changeKinds": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "riskDomains": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "additionalProperties": false
        },
        "migratedFromLegacy": {
          "type": "boolean"
        }
      },
      "additionalProperties": false
    },
    "reviewEvidencePolicy": {
      "type": "object",
      "properties": {
        "diagrams": {
          "enum": [
            "off",
            "suggested",
            "required"
          ],
          "type": "string",
          "description": "Base level for Mermaid diagrams (add_diagram), triggered by behavior/contract/migration changes; off by default. A diagram that is only suggested by the base level never warns; one a rule suggests or requires is reported like the other kinds."
        },
        "apiExamples": {
          "enum": [
            "off",
            "suggested",
            "required"
          ],
          "type": "string",
          "description": "Base level for API request/response examples (triggered by contract_changes by default)"
        },
        "screenshots": {
          "enum": [
            "off",
            "suggested",
            "required"
          ],
          "type": "string",
          "description": "Base level for screenshots (triggered by rendering_changes / public_output_changes by default)"
        },
        "plannedScope": {
          "enum": [
            "fallback",
            "always",
            "never"
          ],
          "type": "string",
          "description": "Whether the files prepare_work expected to touch (its likelyPaths scope) decide the evidence required at hand-off. \"fallback\" (default): only when the hand-off declares no scope and prepare_completion recorded none. \"always\": always add the planned scope (stricter; a guessed path can require evidence). \"never\": ignore it; only declared and prepare_completion scope count."
        },
        "diagramsRules": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "level"
            ],
            "properties": {
              "level": {
                "enum": [
                  "off",
                  "suggested",
                  "required"
                ],
                "type": "string",
                "description": "Level where the rule applies"
              },
              "appliesTo": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "Surfaces, e.g. [\"dashboard\", \"website\"]"
              },
              "changeKinds": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "Triggering change kinds the rule covers"
              },
              "riskDomains": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "Risk domains, e.g. [\"billing\", \"public_api\"]"
              }
            },
            "additionalProperties": false
          },
          "maxItems": 20,
          "description": "Diagram rules, e.g. [{\"level\":\"required\",\"riskDomains\":[\"billing\"]}] with base \"suggested\". Scoped exceptions to the base level. Each rule sets a level and at least one of changeKinds / appliesTo / riskDomains (all set fields must match). A rule stricter than the base raises the level when the change touches any listed value; a rule looser than the base lowers it only when the whole change is inside the rule, so a mixed change keeps the stricter level. Rules only apply to changes that trigger the kind."
        },
        "diagramsScope": {
          "anyOf": [
            {
              "type": "object",
              "properties": {
                "appliesTo": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "changeKinds": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "riskDomains": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              },
              "additionalProperties": false
            },
            {
              "type": "null"
            }
          ],
          "description": "Deprecated: converted to diagramsChangeKinds + a rule. Use diagramsRules."
        },
        "checkDirectDone": {
          "type": "boolean",
          "description": "When true, moving an item straight to done without a review (dashboard, REST or AI task link) runs the same required-evidence check as a complete-stage hand-off, with evidenceNotApplicable as the escape hatch. Default false: only hand-offs into review and their approvals are checked."
        },
        "diagramGuidance": {
          "type": [
            "string",
            "null"
          ],
          "description": "What is worth a diagram in this project, e.g. \"decision logic, multi-step flows, module relationships\""
        },
        "screenshotTheme": {
          "enum": [
            "light",
            "dark",
            "any"
          ],
          "type": "string"
        },
        "apiExamplesRules": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "level"
            ],
            "properties": {
              "level": {
                "enum": [
                  "off",
                  "suggested",
                  "required"
                ],
                "type": "string",
                "description": "Level where the rule applies"
              },
              "appliesTo": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "Surfaces, e.g. [\"dashboard\", \"website\"]"
              },
              "changeKinds": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "Triggering change kinds the rule covers"
              },
              "riskDomains": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "Risk domains, e.g. [\"billing\", \"public_api\"]"
              }
            },
            "additionalProperties": false
          },
          "maxItems": 20,
          "description": "API example rules, e.g. [{\"level\":\"required\",\"riskDomains\":[\"public_api\"]}] with base \"suggested\". Scoped exceptions to the base level. Each rule sets a level and at least one of changeKinds / appliesTo / riskDomains (all set fields must match). A rule stricter than the base raises the level when the change touches any listed value; a rule looser than the base lowers it only when the whole change is inside the rule, so a mixed change keeps the stricter level. Rules only apply to changes that trigger the kind."
        },
        "apiExamplesScope": {
          "anyOf": [
            {
              "type": "object",
              "properties": {
                "appliesTo": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "changeKinds": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "riskDomains": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              },
              "additionalProperties": false
            },
            {
              "type": "null"
            }
          ],
          "description": "Deprecated: converted to apiExamplesChangeKinds + a rule at the base level (base becomes off). Use apiExamplesRules."
        },
        "screenshotLocale": {
          "type": [
            "string",
            "null"
          ],
          "description": "Locale to capture, e.g. en"
        },
        "screenshotStates": {
          "type": [
            "string",
            "null"
          ],
          "description": "Which states to capture, e.g. \"default, empty, error, validation\""
        },
        "screenshotsRules": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "level"
            ],
            "properties": {
              "level": {
                "enum": [
                  "off",
                  "suggested",
                  "required"
                ],
                "type": "string",
                "description": "Level where the rule applies"
              },
              "appliesTo": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "Surfaces, e.g. [\"dashboard\", \"website\"]"
              },
              "changeKinds": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "Triggering change kinds the rule covers"
              },
              "riskDomains": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "Risk domains, e.g. [\"billing\", \"public_api\"]"
              }
            },
            "additionalProperties": false
          },
          "maxItems": 20,
          "description": "Screenshot rules, e.g. [{\"level\":\"suggested\",\"appliesTo\":[\"ios\"]}] with base \"required\". Scoped exceptions to the base level. Each rule sets a level and at least one of changeKinds / appliesTo / riskDomains (all set fields must match). A rule stricter than the base raises the level when the change touches any listed value; a rule looser than the base lowers it only when the whole change is inside the rule, so a mixed change keeps the stricter level. Rules only apply to changes that trigger the kind."
        },
        "screenshotsScope": {
          "anyOf": [
            {
              "type": "object",
              "properties": {
                "appliesTo": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "changeKinds": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "riskDomains": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              },
              "additionalProperties": false
            },
            {
              "type": "null"
            }
          ],
          "description": "Deprecated: converted to screenshotsChangeKinds + a rule. Use screenshotsRules."
        },
        "diagramsChangeKinds": {
          "anyOf": [
            {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            {
              "type": "null"
            }
          ],
          "description": "Change kinds that trigger diagrams (null = default behavior_changes, contract_changes, migration_changes)"
        },
        "screenshotViewports": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "e.g. [\"desktop\"] or [\"desktop\", \"mobile\"]"
        },
        "partialStageEvidence": {
          "enum": [
            "warn",
            "block"
          ],
          "type": "string",
          "description": "How a partial-stage request_review with missing required evidence is treated: \"warn\" (default) lets the slice into review with the gaps listed as warnings (response evidence.blocking = false); \"block\" fails it with review_evidence_missing like a complete stage. The complete stage, its approval and complete_task always block."
        },
        "apiExamplesChangeKinds": {
          "anyOf": [
            {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            {
              "type": "null"
            }
          ],
          "description": "Change kinds that trigger API examples (null = default contract_changes)"
        },
        "screenshotsChangeKinds": {
          "anyOf": [
            {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            {
              "type": "null"
            }
          ],
          "description": "Change kinds that trigger screenshots (null = default rendering_changes, public_output_changes)"
        }
      },
      "additionalProperties": false
    },
    "verificationCommands": {
      "type": "object",
      "properties": {
        "commands": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Commands agents should run for every change, e.g. [\"npm run lint\", \"npx tsc --noEmit -p .\"]"
        },
        "bySurface": {
          "type": "object",
          "description": "Extra commands per checklist surface (appliesTo value), e.g. {\"server\": [\"npm test -- server\"], \"dashboard\": [\"npm run test:ui\"]}. On update, surfaces merge; set a surface to [] or null to remove it.",
          "propertyNames": {
            "type": "string"
          },
          "additionalProperties": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              {
                "type": "null"
              }
            ]
          }
        }
      },
      "description": "Verification commands prepare_work reports come only from the project: these settings, context bundle verificationProfiles and quality-gate sections. Damper adds no defaults; with none configured, prepare_work returns an empty list and verificationGuidance.",
      "additionalProperties": false
    },
    "contextMaintenancePolicy": {
      "type": "object",
      "required": [
        "mode",
        "requireForChangeKinds",
        "requireForRiskDomains",
        "blockOnUnverifiedFallback",
        "requireFixtureValidationAfterRoutingWrites",
        "allowScopedAgentWrites",
        "riskVerificationWindows"
      ],
      "properties": {
        "mode": {
          "enum": [
            "off",
            "advisory",
            "required"
          ],
          "type": "string",
          "default": "advisory"
        },
        "requireForChangeKinds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "default": []
        },
        "requireForRiskDomains": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "default": []
        },
        "allowScopedAgentWrites": {
          "type": "boolean",
          "default": false
        },
        "riskVerificationWindows": {
          "type": "object",
          "default": {},
          "propertyNames": {
            "type": "string"
          },
          "additionalProperties": {
            "type": "integer",
            "maximum": 9007199254740991,
            "exclusiveMinimum": 0
          }
        },
        "blockOnUnverifiedFallback": {
          "type": "boolean",
          "default": false
        },
        "autoCreateDebtTaskThreshold": {
          "type": "integer",
          "maximum": 9007199254740991,
          "exclusiveMinimum": 0
        },
        "defaultVerificationWindowDays": {
          "type": "integer",
          "maximum": 9007199254740991,
          "exclusiveMinimum": 0
        },
        "requireFixtureValidationAfterRoutingWrites": {
          "type": "boolean",
          "default": true
        }
      },
      "additionalProperties": false
    }
  },
  "additionalProperties": false
}
get_project_settings annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
update_project_settings — Update Project Settings
Advertised by the server during the last successful anonymous check.

Configure agent-relevant project settings, including the structured completion checklist and the review evidence policy (partial update: per kind a base level, optional trigger change kinds and `*Rules` that raise or lower the level for surfaces, change kinds or risk domains; plus partialStageEvidence, plannedScope and checkDirectDone — see the field descriptions). Preview the result with `get_completion_checklist` and a scope. Also sets `verificationCommands` (project-wide and per-surface commands prepare_work reports; Damper has no built-in defaults). This REPLACES the whole completion checklist document — use `patch_completion_checklist` to amend part of it. Prefer outcome-based proof groups, stable explicit ids, and referenced standards sections instead of command inventories.

update_project_settings input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId"
  ],
  "properties": {
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    },
    "completionChecklist": {
      "type": "object",
      "required": [
        "version",
        "groups"
      ],
      "properties": {
        "groups": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "title",
              "items"
            ],
            "properties": {
              "id": {
                "type": "string"
              },
              "when": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "items": {
                "type": "array",
                "items": {
                  "type": "object",
                  "required": [
                    "title"
                  ],
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "when": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "title": {
                      "type": "string"
                    },
                    "subitems": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "required": [
                          "title"
                        ],
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "when": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "title": {
                            "type": "string"
                          },
                          "appliesTo": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "description": {
                            "type": "string"
                          },
                          "riskDomains": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          }
                        }
                      }
                    },
                    "appliesTo": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "proofTypes": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "description": {
                      "type": "string"
                    },
                    "riskDomains": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  }
                }
              },
              "title": {
                "type": "string"
              },
              "appliesTo": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "description": {
                "type": "string"
              },
              "riskDomains": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          }
        },
        "version": {
          "type": "number",
          "const": 2
        },
        "standards": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "title",
              "section"
            ],
            "properties": {
              "id": {
                "type": "string"
              },
              "when": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "title": {
                "type": "string"
              },
              "section": {
                "type": "string"
              },
              "appliesTo": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "description": {
                "type": "string"
              },
              "riskDomains": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          }
        },
        "scopeGuidance": {
          "type": "object",
          "properties": {
            "examples": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "scopeBias": {
              "type": "string"
            },
            "proofFirst": {
              "type": "string"
            },
            "whenUncertain": {
              "type": "string"
            }
          }
        },
        "availableScopes": {
          "type": "object",
          "properties": {
            "appliesTo": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "changeKinds": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "riskDomains": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "reviewEvidencePolicy": {
      "type": "object",
      "properties": {
        "diagrams": {
          "enum": [
            "off",
            "suggested",
            "required"
          ],
          "type": "string",
          "description": "Base level for Mermaid diagrams (add_diagram), triggered by behavior/contract/migration changes; off by default. A diagram that is only suggested by the base level never warns; one a rule suggests or requires is reported like the other kinds."
        },
        "apiExamples": {
          "enum": [
            "off",
            "suggested",
            "required"
          ],
          "type": "string",
          "description": "Base level for API request/response examples (triggered by contract_changes by default)"
        },
        "screenshots": {
          "enum": [
            "off",
            "suggested",
            "required"
          ],
          "type": "string",
          "description": "Base level for screenshots (triggered by rendering_changes / public_output_changes by default)"
        },
        "plannedScope": {
          "enum": [
            "fallback",
            "always",
            "never"
          ],
          "type": "string",
          "description": "Whether the files prepare_work expected to touch (its likelyPaths scope) decide the evidence required at hand-off. \"fallback\" (default): only when the hand-off declares no scope and prepare_completion recorded none. \"always\": always add the planned scope (stricter; a guessed path can require evidence). \"never\": ignore it; only declared and prepare_completion scope count."
        },
        "diagramsRules": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "level"
            ],
            "properties": {
              "level": {
                "enum": [
                  "off",
                  "suggested",
                  "required"
                ],
                "type": "string",
                "description": "Level where the rule applies"
              },
              "appliesTo": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "Surfaces, e.g. [\"dashboard\", \"website\"]"
              },
              "changeKinds": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "Triggering change kinds the rule covers"
              },
              "riskDomains": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "Risk domains, e.g. [\"billing\", \"public_api\"]"
              }
            },
            "additionalProperties": false
          },
          "maxItems": 20,
          "description": "Diagram rules, e.g. [{\"level\":\"required\",\"riskDomains\":[\"billing\"]}] with base \"suggested\". Scoped exceptions to the base level. Each rule sets a level and at least one of changeKinds / appliesTo / riskDomains (all set fields must match). A rule stricter than the base raises the level when the change touches any listed value; a rule looser than the base lowers it only when the whole change is inside the rule, so a mixed change keeps the stricter level. Rules only apply to changes that trigger the kind."
        },
        "diagramsScope": {
          "anyOf": [
            {
              "type": "object",
              "properties": {
                "appliesTo": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "changeKinds": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "riskDomains": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              },
              "additionalProperties": false
            },
            {
              "type": "null"
            }
          ],
          "description": "Deprecated: converted to diagramsChangeKinds + a rule. Use diagramsRules."
        },
        "checkDirectDone": {
          "type": "boolean",
          "description": "When true, moving an item straight to done without a review (dashboard, REST or AI task link) runs the same required-evidence check as a complete-stage hand-off, with evidenceNotApplicable as the escape hatch. Default false: only hand-offs into review and their approvals are checked."
        },
        "diagramGuidance": {
          "type": [
            "string",
            "null"
          ],
          "description": "What is worth a diagram in this project, e.g. \"decision logic, multi-step flows, module relationships\""
        },
        "screenshotTheme": {
          "enum": [
            "light",
            "dark",
            "any"
          ],
          "type": "string"
        },
        "apiExamplesRules": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "level"
            ],
            "properties": {
              "level": {
                "enum": [
                  "off",
                  "suggested",
                  "required"
                ],
                "type": "string",
                "description": "Level where the rule applies"
              },
              "appliesTo": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "Surfaces, e.g. [\"dashboard\", \"website\"]"
              },
              "changeKinds": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "Triggering change kinds the rule covers"
              },
              "riskDomains": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "Risk domains, e.g. [\"billing\", \"public_api\"]"
              }
            },
            "additionalProperties": false
          },
          "maxItems": 20,
          "description": "API example rules, e.g. [{\"level\":\"required\",\"riskDomains\":[\"public_api\"]}] with base \"suggested\". Scoped exceptions to the base level. Each rule sets a level and at least one of changeKinds / appliesTo / riskDomains (all set fields must match). A rule stricter than the base raises the level when the change touches any listed value; a rule looser than the base lowers it only when the whole change is inside the rule, so a mixed change keeps the stricter level. Rules only apply to changes that trigger the kind."
        },
        "apiExamplesScope": {
          "anyOf": [
            {
              "type": "object",
              "properties": {
                "appliesTo": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "changeKinds": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "riskDomains": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              },
              "additionalProperties": false
            },
            {
              "type": "null"
            }
          ],
          "description": "Deprecated: converted to apiExamplesChangeKinds + a rule at the base level (base becomes off). Use apiExamplesRules."
        },
        "screenshotLocale": {
          "type": [
            "string",
            "null"
          ],
          "description": "Locale to capture, e.g. en"
        },
        "screenshotStates": {
          "type": [
            "string",
            "null"
          ],
          "description": "Which states to capture, e.g. \"default, empty, error, validation\""
        },
        "screenshotsRules": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "level"
            ],
            "properties": {
              "level": {
                "enum": [
                  "off",
                  "suggested",
                  "required"
                ],
                "type": "string",
                "description": "Level where the rule applies"
              },
              "appliesTo": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "Surfaces, e.g. [\"dashboard\", \"website\"]"
              },
              "changeKinds": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "Triggering change kinds the rule covers"
              },
              "riskDomains": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "Risk domains, e.g. [\"billing\", \"public_api\"]"
              }
            },
            "additionalProperties": false
          },
          "maxItems": 20,
          "description": "Screenshot rules, e.g. [{\"level\":\"suggested\",\"appliesTo\":[\"ios\"]}] with base \"required\". Scoped exceptions to the base level. Each rule sets a level and at least one of changeKinds / appliesTo / riskDomains (all set fields must match). A rule stricter than the base raises the level when the change touches any listed value; a rule looser than the base lowers it only when the whole change is inside the rule, so a mixed change keeps the stricter level. Rules only apply to changes that trigger the kind."
        },
        "screenshotsScope": {
          "anyOf": [
            {
              "type": "object",
              "properties": {
                "appliesTo": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "changeKinds": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "riskDomains": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              },
              "additionalProperties": false
            },
            {
              "type": "null"
            }
          ],
          "description": "Deprecated: converted to screenshotsChangeKinds + a rule. Use screenshotsRules."
        },
        "diagramsChangeKinds": {
          "anyOf": [
            {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            {
              "type": "null"
            }
          ],
          "description": "Change kinds that trigger diagrams (null = default behavior_changes, contract_changes, migration_changes)"
        },
        "screenshotViewports": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "e.g. [\"desktop\"] or [\"desktop\", \"mobile\"]"
        },
        "partialStageEvidence": {
          "enum": [
            "warn",
            "block"
          ],
          "type": "string",
          "description": "How a partial-stage request_review with missing required evidence is treated: \"warn\" (default) lets the slice into review with the gaps listed as warnings (response evidence.blocking = false); \"block\" fails it with review_evidence_missing like a complete stage. The complete stage, its approval and complete_task always block."
        },
        "apiExamplesChangeKinds": {
          "anyOf": [
            {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            {
              "type": "null"
            }
          ],
          "description": "Change kinds that trigger API examples (null = default contract_changes)"
        },
        "screenshotsChangeKinds": {
          "anyOf": [
            {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            {
              "type": "null"
            }
          ],
          "description": "Change kinds that trigger screenshots (null = default rendering_changes, public_output_changes)"
        }
      },
      "description": "Partial update of which review artifacts agents are asked for (merged into the current policy)"
    },
    "verificationCommands": {
      "type": "object",
      "properties": {
        "commands": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Commands agents should run for every change, e.g. [\"npm run lint\", \"npx tsc --noEmit -p .\"]"
        },
        "bySurface": {
          "type": "object",
          "description": "Extra commands per checklist surface (appliesTo value), e.g. {\"server\": [\"npm test -- server\"], \"dashboard\": [\"npm run test:ui\"]}. On update, surfaces merge; set a surface to [] or null to remove it.",
          "propertyNames": {
            "type": "string"
          },
          "additionalProperties": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              {
                "type": "null"
              }
            ]
          }
        }
      },
      "description": "Partial update of the project's verification commands. Verification commands prepare_work reports come only from the project: these settings, context bundle verificationProfiles and quality-gate sections. Damper adds no defaults; with none configured, prepare_work returns an empty list and verificationGuidance."
    },
    "contextMaintenancePolicy": {
      "type": "object",
      "properties": {
        "mode": {
          "enum": [
            "off",
            "advisory",
            "required"
          ],
          "type": "string",
          "default": "advisory"
        },
        "requireForChangeKinds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "default": []
        },
        "requireForRiskDomains": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "default": []
        },
        "allowScopedAgentWrites": {
          "type": "boolean",
          "default": false
        },
        "riskVerificationWindows": {
          "type": "object",
          "default": {},
          "propertyNames": {
            "type": "string"
          },
          "additionalProperties": {
            "type": "integer",
            "maximum": 9007199254740991,
            "exclusiveMinimum": 0
          }
        },
        "blockOnUnverifiedFallback": {
          "type": "boolean",
          "default": false
        },
        "autoCreateDebtTaskThreshold": {
          "type": "integer",
          "maximum": 9007199254740991,
          "exclusiveMinimum": 0
        },
        "defaultVerificationWindowDays": {
          "type": "integer",
          "maximum": 9007199254740991,
          "exclusiveMinimum": 0
        },
        "requireFixtureValidationAfterRoutingWrites": {
          "type": "boolean",
          "default": true
        }
      }
    }
  }
}
update_project_settings output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "completionChecklist",
    "contextMaintenancePolicy",
    "message"
  ],
  "properties": {
    "message": {
      "type": "string"
    },
    "dashboardUrl": {
      "type": "string",
      "description": "Full dashboard URL of the affected resource"
    },
    "completionChecklist": {
      "type": "object",
      "required": [
        "version",
        "migratedFromLegacy",
        "groups",
        "standards",
        "availableScopes",
        "scopeGuidance"
      ],
      "properties": {
        "groups": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "id",
              "title",
              "itemCount",
              "subitemCount"
            ],
            "properties": {
              "id": {
                "type": "string"
              },
              "when": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "title": {
                "type": "string"
              },
              "appliesTo": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "itemCount": {
                "type": "number"
              },
              "description": {
                "type": "string"
              },
              "riskDomains": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "subitemCount": {
                "type": "number"
              }
            },
            "additionalProperties": false
          }
        },
        "version": {
          "type": "number"
        },
        "standards": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "id",
              "title",
              "section"
            ],
            "properties": {
              "id": {
                "type": "string"
              },
              "when": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "title": {
                "type": "string"
              },
              "section": {
                "type": "string"
              },
              "appliesTo": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "description": {
                "type": "string"
              },
              "riskDomains": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            },
            "additionalProperties": false
          }
        },
        "scopeGuidance": {
          "type": "object",
          "required": [
            "scopeBias",
            "whenUncertain",
            "proofFirst",
            "examples"
          ],
          "properties": {
            "examples": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "scopeBias": {
              "type": "string"
            },
            "proofFirst": {
              "type": "string"
            },
            "whenUncertain": {
              "type": "string"
            }
          },
          "additionalProperties": false
        },
        "availableScopes": {
          "type": "object",
          "required": [
            "appliesTo",
            "changeKinds",
            "riskDomains"
          ],
          "properties": {
            "appliesTo": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "changeKinds": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "riskDomains": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "additionalProperties": false
        },
        "migratedFromLegacy": {
          "type": "boolean"
        }
      },
      "additionalProperties": false
    },
    "reviewEvidencePolicy": {
      "type": "object",
      "properties": {
        "diagrams": {
          "enum": [
            "off",
            "suggested",
            "required"
          ],
          "type": "string",
          "description": "Base level for Mermaid diagrams (add_diagram), triggered by behavior/contract/migration changes; off by default. A diagram that is only suggested by the base level never warns; one a rule suggests or requires is reported like the other kinds."
        },
        "apiExamples": {
          "enum": [
            "off",
            "suggested",
            "required"
          ],
          "type": "string",
          "description": "Base level for API request/response examples (triggered by contract_changes by default)"
        },
        "screenshots": {
          "enum": [
            "off",
            "suggested",
            "required"
          ],
          "type": "string",
          "description": "Base level for screenshots (triggered by rendering_changes / public_output_changes by default)"
        },
        "plannedScope": {
          "enum": [
            "fallback",
            "always",
            "never"
          ],
          "type": "string",
          "description": "Whether the files prepare_work expected to touch (its likelyPaths scope) decide the evidence required at hand-off. \"fallback\" (default): only when the hand-off declares no scope and prepare_completion recorded none. \"always\": always add the planned scope (stricter; a guessed path can require evidence). \"never\": ignore it; only declared and prepare_completion scope count."
        },
        "diagramsRules": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "level"
            ],
            "properties": {
              "level": {
                "enum": [
                  "off",
                  "suggested",
                  "required"
                ],
                "type": "string",
                "description": "Level where the rule applies"
              },
              "appliesTo": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "Surfaces, e.g. [\"dashboard\", \"website\"]"
              },
              "changeKinds": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "Triggering change kinds the rule covers"
              },
              "riskDomains": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "Risk domains, e.g. [\"billing\", \"public_api\"]"
              }
            },
            "additionalProperties": false
          },
          "maxItems": 20,
          "description": "Diagram rules, e.g. [{\"level\":\"required\",\"riskDomains\":[\"billing\"]}] with base \"suggested\". Scoped exceptions to the base level. Each rule sets a level and at least one of changeKinds / appliesTo / riskDomains (all set fields must match). A rule stricter than the base raises the level when the change touches any listed value; a rule looser than the base lowers it only when the whole change is inside the rule, so a mixed change keeps the stricter level. Rules only apply to changes that trigger the kind."
        },
        "diagramsScope": {
          "anyOf": [
            {
              "type": "object",
              "properties": {
                "appliesTo": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "changeKinds": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "riskDomains": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              },
              "additionalProperties": false
            },
            {
              "type": "null"
            }
          ],
          "description": "Deprecated: converted to diagramsChangeKinds + a rule. Use diagramsRules."
        },
        "checkDirectDone": {
          "type": "boolean",
          "description": "When true, moving an item straight to done without a review (dashboard, REST or AI task link) runs the same required-evidence check as a complete-stage hand-off, with evidenceNotApplicable as the escape hatch. Default false: only hand-offs into review and their approvals are checked."
        },
        "diagramGuidance": {
          "type": [
            "string",
            "null"
          ],
          "description": "What is worth a diagram in this project, e.g. \"decision logic, multi-step flows, module relationships\""
        },
        "screenshotTheme": {
          "enum": [
            "light",
            "dark",
            "any"
          ],
          "type": "string"
        },
        "apiExamplesRules": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "level"
            ],
            "properties": {
              "level": {
                "enum": [
                  "off",
                  "suggested",
                  "required"
                ],
                "type": "string",
                "description": "Level where the rule applies"
              },
              "appliesTo": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "Surfaces, e.g. [\"dashboard\", \"website\"]"
              },
              "changeKinds": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "Triggering change kinds the rule covers"
              },
              "riskDomains": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "Risk domains, e.g. [\"billing\", \"public_api\"]"
              }
            },
            "additionalProperties": false
          },
          "maxItems": 20,
          "description": "API example rules, e.g. [{\"level\":\"required\",\"riskDomains\":[\"public_api\"]}] with base \"suggested\". Scoped exceptions to the base level. Each rule sets a level and at least one of changeKinds / appliesTo / riskDomains (all set fields must match). A rule stricter than the base raises the level when the change touches any listed value; a rule looser than the base lowers it only when the whole change is inside the rule, so a mixed change keeps the stricter level. Rules only apply to changes that trigger the kind."
        },
        "apiExamplesScope": {
          "anyOf": [
            {
              "type": "object",
              "properties": {
                "appliesTo": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "changeKinds": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "riskDomains": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              },
              "additionalProperties": false
            },
            {
              "type": "null"
            }
          ],
          "description": "Deprecated: converted to apiExamplesChangeKinds + a rule at the base level (base becomes off). Use apiExamplesRules."
        },
        "screenshotLocale": {
          "type": [
            "string",
            "null"
          ],
          "description": "Locale to capture, e.g. en"
        },
        "screenshotStates": {
          "type": [
            "string",
            "null"
          ],
          "description": "Which states to capture, e.g. \"default, empty, error, validation\""
        },
        "screenshotsRules": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "level"
            ],
            "properties": {
              "level": {
                "enum": [
                  "off",
                  "suggested",
                  "required"
                ],
                "type": "string",
                "description": "Level where the rule applies"
              },
              "appliesTo": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "Surfaces, e.g. [\"dashboard\", \"website\"]"
              },
              "changeKinds": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "Triggering change kinds the rule covers"
              },
              "riskDomains": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "Risk domains, e.g. [\"billing\", \"public_api\"]"
              }
            },
            "additionalProperties": false
          },
          "maxItems": 20,
          "description": "Screenshot rules, e.g. [{\"level\":\"suggested\",\"appliesTo\":[\"ios\"]}] with base \"required\". Scoped exceptions to the base level. Each rule sets a level and at least one of changeKinds / appliesTo / riskDomains (all set fields must match). A rule stricter than the base raises the level when the change touches any listed value; a rule looser than the base lowers it only when the whole change is inside the rule, so a mixed change keeps the stricter level. Rules only apply to changes that trigger the kind."
        },
        "screenshotsScope": {
          "anyOf": [
            {
              "type": "object",
              "properties": {
                "appliesTo": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "changeKinds": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "riskDomains": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              },
              "additionalProperties": false
            },
            {
              "type": "null"
            }
          ],
          "description": "Deprecated: converted to screenshotsChangeKinds + a rule. Use screenshotsRules."
        },
        "diagramsChangeKinds": {
          "anyOf": [
            {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            {
              "type": "null"
            }
          ],
          "description": "Change kinds that trigger diagrams (null = default behavior_changes, contract_changes, migration_changes)"
        },
        "screenshotViewports": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "e.g. [\"desktop\"] or [\"desktop\", \"mobile\"]"
        },
        "partialStageEvidence": {
          "enum": [
            "warn",
            "block"
          ],
          "type": "string",
          "description": "How a partial-stage request_review with missing required evidence is treated: \"warn\" (default) lets the slice into review with the gaps listed as warnings (response evidence.blocking = false); \"block\" fails it with review_evidence_missing like a complete stage. The complete stage, its approval and complete_task always block."
        },
        "apiExamplesChangeKinds": {
          "anyOf": [
            {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            {
              "type": "null"
            }
          ],
          "description": "Change kinds that trigger API examples (null = default contract_changes)"
        },
        "screenshotsChangeKinds": {
          "anyOf": [
            {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            {
              "type": "null"
            }
          ],
          "description": "Change kinds that trigger screenshots (null = default rendering_changes, public_output_changes)"
        }
      },
      "additionalProperties": false
    },
    "verificationCommands": {
      "type": "object",
      "properties": {
        "commands": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Commands agents should run for every change, e.g. [\"npm run lint\", \"npx tsc --noEmit -p .\"]"
        },
        "bySurface": {
          "type": "object",
          "description": "Extra commands per checklist surface (appliesTo value), e.g. {\"server\": [\"npm test -- server\"], \"dashboard\": [\"npm run test:ui\"]}. On update, surfaces merge; set a surface to [] or null to remove it.",
          "propertyNames": {
            "type": "string"
          },
          "additionalProperties": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              {
                "type": "null"
              }
            ]
          }
        }
      },
      "additionalProperties": false
    },
    "contextMaintenancePolicy": {
      "type": "object",
      "required": [
        "mode",
        "requireForChangeKinds",
        "requireForRiskDomains",
        "blockOnUnverifiedFallback",
        "requireFixtureValidationAfterRoutingWrites",
        "allowScopedAgentWrites",
        "riskVerificationWindows"
      ],
      "properties": {
        "mode": {
          "enum": [
            "off",
            "advisory",
            "required"
          ],
          "type": "string",
          "default": "advisory"
        },
        "requireForChangeKinds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "default": []
        },
        "requireForRiskDomains": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "default": []
        },
        "allowScopedAgentWrites": {
          "type": "boolean",
          "default": false
        },
        "riskVerificationWindows": {
          "type": "object",
          "default": {},
          "propertyNames": {
            "type": "string"
          },
          "additionalProperties": {
            "type": "integer",
            "maximum": 9007199254740991,
            "exclusiveMinimum": 0
          }
        },
        "blockOnUnverifiedFallback": {
          "type": "boolean",
          "default": false
        },
        "autoCreateDebtTaskThreshold": {
          "type": "integer",
          "maximum": 9007199254740991,
          "exclusiveMinimum": 0
        },
        "defaultVerificationWindowDays": {
          "type": "integer",
          "maximum": 9007199254740991,
          "exclusiveMinimum": 0
        },
        "requireFixtureValidationAfterRoutingWrites": {
          "type": "boolean",
          "default": true
        }
      },
      "additionalProperties": false
    }
  },
  "additionalProperties": false
}
update_project_settings annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
open_public_page — Open Public Page
Advertised by the server during the last successful anonymous check.
Advertised read-only

Get the public URL for a project page (roadmap, feedback, changelog, or a specific roadmap item). **IMPORTANT:** NEVER guess or construct public page URLs yourself. Always call this tool. **Pages:** roadmap, feedback, changelog, roadmap_item **roadmap_item** requires `itemId` parameter.

open_public_page input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId",
    "page"
  ],
  "properties": {
    "page": {
      "enum": [
        "roadmap",
        "feedback",
        "changelog",
        "roadmap_item"
      ],
      "type": "string"
    },
    "itemId": {
      "type": "string",
      "description": "Roadmap item ID (required when page is \"roadmap_item\")"
    },
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    }
  }
}
open_public_page output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "url",
    "enabled"
  ],
  "properties": {
    "url": {
      "type": "string"
    },
    "note": {
      "type": "string"
    },
    "enabled": {
      "type": "boolean"
    }
  },
  "additionalProperties": false
}
open_public_page annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
list_status_maintenance_targets — List Maintenance Targets
Advertised by the server during the last successful anonymous check.
Advertised read-only

List status-page groups and monitors for maintenance targeting. Returns identifiers, names and visibility without probe configuration.

list_status_maintenance_targets input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId"
  ],
  "properties": {
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    }
  }
}
list_status_maintenance_targets output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "groups"
  ],
  "properties": {
    "groups": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "id",
          "name",
          "isPublic",
          "checks"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "checks": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "id",
                "name",
                "isPublic"
              ],
              "properties": {
                "id": {
                  "type": "string"
                },
                "name": {
                  "type": "string"
                },
                "isPublic": {
                  "type": "boolean"
                }
              },
              "additionalProperties": false
            }
          },
          "isPublic": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      }
    }
  },
  "additionalProperties": false
}
list_status_maintenance_targets annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
list_status_maintenance — List Status Maintenance
Advertised by the server during the last successful anonymous check.
Advertised read-only

List maintenance windows, scope, schedules, visibility and timeline updates (newest first) for this project. Use the returned IDs to edit windows or timeline messages.

list_status_maintenance input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId"
  ],
  "properties": {
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    }
  }
}
list_status_maintenance output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "maintenance"
  ],
  "properties": {
    "maintenance": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "id",
          "projectId",
          "title",
          "description",
          "groupId",
          "targetsChecks",
          "checkIds",
          "group",
          "checks",
          "scheduledStartAt",
          "scheduledEndAt",
          "actualStartAt",
          "actualEndAt",
          "state",
          "isPublic",
          "createdByUserId",
          "createdAt",
          "updatedAt",
          "updates"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "group": {
            "anyOf": [
              {
                "type": "object",
                "required": [
                  "id",
                  "name"
                ],
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "name": {
                    "type": "string"
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "null"
              }
            ]
          },
          "state": {
            "enum": [
              "scheduled",
              "in_progress",
              "completed",
              "cancelled"
            ],
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "checks": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "id",
                "name"
              ],
              "properties": {
                "id": {
                  "type": "string"
                },
                "name": {
                  "type": "string"
                }
              },
              "additionalProperties": false
            }
          },
          "groupId": {
            "type": [
              "string",
              "null"
            ]
          },
          "updates": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "id",
                "maintenanceId",
                "state",
                "message",
                "isPublic",
                "createdByUserId",
                "createdAt",
                "editedAt"
              ],
              "properties": {
                "id": {
                  "type": "string"
                },
                "state": {
                  "enum": [
                    "scheduled",
                    "in_progress",
                    "completed",
                    "cancelled"
                  ],
                  "type": "string"
                },
                "message": {
                  "type": "string"
                },
                "editedAt": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "isPublic": {
                  "type": "boolean"
                },
                "createdAt": {
                  "type": "string"
                },
                "maintenanceId": {
                  "type": "string"
                },
                "createdByUserId": {
                  "type": [
                    "string",
                    "null"
                  ]
                }
              },
              "additionalProperties": false
            }
          },
          "checkIds": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              {
                "type": "null"
              }
            ]
          },
          "isPublic": {
            "type": "boolean"
          },
          "createdAt": {
            "type": "string"
          },
          "projectId": {
            "type": "string"
          },
          "updatedAt": {
            "type": "string"
          },
          "actualEndAt": {
            "type": [
              "string",
              "null"
            ]
          },
          "description": {
            "type": [
              "string",
              "null"
            ]
          },
          "actualStartAt": {
            "type": [
              "string",
              "null"
            ]
          },
          "targetsChecks": {
            "type": "boolean"
          },
          "scheduledEndAt": {
            "type": "string"
          },
          "createdByUserId": {
            "type": [
              "string",
              "null"
            ]
          },
          "scheduledStartAt": {
            "type": "string"
          }
        },
        "additionalProperties": false
      }
    }
  },
  "additionalProperties": false
}
list_status_maintenance annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
create_status_maintenance — Create Status Maintenance
Advertised by the server during the last successful anonymous check.
Open-world

Create a scheduled status-page maintenance window. Dates use ISO 8601 UTC. Use list_status_maintenance_targets to choose groupId or checkIds (mutually exclusive). Omit both for all monitors when creating; omit both when editing to preserve scope. Set groupId and checkIds to null to target all monitors. isPublic defaults to true on creation. Public changes queue subscriber notifications for background delivery with retries. Success confirms the change and queue commit, not email delivery. Private windows still suppress monitoring alerts during the active schedule.

create_status_maintenance input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "title",
    "scheduledStartAt",
    "scheduledEndAt",
    "projectId"
  ],
  "properties": {
    "state": {
      "enum": [
        "scheduled",
        "in_progress",
        "completed",
        "cancelled"
      ],
      "type": "string",
      "default": "scheduled"
    },
    "title": {
      "type": "string",
      "maxLength": 160,
      "minLength": 1
    },
    "groupId": {
      "type": [
        "string",
        "null"
      ]
    },
    "checkIds": {
      "anyOf": [
        {
          "type": "array",
          "items": {
            "type": "string",
            "format": "cuid",
            "pattern": "^[cC][0-9a-z]{6,}$"
          },
          "maxItems": 500,
          "minItems": 1
        },
        {
          "type": "null"
        }
      ]
    },
    "isPublic": {
      "type": "boolean",
      "default": true
    },
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    },
    "actualEndAt": {
      "anyOf": [
        {
          "type": "string",
          "format": "date-time",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
        },
        {
          "type": "null"
        }
      ]
    },
    "description": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 5000
        },
        {
          "type": "null"
        }
      ]
    },
    "actualStartAt": {
      "anyOf": [
        {
          "type": "string",
          "format": "date-time",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
        },
        {
          "type": "null"
        }
      ]
    },
    "scheduledEndAt": {
      "type": "string",
      "format": "date-time",
      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
    },
    "scheduledStartAt": {
      "type": "string",
      "format": "date-time",
      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
    }
  }
}
create_status_maintenance output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "maintenance"
  ],
  "properties": {
    "maintenance": {
      "type": "object",
      "required": [
        "id",
        "projectId",
        "title",
        "description",
        "groupId",
        "targetsChecks",
        "checkIds",
        "group",
        "checks",
        "scheduledStartAt",
        "scheduledEndAt",
        "actualStartAt",
        "actualEndAt",
        "state",
        "isPublic",
        "createdByUserId",
        "createdAt",
        "updatedAt",
        "updates"
      ],
      "properties": {
        "id": {
          "type": "string"
        },
        "group": {
          "anyOf": [
            {
              "type": "object",
              "required": [
                "id",
                "name"
              ],
              "properties": {
                "id": {
                  "type": "string"
                },
                "name": {
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            {
              "type": "null"
            }
          ]
        },
        "state": {
          "enum": [
            "scheduled",
            "in_progress",
            "completed",
            "cancelled"
          ],
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "checks": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "id",
              "name"
            ],
            "properties": {
              "id": {
                "type": "string"
              },
              "name": {
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        },
        "groupId": {
          "type": [
            "string",
            "null"
          ]
        },
        "updates": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "id",
              "maintenanceId",
              "state",
              "message",
              "isPublic",
              "createdByUserId",
              "createdAt",
              "editedAt"
            ],
            "properties": {
              "id": {
                "type": "string"
              },
              "state": {
                "enum": [
                  "scheduled",
                  "in_progress",
                  "completed",
                  "cancelled"
                ],
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "editedAt": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "isPublic": {
                "type": "boolean"
              },
              "createdAt": {
                "type": "string"
              },
              "maintenanceId": {
                "type": "string"
              },
              "createdByUserId": {
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "additionalProperties": false
          }
        },
        "checkIds": {
          "anyOf": [
            {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            {
              "type": "null"
            }
          ]
        },
        "isPublic": {
          "type": "boolean"
        },
        "createdAt": {
          "type": "string"
        },
        "projectId": {
          "type": "string"
        },
        "updatedAt": {
          "type": "string"
        },
        "actualEndAt": {
          "type": [
            "string",
            "null"
          ]
        },
        "description": {
          "type": [
            "string",
            "null"
          ]
        },
        "actualStartAt": {
          "type": [
            "string",
            "null"
          ]
        },
        "targetsChecks": {
          "type": "boolean"
        },
        "scheduledEndAt": {
          "type": "string"
        },
        "createdByUserId": {
          "type": [
            "string",
            "null"
          ]
        },
        "scheduledStartAt": {
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "dashboardUrl": {
      "type": "string",
      "description": "Full dashboard URL of the affected resource"
    }
  },
  "additionalProperties": false
}
create_status_maintenance annotations
{
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": false
}
update_status_maintenance — Update Status Maintenance
Advertised by the server during the last successful anonymous check.
Open-world

Edit maintenance details, schedule, scope or visibility. For a state change with a timeline message, use add_status_maintenance_update. Use list_status_maintenance_targets to choose groupId or checkIds (mutually exclusive). Omit both for all monitors when creating; omit both when editing to preserve scope. Set groupId and checkIds to null to target all monitors. isPublic defaults to true on creation. Public changes queue subscriber notifications for background delivery with retries. Success confirms the change and queue commit, not email delivery. Private windows still suppress monitoring alerts during the active schedule.

update_status_maintenance input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId",
    "maintenanceId"
  ],
  "properties": {
    "state": {
      "enum": [
        "scheduled",
        "in_progress",
        "completed",
        "cancelled"
      ],
      "type": "string"
    },
    "title": {
      "type": "string",
      "maxLength": 160,
      "minLength": 1
    },
    "groupId": {
      "type": [
        "string",
        "null"
      ]
    },
    "checkIds": {
      "anyOf": [
        {
          "type": "array",
          "items": {
            "type": "string",
            "format": "cuid",
            "pattern": "^[cC][0-9a-z]{6,}$"
          },
          "maxItems": 500,
          "minItems": 1
        },
        {
          "type": "null"
        }
      ]
    },
    "isPublic": {
      "type": "boolean"
    },
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    },
    "actualEndAt": {
      "anyOf": [
        {
          "type": "string",
          "format": "date-time",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
        },
        {
          "type": "null"
        }
      ]
    },
    "description": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 5000
        },
        {
          "type": "null"
        }
      ]
    },
    "actualStartAt": {
      "anyOf": [
        {
          "type": "string",
          "format": "date-time",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
        },
        {
          "type": "null"
        }
      ]
    },
    "maintenanceId": {
      "type": "string",
      "format": "cuid",
      "pattern": "^[cC][0-9a-z]{6,}$",
      "description": "Maintenance ID from list_status_maintenance"
    },
    "scheduledEndAt": {
      "type": "string",
      "format": "date-time",
      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
    },
    "scheduledStartAt": {
      "type": "string",
      "format": "date-time",
      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
    }
  }
}
update_status_maintenance output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "maintenance"
  ],
  "properties": {
    "maintenance": {
      "type": "object",
      "required": [
        "id",
        "projectId",
        "title",
        "description",
        "groupId",
        "targetsChecks",
        "checkIds",
        "group",
        "checks",
        "scheduledStartAt",
        "scheduledEndAt",
        "actualStartAt",
        "actualEndAt",
        "state",
        "isPublic",
        "createdByUserId",
        "createdAt",
        "updatedAt",
        "updates"
      ],
      "properties": {
        "id": {
          "type": "string"
        },
        "group": {
          "anyOf": [
            {
              "type": "object",
              "required": [
                "id",
                "name"
              ],
              "properties": {
                "id": {
                  "type": "string"
                },
                "name": {
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            {
              "type": "null"
            }
          ]
        },
        "state": {
          "enum": [
            "scheduled",
            "in_progress",
            "completed",
            "cancelled"
          ],
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "checks": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "id",
              "name"
            ],
            "properties": {
              "id": {
                "type": "string"
              },
              "name": {
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        },
        "groupId": {
          "type": [
            "string",
            "null"
          ]
        },
        "updates": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "id",
              "maintenanceId",
              "state",
              "message",
              "isPublic",
              "createdByUserId",
              "createdAt",
              "editedAt"
            ],
            "properties": {
              "id": {
                "type": "string"
              },
              "state": {
                "enum": [
                  "scheduled",
                  "in_progress",
                  "completed",
                  "cancelled"
                ],
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "editedAt": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "isPublic": {
                "type": "boolean"
              },
              "createdAt": {
                "type": "string"
              },
              "maintenanceId": {
                "type": "string"
              },
              "createdByUserId": {
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "additionalProperties": false
          }
        },
        "checkIds": {
          "anyOf": [
            {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            {
              "type": "null"
            }
          ]
        },
        "isPublic": {
          "type": "boolean"
        },
        "createdAt": {
          "type": "string"
        },
        "projectId": {
          "type": "string"
        },
        "updatedAt": {
          "type": "string"
        },
        "actualEndAt": {
          "type": [
            "string",
            "null"
          ]
        },
        "description": {
          "type": [
            "string",
            "null"
          ]
        },
        "actualStartAt": {
          "type": [
            "string",
            "null"
          ]
        },
        "targetsChecks": {
          "type": "boolean"
        },
        "scheduledEndAt": {
          "type": "string"
        },
        "createdByUserId": {
          "type": [
            "string",
            "null"
          ]
        },
        "scheduledStartAt": {
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "dashboardUrl": {
      "type": "string",
      "description": "Full dashboard URL of the affected resource"
    }
  },
  "additionalProperties": false
}
update_status_maintenance annotations
{
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": false
}
delete_status_maintenance — Delete Status Maintenance
Advertised by the server during the last successful anonymous check.
Advertised destructive

Permanently delete a maintenance window and its timeline. To retain history, use add_status_maintenance_update with state cancelled instead.

delete_status_maintenance input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId",
    "maintenanceId"
  ],
  "properties": {
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    },
    "maintenanceId": {
      "type": "string",
      "format": "cuid",
      "pattern": "^[cC][0-9a-z]{6,}$",
      "description": "Maintenance ID from list_status_maintenance"
    }
  }
}
delete_status_maintenance output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "success"
  ],
  "properties": {
    "success": {
      "type": "boolean"
    },
    "dashboardUrl": {
      "type": "string",
      "description": "Full dashboard URL of the affected resource"
    }
  },
  "additionalProperties": false
}
delete_status_maintenance annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": true
}
add_status_maintenance_update — Add Maintenance Update
Advertised by the server during the last successful anonymous check.
Open-world

Post a timeline message and transition state (scheduled, in_progress, completed or cancelled). isPublic and notifySubscribers default to true. Private updates cannot change the state of public maintenance. Pass expectedState and expectedIsPublic from the latest read for conflict detection; reuse a requestId UUID for retries of the same post.

add_status_maintenance_update input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "state",
    "message",
    "projectId",
    "maintenanceId"
  ],
  "properties": {
    "state": {
      "enum": [
        "scheduled",
        "in_progress",
        "completed",
        "cancelled"
      ],
      "type": "string"
    },
    "message": {
      "type": "string",
      "maxLength": 5000,
      "minLength": 1
    },
    "isPublic": {
      "type": "boolean",
      "default": true
    },
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    },
    "requestId": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    },
    "expectedState": {
      "enum": [
        "scheduled",
        "in_progress",
        "completed",
        "cancelled"
      ],
      "type": "string"
    },
    "maintenanceId": {
      "type": "string",
      "format": "cuid",
      "pattern": "^[cC][0-9a-z]{6,}$",
      "description": "Maintenance ID from list_status_maintenance"
    },
    "expectedIsPublic": {
      "type": "boolean"
    },
    "notifySubscribers": {
      "type": "boolean",
      "default": true
    }
  },
  "additionalProperties": false
}
add_status_maintenance_update output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "update"
  ],
  "properties": {
    "update": {
      "type": "object",
      "required": [
        "id",
        "maintenanceId",
        "state",
        "message",
        "isPublic",
        "createdByUserId",
        "createdAt",
        "editedAt"
      ],
      "properties": {
        "id": {
          "type": "string"
        },
        "state": {
          "enum": [
            "scheduled",
            "in_progress",
            "completed",
            "cancelled"
          ],
          "type": "string"
        },
        "message": {
          "type": "string"
        },
        "editedAt": {
          "type": [
            "string",
            "null"
          ]
        },
        "isPublic": {
          "type": "boolean"
        },
        "createdAt": {
          "type": "string"
        },
        "maintenanceId": {
          "type": "string"
        },
        "createdByUserId": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "additionalProperties": false
    },
    "dashboardUrl": {
      "type": "string",
      "description": "Full dashboard URL of the affected resource"
    },
    "notificationFailed": {
      "type": "boolean"
    }
  },
  "additionalProperties": false
}
add_status_maintenance_update annotations
{
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": false
}
edit_status_maintenance_update — Edit Maintenance Update
Advertised by the server during the last successful anonymous check.

Correct a historical maintenance timeline message only. State and visibility remain immutable; this does not send subscriber notifications.

edit_status_maintenance_update input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "message",
    "projectId",
    "maintenanceId",
    "updateId"
  ],
  "properties": {
    "message": {
      "type": "string",
      "maxLength": 5000,
      "minLength": 1
    },
    "updateId": {
      "type": "string",
      "format": "cuid",
      "pattern": "^[cC][0-9a-z]{6,}$"
    },
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    },
    "maintenanceId": {
      "type": "string",
      "format": "cuid",
      "pattern": "^[cC][0-9a-z]{6,}$",
      "description": "Maintenance ID from list_status_maintenance"
    }
  },
  "additionalProperties": false
}
edit_status_maintenance_update output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "update"
  ],
  "properties": {
    "update": {
      "type": "object",
      "required": [
        "id",
        "maintenanceId",
        "state",
        "message",
        "isPublic",
        "createdByUserId",
        "createdAt",
        "editedAt"
      ],
      "properties": {
        "id": {
          "type": "string"
        },
        "state": {
          "enum": [
            "scheduled",
            "in_progress",
            "completed",
            "cancelled"
          ],
          "type": "string"
        },
        "message": {
          "type": "string"
        },
        "editedAt": {
          "type": [
            "string",
            "null"
          ]
        },
        "isPublic": {
          "type": "boolean"
        },
        "createdAt": {
          "type": "string"
        },
        "maintenanceId": {
          "type": "string"
        },
        "createdByUserId": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "additionalProperties": false
    },
    "dashboardUrl": {
      "type": "string",
      "description": "Full dashboard URL of the affected resource"
    },
    "notificationFailed": {
      "type": "boolean"
    }
  },
  "additionalProperties": false
}
edit_status_maintenance_update annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_status_summary — Get Status Summary
Advertised by the server during the last successful anonymous check.
Advertised read-only

Overall status page health: overall state, per-group state, monitor counts, active incidents and 24h/90d uptime (0-1, null without data). Maintenance windows show as maintenance.

get_status_summary input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId"
  ],
  "properties": {
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    }
  }
}
get_status_summary output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "summary"
  ],
  "properties": {
    "summary": {
      "type": "object",
      "required": [
        "overallState",
        "totalGroups",
        "totalChecks",
        "enabledChecks",
        "activeIncidents",
        "uptime24h",
        "uptime90d",
        "groups"
      ],
      "properties": {
        "groups": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "id",
              "name",
              "isPublic",
              "state",
              "checkCount"
            ],
            "properties": {
              "id": {
                "type": "string"
              },
              "name": {
                "type": "string"
              },
              "state": {
                "enum": [
                  "unknown",
                  "operational",
                  "degraded",
                  "major_outage",
                  "maintenance"
                ],
                "type": "string"
              },
              "isPublic": {
                "type": "boolean"
              },
              "checkCount": {
                "type": "number"
              }
            },
            "additionalProperties": false
          }
        },
        "uptime24h": {
          "type": [
            "number",
            "null"
          ]
        },
        "uptime90d": {
          "type": [
            "number",
            "null"
          ]
        },
        "totalChecks": {
          "type": "number"
        },
        "totalGroups": {
          "type": "number"
        },
        "overallState": {
          "enum": [
            "unknown",
            "operational",
            "degraded",
            "major_outage",
            "maintenance"
          ],
          "type": "string"
        },
        "enabledChecks": {
          "type": "number"
        },
        "activeIncidents": {
          "type": "number"
        }
      },
      "additionalProperties": false
    }
  },
  "additionalProperties": false
}
get_status_summary annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_status_history — Get Status History
Advertised by the server during the last successful anonymous check.
Advertised read-only

Uptime history for a window (24h, 7d, 30d or 90d; default 90d) as bucketed points. Filter by groupId or checkId; without checkId only monitors included in uptime count. Maintenance is excluded.

get_status_history input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId"
  ],
  "properties": {
    "window": {
      "enum": [
        "24h",
        "7d",
        "30d",
        "90d"
      ],
      "type": "string"
    },
    "checkId": {
      "type": "string",
      "format": "cuid",
      "pattern": "^[cC][0-9a-z]{6,}$",
      "description": "Monitor ID from list_status_checks"
    },
    "groupId": {
      "type": "string",
      "format": "cuid",
      "pattern": "^[cC][0-9a-z]{6,}$",
      "description": "Group ID from list_status_groups"
    },
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    }
  }
}
get_status_history output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "window",
    "uptime",
    "points"
  ],
  "properties": {
    "points": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "timestamp",
          "uptime",
          "totalRuns",
          "successfulRuns",
          "failedRuns",
          "knownDurationMs",
          "upDurationMs",
          "downDurationMs"
        ],
        "properties": {
          "uptime": {
            "type": [
              "number",
              "null"
            ]
          },
          "timestamp": {
            "type": "string"
          },
          "totalRuns": {
            "type": "number"
          },
          "failedRuns": {
            "type": "number"
          },
          "upDurationMs": {
            "type": "number"
          },
          "downDurationMs": {
            "type": "number"
          },
          "successfulRuns": {
            "type": "number"
          },
          "knownDurationMs": {
            "type": "number"
          }
        },
        "additionalProperties": false
      }
    },
    "uptime": {
      "type": [
        "number",
        "null"
      ]
    },
    "window": {
      "enum": [
        "24h",
        "7d",
        "30d",
        "90d"
      ],
      "type": "string"
    }
  },
  "additionalProperties": false
}
get_status_history annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
list_status_groups — List Status Groups
Advertised by the server during the last successful anonymous check.
Advertised read-only

List status page groups (components) in display order with visibility and monitor/incident counts.

list_status_groups input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId"
  ],
  "properties": {
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    }
  }
}
list_status_groups output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "groups"
  ],
  "properties": {
    "groups": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "id",
          "projectId",
          "name",
          "slug",
          "description",
          "sortOrder",
          "isPublic",
          "createdAt",
          "updatedAt"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          },
          "_count": {
            "type": "object",
            "required": [
              "checks",
              "incidents"
            ],
            "properties": {
              "checks": {
                "type": "number"
              },
              "incidents": {
                "type": "number"
              }
            },
            "additionalProperties": false
          },
          "isPublic": {
            "type": "boolean"
          },
          "createdAt": {
            "type": "string"
          },
          "projectId": {
            "type": "string"
          },
          "sortOrder": {
            "type": "number"
          },
          "updatedAt": {
            "type": "string"
          },
          "description": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "additionalProperties": false
      }
    }
  },
  "additionalProperties": false
}
list_status_groups annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
create_status_group — Create Status Group
Advertised by the server during the last successful anonymous check.

Create a status page group (component). slug is lowercase letters, digits and dashes, unique per project. isPublic defaults to true.

create_status_group input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "name",
    "slug",
    "projectId"
  ],
  "properties": {
    "name": {
      "type": "string",
      "maxLength": 120,
      "minLength": 1
    },
    "slug": {
      "type": "string",
      "pattern": "^[a-z0-9-]+$",
      "maxLength": 120,
      "minLength": 1
    },
    "isPublic": {
      "type": "boolean"
    },
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    },
    "sortOrder": {
      "type": "integer",
      "maximum": 100000,
      "minimum": 0
    },
    "description": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 500
        },
        {
          "type": "null"
        }
      ]
    }
  }
}
create_status_group output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "group"
  ],
  "properties": {
    "group": {
      "type": "object",
      "required": [
        "id",
        "projectId",
        "name",
        "slug",
        "description",
        "sortOrder",
        "isPublic",
        "createdAt",
        "updatedAt"
      ],
      "properties": {
        "id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "slug": {
          "type": "string"
        },
        "_count": {
          "type": "object",
          "required": [
            "checks",
            "incidents"
          ],
          "properties": {
            "checks": {
              "type": "number"
            },
            "incidents": {
              "type": "number"
            }
          },
          "additionalProperties": false
        },
        "isPublic": {
          "type": "boolean"
        },
        "createdAt": {
          "type": "string"
        },
        "projectId": {
          "type": "string"
        },
        "sortOrder": {
          "type": "number"
        },
        "updatedAt": {
          "type": "string"
        },
        "description": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "additionalProperties": false
    },
    "dashboardUrl": {
      "type": "string",
      "description": "Full dashboard URL of the affected resource"
    }
  },
  "additionalProperties": false
}
create_status_group annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
update_status_group — Update Status Group
Advertised by the server during the last successful anonymous check.

Edit a group name, slug, description, sort order or visibility.

update_status_group input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId",
    "groupId"
  ],
  "properties": {
    "name": {
      "type": "string",
      "maxLength": 120,
      "minLength": 1
    },
    "slug": {
      "type": "string",
      "pattern": "^[a-z0-9-]+$",
      "maxLength": 120,
      "minLength": 1
    },
    "groupId": {
      "type": "string",
      "format": "cuid",
      "pattern": "^[cC][0-9a-z]{6,}$",
      "description": "Group ID from list_status_groups"
    },
    "isPublic": {
      "type": "boolean"
    },
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    },
    "sortOrder": {
      "type": "integer",
      "maximum": 100000,
      "minimum": 0
    },
    "description": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 500
        },
        {
          "type": "null"
        }
      ]
    }
  }
}
update_status_group output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "group"
  ],
  "properties": {
    "group": {
      "type": "object",
      "required": [
        "id",
        "projectId",
        "name",
        "slug",
        "description",
        "sortOrder",
        "isPublic",
        "createdAt",
        "updatedAt"
      ],
      "properties": {
        "id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "slug": {
          "type": "string"
        },
        "_count": {
          "type": "object",
          "required": [
            "checks",
            "incidents"
          ],
          "properties": {
            "checks": {
              "type": "number"
            },
            "incidents": {
              "type": "number"
            }
          },
          "additionalProperties": false
        },
        "isPublic": {
          "type": "boolean"
        },
        "createdAt": {
          "type": "string"
        },
        "projectId": {
          "type": "string"
        },
        "sortOrder": {
          "type": "number"
        },
        "updatedAt": {
          "type": "string"
        },
        "description": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "additionalProperties": false
    },
    "dashboardUrl": {
      "type": "string",
      "description": "Full dashboard URL of the affected resource"
    }
  },
  "additionalProperties": false
}
update_status_group annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
delete_status_group — Delete Status Group
Advertised by the server during the last successful anonymous check.
Advertised destructive

Permanently delete a group together with its monitors and their results. Scheduled or in-progress maintenance for the group is cancelled.

delete_status_group input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId",
    "groupId"
  ],
  "properties": {
    "groupId": {
      "type": "string",
      "format": "cuid",
      "pattern": "^[cC][0-9a-z]{6,}$",
      "description": "Group ID from list_status_groups"
    },
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    }
  }
}
delete_status_group output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "success"
  ],
  "properties": {
    "success": {
      "type": "boolean"
    },
    "dashboardUrl": {
      "type": "string",
      "description": "Full dashboard URL of the affected resource"
    }
  },
  "additionalProperties": false
}
delete_status_group annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": true
}
list_status_checks — List Status Monitors
Advertised by the server during the last successful anonymous check.
Advertised read-only

List monitors (status checks) with type, target, schedule, current state and last run. Set includeDailyUptime for 30 days of daily uptime per monitor.

list_status_checks input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId"
  ],
  "properties": {
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    },
    "includeDailyUptime": {
      "type": "boolean"
    }
  }
}
list_status_checks output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "checks"
  ],
  "properties": {
    "checks": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "id",
          "projectId",
          "groupId",
          "checkType",
          "name",
          "description",
          "url",
          "method",
          "hasHeaders",
          "timeoutMs",
          "intervalSeconds",
          "expectedStatusMin",
          "expectedStatusMax",
          "heartbeatGraceMinutes",
          "heartbeatUrl",
          "lastHeartbeatAt",
          "sslWarningDays",
          "lastCertificateExpiresAt",
          "lastCertificateDaysRemaining",
          "isEnabled",
          "isPublic",
          "includeInUptime",
          "failureThreshold",
          "successThreshold",
          "currentState",
          "lastRunAt",
          "lastSuccessAt",
          "lastFailureAt",
          "lastLatencyMs",
          "consecutiveFailures",
          "consecutiveSuccesses",
          "createdAt",
          "updatedAt",
          "dailyUptime"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "url": {
            "type": [
              "string",
              "null"
            ]
          },
          "name": {
            "type": "string"
          },
          "method": {
            "enum": [
              "GET",
              "HEAD"
            ],
            "type": "string"
          },
          "groupId": {
            "type": "string"
          },
          "isPublic": {
            "type": "boolean"
          },
          "checkType": {
            "enum": [
              "http",
              "ssl",
              "heartbeat"
            ],
            "type": "string"
          },
          "createdAt": {
            "type": "string"
          },
          "isEnabled": {
            "type": "boolean"
          },
          "lastRunAt": {
            "type": [
              "string",
              "null"
            ]
          },
          "projectId": {
            "type": "string"
          },
          "timeoutMs": {
            "type": "number"
          },
          "updatedAt": {
            "type": "string"
          },
          "hasHeaders": {
            "type": "boolean"
          },
          "dailyUptime": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "date",
                "uptime"
              ],
              "properties": {
                "date": {
                  "type": "string"
                },
                "uptime": {
                  "type": [
                    "number",
                    "null"
                  ]
                }
              },
              "additionalProperties": false
            }
          },
          "description": {
            "type": [
              "string",
              "null"
            ]
          },
          "currentState": {
            "enum": [
              "unknown",
              "up",
              "down",
              "maintenance"
            ],
            "type": "string"
          },
          "heartbeatUrl": {
            "type": [
              "string",
              "null"
            ]
          },
          "lastFailureAt": {
            "type": [
              "string",
              "null"
            ]
          },
          "lastLatencyMs": {
            "type": [
              "number",
              "null"
            ]
          },
          "lastSuccessAt": {
            "type": [
              "string",
              "null"
            ]
          },
          "sslWarningDays": {
            "type": [
              "number",
              "null"
            ]
          },
          "includeInUptime": {
            "type": "boolean"
          },
          "intervalSeconds": {
            "type": "number"
          },
          "lastHeartbeatAt": {
            "type": [
              "string",
              "null"
            ]
          },
          "failureThreshold": {
            "type": "number"
          },
          "successThreshold": {
            "type": "number"
          },
          "expectedStatusMax": {
            "type": "number"
          },
          "expectedStatusMin": {
            "type": "number"
          },
          "consecutiveFailures": {
            "type": "number"
          },
          "consecutiveSuccesses": {
            "type": "number"
          },
          "heartbeatGraceMinutes": {
            "type": [
              "number",
              "null"
            ]
          },
          "lastCertificateExpiresAt": {
            "type": [
              "string",
              "null"
            ]
          },
          "lastCertificateDaysRemaining": {
            "type": [
              "number",
              "null"
            ]
          }
        },
        "additionalProperties": false
      }
    }
  },
  "additionalProperties": false
}
list_status_checks annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
create_status_check — Create Status Monitor
Advertised by the server during the last successful anonymous check.
Open-world

Create an http, ssl or heartbeat monitor in a group. http and ssl monitors require a public url; heartbeat monitors return a heartbeatUrl for your job to ping. Probe header values are write-only and never returned (hasHeaders reports whether any are set). Creating an enabled monitor runs it once immediately. Plan limits apply to monitor count and interval.

create_status_check input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "groupId",
    "name",
    "projectId"
  ],
  "properties": {
    "url": {
      "type": "string"
    },
    "name": {
      "type": "string",
      "maxLength": 120,
      "minLength": 1
    },
    "method": {
      "enum": [
        "GET",
        "HEAD"
      ],
      "type": "string",
      "default": "GET"
    },
    "groupId": {
      "type": "string",
      "format": "cuid",
      "pattern": "^[cC][0-9a-z]{6,}$"
    },
    "headers": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "name",
          "value"
        ],
        "properties": {
          "name": {
            "type": "string",
            "maxLength": 200,
            "minLength": 1
          },
          "value": {
            "type": "string",
            "maxLength": 4000
          }
        }
      },
      "maxItems": 20
    },
    "isPublic": {
      "type": "boolean",
      "default": true
    },
    "checkType": {
      "enum": [
        "http",
        "ssl",
        "heartbeat"
      ],
      "type": "string",
      "default": "http"
    },
    "isEnabled": {
      "type": "boolean",
      "default": true
    },
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    },
    "timeoutMs": {
      "type": "integer",
      "default": 10000,
      "maximum": 15000,
      "minimum": 1000
    },
    "description": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 500
        },
        {
          "type": "null"
        }
      ]
    },
    "sslWarningDays": {
      "type": "integer",
      "default": 14,
      "maximum": 365,
      "minimum": 1
    },
    "includeInUptime": {
      "type": "boolean",
      "default": true
    },
    "intervalSeconds": {
      "type": "integer",
      "default": 300,
      "maximum": 86400,
      "minimum": 1
    },
    "failureThreshold": {
      "type": "integer",
      "default": 1,
      "maximum": 10,
      "minimum": 1
    },
    "successThreshold": {
      "type": "integer",
      "default": 1,
      "maximum": 10,
      "minimum": 1
    },
    "expectedStatusMax": {
      "type": "integer",
      "default": 299,
      "maximum": 599,
      "minimum": 100
    },
    "expectedStatusMin": {
      "type": "integer",
      "default": 200,
      "maximum": 599,
      "minimum": 100
    },
    "heartbeatGraceMinutes": {
      "type": "integer",
      "default": 10,
      "maximum": 1440,
      "minimum": 1
    }
  }
}
create_status_check output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "check"
  ],
  "properties": {
    "check": {
      "type": "object",
      "required": [
        "id",
        "projectId",
        "groupId",
        "checkType",
        "name",
        "description",
        "url",
        "method",
        "hasHeaders",
        "timeoutMs",
        "intervalSeconds",
        "expectedStatusMin",
        "expectedStatusMax",
        "heartbeatGraceMinutes",
        "heartbeatUrl",
        "lastHeartbeatAt",
        "sslWarningDays",
        "lastCertificateExpiresAt",
        "lastCertificateDaysRemaining",
        "isEnabled",
        "isPublic",
        "includeInUptime",
        "failureThreshold",
        "successThreshold",
        "currentState",
        "lastRunAt",
        "lastSuccessAt",
        "lastFailureAt",
        "lastLatencyMs",
        "consecutiveFailures",
        "consecutiveSuccesses",
        "createdAt",
        "updatedAt",
        "dailyUptime"
      ],
      "properties": {
        "id": {
          "type": "string"
        },
        "url": {
          "type": [
            "string",
            "null"
          ]
        },
        "name": {
          "type": "string"
        },
        "method": {
          "enum": [
            "GET",
            "HEAD"
          ],
          "type": "string"
        },
        "groupId": {
          "type": "string"
        },
        "isPublic": {
          "type": "boolean"
        },
        "checkType": {
          "enum": [
            "http",
            "ssl",
            "heartbeat"
          ],
          "type": "string"
        },
        "createdAt": {
          "type": "string"
        },
        "isEnabled": {
          "type": "boolean"
        },
        "lastRunAt": {
          "type": [
            "string",
            "null"
          ]
        },
        "projectId": {
          "type": "string"
        },
        "timeoutMs": {
          "type": "number"
        },
        "updatedAt": {
          "type": "string"
        },
        "hasHeaders": {
          "type": "boolean"
        },
        "dailyUptime": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "date",
              "uptime"
            ],
            "properties": {
              "date": {
                "type": "string"
              },
              "uptime": {
                "type": [
                  "number",
                  "null"
                ]
              }
            },
            "additionalProperties": false
          }
        },
        "description": {
          "type": [
            "string",
            "null"
          ]
        },
        "currentState": {
          "enum": [
            "unknown",
            "up",
            "down",
            "maintenance"
          ],
          "type": "string"
        },
        "heartbeatUrl": {
          "type": [
            "string",
            "null"
          ]
        },
        "lastFailureAt": {
          "type": [
            "string",
            "null"
          ]
        },
        "lastLatencyMs": {
          "type": [
            "number",
            "null"
          ]
        },
        "lastSuccessAt": {
          "type": [
            "string",
            "null"
          ]
        },
        "sslWarningDays": {
          "type": [
            "number",
            "null"
          ]
        },
        "includeInUptime": {
          "type": "boolean"
        },
        "intervalSeconds": {
          "type": "number"
        },
        "lastHeartbeatAt": {
          "type": [
            "string",
            "null"
          ]
        },
        "failureThreshold": {
          "type": "number"
        },
        "successThreshold": {
          "type": "number"
        },
        "expectedStatusMax": {
          "type": "number"
        },
        "expectedStatusMin": {
          "type": "number"
        },
        "consecutiveFailures": {
          "type": "number"
        },
        "consecutiveSuccesses": {
          "type": "number"
        },
        "heartbeatGraceMinutes": {
          "type": [
            "number",
            "null"
          ]
        },
        "lastCertificateExpiresAt": {
          "type": [
            "string",
            "null"
          ]
        },
        "lastCertificateDaysRemaining": {
          "type": [
            "number",
            "null"
          ]
        }
      },
      "additionalProperties": false
    },
    "dashboardUrl": {
      "type": "string",
      "description": "Full dashboard URL of the affected resource"
    }
  },
  "additionalProperties": false
}
create_status_check annotations
{
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": false
}
update_status_check — Update Status Monitor
Advertised by the server during the last successful anonymous check.
Open-world

Edit a monitor. Passing headers replaces all stored headers; pass [] to clear them. http and ssl monitors require a public url; heartbeat monitors return a heartbeatUrl for your job to ping. Probe header values are write-only and never returned (hasHeaders reports whether any are set). Creating an enabled monitor runs it once immediately.

update_status_check input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId",
    "checkId"
  ],
  "properties": {
    "url": {
      "type": "string"
    },
    "name": {
      "type": "string",
      "maxLength": 120,
      "minLength": 1
    },
    "method": {
      "enum": [
        "GET",
        "HEAD"
      ],
      "type": "string"
    },
    "checkId": {
      "type": "string",
      "format": "cuid",
      "pattern": "^[cC][0-9a-z]{6,}$",
      "description": "Monitor ID from list_status_checks"
    },
    "groupId": {
      "type": "string",
      "format": "cuid",
      "pattern": "^[cC][0-9a-z]{6,}$"
    },
    "headers": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "name",
          "value"
        ],
        "properties": {
          "name": {
            "type": "string",
            "maxLength": 200,
            "minLength": 1
          },
          "value": {
            "type": "string",
            "maxLength": 4000
          }
        }
      },
      "maxItems": 20
    },
    "isPublic": {
      "type": "boolean"
    },
    "checkType": {
      "enum": [
        "http",
        "ssl",
        "heartbeat"
      ],
      "type": "string"
    },
    "isEnabled": {
      "type": "boolean"
    },
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    },
    "timeoutMs": {
      "type": "integer",
      "maximum": 15000,
      "minimum": 1000
    },
    "description": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 500
        },
        {
          "type": "null"
        }
      ]
    },
    "sslWarningDays": {
      "type": "integer",
      "maximum": 365,
      "minimum": 1
    },
    "includeInUptime": {
      "type": "boolean"
    },
    "intervalSeconds": {
      "type": "integer",
      "maximum": 86400,
      "minimum": 1
    },
    "failureThreshold": {
      "type": "integer",
      "maximum": 10,
      "minimum": 1
    },
    "successThreshold": {
      "type": "integer",
      "maximum": 10,
      "minimum": 1
    },
    "expectedStatusMax": {
      "type": "integer",
      "maximum": 599,
      "minimum": 100
    },
    "expectedStatusMin": {
      "type": "integer",
      "maximum": 599,
      "minimum": 100
    },
    "heartbeatGraceMinutes": {
      "type": "integer",
      "maximum": 1440,
      "minimum": 1
    }
  }
}
update_status_check output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "check"
  ],
  "properties": {
    "check": {
      "type": "object",
      "required": [
        "id",
        "projectId",
        "groupId",
        "checkType",
        "name",
        "description",
        "url",
        "method",
        "hasHeaders",
        "timeoutMs",
        "intervalSeconds",
        "expectedStatusMin",
        "expectedStatusMax",
        "heartbeatGraceMinutes",
        "heartbeatUrl",
        "lastHeartbeatAt",
        "sslWarningDays",
        "lastCertificateExpiresAt",
        "lastCertificateDaysRemaining",
        "isEnabled",
        "isPublic",
        "includeInUptime",
        "failureThreshold",
        "successThreshold",
        "currentState",
        "lastRunAt",
        "lastSuccessAt",
        "lastFailureAt",
        "lastLatencyMs",
        "consecutiveFailures",
        "consecutiveSuccesses",
        "createdAt",
        "updatedAt",
        "dailyUptime"
      ],
      "properties": {
        "id": {
          "type": "string"
        },
        "url": {
          "type": [
            "string",
            "null"
          ]
        },
        "name": {
          "type": "string"
        },
        "method": {
          "enum": [
            "GET",
            "HEAD"
          ],
          "type": "string"
        },
        "groupId": {
          "type": "string"
        },
        "isPublic": {
          "type": "boolean"
        },
        "checkType": {
          "enum": [
            "http",
            "ssl",
            "heartbeat"
          ],
          "type": "string"
        },
        "createdAt": {
          "type": "string"
        },
        "isEnabled": {
          "type": "boolean"
        },
        "lastRunAt": {
          "type": [
            "string",
            "null"
          ]
        },
        "projectId": {
          "type": "string"
        },
        "timeoutMs": {
          "type": "number"
        },
        "updatedAt": {
          "type": "string"
        },
        "hasHeaders": {
          "type": "boolean"
        },
        "dailyUptime": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "date",
              "uptime"
            ],
            "properties": {
              "date": {
                "type": "string"
              },
              "uptime": {
                "type": [
                  "number",
                  "null"
                ]
              }
            },
            "additionalProperties": false
          }
        },
        "description": {
          "type": [
            "string",
            "null"
          ]
        },
        "currentState": {
          "enum": [
            "unknown",
            "up",
            "down",
            "maintenance"
          ],
          "type": "string"
        },
        "heartbeatUrl": {
          "type": [
            "string",
            "null"
          ]
        },
        "lastFailureAt": {
          "type": [
            "string",
            "null"
          ]
        },
        "lastLatencyMs": {
          "type": [
            "number",
            "null"
          ]
        },
        "lastSuccessAt": {
          "type": [
            "string",
            "null"
          ]
        },
        "sslWarningDays": {
          "type": [
            "number",
            "null"
          ]
        },
        "includeInUptime": {
          "type": "boolean"
        },
        "intervalSeconds": {
          "type": "number"
        },
        "lastHeartbeatAt": {
          "type": [
            "string",
            "null"
          ]
        },
        "failureThreshold": {
          "type": "number"
        },
        "successThreshold": {
          "type": "number"
        },
        "expectedStatusMax": {
          "type": "number"
        },
        "expectedStatusMin": {
          "type": "number"
        },
        "consecutiveFailures": {
          "type": "number"
        },
        "consecutiveSuccesses": {
          "type": "number"
        },
        "heartbeatGraceMinutes": {
          "type": [
            "number",
            "null"
          ]
        },
        "lastCertificateExpiresAt": {
          "type": [
            "string",
            "null"
          ]
        },
        "lastCertificateDaysRemaining": {
          "type": [
            "number",
            "null"
          ]
        }
      },
      "additionalProperties": false
    },
    "dashboardUrl": {
      "type": "string",
      "description": "Full dashboard URL of the affected resource"
    }
  },
  "additionalProperties": false
}
update_status_check annotations
{
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
delete_status_check — Delete Status Monitor
Advertised by the server during the last successful anonymous check.
Advertised destructive

Permanently delete a monitor with its results and monitor-specific alert recipients. Set isEnabled false with update_status_check to pause instead.

delete_status_check input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId",
    "checkId"
  ],
  "properties": {
    "checkId": {
      "type": "string",
      "format": "cuid",
      "pattern": "^[cC][0-9a-z]{6,}$",
      "description": "Monitor ID from list_status_checks"
    },
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    }
  }
}
delete_status_check output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "success"
  ],
  "properties": {
    "success": {
      "type": "boolean"
    },
    "dashboardUrl": {
      "type": "string",
      "description": "Full dashboard URL of the affected resource"
    }
  },
  "additionalProperties": false
}
delete_status_check annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": true
}
run_status_check — Run Status Monitor
Advertised by the server during the last successful anonymous check.
Open-world

Run a monitor now and record the result. The outcome feeds the monitor state and may open or resolve an automated incident.

run_status_check input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId",
    "checkId"
  ],
  "properties": {
    "checkId": {
      "type": "string",
      "format": "cuid",
      "pattern": "^[cC][0-9a-z]{6,}$",
      "description": "Monitor ID from list_status_checks"
    },
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    }
  }
}
run_status_check output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "result"
  ],
  "properties": {
    "result": {
      "type": "object",
      "required": [
        "id",
        "checkId",
        "outcome",
        "httpStatus",
        "durationMs",
        "failureReason",
        "errorCode",
        "source",
        "startedAt",
        "finishedAt",
        "checkState",
        "isMaintenance"
      ],
      "properties": {
        "id": {
          "type": "string"
        },
        "source": {
          "enum": [
            "manual",
            "scheduler"
          ],
          "type": "string"
        },
        "checkId": {
          "type": "string"
        },
        "outcome": {
          "enum": [
            "up",
            "down",
            "timeout",
            "error"
          ],
          "type": "string"
        },
        "errorCode": {
          "type": [
            "string",
            "null"
          ]
        },
        "startedAt": {
          "type": "string"
        },
        "checkState": {
          "enum": [
            "unknown",
            "up",
            "down",
            "maintenance"
          ],
          "type": "string"
        },
        "durationMs": {
          "type": "number"
        },
        "finishedAt": {
          "type": "string"
        },
        "httpStatus": {
          "type": [
            "number",
            "null"
          ]
        },
        "failureReason": {
          "type": [
            "string",
            "null"
          ]
        },
        "isMaintenance": {
          "type": "boolean"
        }
      },
      "additionalProperties": false
    },
    "dashboardUrl": {
      "type": "string",
      "description": "Full dashboard URL of the affected resource"
    }
  },
  "additionalProperties": false
}
run_status_check annotations
{
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": false
}
list_status_incidents — List Status Incidents
Advertised by the server during the last successful anonymous check.
Advertised read-only

List automated and manual incidents (open first, then newest) with affected component and timeline updates (newest first).

list_status_incidents input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId"
  ],
  "properties": {
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    }
  }
}
list_status_incidents output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "incidents"
  ],
  "properties": {
    "incidents": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "id",
          "projectId",
          "groupId",
          "checkId",
          "group",
          "check",
          "title",
          "summary",
          "state",
          "currentStage",
          "source",
          "isPublic",
          "startedAt",
          "resolvedAt",
          "createdByUserId",
          "createdAt",
          "updatedAt",
          "updates"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "check": {
            "anyOf": [
              {
                "type": "object",
                "required": [
                  "id",
                  "name"
                ],
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "name": {
                    "type": "string"
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "null"
              }
            ]
          },
          "group": {
            "anyOf": [
              {
                "type": "object",
                "required": [
                  "id",
                  "name"
                ],
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "name": {
                    "type": "string"
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "null"
              }
            ]
          },
          "state": {
            "enum": [
              "investigating",
              "resolved"
            ],
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "source": {
            "enum": [
              "automated",
              "manual"
            ],
            "type": "string"
          },
          "checkId": {
            "type": [
              "string",
              "null"
            ]
          },
          "groupId": {
            "type": [
              "string",
              "null"
            ]
          },
          "summary": {
            "type": [
              "string",
              "null"
            ]
          },
          "updates": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "id",
                "incidentId",
                "stage",
                "message",
                "isPublic",
                "createdByUserId",
                "createdAt"
              ],
              "properties": {
                "id": {
                  "type": "string"
                },
                "stage": {
                  "enum": [
                    "investigating",
                    "identified",
                    "monitoring",
                    "resolved"
                  ],
                  "type": "string"
                },
                "message": {
                  "type": "string"
                },
                "isPublic": {
                  "type": "boolean"
                },
                "createdAt": {
                  "type": "string"
                },
                "incidentId": {
                  "type": "string"
                },
                "createdByUserId": {
                  "type": [
                    "string",
                    "null"
                  ]
                }
              },
              "additionalProperties": false
            }
          },
          "isPublic": {
            "type": "boolean"
          },
          "createdAt": {
            "type": "string"
          },
          "projectId": {
            "type": "string"
          },
          "startedAt": {
            "type": "string"
          },
          "updatedAt": {
            "type": "string"
          },
          "resolvedAt": {
            "type": [
              "string",
              "null"
            ]
          },
          "currentStage": {
            "enum": [
              "investigating",
              "identified",
              "monitoring",
              "resolved"
            ],
            "type": "string"
          },
          "createdByUserId": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "additionalProperties": false
      }
    }
  },
  "additionalProperties": false
}
list_status_incidents annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
create_status_incident — Create Status Incident
Advertised by the server during the last successful anonymous check.
Open-world

Open a manual incident, optionally tied to a groupId or checkId. Dates use ISO 8601 UTC. initialUpdateMessage (or summary) becomes the first timeline update. isPublic and notifySubscribers default to true: public changes queue subscriber notifications and alert recipients are notified in the background. Success confirms the change, not delivery.

create_status_incident input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "title",
    "startedAt",
    "projectId"
  ],
  "properties": {
    "title": {
      "type": "string",
      "maxLength": 160,
      "minLength": 1
    },
    "checkId": {
      "type": "string"
    },
    "groupId": {
      "type": "string"
    },
    "summary": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 5000
        },
        {
          "type": "null"
        }
      ]
    },
    "isPublic": {
      "type": "boolean",
      "default": true
    },
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    },
    "startedAt": {
      "type": "string",
      "format": "date-time",
      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
    },
    "resolvedAt": {
      "anyOf": [
        {
          "type": "string",
          "format": "date-time",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
        },
        {
          "type": "null"
        }
      ]
    },
    "currentStage": {
      "enum": [
        "investigating",
        "identified",
        "monitoring",
        "resolved"
      ],
      "type": "string",
      "default": "investigating"
    },
    "notifySubscribers": {
      "type": "boolean",
      "default": true
    },
    "initialUpdateMessage": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 5000
        },
        {
          "type": "null"
        }
      ]
    },
    "initialUpdateIsPublic": {
      "type": "boolean"
    }
  }
}
create_status_incident output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "incident"
  ],
  "properties": {
    "incident": {
      "type": "object",
      "required": [
        "id",
        "projectId",
        "groupId",
        "checkId",
        "group",
        "check",
        "title",
        "summary",
        "state",
        "currentStage",
        "source",
        "isPublic",
        "startedAt",
        "resolvedAt",
        "createdByUserId",
        "createdAt",
        "updatedAt",
        "updates"
      ],
      "properties": {
        "id": {
          "type": "string"
        },
        "check": {
          "anyOf": [
            {
              "type": "object",
              "required": [
                "id",
                "name"
              ],
              "properties": {
                "id": {
                  "type": "string"
                },
                "name": {
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            {
              "type": "null"
            }
          ]
        },
        "group": {
          "anyOf": [
            {
              "type": "object",
              "required": [
                "id",
                "name"
              ],
              "properties": {
                "id": {
                  "type": "string"
                },
                "name": {
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            {
              "type": "null"
            }
          ]
        },
        "state": {
          "enum": [
            "investigating",
            "resolved"
          ],
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "source": {
          "enum": [
            "automated",
            "manual"
          ],
          "type": "string"
        },
        "checkId": {
          "type": [
            "string",
            "null"
          ]
        },
        "groupId": {
          "type": [
            "string",
            "null"
          ]
        },
        "summary": {
          "type": [
            "string",
            "null"
          ]
        },
        "updates": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "id",
              "incidentId",
              "stage",
              "message",
              "isPublic",
              "createdByUserId",
              "createdAt"
            ],
            "properties": {
              "id": {
                "type": "string"
              },
              "stage": {
                "enum": [
                  "investigating",
                  "identified",
                  "monitoring",
                  "resolved"
                ],
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "isPublic": {
                "type": "boolean"
              },
              "createdAt": {
                "type": "string"
              },
              "incidentId": {
                "type": "string"
              },
              "createdByUserId": {
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "additionalProperties": false
          }
        },
        "isPublic": {
          "type": "boolean"
        },
        "createdAt": {
          "type": "string"
        },
        "projectId": {
          "type": "string"
        },
        "startedAt": {
          "type": "string"
        },
        "updatedAt": {
          "type": "string"
        },
        "resolvedAt": {
          "type": [
            "string",
            "null"
          ]
        },
        "currentStage": {
          "enum": [
            "investigating",
            "identified",
            "monitoring",
            "resolved"
          ],
          "type": "string"
        },
        "createdByUserId": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "additionalProperties": false
    },
    "dashboardUrl": {
      "type": "string",
      "description": "Full dashboard URL of the affected resource"
    }
  },
  "additionalProperties": false
}
create_status_incident annotations
{
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": false
}
update_status_incident — Update Status Incident
Advertised by the server during the last successful anonymous check.

Edit incident details, affected component, dates or visibility without notifying anyone. To change the stage, use add_status_incident_update.

update_status_incident input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId",
    "incidentId"
  ],
  "properties": {
    "title": {
      "type": "string",
      "maxLength": 160,
      "minLength": 1
    },
    "checkId": {
      "type": "string"
    },
    "groupId": {
      "type": "string"
    },
    "summary": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 5000
        },
        {
          "type": "null"
        }
      ]
    },
    "isPublic": {
      "type": "boolean"
    },
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    },
    "startedAt": {
      "type": "string",
      "format": "date-time",
      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
    },
    "incidentId": {
      "type": "string",
      "format": "cuid",
      "pattern": "^[cC][0-9a-z]{6,}$",
      "description": "Incident ID from list_status_incidents"
    },
    "resolvedAt": {
      "anyOf": [
        {
          "type": "string",
          "format": "date-time",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
        },
        {
          "type": "null"
        }
      ]
    },
    "currentStage": {
      "enum": [
        "investigating",
        "identified",
        "monitoring",
        "resolved"
      ],
      "type": "string"
    }
  }
}
update_status_incident output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "incident"
  ],
  "properties": {
    "incident": {
      "type": "object",
      "required": [
        "id",
        "projectId",
        "groupId",
        "checkId",
        "group",
        "check",
        "title",
        "summary",
        "state",
        "currentStage",
        "source",
        "isPublic",
        "startedAt",
        "resolvedAt",
        "createdByUserId",
        "createdAt",
        "updatedAt",
        "updates"
      ],
      "properties": {
        "id": {
          "type": "string"
        },
        "check": {
          "anyOf": [
            {
              "type": "object",
              "required": [
                "id",
                "name"
              ],
              "properties": {
                "id": {
                  "type": "string"
                },
                "name": {
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            {
              "type": "null"
            }
          ]
        },
        "group": {
          "anyOf": [
            {
              "type": "object",
              "required": [
                "id",
                "name"
              ],
              "properties": {
                "id": {
                  "type": "string"
                },
                "name": {
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            {
              "type": "null"
            }
          ]
        },
        "state": {
          "enum": [
            "investigating",
            "resolved"
          ],
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "source": {
          "enum": [
            "automated",
            "manual"
          ],
          "type": "string"
        },
        "checkId": {
          "type": [
            "string",
            "null"
          ]
        },
        "groupId": {
          "type": [
            "string",
            "null"
          ]
        },
        "summary": {
          "type": [
            "string",
            "null"
          ]
        },
        "updates": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "id",
              "incidentId",
              "stage",
              "message",
              "isPublic",
              "createdByUserId",
              "createdAt"
            ],
            "properties": {
              "id": {
                "type": "string"
              },
              "stage": {
                "enum": [
                  "investigating",
                  "identified",
                  "monitoring",
                  "resolved"
                ],
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "isPublic": {
                "type": "boolean"
              },
              "createdAt": {
                "type": "string"
              },
              "incidentId": {
                "type": "string"
              },
              "createdByUserId": {
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "additionalProperties": false
          }
        },
        "isPublic": {
          "type": "boolean"
        },
        "createdAt": {
          "type": "string"
        },
        "projectId": {
          "type": "string"
        },
        "startedAt": {
          "type": "string"
        },
        "updatedAt": {
          "type": "string"
        },
        "resolvedAt": {
          "type": [
            "string",
            "null"
          ]
        },
        "currentStage": {
          "enum": [
            "investigating",
            "identified",
            "monitoring",
            "resolved"
          ],
          "type": "string"
        },
        "createdByUserId": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "additionalProperties": false
    },
    "dashboardUrl": {
      "type": "string",
      "description": "Full dashboard URL of the affected resource"
    }
  },
  "additionalProperties": false
}
update_status_incident annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
delete_status_incident — Delete Status Incident
Advertised by the server during the last successful anonymous check.
Advertised destructive

Permanently delete an incident and its timeline. For a monitor incident, results recorded during it are cleared so uptime is recalculated. To keep history, post a resolved update instead.

delete_status_incident input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId",
    "incidentId"
  ],
  "properties": {
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    },
    "incidentId": {
      "type": "string",
      "format": "cuid",
      "pattern": "^[cC][0-9a-z]{6,}$",
      "description": "Incident ID from list_status_incidents"
    }
  }
}
delete_status_incident output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "success"
  ],
  "properties": {
    "success": {
      "type": "boolean"
    },
    "dashboardUrl": {
      "type": "string",
      "description": "Full dashboard URL of the affected resource"
    }
  },
  "additionalProperties": false
}
delete_status_incident annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": true
}
add_status_incident_update — Add Incident Update
Advertised by the server during the last successful anonymous check.
Open-world

Post a timeline message and move the incident to investigating, identified, monitoring or resolved. resolvedAt is only valid with stage resolved. Private updates cannot change the stage of a public incident. isPublic and notifySubscribers default to true: public changes queue subscriber notifications and alert recipients are notified in the background. Success confirms the change, not delivery.

add_status_incident_update input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "stage",
    "message",
    "projectId",
    "incidentId"
  ],
  "properties": {
    "stage": {
      "enum": [
        "investigating",
        "identified",
        "monitoring",
        "resolved"
      ],
      "type": "string"
    },
    "message": {
      "type": "string",
      "maxLength": 5000,
      "minLength": 1
    },
    "isPublic": {
      "type": "boolean",
      "default": true
    },
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    },
    "incidentId": {
      "type": "string",
      "format": "cuid",
      "pattern": "^[cC][0-9a-z]{6,}$",
      "description": "Incident ID from list_status_incidents"
    },
    "resolvedAt": {
      "anyOf": [
        {
          "type": "string",
          "format": "date-time",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
        },
        {
          "type": "null"
        }
      ]
    },
    "notifySubscribers": {
      "type": "boolean",
      "default": true
    }
  }
}
add_status_incident_update output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "update"
  ],
  "properties": {
    "update": {
      "type": "object",
      "required": [
        "id",
        "incidentId",
        "stage",
        "message",
        "isPublic",
        "createdByUserId",
        "createdAt"
      ],
      "properties": {
        "id": {
          "type": "string"
        },
        "stage": {
          "enum": [
            "investigating",
            "identified",
            "monitoring",
            "resolved"
          ],
          "type": "string"
        },
        "message": {
          "type": "string"
        },
        "isPublic": {
          "type": "boolean"
        },
        "createdAt": {
          "type": "string"
        },
        "incidentId": {
          "type": "string"
        },
        "createdByUserId": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "additionalProperties": false
    },
    "dashboardUrl": {
      "type": "string",
      "description": "Full dashboard URL of the affected resource"
    }
  },
  "additionalProperties": false
}
add_status_incident_update annotations
{
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": false
}
list_status_alert_recipients — List Alert Recipients
Advertised by the server during the last successful anonymous check.
Advertised read-only

List who is alerted when monitors go down or recover: account users by email or voice call, external emails and Slack channels, for all monitors or one checkId.

list_status_alert_recipients input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId"
  ],
  "properties": {
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    }
  }
}
list_status_alert_recipients output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "recipients"
  ],
  "properties": {
    "recipients": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "id",
          "projectId",
          "checkId",
          "check",
          "type",
          "userId",
          "user",
          "email",
          "slackChannelId",
          "isEnabled",
          "createdAt",
          "updatedAt"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "type": {
            "enum": [
              "user_email",
              "email",
              "slack_channel",
              "voice_call"
            ],
            "type": "string"
          },
          "user": {
            "anyOf": [
              {
                "type": "object",
                "required": [
                  "id",
                  "name",
                  "email"
                ],
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "name": {
                    "type": "string"
                  },
                  "email": {
                    "type": "string"
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "null"
              }
            ]
          },
          "check": {
            "anyOf": [
              {
                "type": "object",
                "required": [
                  "id",
                  "name"
                ],
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "name": {
                    "type": "string"
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "null"
              }
            ]
          },
          "email": {
            "type": [
              "string",
              "null"
            ]
          },
          "userId": {
            "type": [
              "string",
              "null"
            ]
          },
          "checkId": {
            "type": [
              "string",
              "null"
            ]
          },
          "createdAt": {
            "type": "string"
          },
          "isEnabled": {
            "type": "boolean"
          },
          "projectId": {
            "type": "string"
          },
          "updatedAt": {
            "type": "string"
          },
          "slackChannelId": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "additionalProperties": false
      }
    }
  },
  "additionalProperties": false
}
list_status_alert_recipients annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
create_status_alert_recipient — Create Alert Recipient
Advertised by the server during the last successful anonymous check.

Add an alert recipient. type user_email and voice_call need userId (an account user; voice calls need a verified phone with urgent calls enabled), email needs email, slack_channel needs slackChannelId from the connected Slack workspace. Omit checkId to alert for all monitors.

create_status_alert_recipient input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "type",
    "projectId"
  ],
  "properties": {
    "type": {
      "enum": [
        "user_email",
        "email",
        "slack_channel",
        "voice_call"
      ],
      "type": "string"
    },
    "email": {
      "type": "string"
    },
    "userId": {
      "type": "string"
    },
    "checkId": {
      "type": "string"
    },
    "isEnabled": {
      "type": "boolean"
    },
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    },
    "slackChannelId": {
      "type": "string"
    }
  }
}
create_status_alert_recipient output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "recipient"
  ],
  "properties": {
    "recipient": {
      "type": "object",
      "required": [
        "id",
        "projectId",
        "checkId",
        "check",
        "type",
        "userId",
        "user",
        "email",
        "slackChannelId",
        "isEnabled",
        "createdAt",
        "updatedAt"
      ],
      "properties": {
        "id": {
          "type": "string"
        },
        "type": {
          "enum": [
            "user_email",
            "email",
            "slack_channel",
            "voice_call"
          ],
          "type": "string"
        },
        "user": {
          "anyOf": [
            {
              "type": "object",
              "required": [
                "id",
                "name",
                "email"
              ],
              "properties": {
                "id": {
                  "type": "string"
                },
                "name": {
                  "type": "string"
                },
                "email": {
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            {
              "type": "null"
            }
          ]
        },
        "check": {
          "anyOf": [
            {
              "type": "object",
              "required": [
                "id",
                "name"
              ],
              "properties": {
                "id": {
                  "type": "string"
                },
                "name": {
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            {
              "type": "null"
            }
          ]
        },
        "email": {
          "type": [
            "string",
            "null"
          ]
        },
        "userId": {
          "type": [
            "string",
            "null"
          ]
        },
        "checkId": {
          "type": [
            "string",
            "null"
          ]
        },
        "createdAt": {
          "type": "string"
        },
        "isEnabled": {
          "type": "boolean"
        },
        "projectId": {
          "type": "string"
        },
        "updatedAt": {
          "type": "string"
        },
        "slackChannelId": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "additionalProperties": false
    },
    "dashboardUrl": {
      "type": "string",
      "description": "Full dashboard URL of the affected resource"
    }
  },
  "additionalProperties": false
}
create_status_alert_recipient annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
update_status_alert_recipient — Update Alert Recipient
Advertised by the server during the last successful anonymous check.

Edit an alert recipient, for example to pause it with isEnabled false or change its target. The same type requirements as create apply.

update_status_alert_recipient input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId",
    "recipientId"
  ],
  "properties": {
    "type": {
      "enum": [
        "user_email",
        "email",
        "slack_channel",
        "voice_call"
      ],
      "type": "string"
    },
    "email": {
      "type": "string"
    },
    "userId": {
      "type": "string"
    },
    "checkId": {
      "type": "string"
    },
    "isEnabled": {
      "type": "boolean"
    },
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    },
    "recipientId": {
      "type": "string",
      "format": "cuid",
      "pattern": "^[cC][0-9a-z]{6,}$",
      "description": "Recipient ID from list_status_alert_recipients"
    },
    "slackChannelId": {
      "type": "string"
    }
  }
}
update_status_alert_recipient output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "recipient"
  ],
  "properties": {
    "recipient": {
      "type": "object",
      "required": [
        "id",
        "projectId",
        "checkId",
        "check",
        "type",
        "userId",
        "user",
        "email",
        "slackChannelId",
        "isEnabled",
        "createdAt",
        "updatedAt"
      ],
      "properties": {
        "id": {
          "type": "string"
        },
        "type": {
          "enum": [
            "user_email",
            "email",
            "slack_channel",
            "voice_call"
          ],
          "type": "string"
        },
        "user": {
          "anyOf": [
            {
              "type": "object",
              "required": [
                "id",
                "name",
                "email"
              ],
              "properties": {
                "id": {
                  "type": "string"
                },
                "name": {
                  "type": "string"
                },
                "email": {
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            {
              "type": "null"
            }
          ]
        },
        "check": {
          "anyOf": [
            {
              "type": "object",
              "required": [
                "id",
                "name"
              ],
              "properties": {
                "id": {
                  "type": "string"
                },
                "name": {
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            {
              "type": "null"
            }
          ]
        },
        "email": {
          "type": [
            "string",
            "null"
          ]
        },
        "userId": {
          "type": [
            "string",
            "null"
          ]
        },
        "checkId": {
          "type": [
            "string",
            "null"
          ]
        },
        "createdAt": {
          "type": "string"
        },
        "isEnabled": {
          "type": "boolean"
        },
        "projectId": {
          "type": "string"
        },
        "updatedAt": {
          "type": "string"
        },
        "slackChannelId": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "additionalProperties": false
    },
    "dashboardUrl": {
      "type": "string",
      "description": "Full dashboard URL of the affected resource"
    }
  },
  "additionalProperties": false
}
update_status_alert_recipient annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
delete_status_alert_recipient — Delete Alert Recipient
Advertised by the server during the last successful anonymous check.
Advertised destructive

Permanently remove an alert recipient.

delete_status_alert_recipient input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "projectId",
    "recipientId"
  ],
  "properties": {
    "projectId": {
      "type": "string",
      "description": "Project ID. Use list_projects to find available project IDs."
    },
    "recipientId": {
      "type": "string",
      "format": "cuid",
      "pattern": "^[cC][0-9a-z]{6,}$",
      "description": "Recipient ID from list_status_alert_recipients"
    }
  }
}
delete_status_alert_recipient output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "success"
  ],
  "properties": {
    "success": {
      "type": "boolean"
    },
    "dashboardUrl": {
      "type": "string",
      "description": "Full dashboard URL of the affected resource"
    }
  },
  "additionalProperties": false
}
delete_status_alert_recipient annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": true
}

Prompts

Not advertised

No prompt definitions available.

Resources

Not advertised

No resource definitions available.

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
916 ms
95th percentile latency
916 ms

Maintenance history

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

  • · probe · passed · 916 ms · metadata changed · 141 tool(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 damper-mcp https://api.usedamper.com/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 damper-mcp --url https://api.usedamper.com/mcp

Cursor

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

Cline

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

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start damper-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "damper-mcp": {
      "type": "http",
      "url": "https://api.usedamper.com/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 damper-mcp https://api.usedamper.com/mcp

Claude Desktop

Merge this into claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\), then restart Claude Desktop.
Claude Desktop configuration
{
  "mcpServers": {
    "damper-mcp": {
      "url": "https://api.usedamper.com/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": {
    "damper-mcp": {
      "serverUrl": "https://api.usedamper.com/mcp"
    }
  }
}

Let your agent find its tools

Find servers like Damper 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 Damper 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