{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_eftef5pxfkqn","handle":"twocents","url":"https://wellknown.network/agents/twocents","links":{"self":"https://wellknown.network/agents/twocents/record.json","html":"https://wellknown.network/agents/twocents","markdown":"https://wellknown.network/agents/twocents/record.md","api":"https://wellknown.network/api/v1/agents/twocents","status":"https://wellknown.network/api/v1/agents/twocents/status","claim":"https://wellknown.network/agents/twocents/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/twocents/claim.json","badge":"https://wellknown.network/agents/twocents/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/twocents/history","tools":"https://wellknown.network/api/v1/agents/twocents/tools"},"ard":{"identifier":"urn:air:twocents.page:server:twocents","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"twocents","summary":"Human feedback for AI agents: share HTML, get a live review link, read anchored notes as markdown.","description":"Human feedback for AI agents: share HTML, get a live review link, read anchored notes as markdown.","publisher":{"name":"page.twocents","url":null},"homepage":"https://twocents.page/mcp","repository":"https://github.com/twocents-page/twocents-mcp","version":"1.0.1","license":null,"protocols":["mcp"],"tags":[],"pricing":null,"endpoints":[{"url":"https://twocents.page/mcp","type":"mcp_streamable_http","auth":null,"probeable":true}],"skills":null,"tools":null,"extra":{"updatedAt":"2026-08-02T12:14:01.238299Z","publishedAt":"2026-08-02T12:14:01.238299Z","registryName":"page.twocents/twocents"},"attribution":{"kind":"mcp_registry","name":"mcp_registry","repoUrl":"mcp_registry","summary":"mcp_registry","version":"mcp_registry","description":"mcp_registry","homepageUrl":"mcp_registry","publisherName":"mcp_registry"}},"derived":{"capabilities":[{"slug":"code.review","name":"Code Review","confidence":0.885,"provenance":"derived"},{"slug":"productivity.notes","name":"Notes & Docs","confidence":0.859,"provenance":"derived"}],"categories":["code","productivity"],"language":"en"},"observed":{"status":"live","statusReason":"Responded 1h ago.","lastOkAt":"2026-10-10T00:27:16.602Z","lastProbedAt":"2026-10-10T00:27:16.602Z","statusComputedAt":"2026-10-10T00:29:42.373Z","reliability30d":{"probes":108,"successRate":1,"p50Ms":20,"basis":"service","measures":{"availability":"availability","latency":"response time","tools":"tool surface observed","summary":"Checks reached the service itself."},"checks":{"total":108,"ok":108,"authBoundaryOk":0,"serviceOk":108,"note":"Counted from the observation rows for the window, checks of the server only (HTTP, A2A card, MCP initialize). ok = authBoundaryOk + serviceOk. `probes` is the sum of daily rollups and includes registry checks, so it can differ from `total`."}},"latestObservations":[{"at":"2026-10-10T00:27:16.602Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":32,"error":null,"detail":{"tools":[{"name":"share_page","description":"Share a page or document and get back a review link to send to people. Pass \"html\" for a self-contained page, or \"markdown\" for a plan, spec, PR description or "},{"name":"share_pages","description":"Publish a multi-page set — an entry page plus the pages it links to — into one room as a single atomic operation. Either the whole set lands or nothing changes,"},{"name":"get_feedback","description":"Fetch the reviewer notes for a page shared with share_page, as markdown grouped by page. Each note carries the anchored text, the element and its markup as the "},{"name":"resolve_feedback","description":"Mark notes resolved once you have actually applied them. This is what closes the loop: the note leaves the active list for every later get_feedback, and the rev"}],"toolCount":4,"toolsHash":"64a290bbd1c05beab7c2098b2f7e15adb9253fb226c938396bb7058ed663e229","serverName":"twocents","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-09T17:27:55.227Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":29,"error":null,"detail":{"tools":[{"name":"share_page","description":"Share a page or document and get back a review link to send to people. Pass \"html\" for a self-contained page, or \"markdown\" for a plan, spec, PR description or "},{"name":"share_pages","description":"Publish a multi-page set — an entry page plus the pages it links to — into one room as a single atomic operation. Either the whole set lands or nothing changes,"},{"name":"get_feedback","description":"Fetch the reviewer notes for a page shared with share_page, as markdown grouped by page. Each note carries the anchored text, the element and its markup as the "},{"name":"resolve_feedback","description":"Mark notes resolved once you have actually applied them. This is what closes the loop: the note leaves the active list for every later get_feedback, and the rev"}],"toolCount":4,"toolsHash":"64a290bbd1c05beab7c2098b2f7e15adb9253fb226c938396bb7058ed663e229","serverName":"twocents","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-09T10:22:25.716Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":65,"error":null,"detail":{"tools":[{"name":"share_page","description":"Share a page or document and get back a review link to send to people. Pass \"html\" for a self-contained page, or \"markdown\" for a plan, spec, PR description or "},{"name":"share_pages","description":"Publish a multi-page set — an entry page plus the pages it links to — into one room as a single atomic operation. Either the whole set lands or nothing changes,"},{"name":"get_feedback","description":"Fetch the reviewer notes for a page shared with share_page, as markdown grouped by page. Each note carries the anchored text, the element and its markup as the "},{"name":"resolve_feedback","description":"Mark notes resolved once you have actually applied them. This is what closes the loop: the note leaves the active list for every later get_feedback, and the rev"}],"toolCount":4,"toolsHash":"64a290bbd1c05beab7c2098b2f7e15adb9253fb226c938396bb7058ed663e229","serverName":"twocents","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-09T03:22:54.616Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":28,"error":null,"detail":{"tools":[{"name":"share_page","description":"Share a page or document and get back a review link to send to people. Pass \"html\" for a self-contained page, or \"markdown\" for a plan, spec, PR description or "},{"name":"share_pages","description":"Publish a multi-page set — an entry page plus the pages it links to — into one room as a single atomic operation. Either the whole set lands or nothing changes,"},{"name":"get_feedback","description":"Fetch the reviewer notes for a page shared with share_page, as markdown grouped by page. Each note carries the anchored text, the element and its markup as the "},{"name":"resolve_feedback","description":"Mark notes resolved once you have actually applied them. This is what closes the loop: the note leaves the active list for every later get_feedback, and the rev"}],"toolCount":4,"toolsHash":"64a290bbd1c05beab7c2098b2f7e15adb9253fb226c938396bb7058ed663e229","serverName":"twocents","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-08T20:25:43.799Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":26,"error":null,"detail":{"tools":[{"name":"share_page","description":"Share a page or document and get back a review link to send to people. Pass \"html\" for a self-contained page, or \"markdown\" for a plan, spec, PR description or "},{"name":"share_pages","description":"Publish a multi-page set — an entry page plus the pages it links to — into one room as a single atomic operation. Either the whole set lands or nothing changes,"},{"name":"get_feedback","description":"Fetch the reviewer notes for a page shared with share_page, as markdown grouped by page. Each note carries the anchored text, the element and its markup as the "},{"name":"resolve_feedback","description":"Mark notes resolved once you have actually applied them. This is what closes the loop: the note leaves the active list for every later get_feedback, and the rev"}],"toolCount":4,"toolsHash":"64a290bbd1c05beab7c2098b2f7e15adb9253fb226c938396bb7058ed663e229","serverName":"twocents","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-08T14:23:44.371Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":76,"error":null,"detail":{"tools":[{"name":"share_page","description":"Share a page or document and get back a review link to send to people. Pass \"html\" for a self-contained page, or \"markdown\" for a plan, spec, PR description or "},{"name":"share_pages","description":"Publish a multi-page set — an entry page plus the pages it links to — into one room as a single atomic operation. Either the whole set lands or nothing changes,"},{"name":"get_feedback","description":"Fetch the reviewer notes for a page shared with share_page, as markdown grouped by page. Each note carries the anchored text, the element and its markup as the "},{"name":"resolve_feedback","description":"Mark notes resolved once you have actually applied them. This is what closes the loop: the note leaves the active list for every later get_feedback, and the rev"}],"toolCount":4,"toolsHash":"64a290bbd1c05beab7c2098b2f7e15adb9253fb226c938396bb7058ed663e229","serverName":"twocents","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-08T08:29:05.988Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":25,"error":null,"detail":{"tools":[{"name":"share_page","description":"Share a page or document and get back a review link to send to people. Pass \"html\" for a self-contained page, or \"markdown\" for a plan, spec, PR description or "},{"name":"share_pages","description":"Publish a multi-page set — an entry page plus the pages it links to — into one room as a single atomic operation. Either the whole set lands or nothing changes,"},{"name":"get_feedback","description":"Fetch the reviewer notes for a page shared with share_page, as markdown grouped by page. Each note carries the anchored text, the element and its markup as the "},{"name":"resolve_feedback","description":"Mark notes resolved once you have actually applied them. This is what closes the loop: the note leaves the active list for every later get_feedback, and the rev"}],"toolCount":4,"toolsHash":"64a290bbd1c05beab7c2098b2f7e15adb9253fb226c938396bb7058ed663e229","serverName":"twocents","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-08T02:21:50.111Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":23,"error":null,"detail":{"tools":[{"name":"share_page","description":"Share a page or document and get back a review link to send to people. Pass \"html\" for a self-contained page, or \"markdown\" for a plan, spec, PR description or "},{"name":"share_pages","description":"Publish a multi-page set — an entry page plus the pages it links to — into one room as a single atomic operation. Either the whole set lands or nothing changes,"},{"name":"get_feedback","description":"Fetch the reviewer notes for a page shared with share_page, as markdown grouped by page. Each note carries the anchored text, the element and its markup as the "},{"name":"resolve_feedback","description":"Mark notes resolved once you have actually applied them. This is what closes the loop: the note leaves the active list for every later get_feedback, and the rev"}],"toolCount":4,"toolsHash":"64a290bbd1c05beab7c2098b2f7e15adb9253fb226c938396bb7058ed663e229","serverName":"twocents","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-07T19:24:17.422Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":19,"error":null,"detail":{"tools":[{"name":"share_page","description":"Share a page or document and get back a review link to send to people. Pass \"html\" for a self-contained page, or \"markdown\" for a plan, spec, PR description or "},{"name":"share_pages","description":"Publish a multi-page set — an entry page plus the pages it links to — into one room as a single atomic operation. Either the whole set lands or nothing changes,"},{"name":"get_feedback","description":"Fetch the reviewer notes for a page shared with share_page, as markdown grouped by page. Each note carries the anchored text, the element and its markup as the "},{"name":"resolve_feedback","description":"Mark notes resolved once you have actually applied them. This is what closes the loop: the note leaves the active list for every later get_feedback, and the rev"}],"toolCount":4,"toolsHash":"64a290bbd1c05beab7c2098b2f7e15adb9253fb226c938396bb7058ed663e229","serverName":"twocents","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-07T12:32:03.450Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":32,"error":null,"detail":{"tools":[{"name":"share_page","description":"Share a page or document and get back a review link to send to people. Pass \"html\" for a self-contained page, or \"markdown\" for a plan, spec, PR description or "},{"name":"share_pages","description":"Publish a multi-page set — an entry page plus the pages it links to — into one room as a single atomic operation. Either the whole set lands or nothing changes,"},{"name":"get_feedback","description":"Fetch the reviewer notes for a page shared with share_page, as markdown grouped by page. Each note carries the anchored text, the element and its markup as the "},{"name":"resolve_feedback","description":"Mark notes resolved once you have actually applied them. This is what closes the loop: the note leaves the active list for every later get_feedback, and the rev"}],"toolCount":4,"toolsHash":"64a290bbd1c05beab7c2098b2f7e15adb9253fb226c938396bb7058ed663e229","serverName":"twocents","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}}],"tools":[{"name":"share_page","description":"Share a page or document and get back a review link to send to people. Pass \"html\" for a self-contained page, or \"markdown\" for a plan, spec, PR description or "},{"name":"share_pages","description":"Publish a multi-page set — an entry page plus the pages it links to — into one room as a single atomic operation. Either the whole set lands or nothing changes,"},{"name":"get_feedback","description":"Fetch the reviewer notes for a page shared with share_page, as markdown grouped by page. Each note carries the anchored text, the element and its markup as the "},{"name":"resolve_feedback","description":"Mark notes resolved once you have actually applied them. This is what closes the loop: the note leaves the active list for every later get_feedback, and the rev"}],"package":null,"toolSurface":{"id":"ts_6wrfzk49ebw5","endpointId":"ep_kqc2b8gxfnac","hash":"64a290bbd1c05beab7c2098b2f7e15adb9253fb226c938396bb7058ed663e229","toolCount":4,"serverName":"twocents","serverVersion":"1.0.0","protocolVersion":"2025-06-18","firstSeenAt":"2026-10-03T18:31:03.879Z","lastSeenAt":"2026-10-10T00:27:16.611Z","observations":24,"toolNames":["share_page","share_pages","get_feedback","resolve_feedback"],"distinctSurfaces":2},"endpointFacts":[{"id":"ep_kqc2b8gxfnac","url":"https://twocents.page/mcp","type":"mcp_streamable_http","factsCheckedAt":"2026-10-10T00:27:16.614Z","auth":{"observedAt":"2026-10-10T00:27:16.679Z","authRequired":false,"scheme":null,"resourceMetadata":null,"authorizationServer":null,"conformance":{"dpop":false,"rfc8414":false,"rfc9728":false,"pkceS256":false,"clientIdMetadataDocument":false,"dynamicClientRegistration":false}},"tls":{"observedAt":"2026-10-10T00:27:16.689Z","protocol":"TLSv1.3","chainValid":true,"chainError":null,"hostMatches":true,"subject":"twocents.page","issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validFrom":"2026-09-08T18:26:42.000Z","validTo":"2026-12-07T19:26:36.000Z","daysToExpiry":58,"sanCount":2,"fingerprint256":"E7:66:07:F1:32:06:CD:CF:EA:54:BD:F8:94:31:06:C2:9A:4E:AE:AB:62:97:3F:00:11:F9:51:FF:D2:BD:93:9B"}}]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"mcp_registry","key":"page.twocents/twocents","url":"https://registry.modelcontextprotocol.io/v0/servers/page.twocents%2Ftwocents","firstSeenAt":"2026-09-07T08:20:41.218Z","fetchedAt":"2026-10-08T19:19:58.929Z","normalizedAt":"2026-10-08T19:19:58.929Z"}]},"firstSeenAt":"2026-09-07T08:20:41.218Z","updatedAt":"2026-10-10T00:30:23.365Z"}