{"ok":true,"kind":"crawlcheck-capability-registry-entry","v":1,"domain":"supabase.com","page":"https://crawlcheck.io/registry/capabilities/supabase.com","row":{"domain":"supabase.com","host":"supabase.com","report_id":"3i3h2b07qk","scanned_at":"2026-10-06T03:21:52.287Z","manifest":"ca2680783a15037b5414d02a1a174c8c2c84f9fa9d89e21631d8442cd224eac7","declared":4,"protocols":["agent_skill","api"],"by_policy":{"metadata":4},"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:80e7c08b23769972259d","protocol":"api","operation":null,"method":null,"endpoint":"https://api.supabase.com/v1","declared":{"by":"https://supabase.com/.well-known/api-catalog","declaration_sha256":"6931c7eb3f7b1bc22fe83785e61ac90077184a9d1f461a0e9e81e7841b030802","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":"on another origin (api.supabase.com): only the scanned origin is called"}},{"capability_id":"cap1:17949f9faab59734bf39","protocol":"api","operation":null,"method":null,"endpoint":"https://mcp.supabase.com/mcp","declared":{"by":"https://supabase.com/.well-known/api-catalog","declaration_sha256":"6931c7eb3f7b1bc22fe83785e61ac90077184a9d1f461a0e9e81e7841b030802","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":"on another origin (mcp.supabase.com): only the scanned origin is called"}},{"capability_id":"cap1:e7749e1ea5d6291007b4","protocol":"agent_skill","operation":"supabase","method":null,"endpoint":"https://github.com/supabase/agent-skills/releases/download/v0.1.9/supabase.tar.gz","declared":{"by":"https://supabase.com/.well-known/agent-skills/index.json","declaration_sha256":"68985980f4e8f157b4b340b6218d7fa63a7f8c2dacf4f7ed14f159dda4d88117","authentication":"none","params_required":null,"media":null,"safety_class":"metadata_only","safety_basis":"an instruction file an agent reads; not an operation"},"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":"on another origin (github.com): only the scanned origin is called"}},{"capability_id":"cap1:5c8fba241e08c600fec0","protocol":"agent_skill","operation":"supabase-postgres-best-practices","method":null,"endpoint":"https://github.com/supabase/agent-skills/releases/download/v0.1.9/supabase-postgres-best-practices.tar.gz","declared":{"by":"https://supabase.com/.well-known/agent-skills/index.json","declaration_sha256":"68985980f4e8f157b4b340b6218d7fa63a7f8c2dacf4f7ed14f159dda4d88117","authentication":"none","params_required":null,"media":null,"safety_class":"metadata_only","safety_basis":"an instruction file an agent reads; not an operation"},"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":"on another origin (github.com): only the scanned origin is called"}}],"mismatches":[],"certificate":{"certificate_id":"ccap1:71914cfe9c8b90934f762f2fdc423df56e54644257e377f9515884be5b28b9eb","certificate":{"kind":"crawlcheck-capability-certificate","v":1,"subject":"supabase.com","domain":"supabase.com","record":"3i3h2b07qk","report":"https://crawlcheck.io/r/3i3h2b07qk","manifest_sha256":"ca2680783a15037b5414d02a1a174c8c2c84f9fa9d89e21631d8442cd224eac7","measured_at":"2026-10-06T03:21:52.287Z","verification_checked_at":"2026-10-06T03:21:55.787Z","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":4,"verified":0,"mismatches":0},"items":[{"id":"cap1:80e7c08b23769972259d","protocol":"api","operation":null,"method":null,"endpoint":"https://api.supabase.com/v1","declared_by_sha256":"6931c7eb3f7b1bc22fe83785e61ac90077184a9d1f461a0e9e81e7841b030802","safety_class":"metadata_only","policy":"metadata","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:17949f9faab59734bf39","protocol":"api","operation":null,"method":null,"endpoint":"https://mcp.supabase.com/mcp","declared_by_sha256":"6931c7eb3f7b1bc22fe83785e61ac90077184a9d1f461a0e9e81e7841b030802","safety_class":"metadata_only","policy":"metadata","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:e7749e1ea5d6291007b4","protocol":"agent_skill","operation":"supabase","method":null,"endpoint":"https://github.com/supabase/agent-skills/releases/download/v0.1.9/supabase.tar.gz","declared_by_sha256":"68985980f4e8f157b4b340b6218d7fa63a7f8c2dacf4f7ed14f159dda4d88117","safety_class":"metadata_only","policy":"metadata","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:5c8fba241e08c600fec0","protocol":"agent_skill","operation":"supabase-postgres-best-practices","method":null,"endpoint":"https://github.com/supabase/agent-skills/releases/download/v0.1.9/supabase-postgres-best-practices.tar.gz","declared_by_sha256":"68985980f4e8f157b4b340b6218d7fa63a7f8c2dacf4f7ed14f159dda4d88117","safety_class":"metadata_only","policy":"metadata","observed":"not_attempted","status":null,"observed_sha256":null}],"mismatches":[]},"signature":{"alg":"Ed25519","kid":"hcIAczGf-8EFBnkunmZlvFWnD2nHHeHeC9cM4BTiBVo","certificate_sha256":"71914cfe9c8b90934f762f2fdc423df56e54644257e377f9515884be5b28b9eb","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":"Myq8svA85LpGlhXbubms4iNwVZKBYh1PSnpT1SKiUKcpoIUK-YuSdGpSHiuecyR8wfnnGPoiMvsoeRrivaw9Bg"},"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=supabase.com"}