{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_s5zv5884bhdu","handle":"mercantry-registry","url":"https://wellknown.network/agents/mercantry-registry","links":{"self":"https://wellknown.network/agents/mercantry-registry/record.json","html":"https://wellknown.network/agents/mercantry-registry","markdown":"https://wellknown.network/agents/mercantry-registry/record.md","api":"https://wellknown.network/api/v1/agents/mercantry-registry","status":"https://wellknown.network/api/v1/agents/mercantry-registry/status","claim":"https://wellknown.network/agents/mercantry-registry/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/mercantry-registry/claim.json","badge":"https://wellknown.network/agents/mercantry-registry/badge.svg","openapi":"https://wellknown.network/openapi.json"},"ard":{"identifier":"urn:air:mercantry.org:agent:mercantry-registry","type":"application/a2a-agent-card+json"},"kind":"agent","declared":{"name":"Mercantry","summary":"Mercantry is an open commerce registry for AI agents — structured merchant data, honest signals, and real-world booking fulfillment. Interoperability, honestly: this service speaks MCP (streamable-http) and REST/OpenAPI — it does NOT implement the A2A JSON-RPC protocol. This card is published for d…","description":"Mercantry is an open commerce registry for AI agents — structured merchant data, honest signals, and real-world booking fulfillment. Interoperability, honestly: this service speaks MCP (streamable-http) and REST/OpenAPI — it does NOT implement the A2A JSON-RPC protocol. This card is published for discovery; connect via the MCP endpoint in `url` or the REST interface in `additionalInterfaces`.","publisher":{"name":"Mercantry","url":"https://mercantry.org"},"homepage":"https://github.com/mercantry/registry","repository":"https://github.com/mercantry/registry","version":"1.0.0","license":null,"protocols":["a2a","mcp"],"tags":["search","restaurants","merchant-data","provenance","no-ranking","open-data","booking","reservations","async","sandbox","feedback","verified","trust"],"pricing":null,"endpoints":[{"url":"https://mercantry.org/mcp","type":"mcp_streamable_http","auth":null,"probeable":true}],"skills":[{"id":"merchant_discovery","name":"Merchant discovery","tags":["search","restaurants","merchant-data","provenance","no-ranking","open-data"],"description":"Filter-based search over the restaurant registry (search_merchants), full per-merchant signal dumps with per-field provenance and raw transaction-verified feedback (get_merchant), and honest registry self-description including staleness (get_registry_meta). Never ranked: deterministic, documented ordering only. Reads are free and keyless. Current coverage: 168,524 real merchants across Hong Kong (31,676), Los Angeles, CA (26,754), Tokyo (110,094), plus 500 sandbox test merchants."},{"id":"booking","name":"Reservation booking (async)","tags":["booking","reservations","async","sandbox"],"description":"Async table reservations: get_availability (honest v1 — availability is confirmed at booking time, not held live), place_booking, get_booking_status (poll or callback_url webhooks), modify_booking, cancel_booking. Bookings are accepted only for phone-verified bookable merchants. Real-merchant fulfillment is NOT live yet: place_booking on a real merchant returns the structured rejection 'fulfillment_not_live'. The full booking loop is testable end-to-end against sandbox merchants (deterministic …"},{"id":"verified_feedback","name":"Transaction-verified feedback","tags":["feedback","verified","trust"],"description":"submit_feedback: report how a confirmed reservation actually went — accepted only against a confirmed booking_id, once per booking, within 14 days. Served raw to all agents via get_merchant; never editorialized, never scored."}],"tools":["Merchant discovery","Reservation booking (async)","Transaction-verified feedback"],"extra":{"updatedAt":"2026-07-24T02:47:08.066947Z","inputModes":["application/json"],"outputModes":["application/json"],"publishedAt":"2026-07-24T02:47:08.066947Z","capabilities":{"streaming":false,"pushNotifications":false,"stateTransitionHistory":false},"registryName":"org.mercantry/registry","protocolVersion":"0.3.0"},"attribution":{"kind":"a2a_card","name":"a2a_card","repoUrl":"mcp_registry","summary":"a2a_card","version":"a2a_card","description":"a2a_card","homepageUrl":"a2a_card","publisherUrl":"a2a_card","publisherName":"a2a_card"}},"derived":{"capabilities":[{"slug":"commerce.ecommerce","name":"E-commerce Operations","confidence":1,"provenance":"derived"},{"slug":"commerce.travel","name":"Travel & Booking","confidence":1,"provenance":"declared"},{"slug":"code.execution","name":"Code Execution","confidence":1,"provenance":"declared"},{"slug":"dev.terminal","name":"Terminal & Shell","confidence":0.525,"provenance":"derived"}],"categories":["code","commerce","dev"]},"observed":{"status":"live","statusReason":"Responded 4h ago.","lastOkAt":"2026-09-08T00:20:26.711Z","lastProbedAt":"2026-09-08T00:20:26.711Z","statusComputedAt":"2026-09-08T00:23:48.666Z","reliability30d":{"probes":1,"successRate":1,"p50Ms":172},"latestObservations":[{"at":"2026-09-08T00:20:26.711Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":172,"error":null,"detail":{"tools":[{"name":"search_merchants","description":"Filter-based search over the restaurant registry (coverage cities + timezones in get_registry_meta). NOT ranked: results come back in deterministic order (merch"},{"name":"get_merchant","description":"Every field the registry holds on one merchant: schema fields, structured hours, raw feedback history, platform-observed operational stats, and per-field proven"},{"name":"get_availability","description":"V1 does NOT hold live table availability — availability is checked on the phone call at booking time. This tool returns the merchant's reservation policy, struc"},{"name":"place_booking","description":"Request a table reservation. Returns booking_id with state 'queued' immediately; fulfillment is asynchronous (a call is placed to the merchant). Poll get_bookin"},{"name":"get_booking_status","description":"State machine position for a booking: pending → queued → in_progress → confirmed | failed | needs_input (plus cancelled). Includes structured details on confirm"},{"name":"modify_booking","description":"Amend a booking before or after the call. For a booking in needs_input: pass accept_option_index to take one of the merchant's offered times (confirms immediate"},{"name":"cancel_booking","description":"Cancel a booking in any non-terminal state, or a confirmed reservation (the registry notifies the merchant). Cancellation is mandatory when the human no longer "},{"name":"submit_feedback","description":"Report how a confirmed reservation actually went. Accepted only against a confirmed booking_id, once per booking, within 14 days of confirmation. Structured fie"},{"name":"get_registry_meta","description":"Evaluate the registry itself: per-city coverage (with each city's IANA timezone), merchant/bookable counts, verification and freshness stats, feedback corpus si"}],"toolCount":9,"serverName":"registry","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-09-07T17:21:36.587Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":310,"error":null,"detail":{"tools":[{"name":"search_merchants","description":"Filter-based search over the restaurant registry (coverage cities + timezones in get_registry_meta). NOT ranked: results come back in deterministic order (merch"},{"name":"get_merchant","description":"Every field the registry holds on one merchant: schema fields, structured hours, raw feedback history, platform-observed operational stats, and per-field proven"},{"name":"get_availability","description":"V1 does NOT hold live table availability — availability is checked on the phone call at booking time. This tool returns the merchant's reservation policy, struc"},{"name":"place_booking","description":"Request a table reservation. Returns booking_id with state 'queued' immediately; fulfillment is asynchronous (a call is placed to the merchant). Poll get_bookin"},{"name":"get_booking_status","description":"State machine position for a booking: pending → queued → in_progress → confirmed | failed | needs_input (plus cancelled). Includes structured details on confirm"},{"name":"modify_booking","description":"Amend a booking before or after the call. For a booking in needs_input: pass accept_option_index to take one of the merchant's offered times (confirms immediate"},{"name":"cancel_booking","description":"Cancel a booking in any non-terminal state, or a confirmed reservation (the registry notifies the merchant). Cancellation is mandatory when the human no longer "},{"name":"submit_feedback","description":"Report how a confirmed reservation actually went. Accepted only against a confirmed booking_id, once per booking, within 14 days of confirmation. Structured fie"},{"name":"get_registry_meta","description":"Evaluate the registry itself: per-city coverage (with each city's IANA timezone), merchant/bookable counts, verification and freshness stats, feedback corpus si"}],"toolCount":9,"serverName":"registry","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-09-07T09:29:47.591Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":165,"error":null,"detail":{"tools":[{"name":"search_merchants","description":"Filter-based search over the restaurant registry (coverage cities + timezones in get_registry_meta). NOT ranked: results come back in deterministic order (merch"},{"name":"get_merchant","description":"Every field the registry holds on one merchant: schema fields, structured hours, raw feedback history, platform-observed operational stats, and per-field proven"},{"name":"get_availability","description":"V1 does NOT hold live table availability — availability is checked on the phone call at booking time. This tool returns the merchant's reservation policy, struc"},{"name":"place_booking","description":"Request a table reservation. Returns booking_id with state 'queued' immediately; fulfillment is asynchronous (a call is placed to the merchant). Poll get_bookin"},{"name":"get_booking_status","description":"State machine position for a booking: pending → queued → in_progress → confirmed | failed | needs_input (plus cancelled). Includes structured details on confirm"},{"name":"modify_booking","description":"Amend a booking before or after the call. For a booking in needs_input: pass accept_option_index to take one of the merchant's offered times (confirms immediate"},{"name":"cancel_booking","description":"Cancel a booking in any non-terminal state, or a confirmed reservation (the registry notifies the merchant). Cancellation is mandatory when the human no longer "},{"name":"submit_feedback","description":"Report how a confirmed reservation actually went. Accepted only against a confirmed booking_id, once per booking, within 14 days of confirmation. Structured fie"},{"name":"get_registry_meta","description":"Evaluate the registry itself: per-city coverage (with each city's IANA timezone), merchant/bookable counts, verification and freshness stats, feedback corpus si"}],"toolCount":9,"serverName":"registry","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}}],"tools":[{"name":"search_merchants","description":"Filter-based search over the restaurant registry (coverage cities + timezones in get_registry_meta). NOT ranked: results come back in deterministic order (merch"},{"name":"get_merchant","description":"Every field the registry holds on one merchant: schema fields, structured hours, raw feedback history, platform-observed operational stats, and per-field proven"},{"name":"get_availability","description":"V1 does NOT hold live table availability — availability is checked on the phone call at booking time. This tool returns the merchant's reservation policy, struc"},{"name":"place_booking","description":"Request a table reservation. Returns booking_id with state 'queued' immediately; fulfillment is asynchronous (a call is placed to the merchant). Poll get_bookin"},{"name":"get_booking_status","description":"State machine position for a booking: pending → queued → in_progress → confirmed | failed | needs_input (plus cancelled). Includes structured details on confirm"},{"name":"modify_booking","description":"Amend a booking before or after the call. For a booking in needs_input: pass accept_option_index to take one of the merchant's offered times (confirms immediate"},{"name":"cancel_booking","description":"Cancel a booking in any non-terminal state, or a confirmed reservation (the registry notifies the merchant). Cancellation is mandatory when the human no longer "},{"name":"submit_feedback","description":"Report how a confirmed reservation actually went. Accepted only against a confirmed booking_id, once per booking, within 14 days of confirmation. Structured fie"},{"name":"get_registry_meta","description":"Evaluate the registry itself: per-city coverage (with each city's IANA timezone), merchant/bookable counts, verification and freshness stats, feedback corpus si"}],"package":null},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"mcp_registry","key":"org.mercantry/registry","url":"https://registry.modelcontextprotocol.io/v0/servers/org.mercantry%2Fregistry","firstSeenAt":"2026-09-07T08:20:20.258Z","fetchedAt":"2026-09-07T08:20:20.258Z","normalizedAt":"2026-09-07T08:20:20.258Z"},{"source":"a2a_card","key":"https://mercantry.org/.well-known/agent-card.json","url":"https://mercantry.org/.well-known/agent-card.json","firstSeenAt":"2026-09-07T08:24:23.137Z","fetchedAt":"2026-09-07T08:24:23.137Z","normalizedAt":"2026-09-07T08:24:23.137Z"}]},"firstSeenAt":"2026-09-07T08:20:20.258Z","updatedAt":"2026-09-08T00:24:31.668Z"}