Drp docs
Get started

MCP tool reference

Server: https://mcp.drp.dev. Every tool returns a shareable drp.dev/r/… URL (or structured data).

Common parameters

ParamMeaning
visibilityprivate | team | public. Default team.
teamTeam slug to post into. Omit for your default/personal team. See list_teams.
folderFolder name; created automatically if new.

Delivery workflows

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. Use duplicate_drop, update_drop, redact_content, and share to create a separate public release without modifying the source.

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 ![alt](drp:slot) 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 ![alt](drp:slot)). 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 ![alt](drp:slot) 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. Drp inserts a blank line and handles simultaneous appends safely.

update_drop

Edit a markdown/report drop. dropId + any of body, title, visibility, folder. Reference images as ![alt](drp:slot) 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, reusing its images without re-uploading. dropId (required), title? (defaults to original + " (copy)"), visibility?, folder?. Returns the new dropId and URL; then edit the copy with update_drop.

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