MCP tool reference
Server: https://mcp.drp.dev. Every tool returns a shareable drp.dev/r/… URL (or structured data).
Common parameters
| Param | Meaning |
|---|---|
visibility | private | team | public. Default team. |
team | Team slug to post into. Omit for your default/personal team. See list_teams. |
folder | Folder name; created automatically if new. |
Delivery workflows
drp_init
Initialize one private, creator-only delivery exactly once from a bounded approved source summary. Required fields cover title, origin type, why it exists, expected user outcome, acceptance criteria, non-goals, and an idempotency key. Keep the generated delivery ID and append immutable history with append_drop entry types and fresh idempotency keys. For a public Release, rewrite and redact customer copy first, then use one duplicate_drop call with that body, artifactType: "release", and public visibility. Do not provide raw transcripts, attachments, credentials, or private conversations.
drp_full
Returns the complete agent execution contract for reviewing a change, verifying findings, collecting evidence, creating the private internal report, and producing a separate public release. Ask your agent to “use drp-full” to start this workflow.
review_changes
Review a real unified diff and return merge risk, validated findings, and a required evidence plan. Stores nothing by default. Set publish: true only when a shareable technical review page is wanted.
Drp Evidence and Drp Release
Use post_report to create the private proof-backed internal report. Rewrite and redact the customer copy first, then use one duplicate_drop call with that body, artifactType: "release", and public visibility. The source remains private and unchanged.
Posting drops
post_image
Post an image. imageBase64 (preferred - Drp hosts it) or imageUrl; contentType (e.g. image/png); + common params.
post_markdown
Post a markdown note. body (required), title? + common params.
upload_file
Upload any file. filename, contentType, contentBase64 (preferred) or contentUrl + common params. Up to 100 MB.
post_html
Share runnable HTML+JS. body (full HTML document) + common params. Rendered sandboxed/isolated.
post_code
Share code/text rendered read-only with highlighting (never executed). filename, content (text), contentType? + common params.
post_report
One page from markdown + inline images. body with  refs, images: [{ slot, imageBase64|imageUrl, contentType }] + common params. Returns incompleteSlots + a hint if any image is missing.
prepare_image_upload
Get a signed direct-upload URL for a local image/file, skipping base64. contentType (required), title?, kind? (image|file, default image), filename? + common params; or dropId + slot to attach to an existing markdown/report drop (fills ). Returns { dropId, url, uploadUrl }; PUT the raw bytes to uploadUrl (no auth header). The URL expires in ~15 minutes.
add_report_image
Add/replace one image on a markdown or report drop. dropId, slot, imageBase64|imageUrl, contentType. If the body has a  placeholder it fills that spot; otherwise the image is appended to the bottom (and a markdown drop is upgraded to a report). Add images one per call.
Reading & updating (iterative docs)
Build a document over time, e.g. "research this PR as you go, documenting changes with images".
get_drop
Read a drop you created. dropId → returns markdown body, title, kind, visibility, folder, URL, and (reports) filled assets + referenced slots.
append_drop
Add markdown to the bottom of an existing markdown or report drop without fetching and rewriting its full body. Pass dropId as an ID or Drp share link, plus content. For an initialized delivery, also pass entryType and a fresh idempotencyKey. Corrections and scope decisions reference init fields or prior event IDs.
update_drop
Edit a markdown/report drop. dropId + any of body, title, visibility, folder. Reference images as  and add the bytes with add_report_image (unplaced images append to the bottom).
duplicate_drop
Duplicate a markdown/report/html drop into a new drop in the same team. Ordinary copies reuse image objects; customer Releases receive isolated image objects so later private evidence changes cannot alter published images. dropId is required. Optional fields include title, body, artifactType, visibility, and folder. For a customer Release, supply rewritten copy with artifactType: "release" and public visibility in the same call.
Managing
share
Change visibility / expiry. dropId, visibility, expiresIn? (e.g. 7d).
list_drops
List recent drops. team?, folder?, kind?, limit? (≤100).
create_folder / list_folders
create_folder(name, team?) (idempotent); list_folders(team?) returns folders with drop counts.
list_teams / whoami
list_teams() lists teams you can post to (with slugs). whoami() shows your account and the default team your drops land in.
Sizes & scaling
- Send content as base64: Drp hosts it; you never need to host it elsewhere.
- Soft limit ~24 MB inline per item; hard limit 100 MB.
- For a local file already on disk, prefer
prepare_image_upload: no base64, one signed PUT. - For many/large images in a report: post with a few (or none), then
add_report_imageone per call.