{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_5ba63jtmf7my","handle":"vera-ink","url":"https://wellknown.network/agents/vera-ink","links":{"self":"https://wellknown.network/agents/vera-ink/record.json","html":"https://wellknown.network/agents/vera-ink","markdown":"https://wellknown.network/agents/vera-ink/record.md","api":"https://wellknown.network/api/v1/agents/vera-ink","status":"https://wellknown.network/api/v1/agents/vera-ink/status","claim":"https://wellknown.network/agents/vera-ink/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/vera-ink/claim.json","badge":"https://wellknown.network/agents/vera-ink/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/vera-ink/history","tools":"https://wellknown.network/api/v1/agents/vera-ink/tools"},"ard":{"identifier":"urn:air:vera-mcp-production.up.railway.app:server:vera-ink","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"vera.ink","summary":"Check documents against rules taken from the law itself. Every finding cites the exact clause.","description":"Check documents against rules taken from the law itself. Every finding cites the exact clause.","publisher":{"name":"ink.vera","url":null},"homepage":"https://vera.ink/developers","repository":null,"version":"1.2.1","license":null,"protocols":["mcp"],"tags":[],"pricing":null,"endpoints":[{"url":"https://vera-mcp-production.up.railway.app/mcp","type":"mcp_streamable_http","auth":null,"probeable":true}],"skills":null,"tools":null,"extra":{"updatedAt":"2026-09-29T11:17:52.327401Z","publishedAt":"2026-09-29T11:17:52.327401Z","registryName":"ink.vera/vera"},"attribution":{"kind":"mcp_registry","name":"mcp_registry","summary":"mcp_registry","version":"mcp_registry","description":"mcp_registry","homepageUrl":"mcp_registry","publisherName":"mcp_registry"}},"derived":{"capabilities":[{"slug":"dev.terminal","name":"Terminal & Shell","confidence":0.525,"provenance":"derived"},{"slug":"content.writing","name":"Writing & Editing","confidence":0.51,"provenance":"derived"}],"categories":["content","dev"],"language":"en"},"observed":{"status":"live","statusReason":"Responded 4h ago.","lastOkAt":"2026-10-10T19:25:26.143Z","lastProbedAt":"2026-10-10T19:25:26.143Z","statusComputedAt":"2026-10-10T19:27:12.206Z","reliability30d":{"probes":37,"successRate":1,"p50Ms":160,"basis":"service","measures":{"availability":"availability","latency":"response time","tools":"tool surface observed","summary":"Checks reached the service itself."},"checks":{"total":37,"ok":37,"authBoundaryOk":0,"serviceOk":37,"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-10T19:25:26.143Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":150,"error":null,"detail":{"tools":[{"name":"query_pack","description":"Retrieve the best matching locked rules and exact evidence from a query-ready Vera pack. This costs credits. Preserve each verified quote and citation, distingu"},{"name":"verify_document","description":"Start a paid, asynchronous check against a query-ready pack. Use one unique idempotency_key and reuse it only for an exact retry. Omit mode to use the pack's mo"},{"name":"get_verification_status","description":"Poll a run using poll_after_ms until terminal=true. Only call it clean when verdict=clean, coverage_complete=true, and result_consistent=true; otherwise follow "},{"name":"list_packs","description":"List owned and public packs. Select from available_packs and require readiness.query_ready=true. If none fits, do not guess a pack_id: propose a finite pack pla"},{"name":"get_pack_coverage","description":"Inspect readiness, source coverage and freshness before high-stakes use. Disclose incomplete or stale coverage. query_ready means usable, minimum_coverage_ready"},{"name":"start_pack_build","description":"Start a paid asynchronous pack build after the user explicitly approves max_credits. Supply exactly one of pack_id (an owned AI-buildable pack) or new_pack. The"},{"name":"get_pack_build_status","description":"Check a durable pack-build job. Poll only while active=true. When stopped, use readiness_summary and present available_actions honestly; a usable budget pause o"}],"toolCount":7,"toolsHash":"846e8fc82db9c1aeb13c48a9f2af5d1853bb3d7db8525db6d379ed497925ebb3","serverName":"vera-mcp","capabilities":["tools"],"serverVersion":"1.2.1","protocolVersion":"2025-06-18"}},{"at":"2026-10-10T12:27:29.488Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":148,"error":null,"detail":{"tools":[{"name":"query_pack","description":"Retrieve the best matching locked rules and exact evidence from a query-ready Vera pack. This costs credits. Preserve each verified quote and citation, distingu"},{"name":"verify_document","description":"Start a paid, asynchronous check against a query-ready pack. Use one unique idempotency_key and reuse it only for an exact retry. Omit mode to use the pack's mo"},{"name":"get_verification_status","description":"Poll a run using poll_after_ms until terminal=true. Only call it clean when verdict=clean, coverage_complete=true, and result_consistent=true; otherwise follow "},{"name":"list_packs","description":"List owned and public packs. Select from available_packs and require readiness.query_ready=true. If none fits, do not guess a pack_id: propose a finite pack pla"},{"name":"get_pack_coverage","description":"Inspect readiness, source coverage and freshness before high-stakes use. Disclose incomplete or stale coverage. query_ready means usable, minimum_coverage_ready"},{"name":"start_pack_build","description":"Start a paid asynchronous pack build after the user explicitly approves max_credits. Supply exactly one of pack_id (an owned AI-buildable pack) or new_pack. The"},{"name":"get_pack_build_status","description":"Check a durable pack-build job. Poll only while active=true. When stopped, use readiness_summary and present available_actions honestly; a usable budget pause o"}],"toolCount":7,"toolsHash":"846e8fc82db9c1aeb13c48a9f2af5d1853bb3d7db8525db6d379ed497925ebb3","serverName":"vera-mcp","capabilities":["tools"],"serverVersion":"1.2.1","protocolVersion":"2025-06-18"}},{"at":"2026-10-10T05:28:52.735Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":149,"error":null,"detail":{"tools":[{"name":"query_pack","description":"Retrieve the best matching locked rules and exact evidence from a query-ready Vera pack. This costs credits. Preserve each verified quote and citation, distingu"},{"name":"verify_document","description":"Start a paid, asynchronous check against a query-ready pack. Use one unique idempotency_key and reuse it only for an exact retry. Omit mode to use the pack's mo"},{"name":"get_verification_status","description":"Poll a run using poll_after_ms until terminal=true. Only call it clean when verdict=clean, coverage_complete=true, and result_consistent=true; otherwise follow "},{"name":"list_packs","description":"List owned and public packs. Select from available_packs and require readiness.query_ready=true. If none fits, do not guess a pack_id: propose a finite pack pla"},{"name":"get_pack_coverage","description":"Inspect readiness, source coverage and freshness before high-stakes use. Disclose incomplete or stale coverage. query_ready means usable, minimum_coverage_ready"},{"name":"start_pack_build","description":"Start a paid asynchronous pack build after the user explicitly approves max_credits. Supply exactly one of pack_id (an owned AI-buildable pack) or new_pack. The"},{"name":"get_pack_build_status","description":"Check a durable pack-build job. Poll only while active=true. When stopped, use readiness_summary and present available_actions honestly; a usable budget pause o"}],"toolCount":7,"toolsHash":"846e8fc82db9c1aeb13c48a9f2af5d1853bb3d7db8525db6d379ed497925ebb3","serverName":"vera-mcp","capabilities":["tools"],"serverVersion":"1.2.1","protocolVersion":"2025-06-18"}},{"at":"2026-10-09T22:28:20.934Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":174,"error":null,"detail":{"tools":[{"name":"query_pack","description":"Retrieve the best matching locked rules and exact evidence from a query-ready Vera pack. This costs credits. Preserve each verified quote and citation, distingu"},{"name":"verify_document","description":"Start a paid, asynchronous check against a query-ready pack. Use one unique idempotency_key and reuse it only for an exact retry. Omit mode to use the pack's mo"},{"name":"get_verification_status","description":"Poll a run using poll_after_ms until terminal=true. Only call it clean when verdict=clean, coverage_complete=true, and result_consistent=true; otherwise follow "},{"name":"list_packs","description":"List owned and public packs. Select from available_packs and require readiness.query_ready=true. If none fits, do not guess a pack_id: propose a finite pack pla"},{"name":"get_pack_coverage","description":"Inspect readiness, source coverage and freshness before high-stakes use. Disclose incomplete or stale coverage. query_ready means usable, minimum_coverage_ready"},{"name":"start_pack_build","description":"Start a paid asynchronous pack build after the user explicitly approves max_credits. Supply exactly one of pack_id (an owned AI-buildable pack) or new_pack. The"},{"name":"get_pack_build_status","description":"Check a durable pack-build job. Poll only while active=true. When stopped, use readiness_summary and present available_actions honestly; a usable budget pause o"}],"toolCount":7,"toolsHash":"846e8fc82db9c1aeb13c48a9f2af5d1853bb3d7db8525db6d379ed497925ebb3","serverName":"vera-mcp","capabilities":["tools"],"serverVersion":"1.2.1","protocolVersion":"2025-06-18"}},{"at":"2026-10-09T16:32:36.544Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":151,"error":null,"detail":{"tools":[{"name":"query_pack","description":"Retrieve the best matching locked rules and exact evidence from a query-ready Vera pack. This costs credits. Preserve each verified quote and citation, distingu"},{"name":"verify_document","description":"Start a paid, asynchronous check against a query-ready pack. Use one unique idempotency_key and reuse it only for an exact retry. Omit mode to use the pack's mo"},{"name":"get_verification_status","description":"Poll a run using poll_after_ms until terminal=true. Only call it clean when verdict=clean, coverage_complete=true, and result_consistent=true; otherwise follow "},{"name":"list_packs","description":"List owned and public packs. Select from available_packs and require readiness.query_ready=true. If none fits, do not guess a pack_id: propose a finite pack pla"},{"name":"get_pack_coverage","description":"Inspect readiness, source coverage and freshness before high-stakes use. Disclose incomplete or stale coverage. query_ready means usable, minimum_coverage_ready"},{"name":"start_pack_build","description":"Start a paid asynchronous pack build after the user explicitly approves max_credits. Supply exactly one of pack_id (an owned AI-buildable pack) or new_pack. The"},{"name":"get_pack_build_status","description":"Check a durable pack-build job. Poll only while active=true. When stopped, use readiness_summary and present available_actions honestly; a usable budget pause o"}],"toolCount":7,"toolsHash":"846e8fc82db9c1aeb13c48a9f2af5d1853bb3d7db8525db6d379ed497925ebb3","serverName":"vera-mcp","capabilities":["tools"],"serverVersion":"1.2.1","protocolVersion":"2025-06-18"}},{"at":"2026-10-09T10:22:56.458Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":174,"error":null,"detail":{"tools":[{"name":"query_pack","description":"Retrieve the best matching locked rules and exact evidence from a query-ready Vera pack. This costs credits. Preserve each verified quote and citation, distingu"},{"name":"verify_document","description":"Start a paid, asynchronous check against a query-ready pack. Use one unique idempotency_key and reuse it only for an exact retry. Omit mode to use the pack's mo"},{"name":"get_verification_status","description":"Poll a run using poll_after_ms until terminal=true. Only call it clean when verdict=clean, coverage_complete=true, and result_consistent=true; otherwise follow "},{"name":"list_packs","description":"List owned and public packs. Select from available_packs and require readiness.query_ready=true. If none fits, do not guess a pack_id: propose a finite pack pla"},{"name":"get_pack_coverage","description":"Inspect readiness, source coverage and freshness before high-stakes use. Disclose incomplete or stale coverage. query_ready means usable, minimum_coverage_ready"},{"name":"start_pack_build","description":"Start a paid asynchronous pack build after the user explicitly approves max_credits. Supply exactly one of pack_id (an owned AI-buildable pack) or new_pack. The"},{"name":"get_pack_build_status","description":"Check a durable pack-build job. Poll only while active=true. When stopped, use readiness_summary and present available_actions honestly; a usable budget pause o"}],"toolCount":7,"toolsHash":"846e8fc82db9c1aeb13c48a9f2af5d1853bb3d7db8525db6d379ed497925ebb3","serverName":"vera-mcp","capabilities":["tools"],"serverVersion":"1.2.1","protocolVersion":"2025-06-18"}},{"at":"2026-10-09T03:23:22.129Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":152,"error":null,"detail":{"tools":[{"name":"query_pack","description":"Retrieve the best matching locked rules and exact evidence from a query-ready Vera pack. This costs credits. Preserve each verified quote and citation, distingu"},{"name":"verify_document","description":"Start a paid, asynchronous check against a query-ready pack. Use one unique idempotency_key and reuse it only for an exact retry. Omit mode to use the pack's mo"},{"name":"get_verification_status","description":"Poll a run using poll_after_ms until terminal=true. Only call it clean when verdict=clean, coverage_complete=true, and result_consistent=true; otherwise follow "},{"name":"list_packs","description":"List owned and public packs. Select from available_packs and require readiness.query_ready=true. If none fits, do not guess a pack_id: propose a finite pack pla"},{"name":"get_pack_coverage","description":"Inspect readiness, source coverage and freshness before high-stakes use. Disclose incomplete or stale coverage. query_ready means usable, minimum_coverage_ready"},{"name":"start_pack_build","description":"Start a paid asynchronous pack build after the user explicitly approves max_credits. Supply exactly one of pack_id (an owned AI-buildable pack) or new_pack. The"},{"name":"get_pack_build_status","description":"Check a durable pack-build job. Poll only while active=true. When stopped, use readiness_summary and present available_actions honestly; a usable budget pause o"}],"toolCount":7,"toolsHash":"846e8fc82db9c1aeb13c48a9f2af5d1853bb3d7db8525db6d379ed497925ebb3","serverName":"vera-mcp","capabilities":["tools"],"serverVersion":"1.2.1","protocolVersion":"2025-06-18"}},{"at":"2026-10-08T21:23:47.339Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":150,"error":null,"detail":{"tools":[{"name":"query_pack","description":"Retrieve the best matching locked rules and exact evidence from a query-ready Vera pack. This costs credits. Preserve each verified quote and citation, distingu"},{"name":"verify_document","description":"Start a paid, asynchronous check against a query-ready pack. Use one unique idempotency_key and reuse it only for an exact retry. Omit mode to use the pack's mo"},{"name":"get_verification_status","description":"Poll a run using poll_after_ms until terminal=true. Only call it clean when verdict=clean, coverage_complete=true, and result_consistent=true; otherwise follow "},{"name":"list_packs","description":"List owned and public packs. Select from available_packs and require readiness.query_ready=true. If none fits, do not guess a pack_id: propose a finite pack pla"},{"name":"get_pack_coverage","description":"Inspect readiness, source coverage and freshness before high-stakes use. Disclose incomplete or stale coverage. query_ready means usable, minimum_coverage_ready"},{"name":"start_pack_build","description":"Start a paid asynchronous pack build after the user explicitly approves max_credits. Supply exactly one of pack_id (an owned AI-buildable pack) or new_pack. The"},{"name":"get_pack_build_status","description":"Check a durable pack-build job. Poll only while active=true. When stopped, use readiness_summary and present available_actions honestly; a usable budget pause o"}],"toolCount":7,"toolsHash":"846e8fc82db9c1aeb13c48a9f2af5d1853bb3d7db8525db6d379ed497925ebb3","serverName":"vera-mcp","capabilities":["tools"],"serverVersion":"1.2.1","protocolVersion":"2025-06-18"}},{"at":"2026-10-08T15:22:17.212Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":148,"error":null,"detail":{"tools":[{"name":"query_pack","description":"Retrieve the best matching locked rules and exact evidence from a query-ready Vera pack. This costs credits. Preserve each verified quote and citation, distingu"},{"name":"verify_document","description":"Start a paid, asynchronous check against a query-ready pack. Use one unique idempotency_key and reuse it only for an exact retry. Omit mode to use the pack's mo"},{"name":"get_verification_status","description":"Poll a run using poll_after_ms until terminal=true. Only call it clean when verdict=clean, coverage_complete=true, and result_consistent=true; otherwise follow "},{"name":"list_packs","description":"List owned and public packs. Select from available_packs and require readiness.query_ready=true. If none fits, do not guess a pack_id: propose a finite pack pla"},{"name":"get_pack_coverage","description":"Inspect readiness, source coverage and freshness before high-stakes use. Disclose incomplete or stale coverage. query_ready means usable, minimum_coverage_ready"},{"name":"start_pack_build","description":"Start a paid asynchronous pack build after the user explicitly approves max_credits. Supply exactly one of pack_id (an owned AI-buildable pack) or new_pack. The"},{"name":"get_pack_build_status","description":"Check a durable pack-build job. Poll only while active=true. When stopped, use readiness_summary and present available_actions honestly; a usable budget pause o"}],"toolCount":7,"toolsHash":"846e8fc82db9c1aeb13c48a9f2af5d1853bb3d7db8525db6d379ed497925ebb3","serverName":"vera-mcp","capabilities":["tools"],"serverVersion":"1.2.1","protocolVersion":"2025-06-18"}},{"at":"2026-10-08T08:29:26.312Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":151,"error":null,"detail":{"tools":[{"name":"query_pack","description":"Retrieve the best matching locked rules and exact evidence from a query-ready Vera pack. This costs credits. Preserve each verified quote and citation, distingu"},{"name":"verify_document","description":"Start a paid, asynchronous check against a query-ready pack. Use one unique idempotency_key and reuse it only for an exact retry. Omit mode to use the pack's mo"},{"name":"get_verification_status","description":"Poll a run using poll_after_ms until terminal=true. Only call it clean when verdict=clean, coverage_complete=true, and result_consistent=true; otherwise follow "},{"name":"list_packs","description":"List owned and public packs. Select from available_packs and require readiness.query_ready=true. If none fits, do not guess a pack_id: propose a finite pack pla"},{"name":"get_pack_coverage","description":"Inspect readiness, source coverage and freshness before high-stakes use. Disclose incomplete or stale coverage. query_ready means usable, minimum_coverage_ready"},{"name":"start_pack_build","description":"Start a paid asynchronous pack build after the user explicitly approves max_credits. Supply exactly one of pack_id (an owned AI-buildable pack) or new_pack. The"},{"name":"get_pack_build_status","description":"Check a durable pack-build job. Poll only while active=true. When stopped, use readiness_summary and present available_actions honestly; a usable budget pause o"}],"toolCount":7,"toolsHash":"846e8fc82db9c1aeb13c48a9f2af5d1853bb3d7db8525db6d379ed497925ebb3","serverName":"vera-mcp","capabilities":["tools"],"serverVersion":"1.2.1","protocolVersion":"2025-06-18"}}],"tools":[{"name":"query_pack","description":"Retrieve the best matching locked rules and exact evidence from a query-ready Vera pack. This costs credits. Preserve each verified quote and citation, distingu"},{"name":"verify_document","description":"Start a paid, asynchronous check against a query-ready pack. Use one unique idempotency_key and reuse it only for an exact retry. Omit mode to use the pack's mo"},{"name":"get_verification_status","description":"Poll a run using poll_after_ms until terminal=true. Only call it clean when verdict=clean, coverage_complete=true, and result_consistent=true; otherwise follow "},{"name":"list_packs","description":"List owned and public packs. Select from available_packs and require readiness.query_ready=true. If none fits, do not guess a pack_id: propose a finite pack pla"},{"name":"get_pack_coverage","description":"Inspect readiness, source coverage and freshness before high-stakes use. Disclose incomplete or stale coverage. query_ready means usable, minimum_coverage_ready"},{"name":"start_pack_build","description":"Start a paid asynchronous pack build after the user explicitly approves max_credits. Supply exactly one of pack_id (an owned AI-buildable pack) or new_pack. The"},{"name":"get_pack_build_status","description":"Check a durable pack-build job. Poll only while active=true. When stopped, use readiness_summary and present available_actions honestly; a usable budget pause o"}],"package":null,"toolSurface":{"id":"ts_vaxu5x8qbuup","endpointId":"ep_eqvz4kjed8g2","hash":"846e8fc82db9c1aeb13c48a9f2af5d1853bb3d7db8525db6d379ed497925ebb3","toolCount":7,"serverName":"vera-mcp","serverVersion":"1.2.1","protocolVersion":"2025-06-18","firstSeenAt":"2026-09-30T22:26:19.950Z","lastSeenAt":"2026-10-10T19:25:26.142Z","observations":37,"toolNames":["query_pack","verify_document","get_verification_status","list_packs","get_pack_coverage","start_pack_build","get_pack_build_status"],"distinctSurfaces":1},"endpointFacts":[{"id":"ep_eqvz4kjed8g2","url":"https://vera-mcp-production.up.railway.app/mcp","type":"mcp_streamable_http","factsCheckedAt":"2026-10-10T12:27:29.498Z","auth":{"observedAt":"2026-10-10T12:27:29.647Z","authRequired":false,"scheme":null,"resourceMetadata":null,"authorizationServer":null,"conformance":{"dpop":false,"rfc8414":false,"rfc9728":false,"pkceS256":false,"clientIdMetadataDocument":false,"dynamicClientRegistration":false}},"tls":{"observedAt":"2026-10-10T12:27:29.654Z","protocol":"TLSv1.3","chainValid":true,"chainError":null,"hostMatches":true,"subject":"*.up.railway.app","issuer":{"commonName":"YE2","organization":"Let's Encrypt"},"validFrom":"2026-09-27T03:01:43.000Z","validTo":"2026-12-26T03:01:42.000Z","daysToExpiry":76,"sanCount":2,"fingerprint256":"FB:37:0C:A2:68:42:DA:2B:2F:F8:E3:18:2E:0E:8C:FC:6F:B8:EA:C3:2C:DB:57:18:F4:5A:4B:39:B9:E1:40:AF"}}]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"mcp_registry","key":"ink.vera/vera","url":"https://registry.modelcontextprotocol.io/v0/servers/ink.vera%2Fvera","firstSeenAt":"2026-09-30T22:19:22.297Z","fetchedAt":"2026-10-09T15:22:11.316Z","normalizedAt":"2026-10-09T15:22:11.316Z"}]},"firstSeenAt":"2026-09-30T22:19:22.297Z","updatedAt":"2026-10-10T19:28:02.607Z"}