# comments — review comments pinned to live web pages > comments is a review tool for live websites. The site owner pastes one script tag, shares a review link, and reviewers pin comments to the exact paragraph or element on the page. No reviewer accounts. A coding agent (Claude Code, Cursor, Claude Desktop) reads, fixes and closes the same threads over MCP; scripts and CI use the HTTP API. Operated by Vergence B.V., the Netherlands. Use it for: design and copy reviews of a marketing site, docs or a client site before release; collecting stakeholder feedback on the live page instead of screenshots; letting an agent work a review queue to committed changes. Works with: any website that can include a script tag, no build step. Static sites and CMS pages included. Not: a blog comment system for the public, a moderation queue, or anonymous commenting. Pages: https://comments.zyxio.xyz/ (overview) · https://comments.zyxio.xyz/docs/ (setup, reviewers, API token, MCP, HTTP API) · https://comments.zyxio.xyz/demo/ (try it) · https://comments.zyxio.xyz/privacy/ Portal https://comments.zyxio.xyz · API https://api.comments.zyxio.xyz · OpenAPI https://api.comments.zyxio.xyz/docs · MCP https://api.comments.zyxio.xyz/mcp Connect (no token; your browser signs you in the first time): claude mcp add --transport http comments https://api.comments.zyxio.xyz/mcp Scripts and CI use an API token from https://comments.zyxio.xyz/dashboard/tokens.html as "Authorization: Bearer ak_…". Set up a site, in order: 1. create_site(origin) origin = scheme + host, no path. Exists already? list_sites, then get_site. 2. paste the returned snippet before on every page (shared layout if there is one), commit. 3. create_review_link(site_id, "owner") and give the share_url to the person; it works on any page. Work the threads: list_threads(site_id, page?) → each thread has page_slug, anchor, context_snapshot (the exact text the reviewer saw), status, comments[]. Find the text in the source, fix it, reply(site_id, thread_id, body), then set_status(site_id, thread_id, "closed", site_version=). Also: get_site, list_review_links, delete_thread, clear_threads(page?, status?, orphaned?, before?), export_site. Orphaned = the element is gone after a rebuild. Same over HTTP: POST /sites, GET /sites/{id}, POST /sites/{id}/links, GET /api/threads?page= with X-Site-Id, PATCH /api/threads/{id}. Full list: https://comments.zyxio.xyz/docs/#api