{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_6g3974t7g759","handle":"vulnify","url":"https://wellknown.network/agents/vulnify","links":{"self":"https://wellknown.network/agents/vulnify/record.json","html":"https://wellknown.network/agents/vulnify","markdown":"https://wellknown.network/agents/vulnify/record.md","api":"https://wellknown.network/api/v1/agents/vulnify","status":"https://wellknown.network/api/v1/agents/vulnify/status","claim":"https://wellknown.network/agents/vulnify/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/vulnify/claim.json","badge":"https://wellknown.network/agents/vulnify/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/vulnify/history","tools":"https://wellknown.network/api/v1/agents/vulnify/tools"},"ard":{"identifier":"urn:air:mcp.vulnify.io:server:vulnify","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"Vulnify","summary":"Ask Vulnify before an AI agent acts. Check, record, and read policy decisions.","description":"Ask Vulnify before an AI agent acts. Check, record, and read policy decisions.","publisher":{"name":"io.vulnify","url":null},"homepage":"https://docs.vulnify.io","repository":"https://github.com/vulnify/vulnify-mcp","version":"0.1.4","license":"MIT","protocols":["mcp"],"tags":["vulnify","mcp","mcp-server","model-context-protocol","authorization","security","ai-agents","agent-security","guardrails","human-in-the-loop","claude","cursor","oauth"],"pricing":null,"endpoints":[{"url":"https://mcp.vulnify.io/mcp","type":"mcp_streamable_http","auth":null,"probeable":true},{"url":"npm:@vulnify/mcp","type":"package_npm","auth":null,"probeable":false}],"skills":null,"tools":null,"extra":{"updatedAt":"2026-10-12T01:23:50.175534Z","npmKeywords":["vulnify","mcp","mcp-server","model-context-protocol","authorization","security","ai-agents","agent-security","guardrails","human-in-the-loop","claude","cursor","oauth"],"publishedAt":"2026-10-12T01:23:50.175534Z","registryName":"io.vulnify/mcp"},"attribution":{"kind":"mcp_registry","name":"mcp_registry","license":"npm","repoUrl":"mcp_registry","summary":"mcp_registry","version":"mcp_registry","description":"mcp_registry","homepageUrl":"mcp_registry","publisherName":"mcp_registry"}},"derived":{"capabilities":[{"slug":"security.identity","name":"Identity & Access","confidence":1,"provenance":"declared"}],"categories":["security"],"language":"en"},"observed":{"status":"live","statusReason":"Responded 5h ago.","lastOkAt":"2026-10-22T06:27:03.452Z","lastProbedAt":"2026-10-22T06:27:03.452Z","statusComputedAt":"2026-10-22T06:29:48.812Z","reliability30d":{"probes":40,"successRate":1,"p50Ms":167,"basis":"auth_boundary","measures":{"availability":"authentication boundary reached","latency":"time to authentication response","tools":"not measured — authentication required","summary":"Every successful check was an authentication response (401/403). The endpoint exists and enforces authentication; nothing behind that boundary — tools, behaviour, service health — has been observed."},"checks":{"total":40,"ok":40,"authBoundaryOk":40,"serviceOk":0,"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-22T06:27:03.452Z","kind":"mcp_initialize","ok":true,"httpStatus":401,"latencyMs":180,"error":null,"detail":{"authRequired":true,"wwwAuthenticate":"Bearer realm=\"https://mcp.vulnify.io/mcp\", resource_metadata=\"https://mcp.vulnify.io/.well-known/oauth-protected-resource/mcp\", scope=\"decisions:read decisions:write policies:read policies:test\""}},{"at":"2026-10-21T23:28:00.475Z","kind":"mcp_initialize","ok":true,"httpStatus":401,"latencyMs":180,"error":null,"detail":{"authRequired":true,"wwwAuthenticate":"Bearer realm=\"https://mcp.vulnify.io/mcp\", resource_metadata=\"https://mcp.vulnify.io/.well-known/oauth-protected-resource/mcp\", scope=\"decisions:read decisions:write policies:read policies:test\""}},{"at":"2026-10-21T16:35:23.001Z","kind":"mcp_initialize","ok":true,"httpStatus":401,"latencyMs":156,"error":null,"detail":{"authRequired":true,"wwwAuthenticate":"Bearer realm=\"https://mcp.vulnify.io/mcp\", resource_metadata=\"https://mcp.vulnify.io/.well-known/oauth-protected-resource/mcp\", scope=\"decisions:read decisions:write policies:read policies:test\""}},{"at":"2026-10-21T05:24:40.679Z","kind":"mcp_initialize","ok":true,"httpStatus":401,"latencyMs":149,"error":null,"detail":{"authRequired":true,"wwwAuthenticate":"Bearer realm=\"https://mcp.vulnify.io/mcp\", resource_metadata=\"https://mcp.vulnify.io/.well-known/oauth-protected-resource/mcp\", scope=\"decisions:read decisions:write policies:read policies:test\""}},{"at":"2026-10-20T22:23:05.734Z","kind":"mcp_initialize","ok":true,"httpStatus":401,"latencyMs":219,"error":null,"detail":{"authRequired":true,"wwwAuthenticate":"Bearer realm=\"https://mcp.vulnify.io/mcp\", resource_metadata=\"https://mcp.vulnify.io/.well-known/oauth-protected-resource/mcp\", scope=\"decisions:read decisions:write policies:read policies:test\""}},{"at":"2026-10-20T15:30:46.976Z","kind":"mcp_initialize","ok":true,"httpStatus":401,"latencyMs":158,"error":null,"detail":{"authRequired":true,"wwwAuthenticate":"Bearer realm=\"https://mcp.vulnify.io/mcp\", resource_metadata=\"https://mcp.vulnify.io/.well-known/oauth-protected-resource/mcp\", scope=\"decisions:read decisions:write policies:read policies:test\""}},{"at":"2026-10-20T08:32:52.521Z","kind":"mcp_initialize","ok":true,"httpStatus":401,"latencyMs":149,"error":null,"detail":{"authRequired":true,"wwwAuthenticate":"Bearer realm=\"https://mcp.vulnify.io/mcp\", resource_metadata=\"https://mcp.vulnify.io/.well-known/oauth-protected-resource/mcp\", scope=\"decisions:read decisions:write policies:read policies:test\""}},{"at":"2026-10-20T02:33:29.294Z","kind":"mcp_initialize","ok":true,"httpStatus":401,"latencyMs":171,"error":null,"detail":{"authRequired":true,"wwwAuthenticate":"Bearer realm=\"https://mcp.vulnify.io/mcp\", resource_metadata=\"https://mcp.vulnify.io/.well-known/oauth-protected-resource/mcp\", scope=\"decisions:read decisions:write policies:read policies:test\""}},{"at":"2026-10-19T20:33:15.938Z","kind":"mcp_initialize","ok":true,"httpStatus":401,"latencyMs":180,"error":null,"detail":{"authRequired":true,"wwwAuthenticate":"Bearer realm=\"https://mcp.vulnify.io/mcp\", resource_metadata=\"https://mcp.vulnify.io/.well-known/oauth-protected-resource/mcp\", scope=\"decisions:read decisions:write policies:read policies:test\""}},{"at":"2026-10-19T14:32:52.865Z","kind":"mcp_initialize","ok":true,"httpStatus":401,"latencyMs":155,"error":null,"detail":{"authRequired":true,"wwwAuthenticate":"Bearer realm=\"https://mcp.vulnify.io/mcp\", resource_metadata=\"https://mcp.vulnify.io/.well-known/oauth-protected-resource/mcp\", scope=\"decisions:read decisions:write policies:read policies:test\""}}],"tools":null,"package":{"name":"@vulnify/mcp","registry":"npm","observedAt":"2026-10-21T21:21:44.375Z","publishedAt":"2026-10-17T00:59:53.241Z","latestVersion":"0.1.5","weeklyDownloads":981},"toolSurface":null,"endpointFacts":[{"id":"ep_ugzguvwvka47","url":"https://mcp.vulnify.io/mcp","type":"mcp_streamable_http","factsCheckedAt":"2026-10-14T07:25:47.263Z","auth":{"observedAt":"2026-10-14T07:25:47.688Z","authRequired":true,"scheme":"Bearer","resourceMetadata":{"url":"https://mcp.vulnify.io/.well-known/oauth-protected-resource/mcp","resource":"https://mcp.vulnify.io/mcp","authorizationServers":["https://api.vulnify.io"],"scopesSupported":["decisions:read","decisions:write","policies:read","policies:test"]},"authorizationServer":{"url":"https://api.vulnify.io/.well-known/oauth-authorization-server","issuer":"https://api.vulnify.io","grantTypesSupported":["authorization_code","refresh_token"],"codeChallengeMethodsSupported":["S256"],"tokenEndpointAuthMethodsSupported":["none"],"dynamicClientRegistration":true,"dpopSigningAlgValuesSupported":[],"clientIdMetadataDocumentSupported":true},"conformance":{"dpop":false,"rfc8414":true,"rfc9728":true,"pkceS256":true,"clientIdMetadataDocument":true,"dynamicClientRegistration":true}},"tls":{"observedAt":"2026-10-14T07:25:47.765Z","protocol":"TLSv1.3","chainValid":true,"chainError":null,"hostMatches":true,"subject":"mcp.vulnify.io","issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validFrom":"2026-10-10T16:33:36.000Z","validTo":"2027-01-08T16:33:35.000Z","daysToExpiry":78,"sanCount":1,"fingerprint256":"21:5D:8B:84:E3:FC:DF:C4:BF:21:44:6D:02:7B:49:B0:82:FB:50:3C:ED:91:83:5C:6C:0F:35:97:2A:61:F9:9B"}}]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"npm","key":"@vulnify/mcp","url":"https://www.npmjs.com/package/@vulnify/mcp","firstSeenAt":"2026-10-17T02:19:16.682Z","fetchedAt":"2026-10-21T21:21:28.916Z","normalizedAt":"2026-10-21T21:21:28.916Z"},{"source":"mcp_registry","key":"io.vulnify/mcp","url":"https://registry.modelcontextprotocol.io/v0/servers/io.vulnify%2Fmcp","firstSeenAt":"2026-10-11T13:20:50.324Z","fetchedAt":"2026-10-20T21:20:51.373Z","normalizedAt":"2026-10-20T21:20:51.373Z"}]},"firstSeenAt":"2026-10-11T13:20:50.324Z","updatedAt":"2026-10-21T21:21:44.375Z"}