{"ok":true,"kind":"crawlcheck-capability-registry-entry","v":1,"domain":"caspchecklist.com","page":"https://crawlcheck.io/registry/capabilities/caspchecklist.com","row":{"domain":"caspchecklist.com","host":"caspchecklist.com","report_id":"3hxz20nqtg","scanned_at":"2026-10-31T16:33:26.034Z","manifest":"462f3f9586d3581a2f5018e4c3455027ea3a5c0de648116b86e135f0b46a92d0","declared":9,"protocols":["api","openapi"],"by_policy":{"metadata":1,"unknown":7,"public_read_only":1},"verified":1,"mismatches":0,"self_scan":false},"policy_classes":[{"id":"public_read_only","safety":"read_only_public","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},{"id":"authenticated_read_only","safety":"read_only_authenticated","label":"Authenticated read-only","automatic":false,"invoke":"Never called by CrawlCheck. An agent needs the user's own credentials and consent."},{"id":"reversible_write","safety":"reversible_write","label":"Reversible write","automatic":false,"invoke":"Never invoked automatically. Needs the owner's written authorisation and a test account."},{"id":"irreversible_write","safety":"irreversible_write","label":"Irreversible write","automatic":false,"invoke":"Never invoked automatically. Deletes or changes something that cannot be undone."},{"id":"financial","safety":"financial","label":"Financial","automatic":false,"invoke":"Never invoked automatically. Moves money or creates a charge."},{"id":"external_communication","safety":"external_communication","label":"External communication","automatic":false,"invoke":"Never invoked automatically. Sends a message, email or notification to someone."},{"id":"identity","safety":"identity_or_account","label":"Identity and accounts","automatic":false,"invoke":"Never invoked automatically. Creates, signs in to or changes an account or credential."},{"id":"unknown","safety":"unknown","label":"Unknown","automatic":false,"invoke":"Never invoked. Its effect cannot be read from the declaration, so it is treated as the riskiest case."},{"id":"metadata","safety":"metadata_only","label":"Metadata","automatic":false,"invoke":"Nothing to invoke: a listing, a server card or a skill file, not an operation."}],"items":[{"capability_id":"cap1:42895548c3964fc5a8f5","protocol":"api","operation":null,"method":null,"endpoint":"https://caspchecklist.com/sitemap-index.xml","declared":{"by":"https://caspchecklist.com/.well-known/api-catalog","declaration_sha256":"a20866b07e3bf5d19c1e324831ca5cf6d131d59578d7710ce8069e2e7fc2f017","authentication":"unknown","params_required":null,"media":null,"safety_class":"metadata_only","safety_basis":"an API the catalog lists; its operations are in its own description"},"policy":{"id":"metadata","label":"Metadata","automatic":false,"invoke":"Nothing to invoke: a listing, a server card or a skill file, not an operation."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"metadata: describes a surface, is not itself an action"}},{"capability_id":"cap1:32619394cf0c51a85a1b","protocol":"openapi","operation":"checker_start","method":"POST","endpoint":"https://caspchecklist.com/mcp/tools/checker_start","declared":{"by":"https://caspchecklist.com/openapi.json","declaration_sha256":"759acbd6bca4a098892a69d150dd6e22d4a9411efe2bd628881699f645d0f23b","authentication":"http_bearer","params_required":0,"media":["application/json"],"safety_class":"unknown","safety_basis":"POST with no declared reversibility"},"policy":{"id":"unknown","label":"Unknown","automatic":false,"invoke":"Never invoked. Its effect cannot be read from the declaration, so it is treated as the riskiest case."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"requires http_bearer: never called without the operator's own credentials"}},{"capability_id":"cap1:4132965c0b6f1e5abd2c","protocol":"openapi","operation":"checker_answer","method":"POST","endpoint":"https://caspchecklist.com/mcp/tools/checker_answer","declared":{"by":"https://caspchecklist.com/openapi.json","declaration_sha256":"759acbd6bca4a098892a69d150dd6e22d4a9411efe2bd628881699f645d0f23b","authentication":"http_bearer","params_required":0,"media":["application/json"],"safety_class":"unknown","safety_basis":"POST with no declared reversibility"},"policy":{"id":"unknown","label":"Unknown","automatic":false,"invoke":"Never invoked. Its effect cannot be read from the declaration, so it is treated as the riskiest case."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"requires http_bearer: never called without the operator's own credentials"}},{"capability_id":"cap1:a9f3016284bd4af2c7da","protocol":"openapi","operation":"checker_tree","method":"POST","endpoint":"https://caspchecklist.com/mcp/tools/checker_tree","declared":{"by":"https://caspchecklist.com/openapi.json","declaration_sha256":"759acbd6bca4a098892a69d150dd6e22d4a9411efe2bd628881699f645d0f23b","authentication":"http_bearer","params_required":0,"media":["application/json"],"safety_class":"unknown","safety_basis":"POST with no declared reversibility"},"policy":{"id":"unknown","label":"Unknown","automatic":false,"invoke":"Never invoked. Its effect cannot be read from the declaration, so it is treated as the riskiest case."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"requires http_bearer: never called without the operator's own credentials"}},{"capability_id":"cap1:6bec357bb586ac1febde","protocol":"openapi","operation":"enquiry_describe","method":"POST","endpoint":"https://caspchecklist.com/mcp/tools/enquiry_describe","declared":{"by":"https://caspchecklist.com/openapi.json","declaration_sha256":"759acbd6bca4a098892a69d150dd6e22d4a9411efe2bd628881699f645d0f23b","authentication":"http_bearer","params_required":0,"media":["application/json"],"safety_class":"unknown","safety_basis":"POST with no declared reversibility"},"policy":{"id":"unknown","label":"Unknown","automatic":false,"invoke":"Never invoked. Its effect cannot be read from the declaration, so it is treated as the riskiest case."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"requires http_bearer: never called without the operator's own credentials"}},{"capability_id":"cap1:df58acb9c3d3e55d59c9","protocol":"openapi","operation":"enquiry_fields","method":"POST","endpoint":"https://caspchecklist.com/mcp/tools/enquiry_fields","declared":{"by":"https://caspchecklist.com/openapi.json","declaration_sha256":"759acbd6bca4a098892a69d150dd6e22d4a9411efe2bd628881699f645d0f23b","authentication":"http_bearer","params_required":0,"media":["application/json"],"safety_class":"unknown","safety_basis":"POST with no declared reversibility"},"policy":{"id":"unknown","label":"Unknown","automatic":false,"invoke":"Never invoked. Its effect cannot be read from the declaration, so it is treated as the riskiest case."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"requires http_bearer: never called without the operator's own credentials"}},{"capability_id":"cap1:b882bd5e04ec1f3e054a","protocol":"openapi","operation":"submit_enquiry","method":"POST","endpoint":"https://caspchecklist.com/mcp/tools/submit_enquiry","declared":{"by":"https://caspchecklist.com/openapi.json","declaration_sha256":"759acbd6bca4a098892a69d150dd6e22d4a9411efe2bd628881699f645d0f23b","authentication":"http_bearer","params_required":0,"media":["application/json"],"safety_class":"unknown","safety_basis":"POST with no declared reversibility"},"policy":{"id":"unknown","label":"Unknown","automatic":false,"invoke":"Never invoked. Its effect cannot be read from the declaration, so it is treated as the riskiest case."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"requires http_bearer: never called without the operator's own credentials"}},{"capability_id":"cap1:f3351d08b46f48e9db5b","protocol":"openapi","operation":"mcpCard","method":"GET","endpoint":"https://caspchecklist.com/mcp","declared":{"by":"https://caspchecklist.com/openapi.json","declaration_sha256":"759acbd6bca4a098892a69d150dd6e22d4a9411efe2bd628881699f645d0f23b","authentication":"none","params_required":0,"media":["application/json"],"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"behavior_verified","verified":true,"at":"2026-10-31T16:33:29.926Z","status":200,"content_type":"application/json","sha256":"df0fdb575e84f3f213fc9118870c91e97ed8b02c6caab5d8a1d03fc9db516665","mismatches":[],"not_attempted_because":null}},{"capability_id":"cap1:c0817e0ff6aa7a385730","protocol":"openapi","operation":"mcp","method":"POST","endpoint":"https://caspchecklist.com/mcp","declared":{"by":"https://caspchecklist.com/openapi.json","declaration_sha256":"759acbd6bca4a098892a69d150dd6e22d4a9411efe2bd628881699f645d0f23b","authentication":"none","params_required":1,"media":["application/json"],"safety_class":"unknown","safety_basis":"POST with no declared reversibility"},"policy":{"id":"unknown","label":"Unknown","automatic":false,"invoke":"Never invoked. Its effect cannot be read from the declaration, so it is treated as the riskiest case."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"classed unknown: only read-only public actions are ever called"}}],"mismatches":[],"certificate":{"certificate_id":"ccap1:4eed4bb38a79b8839d1ffa77b6ed137c53f55b7a09380ac2765b3b0729e847a3","certificate":{"kind":"crawlcheck-capability-certificate","v":1,"subject":"caspchecklist.com","domain":"caspchecklist.com","record":"3hxz20nqtg","report":"https://crawlcheck.io/r/3hxz20nqtg","manifest_sha256":"462f3f9586d3581a2f5018e4c3455027ea3a5c0de648116b86e135f0b46a92d0","measured_at":"2026-10-31T16:33:26.034Z","verification_checked_at":"2026-10-31T16:33:29.926Z","verification_policy":"public GETs with no required input and one read-only MCP tool with no required input, on the scanned origin only; redirects recorded, not followed","invocation_rule":"capabilities are read from declarations only; nothing is invoked. Later verification may call read_only_public operations alone; every other class needs the site owner's authorisation and a test account, and unknown is never called","counts":{"declared":9,"verified":1,"mismatches":0},"items":[{"id":"cap1:42895548c3964fc5a8f5","protocol":"api","operation":null,"method":null,"endpoint":"https://caspchecklist.com/sitemap-index.xml","declared_by_sha256":"a20866b07e3bf5d19c1e324831ca5cf6d131d59578d7710ce8069e2e7fc2f017","safety_class":"metadata_only","policy":"metadata","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:32619394cf0c51a85a1b","protocol":"openapi","operation":"checker_start","method":"POST","endpoint":"https://caspchecklist.com/mcp/tools/checker_start","declared_by_sha256":"759acbd6bca4a098892a69d150dd6e22d4a9411efe2bd628881699f645d0f23b","safety_class":"unknown","policy":"unknown","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:4132965c0b6f1e5abd2c","protocol":"openapi","operation":"checker_answer","method":"POST","endpoint":"https://caspchecklist.com/mcp/tools/checker_answer","declared_by_sha256":"759acbd6bca4a098892a69d150dd6e22d4a9411efe2bd628881699f645d0f23b","safety_class":"unknown","policy":"unknown","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:a9f3016284bd4af2c7da","protocol":"openapi","operation":"checker_tree","method":"POST","endpoint":"https://caspchecklist.com/mcp/tools/checker_tree","declared_by_sha256":"759acbd6bca4a098892a69d150dd6e22d4a9411efe2bd628881699f645d0f23b","safety_class":"unknown","policy":"unknown","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:6bec357bb586ac1febde","protocol":"openapi","operation":"enquiry_describe","method":"POST","endpoint":"https://caspchecklist.com/mcp/tools/enquiry_describe","declared_by_sha256":"759acbd6bca4a098892a69d150dd6e22d4a9411efe2bd628881699f645d0f23b","safety_class":"unknown","policy":"unknown","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:df58acb9c3d3e55d59c9","protocol":"openapi","operation":"enquiry_fields","method":"POST","endpoint":"https://caspchecklist.com/mcp/tools/enquiry_fields","declared_by_sha256":"759acbd6bca4a098892a69d150dd6e22d4a9411efe2bd628881699f645d0f23b","safety_class":"unknown","policy":"unknown","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:b882bd5e04ec1f3e054a","protocol":"openapi","operation":"submit_enquiry","method":"POST","endpoint":"https://caspchecklist.com/mcp/tools/submit_enquiry","declared_by_sha256":"759acbd6bca4a098892a69d150dd6e22d4a9411efe2bd628881699f645d0f23b","safety_class":"unknown","policy":"unknown","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:f3351d08b46f48e9db5b","protocol":"openapi","operation":"mcpCard","method":"GET","endpoint":"https://caspchecklist.com/mcp","declared_by_sha256":"759acbd6bca4a098892a69d150dd6e22d4a9411efe2bd628881699f645d0f23b","safety_class":"read_only_public","policy":"public_read_only","observed":"behavior_verified","status":200,"observed_sha256":"df0fdb575e84f3f213fc9118870c91e97ed8b02c6caab5d8a1d03fc9db516665"},{"id":"cap1:c0817e0ff6aa7a385730","protocol":"openapi","operation":"mcp","method":"POST","endpoint":"https://caspchecklist.com/mcp","declared_by_sha256":"759acbd6bca4a098892a69d150dd6e22d4a9411efe2bd628881699f645d0f23b","safety_class":"unknown","policy":"unknown","observed":"not_attempted","status":null,"observed_sha256":null}],"mismatches":[],"valid_until":"2026-11-14T16:33:26.034Z","lifecycle":{"valid_days":14,"revoked":"a later measurement no longer verifies a capability this certificate verified, or records a mismatch this one did not","suspended":"while the domain's owner has declared an incident, or while its domain-control claim is lapsed or suspended","superseded":"a newer certificate for the same domain exists; this one stays valid until valid_until unless revoked","withdrawn":"the owner opted the domain out of measurement","appeal":"the verified owner files a dispute against the measurement (POST /api/disputes); decided on evidence with an independent re-read; an upheld appeal withdraws the finding, and the revocation stays in the log with the resolution linked","spec":"/spec/certificate"},"status_url":"https://crawlcheck.io/api/registry/capabilities/status?domain=caspchecklist.com&record=3hxz20nqtg"},"signature":{"alg":"Ed25519","kid":"1hHmE3fo1rg5Ig70wuFtJ5wBc7G-sUTgUJkxyPWFRps","certificate_sha256":"4eed4bb38a79b8839d1ffa77b6ed137c53f55b7a09380ac2765b3b0729e847a3","message":"the UTF-8 bytes of \"crawlcheck-capability-certificate-v1\\n\" followed by certificate_sha256 (hex), where certificate_sha256 = SHA-256 of the certificate as canonical JSON (keys sorted, no whitespace)","sig":"VVTNBmTXXeSp4EKlwTYfIsoHLCu-PWm-6zgEUN7uxcsR3l9zRThcuHFQLDWR8ZGjFI7Qjh8BiImIUpXaQ22wBQ"},"issuer":{"name":"CrawlCheck observer","key":{"jwk":{"kty":"OKP","crv":"Ed25519","x":"5TmKCOx0TTHepq7HwyXBHvGQpVCSBd2lV8cLzYVqFxQ"},"directory":"https://crawlcheck.io/.well-known/http-message-signatures-directory"}}},"verify":"https://crawlcheck.io/api/registry/capabilities/verify?domain=caspchecklist.com"}