Damper MCP referenca
Damper nudi 100+ alata putem hostanog MCP poslužitelja sa streamable HTTP transportom — bez lokalne instalacije. Agenti ih koriste za rad na zadacima, razrješavanje konteksta, čitanje stranica i baza podataka, obradu povratnih informacija i objavljivanje izdanja.
Postavljanje
Dodajte Damper MCP poslužitelj svom AI asistentu. Koristi streamable HTTP transport — ništa ne treba instalirati lokalno.
Claude Code
Dodajte u .mcp.json projekta ili globalni ~/.claude.json:
// .mcp.json or ~/.claude.json { "mcpServers": { "damper": { "type": "http", "url": "https://api.usedamper.com/mcp", "headers": { "Authorization": "Bearer dmp_..." } } } }
Cursor
Dodajte u .cursor/mcp.json u korijenu projekta:
// .cursor/mcp.json { "mcpServers": { "damper": { "type": "http", "url": "https://api.usedamper.com/mcp", "headers": { "Authorization": "Bearer dmp_..." } } } }
Autentikacija
Svi zahtjevi autentificiraju se vašim API ključem u zaglavlju Authorization. Ključ pronađite u nadzornoj ploči pod Postavke → API ključevi — ključevi koriste prefiks dmp_.
Authorization: Bearer dmp_your_key_here
Preporučeni tijek rada
- Pripremite posao
get_agent_instructionspostavlja vaš CLAUDE.md;prepare_worksastavlja kompaktan radni paket s mjerodavnim kontekstom i usporedbom grafa. - Učitajte kontekst
get_project_contextiliresolve_context— arhitektura, pravila i sekcije mjerodavne za datoteke koje ćete mijenjati. - Odaberite i zaključajte zadatak
list_taskssortira po ponderiranoj potražnji;start_taskzaključava zadatak i vraća specifikaciju, povezane povratne informacije i indeks kontrolne liste. - Pratite u hodu
add_noteza odluke,add_commitza hasheve, alink_prčim nastane pull request. - Završite s dokazima
get_completion_checklist, zatimcomplete_tasks potvrdom za svaku stavku. Iliabandon_tasksa sažetkom za predaju. - Pustite petlju da se zatvori sama
Završeni javni zadaci automatski stvaraju nacrt unosa changeloga;
publish_changelogobavještava pretplatnike i glasače.
Structured output schemas include task lifecycle messages, execution dates, summaries, review instructions, project details and feedback submitters; dependency project IDs and creation dates; and changelog dates and linked items. start_task and get_project_context share a context index schema with tags, appliesTo and exposed-page titles. Context sections include version and verification metadata; generated routing sections declare a string version, generated/readOnly flags and routeCount. Database reads include relationLabels, and row-value updates return updatedAt for conflict-safe edits.
Zadaci
include sections like timeline or set detailMode: "full" for the legacy payload.kind.currentProgress snapshot shown in compact retrieval. Pass status: "closed" to discard a task that will not ship; closed tasks are hidden from the public roadmap and default lists.METHOD /path STATUS, so a success and each error case are separate examples. Re-sending a key replaces the example and resets its verdict to pending; credential headers are redacted, bodies over 16 KB are truncated, and a task holds up to 100.curl (expires after 30 minutes), with an optional before image. PNG, JPEG, WebP or GIF, 5 MB per image, 60 per task. Capture the viewport at 1–2× scale rather than the full page; Damper re-encodes uploads to WebP (at most 2560 px wide, GIFs kept as sent) and stores a thumbnail for the review grid. Re-sending a key replaces the screenshot and resets its verdict to pending. Damper reads each image's pixel size from the file on upload, so the review viewer sizes it correctly in every browser.flowchart), a state machine (stateDiagram-v2), a call sequenceDiagram, or how modules or tables relate (classDiagram, erDiagram). Add one only when it clarifies what a list of endpoints or screenshots cannot. Keep it to about 15 nodes; tag nodes :::added, :::changed or :::removed in flowcharts and state diagrams and Damper colours them for the reviewer's theme. Pass beforeSource for a before/after toggle. The key defaults to a slug of the title, and re-sending it replaces the diagram and resets its verdict to pending. Sources are capped at 16 KB, %%{init} directives and click handlers are rejected, and a task holds up to 20.pending, approved, changes_requested) and comment. Screenshots include the pixel size read on upload (imageWidth/imageHeight, and beforeImageWidth/beforeImageHeight), so an agent can check what landed. This is how an agent reads review feedback back — redo the ones marked changes_requested.id or by kind + key, for example a page that no longer changes. Destructive.taskId, summary (what is reviewable now), optional reviewInstructions (public while in review) and stage (complete by default, or partial). The task must be in_progress and locked by the caller. It moves to in_review, releases the lock so reviewers can act on it, and closes the session — no checklist, pull request or self-assessment needed, and no user confirmation, because it is reversible and commits nothing. Optional previewUrl (http(s), max 2000 characters; omitting it clears any earlier preview URL) links the running change for the reviewer, e.g. a Tailscale URL — internal only, never shown publicly. The hand-off is checked against the project’s review evidence policy: pass touchedPaths and checklistScope for what it changed (unioned with the scope prepare_completion recorded); missing required evidence fails with review_evidence_missing unless evidenceNotApplicable gives the reason, and the response’s evidence object lists what was expected, attached and missing. Resume with start_task if the reviewer sends it back; the response then starts with the reviewer’s feedback. If the Damper CLI is installed, run damper review wait <taskId> in the background (exit 10 = needs work, 0 = approved or partial stage approved, 2 = timed out, 1 = error).in_review (or straight to done with skipReview); a second call finalizes it (except for tasks put in review with request_review, which wait for the reviewer). Accepts the same optional previewUrl (omitted clears the old one when moving to in_review); when the task lands in in_review the response includes the damper review wait <taskId> hint. Missing review evidence for the change scope (declared checklistScope, scope routed from touchedPaths, and what prepare_completion recorded) returns a warning when suggested and blocks the hand-off when required — unless you pass evidenceNotApplicable with the reason it does not apply. Finalizing a task that is already in review re-checks the same evidence.Review artifacts
Review artifacts are the evidence an agent attaches to a roadmap task so a person can check the work without running it: API examples for changed endpoints, screenshots of changed pages and, optionally, diagrams of the logic or structure behind the change.
- Attach evidence
The agent calls
add_api_exampleandadd_screenshotwhile it works, andadd_diagramwhen a flow, decision tree or set of relationships needs explaining. - Task goes to review
request_reviewor the firstcomplete_taskmoves the task toin_review, once the evidence the project requires is attached (or waived with a reason). Artifacts can still be added or replaced there. - Reviewer decides per artifact
In the dashboard, a reviewer marks each artifact approved or changes requested, with one comment per artifact.
- Agent reads feedback
list_review_artifactsreturns the verdicts and comments. The agent redoes what was flagged; a re-sent artifact goes back topending.
Handing off to review
Agents should not leave reviewable work in in_progress. When there is a working slice, an opened pull request, attached evidence, or the session is about to end, the agent calls request_review with a summary of what to verify. It does not need user confirmation; complete_task still does.
- Lock release. The task moves to
in_reviewand the lock is released, so it appears in the Review queue. The agent session closes;start_taskreopens one. - Partial stage. With
stage: "partial", approving the review returns the task toin_progressfor the next slice instead of marking it done, and the queue shows a "Partial stage" label. Sending it back needs a comment, as always. - No early finish. While a stage review is pending,
complete_taskis rejected; wait for the decision and resume withstart_task. - Nudges.
link_pr,add_screenshot,add_api_exampleandadd_commitremind the agent aboutrequest_reviewwhile the task is in progress.get_project_contextandlist_taskslist the calling key's in-progress tasks that look ready (idle 12 hours or more with a linked PR, attached evidence, or all subtasks done), and the Review page shows them under "Possibly ready" with a "Move to review" button.
Waiting for review feedback
After request_review or complete_task lands the task in in_review, an agent with the Damper CLI installed can run damper review wait <taskId> as a background command. It exits 10 when the reviewer asks for changes (the feedback is printed; resume with start_task), 0 when approved (for a partial stage this means: continue the remaining work, then request review again), 2 when it timed out — the watch stays registered, so do not re-arm it more than once — and 1 on an error such as an API key that cannot see the task (details on stderr). When the agent resumes, start_task and get_task show a “Reviewer feedback” block with the round, the overall comment and each artifact marked changes requested.
damper review wait <taskId>— block until one task is decided.damper review watch— long-running watcher that resumes agents when decisions arrive.damper review inboxanddamper review status— undelivered decisions and watcher state.damper review service install— keep the watcher running as a background service.
Pass previewUrl to request_review or complete_task when the change is running somewhere the reviewer can open. The Review page shows an “Open preview” link; the URL is never part of public roadmap output.
Verdicts are feedback on the evidence. They do not change the task's status and do not gate completion. Note that review_task is something else: a self-assessment the agent writes about its own session, not a human review.
Review evidence policy
Each project sets what agents are asked to attach. Every kind (apiExamples, screenshots, diagrams) has a base level (off, suggested or required) for any change that triggers it, plus optional rules that raise or lower the level for specific surfaces, change kinds or risk domains. Read and change the policy with get_project_settings and update_project_settings (reviewEvidencePolicy, a partial update), or in the dashboard under project settings.
| Setting | Values | Notes |
|---|---|---|
apiExamples | off | suggested | required | Base level. Triggered by contract_changes (override with apiExamplesChangeKinds). Default suggested. |
screenshots | off | suggested | required | Base level. Triggered by rendering_changes and public_output_changes (screenshotsChangeKinds). Default suggested. |
screenshotLocale | locale code or none | Locale agents should capture. |
screenshotTheme | light | dark | any | Default any. |
screenshotViewports | list, up to 5 | Default desktop. |
screenshotStates | free text | States to cover, such as empty or error. |
diagrams | off | suggested | required | Base level. Triggered by behavior_changes, contract_changes and migration_changes (diagramsChangeKinds). Default off. A diagram only suggested by the base level is a nudge and never warns; one a rule suggests or requires is reported like the other kinds. |
diagramGuidance | free text | What is worth a diagram here, such as decision logic or module relationships. |
apiExamplesRules, screenshotsRules, diagramsRules | up to 20 of { level, changeKinds?, appliesTo?, riskDomains? } | Scoped exceptions to the base level. A rule names at least one field; every field it sets must match. See “How levels resolve” below. |
apiExamplesChangeKinds, screenshotsChangeKinds, diagramsChangeKinds | list of change kinds or null | Which change kinds trigger the kind at all (null = the defaults above). Rules only apply to changes that trigger the kind. |
apiExamplesScope, screenshotsScope, diagramsScope | deprecated | Older filter form. Still accepted and converted on read and write to the same behaviour: its changeKinds become the trigger, and its appliesTo / riskDomains become a rule at the old level, with the base set to off. |
partialStageEvidence | warn | block | Default warn: a partial-stage request_review with missing required evidence goes into review with the gaps listed as warnings (the response has blocking: false). block: it fails with review_evidence_missing like a complete stage. The complete stage, its approval and complete_task always block. |
plannedScope | fallback | always | never | Whether the files prepare_work expected to touch (its likelyPaths scope) decide the evidence required at hand-off. fallback (default): only when the hand-off declares no scope and prepare_completion recorded none, so an agent that reports nothing is still checked. always: always add the planned scope (stricter; a guessed path can require evidence). never: ignore it. |
checkDirectDone | boolean | Default false: only hand-offs into review and their approvals are checked. When true, moving an item straight to done without a review (dashboard, REST or an AI task link) runs the same required-evidence check as a complete-stage hand-off, with evidenceNotApplicable as the way through. |
How levels resolve
- If the change has none of the kind’s trigger change kinds, the kind is
off. - Otherwise it starts at the base level.
- A rule looser than the base lowers it only when the whole change is inside the rule (all of its surfaces, triggering change kinds and risk domains are listed), so a change that also touches something else keeps the stricter level.
- A rule stricter than the base raises it when the change touches any value the rule lists. The strictest matching rule wins.
Examples: API examples suggested with apiExamplesRules: [{ "level": "required", "riskDomains": ["public_api"] }] are required for public API changes and suggested elsewhere. Diagrams suggested with a required rule for ["billing", "checkout"] are required there and still prompted for everywhere else. Screenshots required with { "level": "suggested", "appliesTo": ["ios"] } are only suggested for an iOS-only change.
get_completion_checklist with appliesTo / changeKinds / riskDomains returns reviewEvidence.forScope: the level and reason for each kind, computed exactly as the hand-off gate, prepare_work and prepare_completion do. Without a scope it returns the policy itself.
A suggested gap returns a warning. A required gap blocks every hand-off into review until the evidence is attached or evidenceNotApplicable explains why it is not:
- Entering review.
request_review(partial stages only warn unlesspartialStageEvidenceisblock),complete_task, and a status change toin_reviewfrom the dashboard,PATCH /api/projects/:id/roadmap/:itemIdor an AI task link all run the check. The scope is what the call declares plus whatprepare_completionor an earlier hand-off recorded;prepare_work’s expected paths count perplannedScope. - Approving. Approving a complete-stage review, moving the item from
in_reviewtodone, or finalizing withcomplete_taskre-checks the evidence recorded at hand-off against what is attached now. A waiver given at hand-off carries over; the reviewer can also passevidenceNotApplicable. - Each round. After a reviewer decision (changes requested, or a partial stage approved), only artifacts attached or replaced since that decision count. A reviewer marking an existing artifact does not make it new. Declare the new round’s scope with
touchedPaths/checklistScope. - Existing reviews. Items that entered review before the check existed are approved as before.
The error is the same on every surface: HTTP 400 with code: "review_evidence_missing", evidenceGaps (each with kind, mode, message, and the changeKinds, appliesTo and riskDomains that call for it), evidenceSince and waiverField: "evidenceNotApplicable". Waivers are recorded on the task timeline.
HTTP routes
Agents without MCP can use the same operations over HTTP with Authorization: Bearer dmp_....
| Route | Purpose |
|---|---|
GET /api/agent/tasks/:id/artifacts | List artifacts with verdicts and comments. |
POST /api/agent/tasks/:id/artifacts/api-examples | Add or replace an API example. |
POST /api/agent/tasks/:id/artifacts/screenshots | Add or replace a screenshot; send base64 or set requestUpload. |
POST /api/agent/tasks/:id/artifacts/diagrams | Add or replace a Mermaid diagram, with an optional beforeSource. |
POST /api/agent/tasks/:id/artifacts/remove | Remove by id, or by kind and key. |
PUT /api/agent/artifact-uploads/:token | Upload image bytes. No API key; the single-use token is the credential. |
GET /api/agent/project/review-evidence-policy | Read the project's evidence policy. |
Upload a screenshot with curl
Request an upload URL, then PUT the image to it. The image never passes through the agent's context.
# 1. create the screenshot and get a single-use upload URL curl -X POST https://api.usedamper.com/api/agent/tasks/TASK_ID/artifacts/screenshots \ -H "Authorization: Bearer dmp_..." \ -H "Content-Type: application/json" \ -d '{"page": "Invoices list", "state": "empty", "requestUpload": true}' # 2. PUT the bytes to the returned upload.url (no key needed, expires in 30 minutes) curl -X PUT -H "Content-Type: image/png" \ --data-binary @invoices-list--empty.png \ "https://api.usedamper.com/api/agent/artifact-uploads/UPLOAD_TOKEN"
CLI
The Damper CLI does both steps for a whole folder of images. It needs DAMPER_API_KEY set to a project key.
damper artifacts upload --task TASK_ID [--manifest file.json] [image|dir ...]
Flags: --theme, --locale, --viewport and --change (added, changed or removed) set defaults for every screenshot; --dry-run lists what would be uploaded without sending anything. Without a manifest, name files page--state.png: invoices-list--empty.png becomes page “invoices list”, state “empty”. A manifest gives full control:
{
"screenshots": [
{
"file": "shots/invoices-empty.png",
"beforeFile": "shots/invoices-empty-before.png",
"page": "Invoices list",
"state": "empty",
"theme": "light",
"viewport": "desktop",
"change": "changed"
}
],
"apiExamples": [
{
"method": "GET",
"path": "/invoices?status=paid",
"response": { "status": 200, "body": { "data": [] } }
}
]
}
Other screenshot fields: route, locale, title, description and key. File paths are relative to the manifest. Each entry in apiExamples takes the same fields as add_api_example.
Kontekst i graf
Osvježavanje konteksta uz pomoć repozitorija
Pri prvom postavljanju ili nakon spajanja veće značajke lokalno pripremite nacrt konteksta za pregled. Repomix lokalno izrađuje paket izvornog koda i šalje ga odabranom agentu ili pružatelju; Damper prima samo predložene sekcije i pouzdane metapodatke pripreme.
MCP odgovori za kontekst mogu sadržavati neobavezne upute o svježini: nedostatak potvrde može predložiti postavljanje, a poznate promjene ili brisanja upravljanih sekcija mogu predložiti CLI provjeru samo za čitanje i pregledano osvježavanje. Ako je potvrda ispravna, uputa se ne prikazuje. MCP ne može pregledati vaše radno stablo ni izvorni kod, zato provjeru pokrenite lokalno; ona nikada ne objavljuje automatski.
- Pripremite lokalno
damper context prepare --agent claude --repository-key default - Pregledajte nacrt
Uvezite JSON nacrt u AI Context i pregledajte sadržaj prije/poslije, oznake, appliesTo i kritična pravila. Izostavljene sekcije ostaju nepromijenjene.
- Izričito objavite
Objavite tek nakon pregleda. Poslužitelj provjerava projekt, ključ repozitorija, verzije sekcija i potvrdu; objava zastarjelih nacrta ne uspijeva i ništa se ne upisuje djelomično. Ovaj tijek ne dodaje MCP alate i nikada automatski ne prepisuje kontekst.
- Provjerite svježinu
damper context check --repository-key default
Provjeru samo za čitanje pokrenite ručno, prema rasporedu ili nakon većeg spajanja u zadanu granu. Koristite je kao kontrolnu točku prije izdanja/deploya; osvježite spojeno radno stablo, pregledajte i objavite, a zatim ponovno pokrenite provjeru. U automatizaciji fiksirajte verziju CLI-ja, a objavu zadržite kao zaseban, pregledani korak.
Pages i baze podataka
Cijeli radni prostor Pages — s ograničenim čitanjem, pollingom koji se može nastaviti i upisima sigurnima za ponovni pokušaj, za baze koje rastu.
updatedAt ascending sort, save the returned resume cursor for incremental polls; in matches any supplied array member and contains requires all.Database read tools include full JSON in text and structured output. get_page also includes row propertyValues keyed by property ID; query_page_database preserves the requested property/content projection.
Date values use YYYY-MM-DD strings, for example 2026-09-13; use null to clear them. Timestamp strings are reduced to their first ten characters without timezone conversion. For overdue rows, filter with { propertyId: reviewDateId, operator: "less_than", value: "2026-09-13" } and sort with { propertyId: reviewDateId, direction: "asc" }.
Sort by exactly one metadata field (createdAt or updatedAt) or a custom date propertyId. Empty dates sort last in both directions; row IDs break ties. Reuse cursors with the same sort. Only updatedAt ascending (the default) supports incremental change polling; cursors for other sorts are for pagination only.
Povratne informacije
notifyCustomer to email them, and attach up to 3 screenshots (attachments: base64 or data-URL PNG/JPEG/WebP/GIF, 3 MB each) that appear in the email and on the public feedback page. Returns the screenshot links; get_feedback shows them on each comment.feedbackIds to create_task to link while creating. Feedback status follows the task, followers hear when it’s planned and submitters when it ships. Already-linked and unknown IDs are reported back.Izdanja
Status page monitoring
All tools require projectId and follow API-key project access. Incidents and incident updates default to isPublic: true and notifySubscribers: true, which queues subscriber notifications and alerts recipients in the background. Use isPublic: false for internal incidents and notifySubscribers: false to post quietly.
{
"name": "create_status_incident",
"arguments": {
"projectId": "YOUR_PROJECT_ID",
"groupId": "GROUP_ID",
"title": "Elevated API errors",
"startedAt": "2030-01-01T10:00:00Z",
"initialUpdateMessage": "We are investigating elevated error rates."
}
}Status page maintenance
All tools require projectId and follow API-key project access. Creation and timeline posts default to public; posts also default to notifying subscribers. Use isPublic: false for private work and notifySubscribers: false to suppress timeline notifications. Public window creation, edits and opted-in timeline posts queue durable subscriber notifications with background retries. A successful save confirms that the change and notification queue are committed, not that email has been delivered. Private windows still suppress monitoring alerts, and private updates cannot change the state of public maintenance.
{
"name": "create_status_maintenance",
"arguments": {
"projectId": "YOUR_PROJECT_ID",
"title": "Database upgrade",
"scheduledStartAt": "2030-01-01T10:00:00Z",
"scheduledEndAt": "2030-01-01T11:00:00Z",
"isPublic": false
}
}Predlošci i moduli
Projekti i tijek rada
list_projects vraća ID-jeve, nazive i slugove dostupnih projekata, vremenske oznake createdAt u ISO formatu te broj zadataka i povratnih informacija. Indeks get_project_context uključuje i neobavezno polje title za izložene stranice. Oba alata navode te metapodatke u shemama strukturiranog izlaza.
reviewEvidence for the task: which API examples, screenshots and diagrams the scope needs, how many are attached, and the missingRequired gaps that would block the hand-off.prepare_work returns verificationCommands from the project’s own configuration only: its verificationCommands setting ({ commands, bySurface }, set with update_project_settings; bySurface keys are checklist appliesTo surfaces and merge per surface, null removes one), context bundle verificationProfiles, and quality-gate sections. Damper adds no built-in commands. When none apply the list is empty and verificationGuidance says how to configure them.reviewEvidence: the review evidence policy and, for the requested scope, the level each evidence kind will be enforced at.🔗 Dashboard: line and return dashboardUrl.Usmjerite svog agenta ovamo.
Jedan URL, jedan ključ, sto alata. Vaša roadmapa je već backlog.