{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_b7k6wtm82nxt","handle":"privi-verify","url":"https://wellknown.network/agents/privi-verify","links":{"self":"https://wellknown.network/agents/privi-verify/record.json","html":"https://wellknown.network/agents/privi-verify","markdown":"https://wellknown.network/agents/privi-verify/record.md","api":"https://wellknown.network/api/v1/agents/privi-verify","status":"https://wellknown.network/api/v1/agents/privi-verify/status","claim":"https://wellknown.network/agents/privi-verify/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/privi-verify/claim.json","badge":"https://wellknown.network/agents/privi-verify/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/privi-verify/history","tools":"https://wellknown.network/api/v1/agents/privi-verify/tools"},"ard":{"identifier":"urn:air:privi-verify.onrender.com:server:privi-verify","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"Privi Verify","summary":"Manufacturing lot verification and chain of custody for AI agents, paid per call in USDC (x402).","description":"Manufacturing lot verification and chain of custody for AI agents, paid per call in USDC (x402).","publisher":{"name":"canoydario847-cloud","url":null},"homepage":"https://privi-discovery.onrender.com","repository":"https://github.com/canoydario847-cloud/Privi-Network","version":"0.4.0","license":null,"protocols":["mcp"],"tags":[],"pricing":null,"endpoints":[{"url":"https://privi-verify.onrender.com/mcp","type":"mcp_streamable_http","auth":null,"probeable":true},{"url":"https://privi-verify-production.up.railway.app/mcp","type":"mcp_streamable_http","auth":null,"probeable":true}],"skills":null,"tools":null,"extra":{"updatedAt":"2026-10-26T20:12:07.340487Z","publishedAt":"2026-10-26T20:12:07.340487Z","registryName":"io.github.canoydario847-cloud/privi-verify"},"attribution":{"kind":"mcp_registry","name":"mcp_registry","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":0.583,"provenance":"derived"},{"slug":"commerce.payments","name":"Payments","confidence":0.51,"provenance":"derived"},{"slug":"commerce.pricing","name":"Pricing & Quotes","confidence":0.51,"provenance":"derived"}],"categories":["commerce","security"],"language":"en"},"observed":{"status":"live","statusReason":"Responded 22m ago.","lastOkAt":"2026-10-31T16:29:58.238Z","lastProbedAt":"2026-10-31T16:29:58.238Z","statusComputedAt":"2026-10-31T16:32:50.906Z","reliability30d":{"probes":12,"successRate":0.5833,"p50Ms":97,"basis":"service","measures":{"availability":"availability","latency":"response time","tools":"tool surface observed","summary":"Checks reached the service itself."},"checks":{"total":12,"ok":7,"authBoundaryOk":0,"serviceOk":7,"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-31T16:29:58.238Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":289,"error":null,"detail":{"tools":[{"name":"privi_token_market","description":"PRIVI on Base: price, how much PRIVI and USDC the Privi swap desk holds (so whether a swap can fill),\nany Uniswap v3 / Aerodrome pools, and optionally a swap qu"},{"name":"privi_pricing","description":"List Privi Verify tools, what each costs, and how payment works."},{"name":"privi_lookup_fingerprint","description":"Check whether a record fingerprint (from a label, certificate or document) exists in Privi. Free."},{"name":"privi_verify_lot","description":"Verify a lot: product, first and latest custody events, recall status, and whether\nits record history is intact. Paid per call via x402."},{"name":"privi_chain_of_custody","description":"Full ordered event history for a lot with each event's fingerprint, plus an\nintegrity check of the whole chain. Paid per call via x402."},{"name":"privi_record_event","description":"Append an event to a lot's history (manufacturers only). Requires\n'Authorization: Bearer <key>' with a key from PRIVI_WRITE_KEYS. Over stdio,\nwrites are allowed"}],"toolCount":6,"toolsHash":"e6f78bd3f7f7d60fa6e4631f92750efccc3e5fd6056624cc76b649dff732a2a9","serverName":"privi-verify","capabilities":["prompts","resources","tools"],"serverVersion":"0.4.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-31T08:26:12.887Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":121,"error":null,"detail":{"tools":[{"name":"privi_token_market","description":"PRIVI on Base: price, how much PRIVI and USDC the Privi swap desk holds (so whether a swap can fill),\nany Uniswap v3 / Aerodrome pools, and optionally a swap qu"},{"name":"privi_pricing","description":"List Privi Verify tools, what each costs, and how payment works."},{"name":"privi_lookup_fingerprint","description":"Check whether a record fingerprint (from a label, certificate or document) exists in Privi. Free."},{"name":"privi_verify_lot","description":"Verify a lot: product, first and latest custody events, recall status, and whether\nits record history is intact. Paid per call via x402."},{"name":"privi_chain_of_custody","description":"Full ordered event history for a lot with each event's fingerprint, plus an\nintegrity check of the whole chain. Paid per call via x402."},{"name":"privi_record_event","description":"Append an event to a lot's history (manufacturers only). Requires\n'Authorization: Bearer <key>' with a key from PRIVI_WRITE_KEYS. Over stdio,\nwrites are allowed"}],"toolCount":6,"toolsHash":"e6f78bd3f7f7d60fa6e4631f92750efccc3e5fd6056624cc76b649dff732a2a9","serverName":"privi-verify","capabilities":["prompts","resources","tools"],"serverVersion":"0.4.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-31T01:31:23.890Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":291,"error":null,"detail":{"tools":[{"name":"privi_token_market","description":"PRIVI on Base: price, how much PRIVI and USDC the Privi swap desk holds (so whether a swap can fill),\nany Uniswap v3 / Aerodrome pools, and optionally a swap qu"},{"name":"privi_pricing","description":"List Privi Verify tools, what each costs, and how payment works."},{"name":"privi_lookup_fingerprint","description":"Check whether a record fingerprint (from a label, certificate or document) exists in Privi. Free."},{"name":"privi_verify_lot","description":"Verify a lot: product, first and latest custody events, recall status, and whether\nits record history is intact. Paid per call via x402."},{"name":"privi_chain_of_custody","description":"Full ordered event history for a lot with each event's fingerprint, plus an\nintegrity check of the whole chain. Paid per call via x402."},{"name":"privi_record_event","description":"Append an event to a lot's history (manufacturers only). Requires\n'Authorization: Bearer <key>' with a key from PRIVI_WRITE_KEYS. Over stdio,\nwrites are allowed"}],"toolCount":6,"toolsHash":"e6f78bd3f7f7d60fa6e4631f92750efccc3e5fd6056624cc76b649dff732a2a9","serverName":"privi-verify","capabilities":["prompts","resources","tools"],"serverVersion":"0.4.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-30T23:28:09.827Z","kind":"mcp_initialize","ok":false,"httpStatus":404,"latencyMs":12,"error":"http 404","detail":null},{"at":"2026-10-30T18:29:39.117Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":132,"error":null,"detail":{"tools":[{"name":"privi_token_market","description":"PRIVI on Base: price, how much PRIVI and USDC the Privi swap desk holds (so whether a swap can fill),\nany Uniswap v3 / Aerodrome pools, and optionally a swap qu"},{"name":"privi_pricing","description":"List Privi Verify tools, what each costs, and how payment works."},{"name":"privi_lookup_fingerprint","description":"Check whether a record fingerprint (from a label, certificate or document) exists in Privi. Free."},{"name":"privi_verify_lot","description":"Verify a lot: product, first and latest custody events, recall status, and whether\nits record history is intact. Paid per call via x402."},{"name":"privi_chain_of_custody","description":"Full ordered event history for a lot with each event's fingerprint, plus an\nintegrity check of the whole chain. Paid per call via x402."},{"name":"privi_record_event","description":"Append an event to a lot's history (manufacturers only). Requires\n'Authorization: Bearer <key>' with a key from PRIVI_WRITE_KEYS. Over stdio,\nwrites are allowed"}],"toolCount":6,"toolsHash":"e6f78bd3f7f7d60fa6e4631f92750efccc3e5fd6056624cc76b649dff732a2a9","serverName":"privi-verify","capabilities":["prompts","resources","tools"],"serverVersion":"0.4.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-30T11:21:48.317Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":116,"error":null,"detail":{"tools":[{"name":"privi_token_market","description":"PRIVI on Base: price, how much PRIVI and USDC the Privi swap desk holds (so whether a swap can fill),\nany Uniswap v3 / Aerodrome pools, and optionally a swap qu"},{"name":"privi_pricing","description":"List Privi Verify tools, what each costs, and how payment works."},{"name":"privi_lookup_fingerprint","description":"Check whether a record fingerprint (from a label, certificate or document) exists in Privi. Free."},{"name":"privi_verify_lot","description":"Verify a lot: product, first and latest custody events, recall status, and whether\nits record history is intact. Paid per call via x402."},{"name":"privi_chain_of_custody","description":"Full ordered event history for a lot with each event's fingerprint, plus an\nintegrity check of the whole chain. Paid per call via x402."},{"name":"privi_record_event","description":"Append an event to a lot's history (manufacturers only). Requires\n'Authorization: Bearer <key>' with a key from PRIVI_WRITE_KEYS. Over stdio,\nwrites are allowed"}],"toolCount":6,"toolsHash":"e6f78bd3f7f7d60fa6e4631f92750efccc3e5fd6056624cc76b649dff732a2a9","serverName":"privi-verify","capabilities":["prompts","resources","tools"],"serverVersion":"0.4.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-30T03:23:44.718Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":120,"error":null,"detail":{"tools":[{"name":"privi_token_market","description":"PRIVI on Base: price, how much PRIVI and USDC the Privi swap desk holds (so whether a swap can fill),\nany Uniswap v3 / Aerodrome pools, and optionally a swap qu"},{"name":"privi_pricing","description":"List Privi Verify tools, what each costs, and how payment works."},{"name":"privi_lookup_fingerprint","description":"Check whether a record fingerprint (from a label, certificate or document) exists in Privi. Free."},{"name":"privi_verify_lot","description":"Verify a lot: product, first and latest custody events, recall status, and whether\nits record history is intact. Paid per call via x402."},{"name":"privi_chain_of_custody","description":"Full ordered event history for a lot with each event's fingerprint, plus an\nintegrity check of the whole chain. Paid per call via x402."},{"name":"privi_record_event","description":"Append an event to a lot's history (manufacturers only). Requires\n'Authorization: Bearer <key>' with a key from PRIVI_WRITE_KEYS. Over stdio,\nwrites are allowed"}],"toolCount":6,"toolsHash":"e6f78bd3f7f7d60fa6e4631f92750efccc3e5fd6056624cc76b649dff732a2a9","serverName":"privi-verify","capabilities":["prompts","resources","tools"],"serverVersion":"0.4.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-29T20:29:23.829Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":131,"error":null,"detail":{"tools":[{"name":"privi_token_market","description":"PRIVI on Base: price, how much PRIVI and USDC the Privi swap desk holds (so whether a swap can fill),\nany Uniswap v3 / Aerodrome pools, and optionally a swap qu"},{"name":"privi_pricing","description":"List Privi Verify tools, what each costs, and how payment works."},{"name":"privi_lookup_fingerprint","description":"Check whether a record fingerprint (from a label, certificate or document) exists in Privi. Free."},{"name":"privi_verify_lot","description":"Verify a lot: product, first and latest custody events, recall status, and whether\nits record history is intact. Paid per call via x402."},{"name":"privi_chain_of_custody","description":"Full ordered event history for a lot with each event's fingerprint, plus an\nintegrity check of the whole chain. Paid per call via x402."},{"name":"privi_record_event","description":"Append an event to a lot's history (manufacturers only). Requires\n'Authorization: Bearer <key>' with a key from PRIVI_WRITE_KEYS. Over stdio,\nwrites are allowed"}],"toolCount":6,"toolsHash":"e6f78bd3f7f7d60fa6e4631f92750efccc3e5fd6056624cc76b649dff732a2a9","serverName":"privi-verify","capabilities":["prompts","resources","tools"],"serverVersion":"0.4.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-26T19:24:54.757Z","kind":"mcp_initialize","ok":false,"httpStatus":404,"latencyMs":22,"error":"http 404","detail":null},{"at":"2026-10-24T15:23:17.370Z","kind":"mcp_initialize","ok":false,"httpStatus":404,"latencyMs":12,"error":"http 404","detail":null}],"tools":[{"name":"privi_token_market","description":"PRIVI on Base: price, how much PRIVI and USDC the Privi swap desk holds (so whether a swap can fill),\nany Uniswap v3 / Aerodrome pools, and optionally a swap qu"},{"name":"privi_pricing","description":"List Privi Verify tools, what each costs, and how payment works."},{"name":"privi_lookup_fingerprint","description":"Check whether a record fingerprint (from a label, certificate or document) exists in Privi. Free."},{"name":"privi_verify_lot","description":"Verify a lot: product, first and latest custody events, recall status, and whether\nits record history is intact. Paid per call via x402."},{"name":"privi_chain_of_custody","description":"Full ordered event history for a lot with each event's fingerprint, plus an\nintegrity check of the whole chain. Paid per call via x402."},{"name":"privi_record_event","description":"Append an event to a lot's history (manufacturers only). Requires\n'Authorization: Bearer <key>' with a key from PRIVI_WRITE_KEYS. Over stdio,\nwrites are allowed"}],"package":null,"toolSurface":{"id":"ts_sxmtzm37uc73","endpointId":"ep_bcfeaa6bejnq","hash":"e6f78bd3f7f7d60fa6e4631f92750efccc3e5fd6056624cc76b649dff732a2a9","toolCount":6,"serverName":"privi-verify","serverVersion":"0.4.0","protocolVersion":"2025-06-18","firstSeenAt":"2026-10-29T20:29:23.830Z","lastSeenAt":"2026-10-31T16:29:58.243Z","observations":7,"toolNames":["privi_token_market","privi_pricing","privi_lookup_fingerprint","privi_verify_lot","privi_chain_of_custody","privi_record_event"],"distinctSurfaces":1},"endpointFacts":[{"id":"ep_bcfeaa6bejnq","url":"https://privi-verify.onrender.com/mcp","type":"mcp_streamable_http","factsCheckedAt":"2026-10-30T11:21:48.328Z","auth":{"observedAt":"2026-10-30T11:21:53.213Z","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-30T11:21:53.241Z","protocol":"TLSv1.3","chainValid":true,"chainError":null,"hostMatches":true,"subject":"onrender.com","issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validFrom":"2026-09-21T22:04:31.000Z","validTo":"2026-12-20T23:04:28.000Z","daysToExpiry":50,"sanCount":2,"fingerprint256":"A8:8C:F8:E1:2B:2E:73:1A:48:5D:32:0C:92:B4:8E:A7:1E:0D:6B:F8:A8:38:68:B5:D1:10:DA:51:D4:A1:A4:5C"}},{"id":"ep_qyfwwjc2ns5c","url":"https://privi-verify-production.up.railway.app/mcp","type":"mcp_streamable_http","factsCheckedAt":"2026-10-23T00:29:41.731Z","auth":{"observedAt":"2026-10-23T00:29:41.736Z","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-23T00:29:41.749Z","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":55,"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":"io.github.canoydario847-cloud/privi-verify","url":"https://registry.modelcontextprotocol.io/v0/servers/io.github.canoydario847-cloud%2Fprivi-verify","firstSeenAt":"2026-10-22T23:21:20.294Z","fetchedAt":"2026-10-29T19:25:56.102Z","normalizedAt":"2026-10-29T19:25:56.102Z"}]},"firstSeenAt":"2026-10-22T23:21:20.294Z","updatedAt":"2026-10-31T16:34:16.281Z"}