ReviseMy is a remote MCP server over streamable HTTP. One address serves every client:
https://revisemy.com/mcp/revisemy
POST JSON-RPC to it. A GET answers a JSON 405, which is expected. Authenticate with a try token as a Bearer header, or let the client connect with OAuth.
Adding it
Most assistants have a one-step setup on Connectors. For anything else, the config is the same shape:
{
"mcpServers": {
"revisemy": {
"url": "https://revisemy.com/mcp/revisemy",
"headers": { "Authorization": "Bearer YOUR_TRY_TOKEN" }
}
}
}
Claude Code also has a plugin that adds the server and a design-checkup skill:
/plugin marketplace add heyderekj/revisemy
/plugin install revisemy@revisemy
Discovery
| Document | What it's for |
|---|---|
/.well-known/mcp/server-card.json |
Name, version, endpoint, tools and prompts, read from the server |
/.well-known/oauth-protected-resource/mcp/revisemy |
OAuth resource metadata for clients that connect by signing in |
/llms.txt |
A short index of the site and the tools, for agents |
server.json in the repo |
The entry in the MCP registry, io.github.heyderekj/revisemy |
The checkup prompt
The server offers one prompt, design_checkup_loop. It walks an agent through the whole loop: capture, create_review, share the link, poll get_review, follow next_action. Hosts that show prompts list it as a starting point.
Reviews inside the chat
In hosts that support MCP Apps, such as Claude and VS Code, create_review and get_review also render the review inline. The person marks and decides without leaving the conversation. Everywhere else your agent pastes review_url. The loop is the same either way, and your agent should always paste the link.
Three tools exist only for that inline view: add_mark, decide_review and verify_mark. They're hidden from the model, and an agent must never call them, because approving and verifying stay with the person.
Tool reference
These are the tools your agent sees, with the descriptions it reads. Each one's REST twin is on REST API.
create_review
Use when the person wants something visual (a page, screen, email or deck) checked, proofed, marked up or signed off before it ships, or after you change UI. Not for code or PR review. Start or continue a design checkup loop: provide exactly one source — capture_url+page_url (public website), html (email), pdf (slides), or images (local UI as data URLs) — and get a review URL for the human. Pass parent_id after changes_requested to open the next pass with a fresh source. Call add_findings before sharing if you want a subagent critique. In MCP Apps hosts the review renders inline so the human can start marking right away. A website capture takes 20 to 60 seconds: tell the human you are capturing the page before you call this.
| Parameter | Type | Required | What it is |
|---|---|---|---|
title |
string | Yes | Short title for this checkup pass |
context |
string | No | What should the human look at on this pass? Set a new focus for each pass — do not reuse the previous pass’s notes blindly. |
type |
"ui" | "website" | "presentation" | "email" | No | What kind of content this is — ui (default), website, slide (presentation), or email. Drives the second-opinion lens: emails get CTA/dark-mode/client checks, slides get slide-density checks, websites get above-the-fold/responsive checks. Follow-up passes inherit the parent type. |
page_url |
string | No | Live page URL. Required with capture_url:true for server-side website capture (desktop + mobile) — on a follow-up pass it defaults to the parent review page_url. Metadata only when using images/html/pdf — does not trigger capture on its own. |
webhook_url |
string | No | Optional https URL POSTed when the human decides (event review.decided, HMAC-signed with the review token) — lets pipelines gate on approval instead of polling. Follow-up passes inherit it. |
parent_id |
string | No | Previous review id when opening the next pass after changes_requested |
images |
array of string | No | Local or app UI: 1–5 screenshots as data URLs or base64 (costs 1 credit). Prefer this for localhost — do not send http://localhost to remote capture. For public websites use capture_url. Provide exactly one source: images, capture_url, pdf, or html. |
capture_url |
boolean | No | Capture page_url server-side (desktop + mobile; costs 5 credits). Public URLs only — for localhost use images data URLs. Requires REVISEMY_CAPTURE_DRIVER=hosted|browsershot. On [capture_not_configured] or [capture_provider_failed], immediately retry once with images. On [insufficient_credits], call get_billing (monthly refill); create_checkout only if pricing is enabled. |
pdf |
string | No | A PDF as https URL or base64 — rendered one screenshot per page, max 5 (type defaults to slide / presentation). |
html |
string | No | Raw HTML of an email — rendered at ~600px like a mail client (type defaults to email). Requires REVISEMY_CAPTURE_DRIVER. On [capture_not_configured] or [capture_provider_failed], fall back to images with data URLs. |
get_review
Poll the design checkup: status, next_action, human marks in work_packets.pins (authoritative), second_opinion hints. Follow next_action — wait, apply marks + create next pass, or stop when approved. In MCP Apps hosts this renders the review inline so the human can mark and decide there.
| Parameter | Type | Required | What it is |
|---|---|---|---|
id |
string | Yes | The review public id returned by create_review |
list_reviews
List recent design reviews for this try token only. Returns pass #, status, next_action, and outstanding / awaiting-verification counts — not full work packets. Call get_review for pins.
No parameters.
add_screenshot
Append another screenshot to an open design review that is still waiting on feedback.
| Parameter | Type | Required | What it is |
|---|---|---|---|
id |
string | Yes | The review public id |
image |
string | Yes | Screenshot as https URL, data URL, or base64 |
add_findings
Act as a design-reviewer subagent: push suggestion/a11y/polish findings into an open review for the human to see alongside their marks. Never use must-fix — human marks stay authoritative.
| Parameter | Type | Required | What it is |
|---|---|---|---|
id |
string | Yes | The review public id |
findings |
array of object | Yes | List of {severity?, body, area?, screenshot_index?, related_pin?} — severity must be suggestion|a11y|polish |
resolve_marks
Report progress on human marks while fixing them: set each mark to in_progress or resolved (with a short note on what you changed). When resolving, optionally attach after_image — a screenshot of the fixed area — so the human sees a before/after. Verifying stays the human's job — never claim a mark is done for them.
| Parameter | Type | Required | What it is |
|---|---|---|---|
id |
string | Yes | The review public id |
marks |
array of object | Yes | List of {id, status?, note?, after_image?}. id is the mark id from work_packets.pins[].id. status is "in_progress" or "resolved" (default resolved). note describes what you changed. after_image is an optional screenshot of the fixed area (https URL, data URL, or base64) shown to the human as a before/after. |
request_second_opinion
Re-queue the Cloud second-opinion job (free checklist + optional OpenAI vision) for a review. Findings are suggestions only and never change review status.
| Parameter | Type | Required | What it is |
|---|---|---|---|
id |
string | Yes | The review public id |
screenshot_index |
integer | No | Optional screenshot index; omit to refresh all shots |
get_billing
Show this workspace plan, credits remaining, and the burn table (images/pdf=1, html=3, capture_url=5). Try is 20 credits that renew monthly (no rollover); purchased pack credits never expire and are spent last. When credits run out and checkout is available, offer Plus or a credit pack via create_checkout; otherwise wait for the monthly refill.
No parameters.
create_checkout
Start a checkout link for the human: product "plus" (default — Plus subscription, monthly credits) or "credits_50" (one-time 50-credit pack that never expires; works on Try or Plus). If the workspace is already on Plus, use credits_50. Immediately paste share_markdown / checkout_url into chat (never only say “finish payment in the browser”).
| Parameter | Type | Required | What it is |
|---|---|---|---|
product |
"plus" | "credits_50" | No | plus (default): monthly subscription. credits_50: one-time 50-credit pack, never expires. |
create_portal
Open the billing manage page so the human can view receipts, update their payment method, buy a credit pack, or cancel Plus (billing runs through Polar). Returns portal_url — immediately paste it into chat as the markdown share block (never only say “open the billing page”).
No parameters.
cancel_subscription
Cancel Plus for this workspace (stops renewal; keeps Plus until the current period ends, then Try with leftover credits only — no new grant). Requires confirm:true after the human asks to cancel. Purchased pack credits are kept. For payment-method or receipt changes, use create_portal instead.
| Parameter | Type | Required | What it is |
|---|---|---|---|
confirm |
boolean | No | Must be true. Only set after the human explicitly asks to cancel Plus. |
Errors
A tool that can't do what was asked answers with an MCP error whose message starts with a bracketed code your agent can branch on:
| Code | What to do |
|---|---|
[capture_not_configured] |
This server can't render html. Retry once with images as data URLs. |
[capture_provider_failed] |
Rendering failed. Retry once with images. |
[insufficient_credits] |
Out of credits. Call get_billing for when they refill. |
A failed capture_url doesn't error. The review still opens, so there's always a link, but its shot is a blank placeholder (meta.origin is capture_failed) and the reply names the failure. Your agent should add the page with add_screenshot, desktop and mobile, before it shares the link.
Anything else is a plain sentence meant for your agent to read and act on.