{"ok":true,"kind":"crawlcheck-capability-registry-entry","v":1,"domain":"speakeasy.com","page":"https://crawlcheck.io/registry/capabilities/speakeasy.com","row":{"domain":"speakeasy.com","host":"speakeasy.com","report_id":"z4lp24g10z","scanned_at":"2026-10-06T02:22:52.980Z","manifest":"b554c995bfb23f66c254e4e88c27a55af6532a161d488e940f7a92bb03f45b15","declared":3,"protocols":["mcp"],"by_policy":{"unknown":3},"verified":0,"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:06ee25393cc0f57353a4","protocol":"mcp","operation":"search_docs","method":null,"endpoint":null,"declared":{"by":"https://speakeasy.com/.well-known/mcp/server-card.json","declaration_sha256":"12b844ab3618bd663753e3e87cbd21b4efad8c131cd848346e3e892a04422cca","authentication":"unknown","params_required":null,"media":null,"safety_class":"unknown","safety_basis":"its effect is not stated in the declaration"},"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"}},{"capability_id":"cap1:01ee01479b24ae5f904f","protocol":"mcp","operation":"get_doc","method":null,"endpoint":null,"declared":{"by":"https://speakeasy.com/.well-known/mcp/server-card.json","declaration_sha256":"12b844ab3618bd663753e3e87cbd21b4efad8c131cd848346e3e892a04422cca","authentication":"unknown","params_required":null,"media":null,"safety_class":"unknown","safety_basis":"its effect is not stated in the declaration"},"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"}},{"capability_id":"cap1:23f499c9d0dadbb5c01d","protocol":"mcp","operation":"give_feedback","method":null,"endpoint":null,"declared":{"by":"https://speakeasy.com/.well-known/mcp/server-card.json","declaration_sha256":"12b844ab3618bd663753e3e87cbd21b4efad8c131cd848346e3e892a04422cca","authentication":"unknown","params_required":null,"media":null,"safety_class":"unknown","safety_basis":"its effect is not stated in the declaration"},"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:8d08e4b81f1ef48c1caa4e85fa8d485d8f0ccc91040a8b4a5559341a20343c24","certificate":{"kind":"crawlcheck-capability-certificate","v":1,"subject":"speakeasy.com","domain":"speakeasy.com","record":"z4lp24g10z","report":"https://crawlcheck.io/r/z4lp24g10z","manifest_sha256":"b554c995bfb23f66c254e4e88c27a55af6532a161d488e940f7a92bb03f45b15","measured_at":"2026-10-06T02:22:52.980Z","verification_checked_at":"2026-10-06T02:22:56.247Z","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":3,"verified":0,"mismatches":0},"items":[{"id":"cap1:06ee25393cc0f57353a4","protocol":"mcp","operation":"search_docs","method":null,"endpoint":null,"declared_by_sha256":"12b844ab3618bd663753e3e87cbd21b4efad8c131cd848346e3e892a04422cca","safety_class":"unknown","policy":"unknown","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:01ee01479b24ae5f904f","protocol":"mcp","operation":"get_doc","method":null,"endpoint":null,"declared_by_sha256":"12b844ab3618bd663753e3e87cbd21b4efad8c131cd848346e3e892a04422cca","safety_class":"unknown","policy":"unknown","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:23f499c9d0dadbb5c01d","protocol":"mcp","operation":"give_feedback","method":null,"endpoint":null,"declared_by_sha256":"12b844ab3618bd663753e3e87cbd21b4efad8c131cd848346e3e892a04422cca","safety_class":"unknown","policy":"unknown","observed":"not_attempted","status":null,"observed_sha256":null}],"mismatches":[]},"signature":{"alg":"Ed25519","kid":"hcIAczGf-8EFBnkunmZlvFWnD2nHHeHeC9cM4BTiBVo","certificate_sha256":"8d08e4b81f1ef48c1caa4e85fa8d485d8f0ccc91040a8b4a5559341a20343c24","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":"DOEUtQxBvVxKFE332seraRxbQGEr_3wyiCzmOxVaqGWwYh2Ru_9ciRsA0MxZP6f_4FLTbU0w8es3Z_UkxP8jBQ"},"issuer":{"name":"CrawlCheck observer","key":{"jwk":{"kty":"OKP","crv":"Ed25519","x":"Ny5tAiGdpyVWTm64G1_0g_sTo4ocLL7kqjZ6cK7G5KM"},"directory":"https://crawlcheck.io/.well-known/http-message-signatures-directory"}}},"verify":"https://crawlcheck.io/api/registry/capabilities/verify?domain=speakeasy.com"}