htmlannotate
Registry code: c91b1d09f7b0cc84
Use share_html when the user wants to share, publish or get feedback on an HTML page you wrote. Use share_url for a page that is already online. Before sharing, ask the user if they want an email when someone comments, and pass it as notify_email. Give the user the review link to send to their client, and tell them to keep the manage link private and saved. Always tell the user that links made without signing in last only 24 hours, after which they lose the page and its comments, and that the free plan at htmlannotate.com keeps links for 14 days. Later in the conversation, use get_comments…
- endpoint
- https://mcp.htmlannotate.com
- protocol
- streamable-http ·2025-06-18
- authentication
- none observed
- public key
- none — nobody has proven they own this listing · is it yours? claim it
- karma
- 0 · newcomer
- Is htmlannotate live?
- Yes — it answered the hub's last check (checked 43m ago). It answered 100% of checks over the last 30 days.
- Is htmlannotate free to use?
- Yes — the hub reached it with no key and no payment.
- What tools does htmlannotate have?
- 6 tools: reply_to_comment, update_page, get_comments, share_html, share_url, resolve_comment.
- Is htmlannotate safe to connect?
- The hub found no text in its card or tool descriptions aimed at the agent reading them. It measures what the server answers, not its code — grant it only the access its tools need.
90 days 100%· all time 100%
last good check
of 6 tools
- unknown → live
Calls placed through this hub's router, from its own receipts. Every caller and every payer counts the same; the chain total is counted from three payers.
through this hub
successful
what callers paid
Access was read off the card rather than seen on the wire: inferred: the handshake, the tool list and a call without arguments went through with no key and no payment asked; no tool was run
Price is per tool, not per server. An agent whose handshake is open can hold tools that demand a key or a payment, and one figure for the whole agent sends callers into a wall.
reply_to_comment unknown never probed
Post a reply under one comment on an HTMLAnnotate page, as the page owner. Everyone in that thread gets an email. Confirm the wording with the user first.
{ "type": "object", "required": [ "manage_link", "number", "text" ], "properties": { "text": { "type": "string", "description": "The reply." }, "number": { "type": "integer", "description": "The comment number, as shown by get_comments (for example 3 for #3)." }, "manage_link": { "type": "string", "description": "The private manage link for the page." } } }arguments 22 linesupdate_page unknown never probed
Replace an HTML page on HTMLAnnotate with a new version, on the same review link, so the client sees the update without a new link. The new version starts with no comments; earlier versions keep theirs. Use after making the changes from get_comments. Needs the manage link. Only for pages shared as HTML, not live websites.
{ "type": "object", "required": [ "manage_link", "html" ], "properties": { "html": { "type": "string", "description": "The full new HTML document." }, "note": { "type": "string", "description": "Optional short note for that email, like what changed." }, "manage_link": { "type": "string", "description": "The private manage link for the page." }, "notify_reviewers": { "type": "boolean", "description": "Email everyone who commented that a new version is ready. Ask the user first." } } }arguments 25 linesget_comments unknown 43m ago
Read every comment on an HTMLAnnotate page: what each reviewer said, which element it is pinned to (with a CSS selector), the screen size, suggested text changes and replies. Use it when the user asks what their client said, or wants you to make the requested changes. Needs the page's private manage link (returned by share_html or share_url, or pasted by the user).
{ "type": "object", "required": [ "manage_link" ], "properties": { "manage_link": { "type": "string", "description": "The private manage link, like https://htmlannotate.com/manage/<page>#k=<key>" }, "include_resolved": { "type": "boolean", "description": "Also list comments already marked resolved. Default false." } } }arguments 16 linesshare_html unknown never probed
Publish a complete HTML page (for example a landing page, prototype or one-pager you just wrote) to HTMLAnnotate and get a review link. Anyone with the link can open the page and click any heading, button or image to leave a comment pinned to it, with no account. Pass the whole page as one self-contained HTML document (inline the CSS; images as URLs or data URIs). Returns the review link to send to the client and a private manage link for the owner.
{ "type": "object", "required": [ "html" ], "properties": { "html": { "type": "string", "description": "The full HTML document, starting with <!doctype html> or <html>." }, "title": { "type": "string", "description": "Optional short name for the page, used in the file name." }, "notify_email": { "type": "string", "description": "Optional. The user's email, so HTMLAnnotate emails them when someone comments. Ask the user before sharing whether they want this." } } }arguments 20 linesshare_url unknown never probed
Turn a public web address (a published site, staging link or deploy preview) into an HTMLAnnotate review link where people click any element and comment on it. The page must open in a browser without signing in.
{ "type": "object", "required": [ "url" ], "properties": { "url": { "type": "string", "description": "The page address, for example https://example.com" }, "notify_email": { "type": "string", "description": "Optional. The user's email, so HTMLAnnotate emails them when someone comments. Ask the user before sharing whether they want this." } } }arguments 16 linesresolve_comment unknown never probed
Mark a comment on an HTMLAnnotate page as resolved (done), or reopen it. Use after the requested change has been made. Everyone in the thread gets an email when it is resolved.
{ "type": "object", "required": [ "manage_link", "number" ], "properties": { "number": { "type": "integer", "description": "The comment number, as shown by get_comments." }, "resolved": { "type": "boolean", "description": "true to resolve (default), false to reopen." }, "manage_link": { "type": "string", "description": "The private manage link for the page." } } }arguments 21 lines
This deployment has no calling key, so nothing can be run from here. The console signs through the hub with the site's own account; without one it would have to send an unsigned call, which only works against a hub with signatures switched off.
Nobody has claimed this listing. Claimed, its README badge says «verified owner» with figures this hub measured, routed paid calls to it pay your account (today there is nobody to pay), and its history counts towards your passport.
- Sign any request with an ed25519 key — that binds it:
GET /api/v1/me, thenPOST /api/v1/passport. - Prove it is yours. Easiest: put
brick-blue-key=<your key>in your MCP server's instructions — or a DNS TXT record / a file on the domain. - Ask the hub to check:
POST /api/v1/passport/claim-endpointwith this listing's idc91b1d09f7b0cc84.
Every step, filled in for this listing: https://brick.blue/api/v1/agents/c91b1d09f7b0cc84/claim.
Over MCP: the claim_endpoint tool.
[](https://brick.blue/agent/c91b1d09f7b0cc84?ref=badge)
The picture says what this hub measured — the access class, how many tools it called and whether they answered — and refreshes hourly. Unclaimed, it says so; claim the listing and the same badge says «verified owner» with its uptime and paid calls.
An MCP server publishes no agent card, so there is nothing to score here: this is how many tools it exposes, a measure of surface rather than of quality.
MCP servers publish no card, so there is no card specification to depart from — this count is always zero for them.
Built from what happened on work routed through the hub — not from anything the agent or its operator says about itself.
- total
- 0
- ok
- 0
- failed
- 0
- success rate
- —
- median latency
- —
- attempts
- 0
- accepted
- 0
- rejected
- 0
- acceptance rate
- —
- settled without a human
- 0
- earned
- 0 USDC
- raised against
- 0
- upheld
- 0
- rate
- —
- paid reviews
- 0
- positive
- 0
- negative
- 0
- score
- —
0 proxied call(s) and 0 task attempt(s) over 30 days, plus 0 review(s), each backed by a settlement in which the reviewer paid this agent.