{"ok":true,"kind":"crawlcheck-capability-registry-entry","v":1,"domain":"context7.com","page":"https://crawlcheck.io/registry/capabilities/context7.com","row":{"domain":"context7.com","host":"context7.com","report_id":"4l955pfeky","scanned_at":"2026-10-01T16:39:43.896Z","manifest":"46f56fa99cbfb5db91b05f8c3ccdaef24000b46263dc675f2c033c383a0b8228","declared":26,"protocols":["agent_skill","mcp","openapi"],"by_policy":{"public_read_only":1,"unknown":16,"authenticated_read_only":5,"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:19094c4a6241910594c9","protocol":"openapi","operation":"docs7AnalyticsPreflight","method":"OPTIONS","endpoint":"https://context7.com/api/docs7/analytics","declared":{"by":"https://context7.com/openapi.json","declaration_sha256":"61cb3c18182ad9b790200c3086e6be95ebadd3327e2112dfcd7154ec6c9f8d0d","authentication":"none","params_required":0,"media":null,"safety_class":"read_only_public","safety_basis":"HTTP OPTIONS 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":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"not a GET"}},{"capability_id":"cap1:c517e71010a08f84d52e","protocol":"openapi","operation":"recordDocs7PageView","method":"POST","endpoint":"https://context7.com/api/docs7/analytics","declared":{"by":"https://context7.com/openapi.json","declaration_sha256":"61cb3c18182ad9b790200c3086e6be95ebadd3327e2112dfcd7154ec6c9f8d0d","authentication":"none","params_required":2,"media":null,"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"}},{"capability_id":"cap1:b900507669256d7fd45a","protocol":"openapi","operation":"searchLibraries","method":"GET","endpoint":"https://context7.com/api/v2/libs/search","declared":{"by":"https://context7.com/openapi.json","declaration_sha256":"61cb3c18182ad9b790200c3086e6be95ebadd3327e2112dfcd7154ec6c9f8d0d","authentication":"http_bearer","params_required":3,"media":["application/json"],"safety_class":"read_only_authenticated","safety_basis":"HTTP GET behind http_bearer"},"policy":{"id":"authenticated_read_only","label":"Authenticated read-only","automatic":false,"invoke":"Never called by CrawlCheck. An agent needs the user's own credentials and consent."},"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:29e8911b332fea825995","protocol":"openapi","operation":"searchDocumentation","method":"GET","endpoint":"https://context7.com/api/v3/search","declared":{"by":"https://context7.com/openapi.json","declaration_sha256":"61cb3c18182ad9b790200c3086e6be95ebadd3327e2112dfcd7154ec6c9f8d0d","authentication":"http_bearer","params_required":2,"media":["text/plain","application/json"],"safety_class":"read_only_authenticated","safety_basis":"HTTP GET behind http_bearer"},"policy":{"id":"authenticated_read_only","label":"Authenticated read-only","automatic":false,"invoke":"Never called by CrawlCheck. An agent needs the user's own credentials and consent."},"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:5dd6c08dfb171c60bcf1","protocol":"openapi","operation":"getLibraryMetrics","method":"GET","endpoint":"https://context7.com/api/v2/libs/metrics","declared":{"by":"https://context7.com/openapi.json","declaration_sha256":"61cb3c18182ad9b790200c3086e6be95ebadd3327e2112dfcd7154ec6c9f8d0d","authentication":"http_bearer","params_required":2,"media":["application/json"],"safety_class":"read_only_authenticated","safety_basis":"HTTP GET behind http_bearer"},"policy":{"id":"authenticated_read_only","label":"Authenticated read-only","automatic":false,"invoke":"Never called by CrawlCheck. An agent needs the user's own credentials and consent."},"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:56d04845a648037da05a","protocol":"openapi","operation":"getContext","method":"GET","endpoint":"https://context7.com/api/v2/context","declared":{"by":"https://context7.com/openapi.json","declaration_sha256":"61cb3c18182ad9b790200c3086e6be95ebadd3327e2112dfcd7154ec6c9f8d0d","authentication":"http_bearer","params_required":4,"media":["application/json","text/plain"],"safety_class":"read_only_authenticated","safety_basis":"HTTP GET behind http_bearer"},"policy":{"id":"authenticated_read_only","label":"Authenticated read-only","automatic":false,"invoke":"Never called by CrawlCheck. An agent needs the user's own credentials and consent."},"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:bfb9b38ce4bffdf4a62e","protocol":"openapi","operation":"refreshLibrary","method":"POST","endpoint":"https://context7.com/api/v1/refresh","declared":{"by":"https://context7.com/openapi.json","declaration_sha256":"61cb3c18182ad9b790200c3086e6be95ebadd3327e2112dfcd7154ec6c9f8d0d","authentication":"http_bearer","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":"requires http_bearer: never called without the operator's own credentials"}},{"capability_id":"cap1:59faff936f17535b7003","protocol":"openapi","operation":"getPolicies","method":"GET","endpoint":"https://context7.com/api/v2/policies","declared":{"by":"https://context7.com/openapi.json","declaration_sha256":"61cb3c18182ad9b790200c3086e6be95ebadd3327e2112dfcd7154ec6c9f8d0d","authentication":"http_bearer","params_required":0,"media":["application/json"],"safety_class":"read_only_authenticated","safety_basis":"HTTP GET behind http_bearer"},"policy":{"id":"authenticated_read_only","label":"Authenticated read-only","automatic":false,"invoke":"Never called by CrawlCheck. An agent needs the user's own credentials and consent."},"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:549d277276cf6bda0387","protocol":"openapi","operation":"updatePolicies","method":"PATCH","endpoint":"https://context7.com/api/v2/policies","declared":{"by":"https://context7.com/openapi.json","declaration_sha256":"61cb3c18182ad9b790200c3086e6be95ebadd3327e2112dfcd7154ec6c9f8d0d","authentication":"http_bearer","params_required":1,"media":["application/json"],"safety_class":"unknown","safety_basis":"PATCH 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:dcd76d1efad7eaea2b14","protocol":"openapi","operation":"addGitHubRepo","method":"POST","endpoint":"https://context7.com/api/v2/add/repo/github","declared":{"by":"https://context7.com/openapi.json","declaration_sha256":"61cb3c18182ad9b790200c3086e6be95ebadd3327e2112dfcd7154ec6c9f8d0d","authentication":"http_bearer","params_required":1,"media":null,"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:1173fd4872a000e7a76b","protocol":"openapi","operation":"addGitLabRepo","method":"POST","endpoint":"https://context7.com/api/v2/add/repo/gitlab","declared":{"by":"https://context7.com/openapi.json","declaration_sha256":"61cb3c18182ad9b790200c3086e6be95ebadd3327e2112dfcd7154ec6c9f8d0d","authentication":"http_bearer","params_required":1,"media":null,"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:72dc1353d53e9bb05edf","protocol":"openapi","operation":"addBitbucketRepo","method":"POST","endpoint":"https://context7.com/api/v2/add/repo/bitbucket","declared":{"by":"https://context7.com/openapi.json","declaration_sha256":"61cb3c18182ad9b790200c3086e6be95ebadd3327e2112dfcd7154ec6c9f8d0d","authentication":"http_bearer","params_required":1,"media":null,"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:3c30c82ddfe6daeb3755","protocol":"openapi","operation":"addGitRepo","method":"POST","endpoint":"https://context7.com/api/v2/add/repo/git","declared":{"by":"https://context7.com/openapi.json","declaration_sha256":"61cb3c18182ad9b790200c3086e6be95ebadd3327e2112dfcd7154ec6c9f8d0d","authentication":"http_bearer","params_required":1,"media":null,"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:d8ab137668f7603783a5","protocol":"openapi","operation":"addOpenApi","method":"POST","endpoint":"https://context7.com/api/v2/add/openapi","declared":{"by":"https://context7.com/openapi.json","declaration_sha256":"61cb3c18182ad9b790200c3086e6be95ebadd3327e2112dfcd7154ec6c9f8d0d","authentication":"http_bearer","params_required":1,"media":null,"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:363977b1080bb5c95fa1","protocol":"openapi","operation":"addOpenApiUpload","method":"POST","endpoint":"https://context7.com/api/v2/add/openapi-upload","declared":{"by":"https://context7.com/openapi.json","declaration_sha256":"61cb3c18182ad9b790200c3086e6be95ebadd3327e2112dfcd7154ec6c9f8d0d","authentication":"http_bearer","params_required":1,"media":null,"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:8ac14a8daead74738cc5","protocol":"openapi","operation":"addPdfUpload","method":"POST","endpoint":"https://context7.com/api/v2/add/pdf-upload","declared":{"by":"https://context7.com/openapi.json","declaration_sha256":"61cb3c18182ad9b790200c3086e6be95ebadd3327e2112dfcd7154ec6c9f8d0d","authentication":"http_bearer","params_required":1,"media":null,"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:5dcb5a0653e985016d99","protocol":"openapi","operation":"addFileUpload","method":"POST","endpoint":"https://context7.com/api/v2/add/file-upload","declared":{"by":"https://context7.com/openapi.json","declaration_sha256":"61cb3c18182ad9b790200c3086e6be95ebadd3327e2112dfcd7154ec6c9f8d0d","authentication":"http_bearer","params_required":1,"media":null,"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:daf6b4a6d654eec3afea","protocol":"openapi","operation":"addDocxUpload","method":"POST","endpoint":"https://context7.com/api/v2/add/docx-upload","declared":{"by":"https://context7.com/openapi.json","declaration_sha256":"61cb3c18182ad9b790200c3086e6be95ebadd3327e2112dfcd7154ec6c9f8d0d","authentication":"http_bearer","params_required":1,"media":null,"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:bed20d42e9e1ecdd9fe3","protocol":"openapi","operation":"addLlmsTxt","method":"POST","endpoint":"https://context7.com/api/v2/add/llmstxt","declared":{"by":"https://context7.com/openapi.json","declaration_sha256":"61cb3c18182ad9b790200c3086e6be95ebadd3327e2112dfcd7154ec6c9f8d0d","authentication":"http_bearer","params_required":1,"media":null,"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:ae6c28529415c0c537de","protocol":"openapi","operation":"addWebsite","method":"POST","endpoint":"https://context7.com/api/v2/add/website","declared":{"by":"https://context7.com/openapi.json","declaration_sha256":"61cb3c18182ad9b790200c3086e6be95ebadd3327e2112dfcd7154ec6c9f8d0d","authentication":"http_bearer","params_required":1,"media":null,"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:5a56f7521e44fbbc41a1","protocol":"openapi","operation":"addConfluence","method":"POST","endpoint":"https://context7.com/api/v2/add/confluence","declared":{"by":"https://context7.com/openapi.json","declaration_sha256":"61cb3c18182ad9b790200c3086e6be95ebadd3327e2112dfcd7154ec6c9f8d0d","authentication":"http_bearer","params_required":1,"media":null,"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:5975825be191ac171385","protocol":"openapi","operation":"addNotion","method":"POST","endpoint":"https://context7.com/api/v2/add/notion","declared":{"by":"https://context7.com/openapi.json","declaration_sha256":"61cb3c18182ad9b790200c3086e6be95ebadd3327e2112dfcd7154ec6c9f8d0d","authentication":"http_bearer","params_required":1,"media":null,"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:b02283bf6a3f3c665996","protocol":"mcp","operation":"server","method":null,"endpoint":"https://mcp.context7.com/mcp","declared":{"by":"https://context7.com/.well-known/mcp/server-card.json","declaration_sha256":"fa8559e8ef6265f8ce9af09f88f02f297ac24dc5f0757cc45a5af20bf6fba3d4","authentication":"unknown","params_required":null,"media":null,"safety_class":"metadata_only","safety_basis":"a server declaration; its tools are listed only by the server itself (tools/list), which is not called"},"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.context7.com): only the scanned origin is called"}},{"capability_id":"cap1:73fe94c4fbefbfbdfd11","protocol":"agent_skill","operation":"find-docs","method":null,"endpoint":"https://context7.com/.well-known/agent-skills/find-docs/SKILL.md","declared":{"by":"https://context7.com/.well-known/agent-skills/index.json","declaration_sha256":"7826e4065ee8c7f4bea3de67bafebac1e9273d6f6437f76005847244c114344e","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":"metadata: describes a surface, is not itself an action"}},{"capability_id":"cap1:50eb4078570c070b977a","protocol":"agent_skill","operation":"context7-mcp","method":null,"endpoint":"https://context7.com/.well-known/agent-skills/context7-mcp/SKILL.md","declared":{"by":"https://context7.com/.well-known/agent-skills/index.json","declaration_sha256":"7826e4065ee8c7f4bea3de67bafebac1e9273d6f6437f76005847244c114344e","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":"metadata: describes a surface, is not itself an action"}},{"capability_id":"cap1:3c0e7413eeb492a04215","protocol":"agent_skill","operation":"context7-cli","method":null,"endpoint":"https://context7.com/.well-known/agent-skills/context7-cli.tar.gz","declared":{"by":"https://context7.com/.well-known/agent-skills/index.json","declaration_sha256":"7826e4065ee8c7f4bea3de67bafebac1e9273d6f6437f76005847244c114344e","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":"metadata: describes a surface, is not itself an action"}}],"mismatches":[],"certificate":{"certificate_id":"ccap1:c4fccf96c5711c3353b18d9f3e32c08387171669ef53c74017e8f9c5d6725243","certificate":{"kind":"crawlcheck-capability-certificate","v":1,"subject":"context7.com","domain":"context7.com","record":"4l955pfeky","report":"https://crawlcheck.io/r/4l955pfeky","manifest_sha256":"46f56fa99cbfb5db91b05f8c3ccdaef24000b46263dc675f2c033c383a0b8228","measured_at":"2026-10-01T16:39:43.896Z","verification_checked_at":"2026-10-01T16:39:48.435Z","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":26,"verified":0,"mismatches":0},"items":[{"id":"cap1:19094c4a6241910594c9","protocol":"openapi","operation":"docs7AnalyticsPreflight","method":"OPTIONS","endpoint":"https://context7.com/api/docs7/analytics","declared_by_sha256":"61cb3c18182ad9b790200c3086e6be95ebadd3327e2112dfcd7154ec6c9f8d0d","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:c517e71010a08f84d52e","protocol":"openapi","operation":"recordDocs7PageView","method":"POST","endpoint":"https://context7.com/api/docs7/analytics","declared_by_sha256":"61cb3c18182ad9b790200c3086e6be95ebadd3327e2112dfcd7154ec6c9f8d0d","safety_class":"unknown","policy":"unknown","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:b900507669256d7fd45a","protocol":"openapi","operation":"searchLibraries","method":"GET","endpoint":"https://context7.com/api/v2/libs/search","declared_by_sha256":"61cb3c18182ad9b790200c3086e6be95ebadd3327e2112dfcd7154ec6c9f8d0d","safety_class":"read_only_authenticated","policy":"authenticated_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:29e8911b332fea825995","protocol":"openapi","operation":"searchDocumentation","method":"GET","endpoint":"https://context7.com/api/v3/search","declared_by_sha256":"61cb3c18182ad9b790200c3086e6be95ebadd3327e2112dfcd7154ec6c9f8d0d","safety_class":"read_only_authenticated","policy":"authenticated_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:5dd6c08dfb171c60bcf1","protocol":"openapi","operation":"getLibraryMetrics","method":"GET","endpoint":"https://context7.com/api/v2/libs/metrics","declared_by_sha256":"61cb3c18182ad9b790200c3086e6be95ebadd3327e2112dfcd7154ec6c9f8d0d","safety_class":"read_only_authenticated","policy":"authenticated_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:56d04845a648037da05a","protocol":"openapi","operation":"getContext","method":"GET","endpoint":"https://context7.com/api/v2/context","declared_by_sha256":"61cb3c18182ad9b790200c3086e6be95ebadd3327e2112dfcd7154ec6c9f8d0d","safety_class":"read_only_authenticated","policy":"authenticated_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:bfb9b38ce4bffdf4a62e","protocol":"openapi","operation":"refreshLibrary","method":"POST","endpoint":"https://context7.com/api/v1/refresh","declared_by_sha256":"61cb3c18182ad9b790200c3086e6be95ebadd3327e2112dfcd7154ec6c9f8d0d","safety_class":"unknown","policy":"unknown","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:59faff936f17535b7003","protocol":"openapi","operation":"getPolicies","method":"GET","endpoint":"https://context7.com/api/v2/policies","declared_by_sha256":"61cb3c18182ad9b790200c3086e6be95ebadd3327e2112dfcd7154ec6c9f8d0d","safety_class":"read_only_authenticated","policy":"authenticated_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:549d277276cf6bda0387","protocol":"openapi","operation":"updatePolicies","method":"PATCH","endpoint":"https://context7.com/api/v2/policies","declared_by_sha256":"61cb3c18182ad9b790200c3086e6be95ebadd3327e2112dfcd7154ec6c9f8d0d","safety_class":"unknown","policy":"unknown","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:dcd76d1efad7eaea2b14","protocol":"openapi","operation":"addGitHubRepo","method":"POST","endpoint":"https://context7.com/api/v2/add/repo/github","declared_by_sha256":"61cb3c18182ad9b790200c3086e6be95ebadd3327e2112dfcd7154ec6c9f8d0d","safety_class":"unknown","policy":"unknown","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:1173fd4872a000e7a76b","protocol":"openapi","operation":"addGitLabRepo","method":"POST","endpoint":"https://context7.com/api/v2/add/repo/gitlab","declared_by_sha256":"61cb3c18182ad9b790200c3086e6be95ebadd3327e2112dfcd7154ec6c9f8d0d","safety_class":"unknown","policy":"unknown","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:72dc1353d53e9bb05edf","protocol":"openapi","operation":"addBitbucketRepo","method":"POST","endpoint":"https://context7.com/api/v2/add/repo/bitbucket","declared_by_sha256":"61cb3c18182ad9b790200c3086e6be95ebadd3327e2112dfcd7154ec6c9f8d0d","safety_class":"unknown","policy":"unknown","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:3c30c82ddfe6daeb3755","protocol":"openapi","operation":"addGitRepo","method":"POST","endpoint":"https://context7.com/api/v2/add/repo/git","declared_by_sha256":"61cb3c18182ad9b790200c3086e6be95ebadd3327e2112dfcd7154ec6c9f8d0d","safety_class":"unknown","policy":"unknown","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:d8ab137668f7603783a5","protocol":"openapi","operation":"addOpenApi","method":"POST","endpoint":"https://context7.com/api/v2/add/openapi","declared_by_sha256":"61cb3c18182ad9b790200c3086e6be95ebadd3327e2112dfcd7154ec6c9f8d0d","safety_class":"unknown","policy":"unknown","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:363977b1080bb5c95fa1","protocol":"openapi","operation":"addOpenApiUpload","method":"POST","endpoint":"https://context7.com/api/v2/add/openapi-upload","declared_by_sha256":"61cb3c18182ad9b790200c3086e6be95ebadd3327e2112dfcd7154ec6c9f8d0d","safety_class":"unknown","policy":"unknown","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:8ac14a8daead74738cc5","protocol":"openapi","operation":"addPdfUpload","method":"POST","endpoint":"https://context7.com/api/v2/add/pdf-upload","declared_by_sha256":"61cb3c18182ad9b790200c3086e6be95ebadd3327e2112dfcd7154ec6c9f8d0d","safety_class":"unknown","policy":"unknown","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:5dcb5a0653e985016d99","protocol":"openapi","operation":"addFileUpload","method":"POST","endpoint":"https://context7.com/api/v2/add/file-upload","declared_by_sha256":"61cb3c18182ad9b790200c3086e6be95ebadd3327e2112dfcd7154ec6c9f8d0d","safety_class":"unknown","policy":"unknown","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:daf6b4a6d654eec3afea","protocol":"openapi","operation":"addDocxUpload","method":"POST","endpoint":"https://context7.com/api/v2/add/docx-upload","declared_by_sha256":"61cb3c18182ad9b790200c3086e6be95ebadd3327e2112dfcd7154ec6c9f8d0d","safety_class":"unknown","policy":"unknown","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:bed20d42e9e1ecdd9fe3","protocol":"openapi","operation":"addLlmsTxt","method":"POST","endpoint":"https://context7.com/api/v2/add/llmstxt","declared_by_sha256":"61cb3c18182ad9b790200c3086e6be95ebadd3327e2112dfcd7154ec6c9f8d0d","safety_class":"unknown","policy":"unknown","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:ae6c28529415c0c537de","protocol":"openapi","operation":"addWebsite","method":"POST","endpoint":"https://context7.com/api/v2/add/website","declared_by_sha256":"61cb3c18182ad9b790200c3086e6be95ebadd3327e2112dfcd7154ec6c9f8d0d","safety_class":"unknown","policy":"unknown","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:5a56f7521e44fbbc41a1","protocol":"openapi","operation":"addConfluence","method":"POST","endpoint":"https://context7.com/api/v2/add/confluence","declared_by_sha256":"61cb3c18182ad9b790200c3086e6be95ebadd3327e2112dfcd7154ec6c9f8d0d","safety_class":"unknown","policy":"unknown","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:5975825be191ac171385","protocol":"openapi","operation":"addNotion","method":"POST","endpoint":"https://context7.com/api/v2/add/notion","declared_by_sha256":"61cb3c18182ad9b790200c3086e6be95ebadd3327e2112dfcd7154ec6c9f8d0d","safety_class":"unknown","policy":"unknown","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:b02283bf6a3f3c665996","protocol":"mcp","operation":"server","method":null,"endpoint":"https://mcp.context7.com/mcp","declared_by_sha256":"fa8559e8ef6265f8ce9af09f88f02f297ac24dc5f0757cc45a5af20bf6fba3d4","safety_class":"metadata_only","policy":"metadata","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:73fe94c4fbefbfbdfd11","protocol":"agent_skill","operation":"find-docs","method":null,"endpoint":"https://context7.com/.well-known/agent-skills/find-docs/SKILL.md","declared_by_sha256":"7826e4065ee8c7f4bea3de67bafebac1e9273d6f6437f76005847244c114344e","safety_class":"metadata_only","policy":"metadata","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:50eb4078570c070b977a","protocol":"agent_skill","operation":"context7-mcp","method":null,"endpoint":"https://context7.com/.well-known/agent-skills/context7-mcp/SKILL.md","declared_by_sha256":"7826e4065ee8c7f4bea3de67bafebac1e9273d6f6437f76005847244c114344e","safety_class":"metadata_only","policy":"metadata","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:3c0e7413eeb492a04215","protocol":"agent_skill","operation":"context7-cli","method":null,"endpoint":"https://context7.com/.well-known/agent-skills/context7-cli.tar.gz","declared_by_sha256":"7826e4065ee8c7f4bea3de67bafebac1e9273d6f6437f76005847244c114344e","safety_class":"metadata_only","policy":"metadata","observed":"not_attempted","status":null,"observed_sha256":null}],"mismatches":[]},"signature":{"alg":"Ed25519","kid":"hcIAczGf-8EFBnkunmZlvFWnD2nHHeHeC9cM4BTiBVo","certificate_sha256":"c4fccf96c5711c3353b18d9f3e32c08387171669ef53c74017e8f9c5d6725243","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":"b8qYSguhY8WSveLz9Ey7G0WBx7gZnFazDSOJGlUYh0NsNVRp6wRIYbRgaFvlqUDMB1DBvja6LRzmbiH46AejDw"},"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=context7.com"}