Redline

Give the review to your agent.

Every Redline link is an MCP server. Your coding agent reads what reviewers marked on the page, fixes it, and ticks each comment off while they watch.

Terminal
claude mcp add --transport http \
  redline https://redline.simplelocalweb.com/s/<id>/mcp

Run /mcp and check redline is listed. A session opened before this will not see the tools; start a new one.

The address is any share link plus /mcp; the Details panel on the link shows it filled in. Add?agent=cursor, or any name, so reviewers see who picked their comment up.

One comment, start to finish. The reviewer never leaves the page. The agent never asks what was clicked.

Priya · hero button

This still says “Submit”. It should say “Start trial” like the pricing page.

buttonmain > section.hero button.cta
  1. Open
  2. In progress · claude
  3. Resolved

claude · reply

Renamed the CTA in Hero.tsx:42 and the matching test. Deployed to the preview.

  1. watch_annotationsnew comment 3, with target selector and markup
  2. acknowledgepin flips to in progress on Priya’s screen
  3. edits src/Hero.tsx, runs the tests
  4. resolvesummary posted as the reply above
  5. watch_annotationswaiting for the next one

A worked example. The reviewer, the page and the file are made up; the calls are the real ones.

Any MCP client.

17 tools. Everything the room can tell an agent, and everything an agent can do back.

Read

marklayer_read_page
The page's headings, text, links and controls, each with the selector that finds it.
marklayer_room_info
The URL under review, the viewport it was annotated at, and timestamps.
marklayer_list_annotations
Everything left on the page, filtered by status.
marklayer_get_annotation
One annotation in full, with its reply thread and any attached images.
marklayer_get_feedback
One read of the room: counts by status, open items, checklist progress, poll tallies.

Work

marklayer_watch_annotations
Wait for new comments, and for anything assigned to the agent by name.
marklayer_acknowledge
Flip a comment to in progress so the reviewer sees it was picked up.
marklayer_resolve
Close a comment and post what changed as a reply.
marklayer_dismiss
Decline a comment. The reason is required, and the reviewer reads it.
marklayer_reply
Ask a question on the thread without moving its status.

Review

marklayer_create_annotation
Leave its own comment, pinned to an element, one per finding.
marklayer_suggest_edit
Propose exact replacement text, shown to the reviewer as a diff to accept.

Hand off

marklayer_share_preview
Open a review room on a preview URL and return the link to send a human.
marklayer_set_next_steps
Publish a checklist of planned changes, each tied to the comments it answers.
marklayer_complete_next_step
Tick a step off while the reviewers watch.
marklayer_ask
Put a multiple-choice question to the room and read the votes back.

npm only

marklayer_connect_room
Switch to another share link by URL or id.

It works the other way too. When the agent has built something, it hands you a room instead of a paragraph.

share_preview opens a review room on the preview URL and returns the link. A later preview of the same repository and branch becomes the next version of that room, so reviewers step between them. The agent posts its plan as a checklist that ticks off as the work lands, and when it needs a decision rather than an opinion, it asks the room to vote.

Agents forget a tool exists unless something reminds them. Paste this into CLAUDE.md orAGENTS.md and yours will reach for Redline on its own:

CLAUDE.md / AGENTS.md
## Visual review

When I share a redline.simplelocalweb.com/s/... link, connect to it over MCP and work the
annotations: acknowledge each one before you start, resolve it with a one-line
summary of what changed, and dismiss it with a reason if you cannot act on it.

When you have built something for me to look at, open a review room on the
preview URL with marklayer_share_preview and send me that link instead of
describing the change.

Or just say it:

Watch my Redline marks. For each one, acknowledge it, make the fix, then resolve it with a one-line summary of what changed.
Read the page in my Redline link and review it for broken copy, accessibility gaps and layout bugs. Leave one comment per finding, and use a suggested edit for any exact text fix.

Pointing an agent at the setup itself? Plain-text instructions for agents.

Frequently asked questions

Does Redline have an MCP server?
Yes, two ways in to the same 17 tools. Every Redline link answers MCP over Streamable HTTP at its own address plus /mcp, so a client that supports remote servers connects with one command and nothing installed. For clients that only run local servers, the same tools ship on npm as marklayer-mcp (the upstream MarkLayer package; set MARKLAYER_API_BASE to point it here).
Do I need an API key or an account to connect an agent?
No. A Redline link is its own access token: whoever holds the link can open it, and the MCP endpoint follows the same rule. There is no OAuth step and no key to paste. If the owner has locked the link with a password, send it as a header (Authorization: Bearer <password>; in Claude Code, --header) or use the npm package with MARKLAYER_PASSWORD.
Which coding agents work with Redline?
Any MCP client. This page has setup for Claude Code, Claude, Codex, Cursor and VS Code. Windsurf, Zed, Cline, Gemini CLI and anything else that reads an mcpServers config work through either the remote URL or the npm package.
Can the agent change the website I annotated?
Not through Redline. Redline never touches the page’s source. The agent reads the comments, edits your code with its own tools, and reports back in the room. What it can change in Redline is the review itself: statuses, replies, its own comments, suggested edits, a checklist and polls.
Why connect over the remote URL instead of npm?
You have nothing to install or update, because the endpoint ships with the site. What you give up is scope. The remote URL is bound to one share link, so a new link means a new connection. The npm package is installed once and switches between links with marklayer_connect_room.
How do I know the connection worked?
Seeing the server listed is not proof. Ask the agent to call marklayer_room_info: it should answer with the URL the link annotates. A 401 means the link’s owner has locked it, and it wants the password. If the agent says it has no Redline tools, the session predates the config; start a new one.

Free, with no account, for everyone on the link.

Open Redline · Help · Setup for agents