Skip to content

Damper

com.usedamper/mcpusedamper.comstreamable-httpv0.6.0Scanned

Feedback, roadmap, agent task execution with review, changelog, status pages and error logs.

141 tools: 19 can delete or cancel things, 4 do something that can't be undone, 68 change things and 50 only read.

Tools: 19 delete, 4 irreversible, 68 write, 50 read.
  • Reads private data · 10
  • Reads text others write · 13
  • Can send data out · 6
  • 10 findings

Anlyon alternative

91 of these tools change something. Run those as governed actions.

Declare what an action changes, and Anlyon puts it under a shared limit, binds every approval to the exact request, and grades the outcome. It works on any HTTPS API you can describe as an action.

Anlyon does not run, proxy or govern this MCP server. A tool your own code calls directly is not routed through Anlyon and is not governed by it.

Import an OpenAPI spec →

Tools

Grouped by what each tool does, most consequential first. Open one for its reasons and full description; descriptions are the publisher's own words.

141 tools

Deletes or cancels 19Claude Code: deny
  • archive_pageArchive a page and its child pages.No findings

    Why it is in this group

    • The name "archive_page" says "archive": a word for removing or ending something.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Archive a page and its child pages. This is a soft delete.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: false
  • delete_changelogPermanently delete a changelog entry.No findings

    Why it is in this group

    • The name "delete_changelog" says "delete": a word for removing or ending something.
    • The description says "Permanently delete".
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Permanently delete a changelog entry.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: false
  • delete_context_bundleDelete a context bundle and its version history.No findings

    Why it is in this group

    • The name "delete_context_bundle" says "delete": a word for removing or ending something.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Delete a context bundle and its version history.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: false
  • delete_context_fixtureDelete an executable routing fixture by name.No findings

    Why it is in this group

    • The name "delete_context_fixture" says "delete": a word for removing or ending something.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Delete an executable routing fixture by name.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: false
  • delete_context_relationDelete a project-authored context relationship.No findings

    Why it is in this group

    • The name "delete_context_relation" says "delete": a word for removing or ending something.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Delete a project-authored context relationship. Derived graph edges are not mutable through this tool.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: false
  • delete_context_routeDelete a structured context route by name.No findings

    Why it is in this group

    • The name "delete_context_route" says "delete": a word for removing or ending something.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Delete a structured context route by name.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: false
  • delete_context_sectionDelete a project context section.No findings

    Why it is in this group

    • The name "delete_context_section" says "delete": a word for removing or ending something.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Delete a project context section. Use when documentation is outdated or no longer relevant.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: false
  • delete_database_viewDelete a saved database view.No findings

    Why it is in this group

    • The name "delete_database_view" says "delete": a word for removing or ending something.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Delete a saved database view. A database must keep at least one view.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: false
  • delete_moduleDelete a registered module by name.No findings

    Why it is in this group

    • The name "delete_module" says "delete": a word for removing or ending something.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Delete a registered module by name.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: false
  • delete_status_alert_recipientPermanently remove an alert recipient.No findings

    Why it is in this group

    • The name "delete_status_alert_recipient" says "delete": a word for removing or ending something.
    • The description says "Permanently remove".
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Permanently remove an alert recipient.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: false
  • delete_status_checkPermanently delete a monitor with its results and monitor-specific alert recipients.No findings

    Why it is in this group

    • The name "delete_status_check" says "delete": a word for removing or ending something.
    • The description says "Permanently delete".
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Permanently delete a monitor with its results and monitor-specific alert recipients. Set isEnabled false with update_status_check to pause instead.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: false
  • delete_status_groupPermanently delete a group together with its monitors and their results.No findings

    Why it is in this group

    • The name "delete_status_group" says "delete": a word for removing or ending something.
    • The description says "Permanently delete".
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Permanently delete a group together with its monitors and their results. Scheduled or in-progress maintenance for the group is cancelled.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: false
  • delete_status_incidentPermanently delete an incident and its timeline.No findings

    Why it is in this group

    • The name "delete_status_incident" says "delete": a word for removing or ending something.
    • The description says "Permanently delete".
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: false
  • delete_status_maintenancePermanently delete a maintenance window and its timeline.No findings

    Why it is in this group

    • The name "delete_status_maintenance" says "delete": a word for removing or ending something.
    • The description says "Permanently delete".
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Permanently delete a maintenance window and its timeline. To retain history, use add_status_maintenance_update with state cancelled instead.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: false
  • delete_subtaskRemove a subtask from a task.No findings

    Why it is in this group

    • The name "delete_subtask" says "delete": a word for removing or ending something.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Remove a subtask from a task. Use get_task to see subtask IDs.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: false
  • delete_taskPermanently delete a task.No findings

    Why it is in this group

    • The name "delete_task" says "delete": a word for removing or ending something.
    • The description says "Permanently delete".
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Permanently delete a task. Only works on tasks in backlog or planned status with no commits.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: false
  • remove_review_artifactRemove an API example, screenshot or diagram from a task, by id or by kind + key (e.g.No findings

    Why it is in this group

    • The name "remove_review_artifact" says "remove": a word for removing or ending something.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Remove an API example, screenshot or diagram from a task, by id or by kind + key (e.g. a page that no longer changes).

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: false
  • remove_task_dependencyRemove a task dependency by dependency ID.No findings

    Why it is in this group

    • The name "remove_task_dependency" says "remove": a word for removing or ending something.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Remove a task dependency by dependency ID.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: false
  • sync_modulesBulk upload multiple modules at once.No findings

    Why it is in this group

    • The name "sync_modules" says "sync": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Bulk upload multiple modules at once.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: false
Can't be undone 4Claude Code: ask
  • add_status_incident_updatePost a timeline message and move the incident to investigating, identified, monitoring or resolved.Reads text others writeNo findings

    Why it is in this group

    • The name "add_status_incident_update" says "add": a word for a change.
    • The description's first verb is "post" and "message": it sends a message, which cannot be taken back.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • add_status_maintenance_updatePost a timeline message and transition state (scheduled, in_progress, completed or cancelled).Reads text others writeNo findings

    Why it is in this group

    • The name "add_status_maintenance_update" says "add": a word for a change.
    • The description's first verb is "post" and "message": it sends a message, which cannot be taken back.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • publish_changelogPublish a changelog with optional email and Twitter notifications.Can send data outNo findings

    Why it is in this group

    • The name "publish_changelog" says "publish": a word for a change that another call does not undo.

    What it can reach

    • outboundThe name "publish_changelog" says "publish": it sends or publishes something to other people.
    Description, as the server wrote it
    Publish a changelog with optional email and Twitter notifications.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • reply_to_feedbackReply to a feedback item as a team member.Can send data outNo findings

    Why it is in this group

    • The name "reply_to_feedback" says "reply": a word for sending, and what is sent cannot be taken back.

    What it can reach

    • outboundThe name "reply_to_feedback" says "reply": it sends or publishes something to other people.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
Changes things 68Claude Code: ask
  • abandon_taskRelease lock and return task to planned status.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • add_api_exampleAttach a request/response example for an API endpoint you added or changed, so the reviewer can check the contract in Damper without running anything.No findings

    Why it is in this group

    • The name "add_api_example" says "add": a word for a change.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • add_commitLog a commit for a task (secondary detail — the linked pull request is the primary deliverable, see `link_pr`).No findings

    Why it is in this group

    • The name "add_commit" says "add": a word for a change.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • add_diagramAttach a Mermaid diagram that explains the logic or structure behind a change, so the reviewer can follow it without reading the diff.No findings

    Why it is in this group

    • The name "add_diagram" says "add": a word for a change.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • add_noteAdd a note to a task, or resolve a previously reported blocker/open_question.No findings

    Why it is in this group

    • The name "add_note" says "add": a word for a change.
    Description, as the server wrote it
    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 ```

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • add_screenshotAttach a screenshot of a page or screen you added or changed, so the reviewer sees the result in Damper.No findings

    Why it is in this group

    • The name "add_screenshot" says "add": a word for a change.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • add_task_dependencyAdd a dependency between roadmap tasks.No findings

    Why it is in this group

    • The name "add_task_dependency" says "add": a word for a change.
    Description, as the server wrote it
    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).

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • add_to_changelogAdd completed tasks to a changelog.No findings

    Why it is in this group

    • The name "add_to_changelog" says "add": a word for a change.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • complete_taskMark task as ready for review (in_review).Can send data out3 findings

    Why it is in this group

    • The description's first verb is "mark": a word for a change.

    What it can reach

    • outboundThe input takes a URL (input.pr.url): a request to a URL can carry data to whoever runs it.

    Findings

    • Info

      The description mentions "credentials".

      Matched text

      description: "...te them for an external reader and keep credentials, internal paths, and private URLs out o..."

      What this check looks for
    • Info

      The input schema at properties.reviewInstructions.description mentions "credentials".

      Matched text

      inputSchema.properties.reviewInstructions.description: "...— write for an external reader and keep credentials, internal paths, and private URLs out o..."

      What this check looks for
    • Info

      The description is 4,046 characters long, over the 2,000 this check looks for.

      Matched text

      description ends: "...error) if the Damper CLI is installed. Returns documentation update suggestions."

      What this check looks for
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • convert_context_maintenance_candidateConvert a candidate into a deduplicated private context-maintenance roadmap task.No findings

    Why it is in this group

    • The name "convert_context_maintenance_candidate" says "convert": a word for a change.
    Description, as the server wrote it
    Convert a candidate into a deduplicated private context-maintenance roadmap task.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • create_changelogCreate a new changelog entry.No findings

    Why it is in this group

    • The name "create_changelog" says "create": a word for a change.
    Description, as the server wrote it
    Create a new changelog entry.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • create_database_propertyAdd a property column to a page database.No findings

    Why it is in this group

    • The name "create_database_property" says "create": a word for a change.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • create_database_templateCreate a database-level page template with content and default property values.No findings

    Why it is in this group

    • The name "create_database_template" says "create": a word for a change.
    Description, as the server wrote it
    Create a database-level page template with content and default property values.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • create_database_viewCreate a saved database view with table, list, board, or calendar layout.No findings

    Why it is in this group

    • The name "create_database_view" says "create": a word for a change.
    Description, as the server wrote it
    Create a saved database view with table, list, board, or calendar layout.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • create_pageCreate a normal page, database page, or database row page.No findings

    Why it is in this group

    • The name "create_page" says "create": a word for a change.
    Description, as the server wrote it
    Create a normal page, database page, or database row page. For rows, pass parentId as the database page ID and propertyValues by property ID.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • create_status_alert_recipientAdd an alert recipient.No findings

    Why it is in this group

    • The name "create_status_alert_recipient" says "create": a word for a change.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • create_status_checkCreate an http, ssl or heartbeat monitor in a group.Reads text others writeCan send data outNo findings

    Why it is in this group

    • The name "create_status_check" says "create": a word for a change.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    • outboundThe input takes a URL (input.url): a request to a URL can carry data to whoever runs it.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • create_status_groupCreate a status page group (component).No findings

    Why it is in this group

    • The name "create_status_group" says "create": a word for a change.
    Description, as the server wrote it
    Create a status page group (component). slug is lowercase letters, digits and dashes, unique per project. isPublic defaults to true.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • create_status_incidentOpen a manual incident, optionally tied to a groupId or checkId.Reads text others writeNo findings

    Why it is in this group

    • The name "create_status_incident" says "create": a word for a change.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • create_status_maintenanceCreate a scheduled status-page maintenance window.Reads text others writeNo findings

    Why it is in this group

    • The name "create_status_maintenance" says "create": a word for a change.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • create_subtaskAdd a new subtask to a task.No findings

    Why it is in this group

    • The name "create_subtask" says "create": a word for a change.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • create_taskCreate a new roadmap task.No findings

    Why it is in this group

    • The name "create_task" says "create": a word for a change.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • create_task_from_pageCreate a roadmap task from a page.No findings

    Why it is in this group

    • The name "create_task_from_page" says "create": a word for a change.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • duplicate_pageDuplicate a page, including database row property values and linked people.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Duplicate a page, including database row property values and linked people.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • edit_status_maintenance_updateCorrect a historical maintenance timeline message only.No findings

    Why it is in this group

    • The name "edit_status_maintenance_update" says "edit": a word for a change.
    Description, as the server wrote it
    Correct a historical maintenance timeline message only. State and visibility remain immutable; this does not send subscriber notifications.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • move_pageMove a page under another page/database or reorder it.No findings

    Why it is in this group

    • The name "move_page" says "move": a word for a change.
    Description, as the server wrote it
    Move a page under another page/database or reorder it. Use parentId null for a top-level page.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • open_public_pageGet the public URL for a project page (roadmap, feedback, changelog, or a specific roadmap item).Reads text others write1 finding

    Why it is in this group

    • The name "open_public_page" says "open": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    What it can reach

    • untrusted-inputThe description's first sentence says "get" and "url": it reads web pages, which anyone can write.

    Findings

    • Warn

      The server marks "open_public_page" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "open_public_page" says "open": a word for a change.

      What this check looks for
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • patch_completion_checklistApply a scoped patch to the project completion checklist, touching only the branches you name.No findings

    Why it is in this group

    • The name "patch_completion_checklist" says "patch": a word for a change.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • patch_context_sectionApply stable-block operations with optimistic concurrency and immutable version snapshots.No findings

    Why it is in this group

    • The name "patch_context_section" says "patch": a word for a change.
    Description, as the server wrote it
    Apply stable-block operations with optimistic concurrency and immutable version snapshots.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • prepare_workBuild a deterministic, compact work packet with governing context, a shadow graph comparison and provenance, path-owned surfaces, checklist scope, project verification, unvalidated…No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • refresh_context_maintenance_candidatesAggregate privacy-safe feedback, self-assessment gaps, and fallback telemetry; may auto-create private tasks when project policy enables it.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Aggregate privacy-safe feedback, self-assessment gaps, and fallback telemetry; may auto-create private tasks when project policy enables it.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • render_context_routes_markdownRender the canonical structured route mapping as deterministic generated Markdown.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Render the canonical structured route mapping as deterministic generated Markdown.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • report_context_feedbackReport missing, irrelevant, or incorrectly routed knowledge without storing prompts or source code.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Report missing, irrelevant, or incorrectly routed knowledge without storing prompts or source code.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • report_issueReport an error, bug, or feature request with MCP tools or suggest improvements.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • request_reviewLightweight 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 …3 findings

    Why it is in this group

    • The name "request_review" says "request": a word for a change.

    Findings

    • Info

      The description mentions "credentials".

      Matched text

      description: "...dmap while the item is in review — keep credentials, internal paths, and private URLs out o..."

      What this check looks for
    • Info

      The input schema at properties.reviewInstructions.description mentions "credentials".

      Matched text

      inputSchema.properties.reviewInstructions.description: "...IBLE while the item is in review — keep credentials, internal paths, and private URLs out o..."

      What this check looks for
    • Info

      The description is 2,792 characters long, over the 2,000 this check looks for.

      Matched text

      description ends: "...ackground command (exit 10 = needs work, 0 = approved, 2 = timed out, 1 = error)."

      What this check looks for
    Description, as the server wrote it
    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).

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • resolve_context_graphRun bounded shadow-mode graph traversal for repository paths.Reads private data1 finding

    Why it is in this group

    • The name "resolve_context_graph" says "resolve": a word for reading.
    • The description's first verb is "run": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    What it can reach

    • private-dataThe description's first sentence says "repository": it reads repositories.

    Findings

    • Warn

      The server marks "resolve_context_graph" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "resolve_context_graph" says "resolve": a word for reading.

      What this check looks for
    Description, as the server wrote it
    Run bounded shadow-mode graph traversal for repository paths. Returns ranked context candidates and full provenance without changing authoritative route resolution.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • review_taskOptional standalone self-review step.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    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).

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • run_status_checkRun a monitor now and record the result.Reads text others writeNo findings

    Why it is in this group

    • The name "run_status_check" says "run": a word for a change.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Run a monitor now and record the result. The outcome feeds the monitor state and may open or resolve an automated incident.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • start_taskLock and start a task.No findings

    Why it is in this group

    • The name "start_task" says "start": a word for a change.
    Description, as the server wrote it
    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)

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • sync_project_contextBulk upload all project context sections at once.No findings

    Why it is in this group

    • The name "sync_project_context" says "sync": a word for a change.
    Description, as the server wrote itContains invisible characters, shown as [U+…]
    Bulk upload all project context sections at once. Use after analyzing a codebase. ⚠[U+FE0F] SECURITY WARNING: Do NOT include sensitive information.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • sync_templatesBulk upload multiple templates at once.No findings

    Why it is in this group

    • The name "sync_templates" says "sync": a word for a change.
    Description, as the server wrote it
    Bulk upload multiple templates at once.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • update_changelogUpdate a changelog entry.No findings

    Why it is in this group

    • The name "update_changelog" says "update": a word for a change.
    Description, as the server wrote it
    Update a changelog entry.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • update_context_sectionUpload/update a project context section.No findings

    Why it is in this group

    • The name "update_context_section" says "update": a word for a change.
    Description, as the server wrote itContains invisible characters, shown as [U+…]
    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. ⚠[U+FE0F] SECURITY WARNING: Do NOT include sensitive information.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • update_database_propertyRename, hide, reorder, or change options/type for a database property.No findings

    Why it is in this group

    • The name "update_database_property" says "update": a word for a change.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • update_database_row_valuesSet database property values for a row page.No findings

    Why it is in this group

    • The name "update_database_row_values" says "update": a word for a change.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • update_database_viewUpdate a database view layout, visible columns, sort, filters, name, or position.No findings

    Why it is in this group

    • The name "update_database_view" says "update": a word for a change.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • update_feedbackUpdate feedback status or visibility.No findings

    Why it is in this group

    • The name "update_feedback" says "update": a word for a change.
    Description, as the server wrote it
    Update feedback status or visibility.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • update_moduleRegister or update a module in the registry.No findings

    Why it is in this group

    • The name "update_module" says "update": a word for a change.
    Description, as the server wrote it
    Register or update a module in the registry.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • update_pageUpdate page title, icon, content, content width, kind, agent visibility, or linked people.No findings

    Why it is in this group

    • The name "update_page" says "update": a word for a change.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • update_project_settingsConfigure agent-relevant project settings, including the structured completion checklist and the review evidence policy (partial update: per kind a base level, optional trigger cha…No findings

    Why it is in this group

    • The name "update_project_settings" says "update": a word for a change.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • update_status_alert_recipientEdit an alert recipient, for example to pause it with isEnabled false or change its target.No findings

    Why it is in this group

    • The name "update_status_alert_recipient" says "update": a word for a change.
    Description, as the server wrote it
    Edit an alert recipient, for example to pause it with isEnabled false or change its target. The same type requirements as create apply.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • update_status_checkEdit a monitor.Reads text others writeCan send data outNo findings

    Why it is in this group

    • The name "update_status_check" says "update": a word for a change.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    • outboundThe input takes a URL (input.url): a request to a URL can carry data to whoever runs it.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • update_status_groupEdit a group name, slug, description, sort order or visibility.No findings

    Why it is in this group

    • The name "update_status_group" says "update": a word for a change.
    Description, as the server wrote it
    Edit a group name, slug, description, sort order or visibility.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • update_status_incidentEdit incident details, affected component, dates or visibility without notifying anyone.No findings

    Why it is in this group

    • The name "update_status_incident" says "update": a word for a change.
    Description, as the server wrote it
    Edit incident details, affected component, dates or visibility without notifying anyone. To change the stage, use add_status_incident_update.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • update_status_maintenanceEdit maintenance details, schedule, scope or visibility.Reads text others writeNo findings

    Why it is in this group

    • The name "update_status_maintenance" says "update": a word for a change.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • update_subtaskUpdate a subtask: mark it done/not done and/or set its timeline dates.No findings

    Why it is in this group

    • The name "update_subtask" says "update": a word for a change.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • update_taskUpdate task fields like description, implementation plan, priority, effort, quarter, start/due dates, labels, or visibility.1 finding

    Why it is in this group

    • The name "update_task" says "update": a word for a change.

    Findings

    • Info

      The input schema at properties.reviewInstructions.description mentions "credentials".

      Matched text

      inputSchema.properties.reviewInstructions.description: "...ternal reader and keep internal detail (credentials, internal paths, private URLs) out of i..."

      What this check looks for
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • update_templateCreate or update a code template.No findings

    Why it is in this group

    • The name "update_template" says "update": a word for a change.
    Description, as the server wrote it
    Create or update a code template.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • upsert_context_blockReplace or append a stable context block while preserving unrelated blocks.No findings

    Why it is in this group

    • The name "upsert_context_block" says "upsert": a word for a change.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • upsert_context_bundleCreate or update a coherent context bundle.No findings

    Why it is in this group

    • The name "upsert_context_bundle" says "upsert": a word for a change.
    Description, as the server wrote it
    Create or update a coherent context bundle. Semantic changes record immutable versions; identical retries are no-ops.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • upsert_context_fixtureCreate or update intended executable expectations for an important repository path.No findings

    Why it is in this group

    • The name "upsert_context_fixture" says "upsert": a word for a change.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • upsert_context_relationCreate or update an explicit typed relationship.No findings

    Why it is in this group

    • The name "upsert_context_relation" says "upsert": a word for a change.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • upsert_context_routeCreate or update a validated structured context route.No findings

    Why it is in this group

    • The name "upsert_context_route" says "upsert": a word for a change.
    Description, as the server wrote it
    Create or update a validated structured context route.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • upsert_database_rowCreate or update one database row by a parent-scoped canonical key.No findings

    Why it is in this group

    • The name "upsert_database_row" says "upsert": a word for a change.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • validate_context_routingRun project route fixtures against the production context resolver.1 finding

    Why it is in this group

    • The name "validate_context_routing" says "validate": a word for reading.
    • The description's first verb is "run": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "validate_context_routing" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "validate_context_routing" says "validate": a word for reading.

      What this check looks for
    Description, as the server wrote it
    Run project route fixtures against the production context resolver.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • verify_context_sectionRecord repository verification without mutating section content.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Record repository verification without mutating section content.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
Only reads 50Show 50 read-only tools
  • audit_context_healthFind invalid route taxonomy, weak or uncovered fixtures, missing baselines, route overlap, stale knowledge, and fallback usage.No findings

    Why it is in this group

    • The description's first verb is "find": a word for reading.
    Description, as the server wrote it
    Find invalid route taxonomy, weak or uncovered fixtures, missing baselines, route overlap, stale knowledge, and fallback usage.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • compare_context_resolutionCompare structured routing output with legacy Markdown routing for repository paths.Reads private dataNo findings

    Why it is in this group

    • The name "compare_context_resolution" says "compare": a word for reading.

    What it can reach

    • private-dataThe description's first sentence says "compare" and "repository": it reads repositories.
    Description, as the server wrote it
    Compare structured routing output with legacy Markdown routing for repository paths.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_agent_instructionsGet the canonical Damper workflow instructions.No findings

    Why it is in this group

    • The name "get_agent_instructions" says "get": a word for reading.
    Description, as the server wrote it
    Get the canonical Damper workflow instructions. Use this to set up or update CLAUDE.md in a project.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_completion_checklistLoad detailed completion checklist branches for the project.Reads private dataNo findings

    Why it is in this group

    • The name "get_completion_checklist" says "get": a word for reading.

    What it can reach

    • private-dataThe description's first sentence says "branch": it reads repositories.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_context_bundleGet a context bundle with immutable version snapshots, optionally selecting one version.No findings

    Why it is in this group

    • The name "get_context_bundle" says "get": a word for reading.
    Description, as the server wrote it
    Get a context bundle with immutable version snapshots, optionally selecting one version.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_context_graphInspect the typed graph projection derived from context routes, sections, bundles, modules, and optional project-authored relationships.No findings

    Why it is in this group

    • The name "get_context_graph" says "get": a word for reading.
    Description, as the server wrote it
    Inspect the typed graph projection derived from context routes, sections, bundles, modules, and optional project-authored relationships.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_context_sectionGet full content of a specific context section.No findings

    Why it is in this group

    • The name "get_context_section" says "get": a word for reading.
    Description, as the server wrote it
    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)

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_feedbackGet feedback details with votes, comments and a list of attachments.Reads text others writeNo findings

    Why it is in this group

    • The name "get_feedback" says "get": a word for reading.

    What it can reach

    • untrusted-inputThe description's first sentence says "get" and "comment": it reads comments, which other people can write.
    Description, as the server wrote it
    Get feedback details with votes, comments and a list of attachments. Download an attachment with `get_feedback_attachment`.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_feedback_attachmentDownload a screenshot or file attached to a feedback item.Reads private dataNo findings

    Why it is in this group

    • The name "get_feedback_attachment" says "get": a word for reading.

    What it can reach

    • private-dataThe description's first sentence says "file": it reads files.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_moduleGet details of a specific module.No findings

    Why it is in this group

    • The name "get_module" says "get": a word for reading.
    Description, as the server wrote it
    Get details of a specific module.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_pageRead a page, including live content, linked people, propertyValues keyed by property ID, and update timestamp for conflict-safe edits.No findings

    Why it is in this group

    • The name "get_page" says "get": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_page_databaseRead the complete database definition and every row, including property IDs, names, types, options and propertyValues keyed by property ID in text and structured output.Reads private dataNo findings

    Why it is in this group

    • The name "get_page_database" says "get": a word for reading.

    What it can reach

    • private-dataThe name "get_page_database" says "get" and "database": it reads databases.
    • private-dataThe description's first sentence says "read" and "database": it reads databases.
    • private-dataThe input names a database (input.databasePageId), and the tool reads: it reads databases.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_page_database_schemaRead all property IDs, names, types, options, views, and templates without downloading rows.Reads private dataNo findings

    Why it is in this group

    • The name "get_page_database_schema" says "get": a word for reading.

    What it can reach

    • private-dataThe name "get_page_database_schema" says "get" and "database": it reads databases.
    • private-dataThe input names a database (input.databasePageId), and the tool reads: it reads databases.
    Description, as the server wrote it
    Read all property IDs, names, types, options, views, and templates without downloading rows. Full definitions are included in text and structured output.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_project_contextGet project context index (token-efficient).No findings

    Why it is in this group

    • The name "get_project_context" says "get": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_project_settingsView current project settings, including the completion checklist index, standards refs, scope guidance, and the review evidence policy: per kind (apiExamples, screenshots, diagram…Reads text others writeNo findings

    Why it is in this group

    • The name "get_project_settings" says "get": a word for reading.

    What it can reach

    • untrusted-inputThe description's first sentence says "view" and "review": it reads comments, which other people can write.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_section_block_contentGet the full content of specific blocks within a section.No findings

    Why it is in this group

    • The name "get_section_block_content" says "get": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_section_blocksGet a block index for a context section.No findings

    Why it is in this group

    • The name "get_section_blocks" says "get": a word for reading.
    Description, as the server wrote it
    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`.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_status_historyUptime history for a window (24h, 7d, 30d or 90d; default 90d) as bucketed points.No findings

    Why it is in this group

    • The name "get_status_history" says "get": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_status_summaryOverall status page health: overall state, per-group state, monitor counts, active incidents and 24h/90d uptime (0-1, null without data).No findings

    Why it is in this group

    • The name "get_status_summary" says "get": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_taskGet task details.No findings

    Why it is in this group

    • The name "get_task" says "get": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_templateGet full content of a specific code template.No findings

    Why it is in this group

    • The name "get_template" says "get": a word for reading.
    Description, as the server wrote it
    Get full content of a specific code template.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_changelogsList changelogs for the project.No findings

    Why it is in this group

    • The name "list_changelogs" says "list": a word for reading.
    Description, as the server wrote it
    List changelogs for the project. Filter by status (draft, published).

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_context_bundlesList versioned context bundles and recent versions.No findings

    Why it is in this group

    • The name "list_context_bundles" says "list": a word for reading.
    Description, as the server wrote it
    List versioned context bundles and recent versions.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_context_fixturesList executable context routing expectations.No findings

    Why it is in this group

    • The name "list_context_fixtures" says "list": a word for reading.
    Description, as the server wrote it
    List executable context routing expectations.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_context_maintenance_candidatesList the current deduplicated context-maintenance queue without refreshing or mutating it.No findings

    Why it is in this group

    • The name "list_context_maintenance_candidates" says "list": a word for reading.
    Description, as the server wrote it
    List the current deduplicated context-maintenance queue without refreshing or mutating it.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_context_relationsList project-authored typed relationships layered over the derived context graph.No findings

    Why it is in this group

    • The name "list_context_relations" says "list": a word for reading.
    Description, as the server wrote it
    List project-authored typed relationships layered over the derived context graph.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_context_routesList structured path-to-context routes in priority order.No findings

    Why it is in this group

    • The name "list_context_routes" says "list": a word for reading.
    Description, as the server wrote it
    List structured path-to-context routes in priority order.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_context_sectionsList available project context sections with brief previews.No findings

    Why it is in this group

    • The name "list_context_sections" says "list": a word for reading.
    Description, as the server wrote it
    List available project context sections with brief previews.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_feedbackGet user feedback.No findings

    Why it is in this group

    • The name "list_feedback" says "list": a word for reading.
    Description, as the server wrote it
    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`).

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_modulesList registered modules in this monorepo.No findings

    Why it is in this group

    • The name "list_modules" says "list": a word for reading.
    Description, as the server wrote it
    List registered modules in this monorepo.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_pagesList content pages and database pages for a project.Reads private dataNo findings

    Why it is in this group

    • The name "list_pages" says "list": a word for reading.

    What it can reach

    • private-dataThe description's first sentence says "list" and "database": it reads databases.
    Description, as the server wrote it
    List content pages and database pages for a project. Database row pages are included with their parentId.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_projectsList all projects accessible with this API key.No findings

    Why it is in this group

    • The name "list_projects" says "list": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_review_artifactsList the API examples, screenshots and diagrams attached to a task, with the reviewer's verdict on each (approved / changes_requested + comment).Reads text others writeNo findings

    Why it is in this group

    • The name "list_review_artifacts" says "list": a word for reading.

    What it can reach

    • untrusted-inputThe name "list_review_artifacts" says "list" and "review": it reads comments, which other people can write.
    • untrusted-inputThe description's first sentence says "list" and "comment": it reads comments, which other people can write.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_self_assessmentsList recent structured agent self-assessments for a project.No findings

    Why it is in this group

    • The name "list_self_assessments" says "list": a word for reading.
    Description, as the server wrote it
    List recent structured agent self-assessments for a project. Use this miss log to find recurring missingContext/toolIssues/processGaps and improve project context.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_status_alert_recipientsList 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.Reads private dataReads text others writeNo findings

    Why it is in this group

    • The name "list_status_alert_recipients" says "list": a word for reading.

    What it can reach

    • private-dataThe description's first sentence says "list" and "email": it reads mail.
    • untrusted-inputThe description's first sentence says "list" and "email": it reads inbound email, which other people can write.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_status_checksList monitors (status checks) with type, target, schedule, current state and last run.No findings

    Why it is in this group

    • The name "list_status_checks" says "list": a word for reading.
    Description, as the server wrote it
    List monitors (status checks) with type, target, schedule, current state and last run. Set includeDailyUptime for 30 days of daily uptime per monitor.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_status_groupsList status page groups (components) in display order with visibility and monitor/incident counts.No findings

    Why it is in this group

    • The name "list_status_groups" says "list": a word for reading.
    Description, as the server wrote it
    List status page groups (components) in display order with visibility and monitor/incident counts.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_status_incidentsList automated and manual incidents (open first, then newest) with affected component and timeline updates (newest first).No findings

    Why it is in this group

    • The name "list_status_incidents" says "list": a word for reading.
    Description, as the server wrote it
    List automated and manual incidents (open first, then newest) with affected component and timeline updates (newest first).

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_status_maintenanceList maintenance windows, scope, schedules, visibility and timeline updates (newest first) for this project.No findings

    Why it is in this group

    • The name "list_status_maintenance" says "list": a word for reading.
    Description, as the server wrote it
    List maintenance windows, scope, schedules, visibility and timeline updates (newest first) for this project. Use the returned IDs to edit windows or timeline messages.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_status_maintenance_targetsList status-page groups and monitors for maintenance targeting.No findings

    Why it is in this group

    • The name "list_status_maintenance_targets" says "list": a word for reading.
    Description, as the server wrote it
    List status-page groups and monitors for maintenance targeting. Returns identifiers, names and visibility without probe configuration.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_tasksGet roadmap tasks.No findings

    Why it is in this group

    • The name "list_tasks" says "list": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_templatesList available code templates for this project.No findings

    Why it is in this group

    • The name "list_templates" says "list": a word for reading.
    Description, as the server wrote it
    List available code templates for this project.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • prepare_completionResolve final touched paths, compare them with the prepare_work snapshot, detect version drift and scope expansion, and generate context disposition evidence.No findings

    Why it is in this group

    • The description's first verb is "resolve": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • preview_completion_checklist_migrationPreview how a legacy flat completion checklist could be regrouped into native V2.No findings

    Why it is in this group

    • The name "preview_completion_checklist_migration" says "preview": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • preview_context_route_migrationParse Markdown routing into structured route candidates without writing them.No findings

    Why it is in this group

    • The name "preview_context_route_migration" says "preview": a word for reading.
    Description, as the server wrote it
    Parse Markdown routing into structured route candidates without writing them.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • preview_context_updatePreview a section replacement or stable-block patch, including semantic changes and sensitive-data warnings, without writing.No findings

    Why it is in this group

    • The name "preview_context_update" says "preview": a word for reading.
    Description, as the server wrote it
    Preview a section replacement or stable-block patch, including semantic changes and sensitive-data warnings, without writing.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • query_page_databaseRead a bounded page of database rows using metadata or property filters, stable cursor pagination, a resumable polling cursor, and optional property/content projection.Reads private dataNo findings

    Why it is in this group

    • The name "query_page_database" says "query": a word for reading.

    What it can reach

    • private-dataThe name "query_page_database" says "query" and "database": it reads databases.
    • private-dataThe description's first sentence says "read" and "database": it reads databases.
    • private-dataThe input names a database (input.databasePageId), and the tool reads: it reads databases.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • resolve_contextResolve touched file paths to governing context sections, critical rules, risk domains, and suggested checklist scope.Reads private dataNo findings

    Why it is in this group

    • The name "resolve_context" says "resolve": a word for reading.

    What it can reach

    • private-dataThe description's first sentence says "resolve" and "file": it reads files.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • search_pagesSearch pages and linked project knowledge by title/content.No findings

    Why it is in this group

    • The name "search_pages" says "search": a word for reading.
    Description, as the server wrote it
    Search pages and linked project knowledge by title/content.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Exfil surface

Which tools read private data, which read text someone else can write, and which can send data out. One of each is a path a prompt injection can use.

780 paths in this server alone from private data, through text someone else wrote, to a way out. Denying 6 outbound tools breaks every one.

Can send data out6
Can carry data to people or systems: it sends, posts or publishes, or takes a recipient, channel or URL.
deny to break every path
{
  "permissions": {
    "deny": [
      "mcp__usedamper__complete_task",
      "mcp__usedamper__create_status_check",
      "mcp__usedamper__link_pr",
      "mcp__usedamper__publish_changelog",
      "mcp__usedamper__reply_to_feedback",
      "mcp__usedamper__update_status_check"
    ]
  }
}

Other servers in the same agent add their own tools to these paths. Audit your whole setup to see them together.

Findings

Matches of fixed checks, with the text they matched.

3 warn7 info
  • The server marks "resolve_context_graph" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "resolve_context_graph" says "resolve": a word for reading.

    What this check looks for
  • The server marks "validate_context_routing" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "validate_context_routing" says "validate": a word for reading.

    What this check looks for
  • The server marks "open_public_page" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "open_public_page" says "open": a word for a change.

    What this check looks for
  • The input schema at properties.reviewInstructions.description mentions "credentials".

    Matched text

    inputSchema.properties.reviewInstructions.description: "...ternal reader and keep internal detail (credentials, internal paths, private URLs) out of i..."

    What this check looks for
  • The description mentions "credentials".

    Matched text

    description: "...te them for an external reader and keep credentials, internal paths, and private URLs out o..."

    What this check looks for
  • The input schema at properties.reviewInstructions.description mentions "credentials".

    Matched text

    inputSchema.properties.reviewInstructions.description: "...— write for an external reader and keep credentials, internal paths, and private URLs out o..."

    What this check looks for
Show 4 more findings
  • The description is 4,046 characters long, over the 2,000 this check looks for.

    Matched text

    description ends: "...error) if the Damper CLI is installed. Returns documentation update suggestions."

    What this check looks for
  • The description mentions "credentials".

    Matched text

    description: "...dmap while the item is in review — keep credentials, internal paths, and private URLs out o..."

    What this check looks for
  • The input schema at properties.reviewInstructions.description mentions "credentials".

    Matched text

    inputSchema.properties.reviewInstructions.description: "...IBLE while the item is in review — keep credentials, internal paths, and private URLs out o..."

    What this check looks for
  • The description is 2,792 characters long, over the 2,000 this check looks for.

    Matched text

    description ends: "...ackground command (exit 10 = needs work, 0 = approved, 2 = timed out, 1 = error)."

    What this check looks for

History

Changes to its tool definitions and to its remote endpoint, newest first.

No change seen yet. Its tools are rescanned every day, and a remote endpoint is looked at once a week.

Install

Pinned to version 0.6.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http usedamper https://api.usedamper.com/mcp --header 'Authorization: <your-authorization>'
claude mcp add --transport http usedamper https://api.usedamper.com/mcp --header 'Authorization: <your-authorization>'

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change or a way out, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__usedamper__list_projects",
      "mcp__usedamper__get_agent_instructions",
      "mcp__usedamper__list_tasks",
      "mcp__usedamper__get_task",
      "mcp__usedamper__list_self_assessments",
      "mcp__usedamper__list_review_artifacts",
      "mcp__usedamper__list_context_sections",
      "mcp__usedamper__resolve_context",
      "mcp__usedamper__get_context_section",
      "mcp__usedamper__get_project_context",
      "mcp__usedamper__get_section_blocks",
      "mcp__usedamper__get_section_block_content",
      "mcp__usedamper__audit_context_health",
      "mcp__usedamper__get_context_graph",
      "mcp__usedamper__list_context_relations",
      "mcp__usedamper__list_context_routes",
      "mcp__usedamper__preview_context_route_migration",
      "mcp__usedamper__compare_context_resolution",
      "mcp__usedamper__list_context_bundles",
      "mcp__usedamper__get_context_bundle",
      "mcp__usedamper__list_context_fixtures",
      "mcp__usedamper__prepare_completion",
      "mcp__usedamper__preview_context_update",
      "mcp__usedamper__list_context_maintenance_candidates",
      "mcp__usedamper__list_feedback",
      "mcp__usedamper__get_feedback",
      "mcp__usedamper__get_feedback_attachment",
      "mcp__usedamper__list_pages",
      "mcp__usedamper__search_pages",
      "mcp__usedamper__get_page",
      "mcp__usedamper__get_page_database",
      "mcp__usedamper__get_page_database_schema",
      "mcp__usedamper__query_page_database",
      "mcp__usedamper__get_page_backlinks",
      "mcp__usedamper__list_templates",
      "mcp__usedamper__get_template",
      "mcp__usedamper__list_modules",
      "mcp__usedamper__get_module",
      "mcp__usedamper__list_changelogs",
      "mcp__usedamper__get_completion_checklist",
      "mcp__usedamper__preview_completion_checklist_migration",
      "mcp__usedamper__get_project_settings",
      "mcp__usedamper__list_status_maintenance_targets",
      "mcp__usedamper__list_status_maintenance",
      "mcp__usedamper__get_status_summary",
      "mcp__usedamper__get_status_history",
      "mcp__usedamper__list_status_groups",
      "mcp__usedamper__list_status_checks",
      "mcp__usedamper__list_status_incidents",
      "mcp__usedamper__list_status_alert_recipients"
    ],
    "ask": [
      "mcp__usedamper__update_task",
      "mcp__usedamper__create_task",
      "mcp__usedamper__add_note",
      "mcp__usedamper__add_commit",
      "mcp__usedamper__link_pr",
      "mcp__usedamper__create_subtask",
      "mcp__usedamper__update_subtask",
      "mcp__usedamper__add_task_dependency",
      "mcp__usedamper__add_api_example",
      "mcp__usedamper__add_screenshot",
      "mcp__usedamper__add_diagram",
      "mcp__usedamper__start_task",
      "mcp__usedamper__review_task",
      "mcp__usedamper__complete_task",
      "mcp__usedamper__request_review",
      "mcp__usedamper__abandon_task",
      "mcp__usedamper__update_context_section",
      "mcp__usedamper__sync_project_context",
      "mcp__usedamper__prepare_work",
      "mcp__usedamper__resolve_context_graph",
      "mcp__usedamper__upsert_context_relation",
      "mcp__usedamper__upsert_context_route",
      "mcp__usedamper__validate_context_routing",
      "mcp__usedamper__upsert_context_bundle",
      "mcp__usedamper__upsert_context_fixture",
      "mcp__usedamper__report_context_feedback",
      "mcp__usedamper__patch_context_section",
      "mcp__usedamper__upsert_context_block",
      "mcp__usedamper__verify_context_section",
      "mcp__usedamper__render_context_routes_markdown",
      "mcp__usedamper__refresh_context_maintenance_candidates",
      "mcp__usedamper__convert_context_maintenance_candidate",
      "mcp__usedamper__update_feedback",
      "mcp__usedamper__reply_to_feedback",
      "mcp__usedamper__report_issue",
      "mcp__usedamper__link_feedback_to_task",
      "mcp__usedamper__create_page",
      "mcp__usedamper__update_page",
      "mcp__usedamper__move_page",
      "mcp__usedamper__duplicate_page",
      "mcp__usedamper__upsert_database_row",
      "mcp__usedamper__create_task_from_page",
      "mcp__usedamper__create_database_property",
      "mcp__usedamper__update_database_property",
      "mcp__usedamper__update_database_row_values",
      "mcp__usedamper__update_database_view",
      "mcp__usedamper__create_database_view",
      "mcp__usedamper__create_database_template",
      "mcp__usedamper__update_template",
      "mcp__usedamper__sync_templates",
      "mcp__usedamper__update_module",
      "mcp__usedamper__create_changelog",
      "mcp__usedamper__update_changelog",
      "mcp__usedamper__add_to_changelog",
      "mcp__usedamper__publish_changelog",
      "mcp__usedamper__patch_completion_checklist",
      "mcp__usedamper__update_project_settings",
      "mcp__usedamper__open_public_page",
      "mcp__usedamper__create_status_maintenance",
      "mcp__usedamper__update_status_maintenance",
      "mcp__usedamper__add_status_maintenance_update",
      "mcp__usedamper__edit_status_maintenance_update",
      "mcp__usedamper__create_status_group",
      "mcp__usedamper__update_status_group",
      "mcp__usedamper__create_status_check",
      "mcp__usedamper__update_status_check",
      "mcp__usedamper__run_status_check",
      "mcp__usedamper__create_status_incident",
      "mcp__usedamper__update_status_incident",
      "mcp__usedamper__add_status_incident_update",
      "mcp__usedamper__create_status_alert_recipient",
      "mcp__usedamper__update_status_alert_recipient"
    ],
    "deny": [
      "mcp__usedamper__delete_subtask",
      "mcp__usedamper__delete_task",
      "mcp__usedamper__remove_task_dependency",
      "mcp__usedamper__remove_review_artifact",
      "mcp__usedamper__delete_context_section",
      "mcp__usedamper__delete_context_relation",
      "mcp__usedamper__delete_context_route",
      "mcp__usedamper__delete_context_bundle",
      "mcp__usedamper__delete_context_fixture",
      "mcp__usedamper__archive_page",
      "mcp__usedamper__delete_database_view",
      "mcp__usedamper__sync_modules",
      "mcp__usedamper__delete_module",
      "mcp__usedamper__delete_changelog",
      "mcp__usedamper__delete_status_maintenance",
      "mcp__usedamper__delete_status_group",
      "mcp__usedamper__delete_status_check",
      "mcp__usedamper__delete_status_incident",
      "mcp__usedamper__delete_status_alert_recipient"
    ]
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. A read that can send data out (it takes a URL, say) asks first too. It assumes the server is installed as usedamper. Review it before you use it.

Capability tags behind 26 rules
  • mcp__usedamper__link_pr outbound
  • mcp__usedamper__list_review_artifacts untrusted-input
  • mcp__usedamper__complete_task outbound
  • mcp__usedamper__resolve_context private-data
  • mcp__usedamper__resolve_context_graph private-data
  • mcp__usedamper__compare_context_resolution private-data
  • mcp__usedamper__get_feedback untrusted-input
  • mcp__usedamper__get_feedback_attachment private-data
  • mcp__usedamper__reply_to_feedback outbound
  • mcp__usedamper__list_pages private-data
  • mcp__usedamper__get_page_database private-data
  • mcp__usedamper__get_page_database_schema private-data
  • mcp__usedamper__query_page_database private-data
  • mcp__usedamper__publish_changelog outbound
  • mcp__usedamper__get_completion_checklist private-data
  • mcp__usedamper__get_project_settings untrusted-input
  • mcp__usedamper__open_public_page untrusted-input
  • mcp__usedamper__create_status_maintenance untrusted-input
  • mcp__usedamper__update_status_maintenance untrusted-input
  • mcp__usedamper__add_status_maintenance_update untrusted-input
  • mcp__usedamper__create_status_check untrusted-input, outbound
  • mcp__usedamper__update_status_check untrusted-input, outbound
  • mcp__usedamper__run_status_check untrusted-input
  • mcp__usedamper__create_status_incident untrusted-input
  • mcp__usedamper__add_status_incident_update untrusted-input
  • mcp__usedamper__list_status_alert_recipients private-data, untrusted-input

Pin

Keep the decision: fail CI when the tools change, follow every change, or show a badge.

Pin in CI

Fail a build when the tools you reviewed are not the tools the server serves today.

curl -s "https://anlyon.dev/api/v1/servers/com.usedamper/mcp/verify?hash=b89fdad1fe9f433955597722d5e87ea790f15b5203c22687f95d8a7849a928f9" | jq -e '.changed == false'

Pinned hash b89fdad1fe9f, from Oct 30, 2026, 13:18 UTC.

Watch

Get told when its tools change: a new tool, a new description, a new class.

https://anlyon.dev/servers/com.usedamper/mcp/changes.xml

An Atom feed. Works in any feed reader or Slack's RSS app.

Badge

anlyon.dev badge for com.usedamper/mcp
[![anlyon.dev](https://anlyon.dev/badge/com.usedamper/mcp.svg)](https://anlyon.dev/servers/com.usedamper/mcp)

Source: MCP Registry. Synced Oct 30, 2026, 14:17 UTC.