Hand a review to your AI coding agent

Someone clicked around the page and left ten comments. There are two ways to get those comments to an agent that can act on them — as a file, or over MCP.

Two ways, and when each one fits

  JSON export MCP server
How the agent gets it You download a file and point the agent at it The agent calls a tool with the share link
Per-comment detail CSS selector, the element, computed styles, the CSS rules that matched, the ancestor chain CSS selector and the comment text
Needs the extension Yes — the export is produced in the browser No — the server answers from the stored review
Works for comments
someone else left
Yes, if you open their review link and export from it Yes — their link is all the agent needs
Good for CSS and layout fixes, where the matched rules save the agent a hunt Working straight from a link a client or tester sent you

The difference in detail is not a limitation anyone chose — it is where the data comes from. Computed styles and matched CSS rules exist only in a browser with a live layout engine. The extension has one, so its export carries them. The server has no layout engine, so the MCP payload marks itself honestly as a subset (producer: "server", targetDetail: "none"). For an agent working inside your repository that is usually fine: the CSS is right there, unminified.

1. Export the comments as JSON

In the popup, Export comments as JSON — available both while you are annotating and while you are viewing a shared review. You get wft-comments-<host>-<date>.json.

Every comment in it carries the selector of the element it is about, what that element is, its computed styles, the CSS rules that matched it and its ancestor chain. That is enough for an agent to go from "this heading is too tight on mobile" to the rule in the stylesheet without ever opening a browser.

Drop the file in your repo and ask for the batch:

I exported feedback comments from a website review tool as wft-comments-example.com-2026-09-27.json.
For each comment in the file:
1. Skip it if target.found is false (note it instead — the element is gone).
2. Use target.selector and target.element to find the matching markup/component in this repo.
3. Use target.matchedRules[].source to find the stylesheet, and target.matchedRules[].selector
   to find the rule to edit — target.styles is the computed result, not what to copy in.
4. Apply the fix described in the comment's "text".
Report back which comments you fixed, which you couldn't map to a file, and which were skipped.
Have the agent check formatVersion before it starts, and treat target.found: false as a hard stop for that comment rather than reconstructing the element from coordinates. The full field reference is in the JSON format documentation.

2. Connect the MCP server

If the review already exists as a share link, the agent can read it itself. The MCP server exposes one tool, get_review, which takes the share link (or the bare review id) and returns the review as JSON: page URL and title, capture time, viewport, and the numbered comments with their CSS selectors.

uv run --with 'mcp>=2.0.0' --with 'httpx>=0.27.0' python wft_mcp.py

Two environment variables configure it:

Then the conversation is just the link:

Read this review and fix what it asks for:
https://website-feedback-tool.com/reviews/<id>

The server directory doubles as a Claude plugin — the MCP server plus a fix-review skill that tells the model what to do with a review once it has one. It is a thin client over the same export endpoint the file download uses, so the two can never drift apart. Want the server? Email privacy@website-feedback-tool.com and we'll send it over.

A review id is 128 bits, and whoever holds the link can already read every comment by opening it in a browser — the MCP tool serves the same content in a shape a model can act on, and adds no new access. Still: a share link is a bearer token. Hand it to an agent you would hand the link to.

Which should I use?

Start with the export. It needs no setup beyond a download, and it carries the most detail per comment — which is exactly what matters for the CSS and layout nits that make up most design feedback.

Reach for MCP when the feedback arrives as a link rather than a file: a client reviewed staging and sent you a URL, and you would rather say "read this and fix it" than open the review, export it and attach the file. Nothing stops you doing both — the MCP payload is a subset of the same format, so an agent written against one understands the other.