{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_guxe2bvaznvv","handle":"qrvote","url":"https://wellknown.network/agents/qrvote","links":{"self":"https://wellknown.network/agents/qrvote/record.json","html":"https://wellknown.network/agents/qrvote","markdown":"https://wellknown.network/agents/qrvote/record.md","api":"https://wellknown.network/api/v1/agents/qrvote","status":"https://wellknown.network/api/v1/agents/qrvote/status","claim":"https://wellknown.network/agents/qrvote/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/qrvote/claim.json","badge":"https://wellknown.network/agents/qrvote/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/qrvote/history","tools":"https://wellknown.network/api/v1/agents/qrvote/tools"},"ard":{"identifier":"urn:air:mcp.qrvote.org:server:qrvote","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"qrvote","summary":"QR-code contests, surveys, quizzes and scavenger hunts: read results, manage your own.","description":"QR-code contests, surveys, quizzes and scavenger hunts: read results, manage your own.","publisher":{"name":"org.qrvote","url":null},"homepage":"https://mcp.qrvote.org/","repository":null,"version":"1.0.0","license":null,"protocols":["mcp"],"tags":[],"pricing":null,"endpoints":[{"url":"https://mcp.qrvote.org/mcp","type":"mcp_streamable_http","auth":null,"probeable":true},{"url":"https://mcp.qrvote.org/mcp/organizer","type":"mcp_streamable_http","auth":null,"probeable":true}],"skills":null,"tools":null,"extra":{"updatedAt":"2026-09-28T16:19:38.063159Z","publishedAt":"2026-09-28T16:19:38.063159Z","registryName":"org.qrvote/qrvote"},"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":"analytics.reporting","name":"Reporting & Dashboards","confidence":0.54,"provenance":"derived"},{"slug":"content.marketing","name":"Marketing","confidence":0.525,"provenance":"derived"},{"slug":"dev.project-management","name":"Project Management","confidence":0.51,"provenance":"derived"}],"categories":["analytics","content","dev"],"language":"fr"},"observed":{"status":"live","statusReason":"Responded 1h ago.","lastOkAt":"2026-10-12T21:26:19.356Z","lastProbedAt":"2026-10-12T21:26:19.356Z","statusComputedAt":"2026-10-12T21:27:35.490Z","reliability30d":{"probes":96,"successRate":1,"p50Ms":64,"basis":"mixed","measures":{"availability":"availability (some checks stopped at authentication)","latency":"response time (mixed)","tools":"partially observed","summary":"Some successful checks reached the service and some stopped at an authentication response; figures combine both."},"checks":{"total":96,"ok":96,"authBoundaryOk":48,"serviceOk":48,"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-12T21:26:19.356Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":93,"error":null,"detail":{"tools":[{"name":"draft_contest","description":"Make a link that opens QRvote’s create form already filled in: name, entries or questions, rules, closing time, look. Give the link to the person: they check it"},{"name":"create_contest","description":"Create it now, on a signed-in connection with Manage (https://mcp.qrvote.org/mcp/organizer); up to 5 a day per connection. This connection can manage it straigh"},{"name":"set_entry_photo","description":"Give an entry (or hunt checkpoint) a photo from a public https image URL: JPEG, PNG or WebP, up to 3 MB. Hidden metadata (GPS, camera) is removed. Replaces any "},{"name":"get_campaign","description":"A contest, survey or hunt as the public sees it Entries (contests), questions (surveys) or checkpoints (hunts; unfound ones show only their clue). Entry QR code"},{"name":"get_results","description":"Results: vote tallies, survey totals, or a hunt leaderboard Public when the organizer made results visible; otherwise send the organizer key. Contests also retu"},{"name":"get_dashboard","description":"Everything on the organizer dashboard Settings, entries with vote counts, ballot tickets, fairness signals (grouped, hashed), and survey or hunt data. Needs the"},{"name":"update_settings","description":"Change settings, or end / reopen voting Needs the organizer key."},{"name":"add_judge","description":"Contests: add a judge (judging must be on) The dashboard (getDashboard → judging.judges) then lists the judge with their private scorecard link key: https://qrv"},{"name":"remove_judge","description":"Contests: remove a judge, their link and their scores Needs the organizer key."},{"name":"add_entries","description":"Add entries (contests) or checkpoints (hunts) Needs the organizer key."},{"name":"export_csv","description":"Download votes, survey responses or hunt players as CSV Needs the organizer key."},{"name":"list_responses","description":"Survey responses, newest first (up to 500). Quizzes include each response's score. Needs the organizer key."},{"name":"host_step","description":"Run a live quiz: start, reveal, next question, finish, or pause/resume its clock For quizzes with host = true. Body: { action: 'start' | 'reveal' | 'next' | 'fi"},{"name":"set_questions","description":"Surveys and quizzes: replace the questions (only until the first response) Body: { questions: [...] }, 1–50, in order; the whole list is replaced. Each: { type,"},{"name":"set_answer_key","description":"Fix a quiz's answer key (allowed after people have answered; every score updates) Body: { answers: { <question id>: key | null } }. The key is an option index ("}],"toolCount":15,"toolsHash":"e8ac5094ff613c46500b2ebc5321fcf16f2b3a58aace98cd481880a0f873444e","serverName":"qrvote","capabilities":["tools","resources"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-12T20:30:47.826Z","kind":"mcp_initialize","ok":true,"httpStatus":401,"latencyMs":57,"error":null,"detail":{"authRequired":true,"wwwAuthenticate":"Bearer realm=\"OAuth\", resource_metadata=\"https://mcp.qrvote.org/.well-known/oauth-protected-resource/mcp/organizer\", scope=\"read\""}},{"at":"2026-10-12T14:30:26.477Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":87,"error":null,"detail":{"tools":[{"name":"draft_contest","description":"Make a link that opens QRvote’s create form already filled in: name, entries or questions, rules, closing time, look. Give the link to the person: they check it"},{"name":"create_contest","description":"Create it now, on a signed-in connection with Manage (https://mcp.qrvote.org/mcp/organizer); up to 5 a day per connection. This connection can manage it straigh"},{"name":"set_entry_photo","description":"Give an entry (or hunt checkpoint) a photo from a public https image URL: JPEG, PNG or WebP, up to 3 MB. Hidden metadata (GPS, camera) is removed. Replaces any "},{"name":"get_campaign","description":"A contest, survey or hunt as the public sees it Entries (contests), questions (surveys) or checkpoints (hunts; unfound ones show only their clue). Entry QR code"},{"name":"get_results","description":"Results: vote tallies, survey totals, or a hunt leaderboard Public when the organizer made results visible; otherwise send the organizer key. Contests also retu"},{"name":"get_dashboard","description":"Everything on the organizer dashboard Settings, entries with vote counts, ballot tickets, fairness signals (grouped, hashed), and survey or hunt data. Needs the"},{"name":"update_settings","description":"Change settings, or end / reopen voting Needs the organizer key."},{"name":"add_judge","description":"Contests: add a judge (judging must be on) The dashboard (getDashboard → judging.judges) then lists the judge with their private scorecard link key: https://qrv"},{"name":"remove_judge","description":"Contests: remove a judge, their link and their scores Needs the organizer key."},{"name":"add_entries","description":"Add entries (contests) or checkpoints (hunts) Needs the organizer key."},{"name":"export_csv","description":"Download votes, survey responses or hunt players as CSV Needs the organizer key."},{"name":"list_responses","description":"Survey responses, newest first (up to 500). Quizzes include each response's score. Needs the organizer key."},{"name":"host_step","description":"Run a live quiz: start, reveal, next question, finish, or pause/resume its clock For quizzes with host = true. Body: { action: 'start' | 'reveal' | 'next' | 'fi"},{"name":"set_questions","description":"Surveys and quizzes: replace the questions (only until the first response) Body: { questions: [...] }, 1–50, in order; the whole list is replaced. Each: { type,"},{"name":"set_answer_key","description":"Fix a quiz's answer key (allowed after people have answered; every score updates) Body: { answers: { <question id>: key | null } }. The key is an option index ("}],"toolCount":15,"toolsHash":"e8ac5094ff613c46500b2ebc5321fcf16f2b3a58aace98cd481880a0f873444e","serverName":"qrvote","capabilities":["tools","resources"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-12T14:29:06.059Z","kind":"mcp_initialize","ok":true,"httpStatus":401,"latencyMs":71,"error":null,"detail":{"authRequired":true,"wwwAuthenticate":"Bearer realm=\"OAuth\", resource_metadata=\"https://mcp.qrvote.org/.well-known/oauth-protected-resource/mcp/organizer\", scope=\"read\""}},{"at":"2026-10-12T08:28:06.016Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":74,"error":null,"detail":{"tools":[{"name":"draft_contest","description":"Make a link that opens QRvote’s create form already filled in: name, entries or questions, rules, closing time, look. Give the link to the person: they check it"},{"name":"create_contest","description":"Create it now, on a signed-in connection with Manage (https://mcp.qrvote.org/mcp/organizer); up to 5 a day per connection. This connection can manage it straigh"},{"name":"set_entry_photo","description":"Give an entry (or hunt checkpoint) a photo from a public https image URL: JPEG, PNG or WebP, up to 3 MB. Hidden metadata (GPS, camera) is removed. Replaces any "},{"name":"get_campaign","description":"A contest, survey or hunt as the public sees it Entries (contests), questions (surveys) or checkpoints (hunts; unfound ones show only their clue). Entry QR code"},{"name":"get_results","description":"Results: vote tallies, survey totals, or a hunt leaderboard Public when the organizer made results visible; otherwise send the organizer key. Contests also retu"},{"name":"get_dashboard","description":"Everything on the organizer dashboard Settings, entries with vote counts, ballot tickets, fairness signals (grouped, hashed), and survey or hunt data. Needs the"},{"name":"update_settings","description":"Change settings, or end / reopen voting Needs the organizer key."},{"name":"add_judge","description":"Contests: add a judge (judging must be on) The dashboard (getDashboard → judging.judges) then lists the judge with their private scorecard link key: https://qrv"},{"name":"remove_judge","description":"Contests: remove a judge, their link and their scores Needs the organizer key."},{"name":"add_entries","description":"Add entries (contests) or checkpoints (hunts) Needs the organizer key."},{"name":"export_csv","description":"Download votes, survey responses or hunt players as CSV Needs the organizer key."},{"name":"list_responses","description":"Survey responses, newest first (up to 500). Quizzes include each response's score. Needs the organizer key."},{"name":"host_step","description":"Run a live quiz: start, reveal, next question, finish, or pause/resume its clock For quizzes with host = true. Body: { action: 'start' | 'reveal' | 'next' | 'fi"},{"name":"set_questions","description":"Surveys and quizzes: replace the questions (only until the first response) Body: { questions: [...] }, 1–50, in order; the whole list is replaced. Each: { type,"},{"name":"set_answer_key","description":"Fix a quiz's answer key (allowed after people have answered; every score updates) Body: { answers: { <question id>: key | null } }. The key is an option index ("}],"toolCount":15,"toolsHash":"e8ac5094ff613c46500b2ebc5321fcf16f2b3a58aace98cd481880a0f873444e","serverName":"qrvote","capabilities":["tools","resources"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-12T07:23:11.346Z","kind":"mcp_initialize","ok":true,"httpStatus":401,"latencyMs":43,"error":null,"detail":{"authRequired":true,"wwwAuthenticate":"Bearer realm=\"OAuth\", resource_metadata=\"https://mcp.qrvote.org/.well-known/oauth-protected-resource/mcp/organizer\", scope=\"read\""}},{"at":"2026-10-12T02:24:20.037Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":41,"error":null,"detail":{"tools":[{"name":"draft_contest","description":"Make a link that opens QRvote’s create form already filled in: name, entries or questions, rules, closing time, look. Give the link to the person: they check it"},{"name":"create_contest","description":"Create it now, on a signed-in connection with Manage (https://mcp.qrvote.org/mcp/organizer); up to 5 a day per connection. This connection can manage it straigh"},{"name":"set_entry_photo","description":"Give an entry (or hunt checkpoint) a photo from a public https image URL: JPEG, PNG or WebP, up to 3 MB. Hidden metadata (GPS, camera) is removed. Replaces any "},{"name":"get_campaign","description":"A contest, survey or hunt as the public sees it Entries (contests), questions (surveys) or checkpoints (hunts; unfound ones show only their clue). Entry QR code"},{"name":"get_results","description":"Results: vote tallies, survey totals, or a hunt leaderboard Public when the organizer made results visible; otherwise send the organizer key. Contests also retu"},{"name":"get_dashboard","description":"Everything on the organizer dashboard Settings, entries with vote counts, ballot tickets, fairness signals (grouped, hashed), and survey or hunt data. Needs the"},{"name":"update_settings","description":"Change settings, or end / reopen voting Needs the organizer key."},{"name":"add_judge","description":"Contests: add a judge (judging must be on) The dashboard (getDashboard → judging.judges) then lists the judge with their private scorecard link key: https://qrv"},{"name":"remove_judge","description":"Contests: remove a judge, their link and their scores Needs the organizer key."},{"name":"add_entries","description":"Add entries (contests) or checkpoints (hunts) Needs the organizer key."},{"name":"export_csv","description":"Download votes, survey responses or hunt players as CSV Needs the organizer key."},{"name":"list_responses","description":"Survey responses, newest first (up to 500). Quizzes include each response's score. Needs the organizer key."},{"name":"host_step","description":"Run a live quiz: start, reveal, next question, finish, or pause/resume its clock For quizzes with host = true. Body: { action: 'start' | 'reveal' | 'next' | 'fi"},{"name":"set_questions","description":"Surveys and quizzes: replace the questions (only until the first response) Body: { questions: [...] }, 1–50, in order; the whole list is replaced. Each: { type,"},{"name":"set_answer_key","description":"Fix a quiz's answer key (allowed after people have answered; every score updates) Body: { answers: { <question id>: key | null } }. The key is an option index ("}],"toolCount":15,"toolsHash":"e8ac5094ff613c46500b2ebc5321fcf16f2b3a58aace98cd481880a0f873444e","serverName":"qrvote","capabilities":["tools","resources"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-12T01:27:12.763Z","kind":"mcp_initialize","ok":true,"httpStatus":401,"latencyMs":54,"error":null,"detail":{"authRequired":true,"wwwAuthenticate":"Bearer realm=\"OAuth\", resource_metadata=\"https://mcp.qrvote.org/.well-known/oauth-protected-resource/mcp/organizer\", scope=\"read\""}},{"at":"2026-10-11T19:24:08.908Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":70,"error":null,"detail":{"tools":[{"name":"draft_contest","description":"Make a link that opens QRvote’s create form already filled in: name, entries or questions, rules, closing time, look. Give the link to the person: they check it"},{"name":"create_contest","description":"Create it now, on a signed-in connection with Manage (https://mcp.qrvote.org/mcp/organizer); up to 5 a day per connection. This connection can manage it straigh"},{"name":"set_entry_photo","description":"Give an entry (or hunt checkpoint) a photo from a public https image URL: JPEG, PNG or WebP, up to 3 MB. Hidden metadata (GPS, camera) is removed. Replaces any "},{"name":"get_campaign","description":"A contest, survey or hunt as the public sees it Entries (contests), questions (surveys) or checkpoints (hunts; unfound ones show only their clue). Entry QR code"},{"name":"get_results","description":"Results: vote tallies, survey totals, or a hunt leaderboard Public when the organizer made results visible; otherwise send the organizer key. Contests also retu"},{"name":"get_dashboard","description":"Everything on the organizer dashboard Settings, entries with vote counts, ballot tickets, fairness signals (grouped, hashed), and survey or hunt data. Needs the"},{"name":"update_settings","description":"Change settings, or end / reopen voting Needs the organizer key."},{"name":"add_judge","description":"Contests: add a judge (judging must be on) The dashboard (getDashboard → judging.judges) then lists the judge with their private scorecard link key: https://qrv"},{"name":"remove_judge","description":"Contests: remove a judge, their link and their scores Needs the organizer key."},{"name":"add_entries","description":"Add entries (contests) or checkpoints (hunts) Needs the organizer key."},{"name":"export_csv","description":"Download votes, survey responses or hunt players as CSV Needs the organizer key."},{"name":"list_responses","description":"Survey responses, newest first (up to 500). Quizzes include each response's score. Needs the organizer key."},{"name":"host_step","description":"Run a live quiz: start, reveal, next question, finish, or pause/resume its clock For quizzes with host = true. Body: { action: 'start' | 'reveal' | 'next' | 'fi"},{"name":"set_questions","description":"Surveys and quizzes: replace the questions (only until the first response) Body: { questions: [...] }, 1–50, in order; the whole list is replaced. Each: { type,"},{"name":"set_answer_key","description":"Fix a quiz's answer key (allowed after people have answered; every score updates) Body: { answers: { <question id>: key | null } }. The key is an option index ("}],"toolCount":15,"toolsHash":"e8ac5094ff613c46500b2ebc5321fcf16f2b3a58aace98cd481880a0f873444e","serverName":"qrvote","capabilities":["tools","resources"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-11T19:23:59.144Z","kind":"mcp_initialize","ok":true,"httpStatus":401,"latencyMs":84,"error":null,"detail":{"authRequired":true,"wwwAuthenticate":"Bearer realm=\"OAuth\", resource_metadata=\"https://mcp.qrvote.org/.well-known/oauth-protected-resource/mcp/organizer\", scope=\"read\""}}],"tools":[{"name":"draft_contest","description":"Make a link that opens QRvote’s create form already filled in: name, entries or questions, rules, closing time, look. Give the link to the person: they check it"},{"name":"create_contest","description":"Create it now, on a signed-in connection with Manage (https://mcp.qrvote.org/mcp/organizer); up to 5 a day per connection. This connection can manage it straigh"},{"name":"set_entry_photo","description":"Give an entry (or hunt checkpoint) a photo from a public https image URL: JPEG, PNG or WebP, up to 3 MB. Hidden metadata (GPS, camera) is removed. Replaces any "},{"name":"get_campaign","description":"A contest, survey or hunt as the public sees it Entries (contests), questions (surveys) or checkpoints (hunts; unfound ones show only their clue). Entry QR code"},{"name":"get_results","description":"Results: vote tallies, survey totals, or a hunt leaderboard Public when the organizer made results visible; otherwise send the organizer key. Contests also retu"},{"name":"get_dashboard","description":"Everything on the organizer dashboard Settings, entries with vote counts, ballot tickets, fairness signals (grouped, hashed), and survey or hunt data. Needs the"},{"name":"update_settings","description":"Change settings, or end / reopen voting Needs the organizer key."},{"name":"add_judge","description":"Contests: add a judge (judging must be on) The dashboard (getDashboard → judging.judges) then lists the judge with their private scorecard link key: https://qrv"},{"name":"remove_judge","description":"Contests: remove a judge, their link and their scores Needs the organizer key."},{"name":"add_entries","description":"Add entries (contests) or checkpoints (hunts) Needs the organizer key."},{"name":"export_csv","description":"Download votes, survey responses or hunt players as CSV Needs the organizer key."},{"name":"list_responses","description":"Survey responses, newest first (up to 500). Quizzes include each response's score. Needs the organizer key."},{"name":"host_step","description":"Run a live quiz: start, reveal, next question, finish, or pause/resume its clock For quizzes with host = true. Body: { action: 'start' | 'reveal' | 'next' | 'fi"},{"name":"set_questions","description":"Surveys and quizzes: replace the questions (only until the first response) Body: { questions: [...] }, 1–50, in order; the whole list is replaced. Each: { type,"},{"name":"set_answer_key","description":"Fix a quiz's answer key (allowed after people have answered; every score updates) Body: { answers: { <question id>: key | null } }. The key is an option index ("}],"package":null,"toolSurface":{"id":"ts_qzkuhvhv6qfv","endpointId":"ep_qwdd98gp2jnk","hash":"e8ac5094ff613c46500b2ebc5321fcf16f2b3a58aace98cd481880a0f873444e","toolCount":15,"serverName":"qrvote","serverVersion":"1.0.0","protocolVersion":"2025-06-18","firstSeenAt":"2026-09-30T04:29:10.811Z","lastSeenAt":"2026-10-12T21:26:19.351Z","observations":48,"toolNames":["draft_contest","create_contest","set_entry_photo","get_campaign","get_results","get_dashboard","update_settings","add_judge","remove_judge","add_entries","export_csv","list_responses","host_step","set_questions","set_answer_key"],"distinctSurfaces":1},"endpointFacts":[{"id":"ep_qwdd98gp2jnk","url":"https://mcp.qrvote.org/mcp","type":"mcp_streamable_http","factsCheckedAt":"2026-10-11T13:23:26.633Z","auth":{"observedAt":"2026-10-11T13:23:26.646Z","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-11T13:23:26.658Z","protocol":"TLSv1.3","chainValid":true,"chainError":null,"hostMatches":true,"subject":"qrvote.org","issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validFrom":"2026-09-28T12:16:48.000Z","validTo":"2026-12-27T13:16:45.000Z","daysToExpiry":75,"sanCount":3,"fingerprint256":"18:39:B7:18:DA:A1:40:B2:C6:89:B5:F9:86:8C:19:B6:D3:27:F7:C4:CC:2E:AF:EF:5A:D6:AA:86:AE:A6:25:F5"}},{"id":"ep_tpkqehuvkw6j","url":"https://mcp.qrvote.org/mcp/organizer","type":"mcp_streamable_http","factsCheckedAt":"2026-10-03T16:34:00.711Z","auth":{"observedAt":"2026-10-03T16:34:00.866Z","authRequired":true,"scheme":"Bearer","resourceMetadata":{"url":"https://mcp.qrvote.org/.well-known/oauth-protected-resource/mcp/organizer","resource":"https://mcp.qrvote.org/mcp/organizer","authorizationServers":["https://qrvote.org"],"scopesSupported":["read"]},"authorizationServer":{"url":"https://qrvote.org/.well-known/oauth-authorization-server","issuer":"https://qrvote.org","grantTypesSupported":["authorization_code","refresh_token","urn:ietf:params:oauth:grant-type:jwt-bearer","urn:workos:agent-auth:grant-type:claim"],"codeChallengeMethodsSupported":["S256"],"tokenEndpointAuthMethodsSupported":["client_secret_basic","client_secret_post","none"],"dynamicClientRegistration":true,"dpopSigningAlgValuesSupported":[],"clientIdMetadataDocumentSupported":true},"conformance":{"dpop":false,"rfc8414":true,"rfc9728":true,"pkceS256":true,"clientIdMetadataDocument":true,"dynamicClientRegistration":true}},"tls":{"observedAt":"2026-10-03T16:34:00.887Z","protocol":"TLSv1.3","chainValid":true,"chainError":null,"hostMatches":true,"subject":"qrvote.org","issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validFrom":"2026-09-28T12:16:48.000Z","validTo":"2026-12-27T13:16:45.000Z","daysToExpiry":75,"sanCount":3,"fingerprint256":"18:39:B7:18:DA:A1:40:B2:C6:89:B5:F9:86:8C:19:B6:D3:27:F7:C4:CC:2E:AF:EF:5A:D6:AA:86:AE:A6:25:F5"}}]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"mcp_registry","key":"org.qrvote/qrvote","url":"https://registry.modelcontextprotocol.io/v0/servers/org.qrvote%2Fqrvote","firstSeenAt":"2026-09-30T04:22:34.301Z","fetchedAt":"2026-10-11T15:19:27.352Z","normalizedAt":"2026-10-11T15:19:27.352Z"}]},"firstSeenAt":"2026-09-30T04:22:34.301Z","updatedAt":"2026-10-12T21:28:27.366Z"}