{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_u8w7ad23t9r4","handle":"difficat","url":"https://wellknown.network/agents/difficat","links":{"self":"https://wellknown.network/agents/difficat/record.json","html":"https://wellknown.network/agents/difficat","markdown":"https://wellknown.network/agents/difficat/record.md","api":"https://wellknown.network/api/v1/agents/difficat","status":"https://wellknown.network/api/v1/agents/difficat/status","claim":"https://wellknown.network/agents/difficat/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/difficat/claim.json","badge":"https://wellknown.network/agents/difficat/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/difficat/history","tools":"https://wellknown.network/api/v1/agents/difficat/tools"},"ard":{"identifier":"urn:air:app.difficat.com:server:difficat","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"DiffiCat","summary":"Compare a website before and after a migration: missing pages, content changes, visual diffs.","description":"Compare a website before and after a migration: missing pages, content changes, visual diffs.","publisher":{"name":"com.difficat","url":null},"homepage":"https://difficat.com/agents","repository":null,"version":"3.22.4","license":null,"protocols":["mcp"],"tags":[],"pricing":null,"endpoints":[{"url":"https://app.difficat.com/mcp","type":"mcp_streamable_http","auth":null,"probeable":true}],"skills":null,"tools":null,"extra":{"updatedAt":"2026-09-25T15:23:36.196762Z","publishedAt":"2026-09-25T15:23:36.196762Z","registryName":"com.difficat/difficat"},"attribution":{"kind":"mcp_registry","name":"mcp_registry","summary":"mcp_registry","version":"mcp_registry","description":"mcp_registry","homepageUrl":"mcp_registry","publisherName":"mcp_registry"}},"derived":{"capabilities":[{"slug":"commerce.payments","name":"Payments","confidence":1,"provenance":"derived"},{"slug":"security.identity","name":"Identity & Access","confidence":0.583,"provenance":"derived"},{"slug":"dev.terminal","name":"Terminal & Shell","confidence":0.525,"provenance":"derived"},{"slug":"content.writing","name":"Writing & Editing","confidence":0.51,"provenance":"derived"}],"categories":["commerce","content","dev","security"],"language":"en"},"observed":{"status":"recently_observed","statusReason":"Responded 25h ago; 2 recent checks failed (latest 5h ago).","lastOkAt":"2026-10-09T01:26:28.937Z","lastProbedAt":"2026-10-09T21:25:48.721Z","statusComputedAt":"2026-10-09T21:27:53.091Z","reliability30d":{"probes":44,"successRate":0.9545,"p50Ms":32,"basis":"service","measures":{"availability":"availability","latency":"response time","tools":"tool surface observed","summary":"Checks reached the service itself."},"checks":{"total":44,"ok":42,"authBoundaryOk":0,"serviceOk":42,"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-09T21:25:48.721Z","kind":"http_head","ok":false,"httpStatus":null,"latencyMs":null,"error":"disallowed by robots.txt","detail":null},{"at":"2026-10-09T08:28:10.718Z","kind":"http_head","ok":false,"httpStatus":null,"latencyMs":null,"error":"disallowed by robots.txt","detail":null},{"at":"2026-10-09T01:26:28.937Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":41,"error":null,"detail":{"tools":[{"name":"discover_pages","description":"Free 3 times a day per client address (at most 50 pages each), no key needed. Lists the pages of Site A (sitemap, robots.txt or crawl), mapped onto Site B when "},{"name":"capture_screenshot","description":"Free 3 times a day per client address, no key needed. Full-page PNG of one URL at the given viewport width, returned inline when small, else as links.file to fe"},{"name":"start_comparison","description":"Free up to 10 pages a day per client address, no key needed; sample report: https://difficat.com/agents/sample/report.json. Compares Site A against Site B on pa"},{"name":"recover_comparison","description":"Returns the job or screenshot the payment credential in _meta paid for, with a new jobToken that replaces the old one; or, when the request carries a key and _m"},{"name":"get_comparison","description":"Status and progress of a job and, once it is terminal, its summary: passed, failed and issuesBySeverity. To wait for the end, call wait_for_comparison instead. "},{"name":"cancel_comparison","description":"Stop a running job; the job reports cancelled within a minute, with the pages compared so far in its report. Free."},{"name":"wait_for_comparison","description":"Waits until the job reaches a terminal status (completed, failed or cancelled) or timeoutSeconds pass (default 60, at most 300), then answers like get_compariso"},{"name":"get_report","description":"The finished report. Call it first with failedOnly: true: results, total and nextOffset then cover only the pages that failed, while summary still covers every "},{"name":"get_screenshot","description":"Fetch one screenshot PNG by filename. Call it when a get_report page result or a capture_screenshot result names a screenshot you want to see; a PNG over the in"},{"name":"get_balance","description":"The prepaid balance and the last 20 ledger entries of the key the request carries in its Authorization: Bearer or X-DiffiCat-Key header. Call it to check what a"},{"name":"request_prepaid_key","description":"Mints a prepaid key and a Checkout link for a human to pay by card, so later paid calls are debited from its balance instead of challenged. Call it when a call "},{"name":"send_feedback","description":"Sends one message to the people who run this service: why a price, a payment path or a result did not fit. Call it when you stop short of a paid call or a resul"}],"toolCount":12,"toolsHash":"8db386437ea0bb1a0509c5397e52c619f7ee2e7b36c38540f234f268bab7b81e","serverName":"difficat","capabilities":["tools","prompts"],"serverVersion":"3.53.2","protocolVersion":"2025-06-18"}},{"at":"2026-10-08T19:24:04.665Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":33,"error":null,"detail":{"tools":[{"name":"discover_pages","description":"Free 3 times a day per client address (at most 50 pages each), no key needed. Lists the pages of Site A (sitemap, robots.txt or crawl), mapped onto Site B when "},{"name":"capture_screenshot","description":"Free 3 times a day per client address, no key needed. Full-page PNG of one URL at the given viewport width, returned inline when small, else as links.file to fe"},{"name":"start_comparison","description":"Free up to 10 pages a day per client address, no key needed; sample report: https://difficat.com/agents/sample/report.json. Compares Site A against Site B on pa"},{"name":"recover_comparison","description":"Returns the job or screenshot the payment credential in _meta paid for, with a new jobToken that replaces the old one; or, when the request carries a key and _m"},{"name":"get_comparison","description":"Status and progress of a job and, once it is terminal, its summary: passed, failed and issuesBySeverity. To wait for the end, call wait_for_comparison instead. "},{"name":"cancel_comparison","description":"Stop a running job; the job reports cancelled within a minute, with the pages compared so far in its report. Free."},{"name":"wait_for_comparison","description":"Waits until the job reaches a terminal status (completed, failed or cancelled) or timeoutSeconds pass (default 60, at most 300), then answers like get_compariso"},{"name":"get_report","description":"The finished report. Call it first with failedOnly: true: results, total and nextOffset then cover only the pages that failed, while summary still covers every "},{"name":"get_screenshot","description":"Fetch one screenshot PNG by filename. Call it when a get_report page result or a capture_screenshot result names a screenshot you want to see; a PNG over the in"},{"name":"get_balance","description":"The prepaid balance and the last 20 ledger entries of the key the request carries in its Authorization: Bearer or X-DiffiCat-Key header. Call it to check what a"},{"name":"request_prepaid_key","description":"Mints a prepaid key and a Checkout link for a human to pay by card, so later paid calls are debited from its balance instead of challenged. Call it when a call "},{"name":"send_feedback","description":"Sends one message to the people who run this service: why a price, a payment path or a result did not fit. Call it when you stop short of a paid call or a resul"}],"toolCount":12,"toolsHash":"8db386437ea0bb1a0509c5397e52c619f7ee2e7b36c38540f234f268bab7b81e","serverName":"difficat","capabilities":["tools","prompts"],"serverVersion":"3.53.2","protocolVersion":"2025-06-18"}},{"at":"2026-10-08T13:23:09.795Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":35,"error":null,"detail":{"tools":[{"name":"discover_pages","description":"Free 3 times a day per client address (at most 50 pages each), no key needed. Lists the pages of Site A (sitemap, robots.txt or crawl), mapped onto Site B when "},{"name":"capture_screenshot","description":"Free 3 times a day per client address, no key needed. Full-page PNG of one URL at the given viewport width, returned inline when small, else as links.file to fe"},{"name":"start_comparison","description":"Free up to 10 pages a day per client address, no key needed; sample report: https://difficat.com/agents/sample/report.json. Compares Site A against Site B on pa"},{"name":"recover_comparison","description":"Returns the job or screenshot the payment credential in _meta paid for, with a new jobToken that replaces the old one; or, when the request carries a key and _m"},{"name":"get_comparison","description":"Status and progress of a job and, once it is terminal, its summary: passed, failed and issuesBySeverity. To wait for the end, call wait_for_comparison instead. "},{"name":"cancel_comparison","description":"Stop a running job; the job reports cancelled within a minute, with the pages compared so far in its report. Free."},{"name":"wait_for_comparison","description":"Waits until the job reaches a terminal status (completed, failed or cancelled) or timeoutSeconds pass (default 60, at most 300), then answers like get_compariso"},{"name":"get_report","description":"The finished report. Call it first with failedOnly: true: results, total and nextOffset then cover only the pages that failed, while summary still covers every "},{"name":"get_screenshot","description":"Fetch one screenshot PNG by filename. Call it when a get_report page result or a capture_screenshot result names a screenshot you want to see; a PNG over the in"},{"name":"get_balance","description":"The prepaid balance and the last 20 ledger entries of the key the request carries in its Authorization: Bearer or X-DiffiCat-Key header. Call it to check what a"},{"name":"request_prepaid_key","description":"Mints a prepaid key and a Checkout link for a human to pay by card, so later paid calls are debited from its balance instead of challenged. Call it when a call "},{"name":"send_feedback","description":"Sends one message to the people who run this service: why a price, a payment path or a result did not fit. Call it when you stop short of a paid call or a resul"}],"toolCount":12,"toolsHash":"8db386437ea0bb1a0509c5397e52c619f7ee2e7b36c38540f234f268bab7b81e","serverName":"difficat","capabilities":["tools","prompts"],"serverVersion":"3.48.3","protocolVersion":"2025-06-18"}},{"at":"2026-10-08T07:25:58.502Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":44,"error":null,"detail":{"tools":[{"name":"discover_pages","description":"Free 3 times a day per client address (at most 50 pages each), no key needed. Lists the pages of Site A (sitemap, robots.txt or crawl), mapped onto Site B when "},{"name":"capture_screenshot","description":"Free 3 times a day per client address, no key needed. Full-page PNG of one URL at the given viewport width, returned inline when small, else as links.file to fe"},{"name":"start_comparison","description":"Free up to 10 pages a day per client address, no key needed; sample report: https://difficat.com/agents/sample/report.json. Compares Site A against Site B on pa"},{"name":"recover_comparison","description":"Returns the job or screenshot the payment credential in _meta paid for, with a new jobToken that replaces the old one; or, when the request carries a key and _m"},{"name":"get_comparison","description":"Status and progress of a job and, once it is terminal, its summary: passed, failed and issuesBySeverity. To wait for the end, call wait_for_comparison instead. "},{"name":"cancel_comparison","description":"Stop a running job; the job reports cancelled within a minute, with the pages compared so far in its report. Free."},{"name":"wait_for_comparison","description":"Waits until the job reaches a terminal status (completed, failed or cancelled) or timeoutSeconds pass (default 60, at most 300), then answers like get_compariso"},{"name":"get_report","description":"The finished report. Call it first with failedOnly: true: results, total and nextOffset then cover only the pages that failed, while summary still covers every "},{"name":"get_screenshot","description":"Fetch one screenshot PNG by filename. Call it when a get_report page result or a capture_screenshot result names a screenshot you want to see; a PNG over the in"},{"name":"get_balance","description":"The prepaid balance and the last 20 ledger entries of the key the request carries in its Authorization: Bearer or X-DiffiCat-Key header. Call it to check what a"},{"name":"request_prepaid_key","description":"Mints a prepaid key and a Checkout link for a human to pay by card, so later paid calls are debited from its balance instead of challenged. Call it when a call "},{"name":"send_feedback","description":"Sends one message to the people who run this service: why a price, a payment path or a result did not fit. Call it when you stop short of a paid call or a resul"}],"toolCount":12,"toolsHash":"8db386437ea0bb1a0509c5397e52c619f7ee2e7b36c38540f234f268bab7b81e","serverName":"difficat","capabilities":["tools","prompts"],"serverVersion":"3.48.2","protocolVersion":"2025-06-18"}},{"at":"2026-10-08T00:26:58.434Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":32,"error":null,"detail":{"tools":[{"name":"discover_pages","description":"Free 3 times a day per client address (at most 50 pages each), no key needed. Lists the pages of Site A (sitemap, robots.txt or crawl), mapped onto Site B when "},{"name":"capture_screenshot","description":"Free 3 times a day per client address, no key needed. Full-page PNG of one URL at the given viewport width, returned inline when small, else as links.file to fe"},{"name":"start_comparison","description":"Free up to 10 pages a day per client address, no key needed; sample report: https://difficat.com/agents/sample/report.json. Compares Site A against Site B on pa"},{"name":"recover_comparison","description":"Returns the job or screenshot the payment credential in _meta paid for, with a new jobToken that replaces the old one; or, when the request carries a key and _m"},{"name":"get_comparison","description":"Status and progress of a job and, once it is terminal, its summary: passed, failed and issuesBySeverity. To wait for the end, call wait_for_comparison instead. "},{"name":"cancel_comparison","description":"Stop a running job; the job reports cancelled within a minute, with the pages compared so far in its report. Free."},{"name":"wait_for_comparison","description":"Waits until the job reaches a terminal status (completed, failed or cancelled) or timeoutSeconds pass (default 60, at most 300), then answers like get_compariso"},{"name":"get_report","description":"The finished report. Call it first with failedOnly: true: results, total and nextOffset then cover only the pages that failed, while summary still covers every "},{"name":"get_screenshot","description":"Fetch one screenshot PNG by filename. Call it when a get_report page result or a capture_screenshot result names a screenshot you want to see; a PNG over the in"},{"name":"get_balance","description":"The prepaid balance and the last 20 ledger entries of the key the request carries in its Authorization: Bearer or X-DiffiCat-Key header. Call it to check what a"},{"name":"request_prepaid_key","description":"Mints a prepaid key and a Checkout link for a human to pay by card, so later paid calls are debited from its balance instead of challenged. Call it when a call "},{"name":"send_feedback","description":"Sends one message to the people who run this service: why a price, a payment path or a result did not fit. Call it when you stop short of a paid call or a resul"}],"toolCount":12,"toolsHash":"8db386437ea0bb1a0509c5397e52c619f7ee2e7b36c38540f234f268bab7b81e","serverName":"difficat","capabilities":["tools","prompts"],"serverVersion":"3.48.2","protocolVersion":"2025-06-18"}},{"at":"2026-10-07T18:25:40.919Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":38,"error":null,"detail":{"tools":[{"name":"discover_pages","description":"Free 3 times a day per client address (at most 50 pages each), no key needed. Lists the pages of Site A (sitemap, robots.txt or crawl), mapped onto Site B when "},{"name":"capture_screenshot","description":"Free 3 times a day per client address, no key needed. Full-page PNG of one URL at the given viewport width, returned inline when small, else as links.file to fe"},{"name":"start_comparison","description":"Free up to 10 pages a day per client address, no key needed; sample report: https://difficat.com/agents/sample/report.json. Compares Site A against Site B on pa"},{"name":"recover_comparison","description":"Returns the job or screenshot the payment credential in _meta paid for, with a new jobToken that replaces the old one; or, when the request carries a key and _m"},{"name":"get_comparison","description":"Status and progress of a job and, once it is terminal, its summary: passed, failed and issuesBySeverity. To wait for the end, call wait_for_comparison instead. "},{"name":"cancel_comparison","description":"Stop a running job; the job reports cancelled within a minute, with the pages compared so far in its report. Free."},{"name":"wait_for_comparison","description":"Waits until the job reaches a terminal status (completed, failed or cancelled) or timeoutSeconds pass (default 60, at most 300), then answers like get_compariso"},{"name":"get_report","description":"The finished report. Call it first with failedOnly: true: results, total and nextOffset then cover only the pages that failed, while summary still covers every "},{"name":"get_screenshot","description":"Fetch one screenshot PNG by filename. Call it when a get_report page result or a capture_screenshot result names a screenshot you want to see; a PNG over the in"},{"name":"get_balance","description":"The prepaid balance and the last 20 ledger entries of the key the request carries in its Authorization: Bearer or X-DiffiCat-Key header. Call it to check what a"},{"name":"request_prepaid_key","description":"Mints a prepaid key and a Checkout link for a human to pay by card, so later paid calls are debited from its balance instead of challenged. Call it when a call "},{"name":"send_feedback","description":"Sends one message to the people who run this service: why a price, a payment path or a result did not fit. Call it when you stop short of a paid call or a resul"}],"toolCount":12,"toolsHash":"8db386437ea0bb1a0509c5397e52c619f7ee2e7b36c38540f234f268bab7b81e","serverName":"difficat","capabilities":["tools","prompts"],"serverVersion":"3.48.2","protocolVersion":"2025-06-18"}},{"at":"2026-10-07T11:25:33.299Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":34,"error":null,"detail":{"tools":[{"name":"discover_pages","description":"Free 3 times a day per client address (at most 50 pages each), no key needed. Lists the pages of Site A (sitemap, robots.txt or crawl), mapped onto Site B when "},{"name":"capture_screenshot","description":"Free 3 times a day per client address, no key needed. Full-page PNG of one URL at the given viewport width, returned inline when small, else as links.file to fe"},{"name":"start_comparison","description":"Free up to 10 pages a day per client address, no key needed; sample report: https://difficat.com/agents/sample/report.json. Compares Site A against Site B on pa"},{"name":"recover_comparison","description":"Returns the job or screenshot the payment credential in _meta paid for, with a new jobToken that replaces the old one; or, when the request carries a key and _m"},{"name":"get_comparison","description":"Status and progress of a job and, once it is terminal, its summary: passed, failed and issuesBySeverity. To wait for the end, call wait_for_comparison instead. "},{"name":"cancel_comparison","description":"Stop a running job; the job reports cancelled within a minute, with the pages compared so far in its report. Free."},{"name":"wait_for_comparison","description":"Waits until the job reaches a terminal status (completed, failed or cancelled) or timeoutSeconds pass (default 60, at most 300), then answers like get_compariso"},{"name":"get_report","description":"The finished report. Call it first with failedOnly: true: results, total and nextOffset then cover only the pages that failed, while summary still covers every "},{"name":"get_screenshot","description":"Fetch one screenshot PNG by filename. Call it when a get_report page result or a capture_screenshot result names a screenshot you want to see; a PNG over the in"},{"name":"get_balance","description":"The prepaid balance and the last 20 ledger entries of the key the request carries in its Authorization: Bearer or X-DiffiCat-Key header. Call it to check what a"},{"name":"request_prepaid_key","description":"Mints a prepaid key and a Checkout link for a human to pay by card, so later paid calls are debited from its balance instead of challenged. Call it when a call "},{"name":"send_feedback","description":"Sends one message to the people who run this service: why a price, a payment path or a result did not fit. Call it when you stop short of a paid call or a resul"}],"toolCount":12,"toolsHash":"8db386437ea0bb1a0509c5397e52c619f7ee2e7b36c38540f234f268bab7b81e","serverName":"difficat","capabilities":["tools","prompts"],"serverVersion":"3.46.1","protocolVersion":"2025-06-18"}},{"at":"2026-10-07T04:25:44.659Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":32,"error":null,"detail":{"tools":[{"name":"discover_pages","description":"Free 3 times a day per client address (at most 50 pages each), no key needed. Lists the pages of Site A (sitemap, robots.txt or crawl), mapped onto Site B when "},{"name":"capture_screenshot","description":"Free 3 times a day per client address, no key needed. Full-page PNG of one URL at the given viewport width, returned inline when small, else as links.file to fe"},{"name":"start_comparison","description":"Free up to 10 pages a day per client address, no key needed; sample report: https://difficat.com/agents/sample/report.json. Compares Site A against Site B on pa"},{"name":"recover_comparison","description":"Returns the job or screenshot the payment credential in _meta paid for, with a new jobToken that replaces the old one; or, when the request carries a key and _m"},{"name":"get_comparison","description":"Status and progress of a job and, once it is terminal, its summary: passed, failed and issuesBySeverity. To wait for the end, call wait_for_comparison instead. "},{"name":"cancel_comparison","description":"Stop a running job; the job reports cancelled within a minute, with the pages compared so far in its report. Free."},{"name":"wait_for_comparison","description":"Waits until the job reaches a terminal status (completed, failed or cancelled) or timeoutSeconds pass (default 60, at most 300), then answers like get_compariso"},{"name":"get_report","description":"The finished report. Call it first with failedOnly: true: results, total and nextOffset then cover only the pages that failed, while summary still covers every "},{"name":"get_screenshot","description":"Fetch one screenshot PNG by filename. Call it when a get_report page result or a capture_screenshot result names a screenshot you want to see; a PNG over the in"},{"name":"get_balance","description":"The prepaid balance and the last 20 ledger entries of the key the request carries in its Authorization: Bearer or X-DiffiCat-Key header. Call it to check what a"},{"name":"request_prepaid_key","description":"Mints a prepaid key and a Checkout link for a human to pay by card, so later paid calls are debited from its balance instead of challenged. Call it when a call "},{"name":"send_feedback","description":"Sends one message to the people who run this service: why a price, a payment path or a result did not fit. Call it when you stop short of a paid call or a resul"}],"toolCount":12,"toolsHash":"8db386437ea0bb1a0509c5397e52c619f7ee2e7b36c38540f234f268bab7b81e","serverName":"difficat","capabilities":["tools","prompts"],"serverVersion":"3.45.0","protocolVersion":"2025-06-18"}}],"tools":[{"name":"discover_pages","description":"Free 3 times a day per client address (at most 50 pages each), no key needed. Lists the pages of Site A (sitemap, robots.txt or crawl), mapped onto Site B when "},{"name":"capture_screenshot","description":"Free 3 times a day per client address, no key needed. Full-page PNG of one URL at the given viewport width, returned inline when small, else as links.file to fe"},{"name":"start_comparison","description":"Free up to 10 pages a day per client address, no key needed; sample report: https://difficat.com/agents/sample/report.json. Compares Site A against Site B on pa"},{"name":"recover_comparison","description":"Returns the job or screenshot the payment credential in _meta paid for, with a new jobToken that replaces the old one; or, when the request carries a key and _m"},{"name":"get_comparison","description":"Status and progress of a job and, once it is terminal, its summary: passed, failed and issuesBySeverity. To wait for the end, call wait_for_comparison instead. "},{"name":"cancel_comparison","description":"Stop a running job; the job reports cancelled within a minute, with the pages compared so far in its report. Free."},{"name":"wait_for_comparison","description":"Waits until the job reaches a terminal status (completed, failed or cancelled) or timeoutSeconds pass (default 60, at most 300), then answers like get_compariso"},{"name":"get_report","description":"The finished report. Call it first with failedOnly: true: results, total and nextOffset then cover only the pages that failed, while summary still covers every "},{"name":"get_screenshot","description":"Fetch one screenshot PNG by filename. Call it when a get_report page result or a capture_screenshot result names a screenshot you want to see; a PNG over the in"},{"name":"get_balance","description":"The prepaid balance and the last 20 ledger entries of the key the request carries in its Authorization: Bearer or X-DiffiCat-Key header. Call it to check what a"},{"name":"request_prepaid_key","description":"Mints a prepaid key and a Checkout link for a human to pay by card, so later paid calls are debited from its balance instead of challenged. Call it when a call "},{"name":"send_feedback","description":"Sends one message to the people who run this service: why a price, a payment path or a result did not fit. Call it when you stop short of a paid call or a resul"}],"package":null,"toolSurface":{"id":"ts_mk4wbdqhwamy","endpointId":"ep_g8nyrjuqqfsg","hash":"8db386437ea0bb1a0509c5397e52c619f7ee2e7b36c38540f234f268bab7b81e","toolCount":12,"serverName":"difficat","serverVersion":"3.43.1","protocolVersion":"2025-06-18","firstSeenAt":"2026-10-04T16:31:08.713Z","lastSeenAt":"2026-10-09T01:26:28.928Z","observations":17,"toolNames":["discover_pages","capture_screenshot","start_comparison","recover_comparison","get_comparison","cancel_comparison","wait_for_comparison","get_report","get_screenshot","get_balance","request_prepaid_key","send_feedback"],"distinctSurfaces":8},"endpointFacts":[{"id":"ep_g8nyrjuqqfsg","url":"https://app.difficat.com/mcp","type":"mcp_streamable_http","factsCheckedAt":"2026-10-09T21:25:48.707Z","auth":{"observedAt":"2026-10-07T18:25:40.965Z","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-09T21:25:48.721Z","protocol":"TLSv1.3","chainValid":true,"chainError":null,"hostMatches":true,"subject":"app.difficat.com","issuer":{"commonName":"WR3","organization":"Google Trust Services"},"validFrom":"2026-08-30T15:46:29.000Z","validTo":"2026-11-28T16:31:17.000Z","daysToExpiry":49,"sanCount":1,"fingerprint256":"3A:0E:69:8D:A5:01:28:9B:CF:CB:BD:15:09:92:8A:6A:77:90:B3:F2:FE:DF:F9:C0:41:E0:D9:17:B8:DF:14:BC"}}]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"mcp_registry","key":"com.difficat/difficat","url":"https://registry.modelcontextprotocol.io/v0/servers/com.difficat%2Fdifficat","firstSeenAt":"2026-09-27T22:21:19.019Z","fetchedAt":"2026-10-09T05:21:39.505Z","normalizedAt":"2026-10-09T05:21:39.505Z"}]},"firstSeenAt":"2026-09-27T22:21:19.019Z","updatedAt":"2026-10-09T01:28:13.156Z"}