About twocents
twocents is a remote MCP server for AI agents to collect visual feedback on HTML pages. Reviewers add anchored notes through a link, and agents can retrieve them to locate changes.
Key features
- 01Share self-contained HTML pages
- 02Pin notes on page elements
- 03Update review rooms live
- 04Retrieve notes as Markdown
- 05Collapse previously handled notes
Use cases
- 01Collect visual review of a page
- 02Locate requested edits by selector
- 03Share page updates with reviewers
MCP support
Exposes the `share_page` and `get_feedback` tools to MCP clients through the remote server at `https://twocents.page/mcp`.
Configuration
Remote servers need no local install. Pick your client, then copy the config or install in one click.
https://twocents.page/mcpclaude mcp add --transport http twocents https://twocents.page/mcp{"mcpServers":{"twocents":{"type":"http","url":"https://twocents.page/mcp"}}}Open in Cursor{"servers":{"twocents":{"type":"http","url":"https://twocents.page/mcp"}}}Open in VS Code{"mcpServers":{"twocents":{"type":"http","url":"https://twocents.page/mcp"}}}{"mcpServers":{"twocents":{"serverUrl":"https://twocents.page/mcp"}}}Run commands in a terminal; paste JSON into the client’s MCP config and restart. Servers that need sign-in will prompt on first connect.
Tools
2| Parameter | Type | Required | Description |
|---|---|---|---|
| html | string | No | A complete, self-contained HTML document (inline CSS/JS/images — no local file references, they will 404 for reviewers). Max ~120 KB. |
| markdown | string | No | Markdown to render as a document, instead of "html". Use this for plans, specs, PR descriptions, summaries — anything you want a human to read and approve before you act. Pass exactly one of html or markdown. Max ~120 KB. |
| room | string | No | Room id from a previous share_page call, to update that page. Omit to create a new room. |
| path | string | No | For multi-page sets: the filename this content lives at in the room (e.g. "about.html" or "plan.md"). Defaults to "index.html", the page reviewers land on. Share the other files into the same room id and link between them with plain relative hrefs — formats can be mixed freely, so a plan.md may link to a demo.html and back. |
| source | string | No | Where this content came from, for whoever reads the feedback later — a project path like "DROPS.md" or "public/p/foo/index.html", or a note like "drafted in this conversation, not yet a file". You are the only one who knows this: twocents receives HTML, never a path, so if you omit it a future session gets reviewer notes with nothing to point them at the right file. get_feedback echoes it back verbatim. |
Details
From the project READMEtwocents — human feedback for AI agents (MCP server)
A remote MCP server, live at https://twocents.page/mcp.
Connect it and your AI agent can send any HTML page to real people for visual
review — and read their pinned notes back. No auth, no API key, no install for
reviewers.
Tools
share_page— send a self-contained HTML document, get back a review link. Anyone who opens it can pin notes directly on the page — no login, works on any device. Call again with the same room id and connected reviewers see the update live.get_feedback— the pinned notes, returned as markdown with the anchor text/selector for each note so your agent can find and fix the exact spot. Pass the optionalhandledarray (note ids already decided in earlier sessions) and those collapse to one line each, so the response leads with what's new.
Config
{
"mcpServers": {
"twocents": {
"url": "https://twocents.page/mcp"
}
}
}
Connect
Claude Code
claude mcp add --transport http twocents https://twocents.page/mcp
Claude.ai (web or desktop) — Settings → Connectors → Add custom connector →
paste https://twocents.page/mcp
Cursor or any MCP client — use the config block above (an HTTP MCP server; no auth, no API key).
The loop
Ask your agent to "share this page for feedback" → send the link to anyone → they pin notes on the live page → ask your agent to "get the feedback" and apply it. The whole review cycle without leaving your editor.
What's in this repo
The complete server source: mcp.js — a zero-dependency Streamable
HTTP (stateless) JSON-RPC handler, ~300 lines. It runs inside a Cloudflare Worker
and stores pages/notes in a Durable Object per review room (env.ROOMS); the
Worker, relay, and reviewer UI live in the main (private) twocents.page codebase.
server.json is the MCP registry
manifest (page.twocents/twocents).
Privacy model: a room id is an unguessable capability — knowing it is the permission to read/write that room. Review links are excluded from search indexing.
See it in action
Every page in our interactive explainer library has a live review room — open one and pin a note. Or get feedback on your own work.
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.