accueil / serveurs / Recherche & Web / org.mercantry/registry
org.mercantry/registry
serveur MCP (Model Context Protocol) · registry 1.0.0
Référencé dans l'annuaire. Seul le pentest comportemental fait foi, et il n'a pas encore été exécuté sur ce serveur.
Est-ce que org.mercantry/registry est sûr ?
Au dernier audit MCP Hub, le serveur MCP « org.mercantry/registry » est classé « Non encore testé ». Référencé dans l'annuaire. Seul le pentest comportemental fait foi, et il n'a pas encore été exécuté sur ce serveur. Le verdict est réévalué en continu ; consultez la fiche pour l'état à jour.
Méthode : MCP Hub analyse la description de chaque outil (couche 1) et, pour le verdict fort, exécute le serveur dans une micro-VM isolée avec leurres et réseau bloqué (couche 2). On publie des noms et des compteurs, jamais le contenu brut renvoyé par un outil.
Les 9 outils
- cancel_booking≈ 136 tokens
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 wants the table — no-shows destroy merchant trust and are tracked per developer key.
Paramètres, retour & exemple (2)
Paramètresreason· string · optionnelbooking_id· string · requis
Exemple d'appel{"name": "cancel_booking", "arguments": {"booking_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - get_availability≈ 139 tokens
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, structured hours, and holiday exceptions so you can pick a plausible time before calling place_booking.
Paramètres, retour & exemple (1)
Paramètresmerchant_id· string · requis
Exemple d'appel{"name": "get_availability", "arguments": {"merchant_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - get_booking_status≈ 187 tokens
State machine position for a booking: pending → queued → in_progress → confirmed | failed | needs_input (plus cancelled). Includes structured details on confirmation (confirmed_time, confirmation_code, merchant_instructions), structured failure reason (no_answer | fully_booked | closed | policy_mismatch | merchant_declined | bad_data), or needs_input options awaiting your decision. include_events=true returns the full audit log.
Paramètres, retour & exemple (2)
Paramètresbooking_id· string · requisinclude_events· boolean · optionnel
Exemple d'appel{"name": "get_booking_status", "arguments": {"booking_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - get_merchant≈ 133 tokens
Every field the registry holds on one merchant: schema fields, structured hours, raw feedback history, platform-observed operational stats, and per-field provenance with timestamps. Maximal data, zero opinion — the registry never scores or ranks.
Paramètres, retour & exemple (1)
Paramètresmerchant_id· string · requis
Exemple d'appel{"name": "get_merchant", "arguments": {"merchant_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - get_registry_meta≈ 117 tokens
Evaluate the registry itself: per-city coverage (with each city's IANA timezone), merchant/bookable counts, verification and freshness stats, feedback corpus size, schema version, and the documented deterministic ordering rule. Honest by design — including how stale the data is.
Paramètres, retour & exemple (0)
Exemple d'appel{"name": "get_registry_meta", "arguments": {}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - modify_booking≈ 246 tokens
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 immediately), or pass a new datetime/party_size to re-queue an amended request. Modifying an already-confirmed booking cancels it and books the new request (new booking_id returned).
Paramètres, retour & exemple (5)
Paramètresdatetime· string · optionnel
New requested time, ISO-8601; naive means the merchant's local wall timebooking_id· string · requisparty_size· integer · optionnelwindow_minutes· integer · optionnelaccept_option_index· integer · optionnel
Index into needs_input_options to accept
Exemple d'appel{"name": "modify_booking", "arguments": {"booking_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - place_booking≈ 755 tokens
Request a table reservation. Returns booking_id with state 'queued' immediately; fulfillment is asynchronous (a call is placed to the merchant). Poll get_booking_status or supply callback_url for webhooks. RETRY SAFETY: pass a unique client_reference_id (recommended: always); if this call times out or errors ambiguously, retry with the SAME client_reference_id and the registry returns the already-created booking instead of double-booking the restaurant. Never re-call place_booking after a timeout without one. If the merchant counter-offers a time within window_minutes and accept_within_window=true, it is auto-accepted (recommended). Otherwise the booking pauses in needs_input for you to resolve via modify_booking. Merchants on the human_call channel are fulfilled by a human operator during the operator window published in get_registry_meta — those bookings queue until worked (up to the channel SLA), so book ahead rather than for the next hour.
Paramètres, retour & exemple (11)
Paramètrescontact· string · optionnel
Optional phone/email for confirmation relay to the end humandatetime· string · requis
Requested time, ISO-8601. Naive ('2026-07-18T19:00') means the merchant's LOCAL wall time (see the merchant's timezone field); an explicit offset ('2026-07-18T19:00:00+09:00') is also acceptedparty_size· integer · requismerchant_id· string · requiscallback_url· string · optionnel
Webhook URL for booking state-change eventswindow_minutes· integer · optionnel
Acceptable +/- window around datetimesandbox_outcome· string · optionnel · confirmed | no_answer | counter_offer | fully_booked | merchant_declined | bad_data
TEST ONLY, sandbox merchants (sandbox: true): force the simulated call's result so you can exercise a specific branch on demand — confirmed, no_answer (retries then fails), counter_offer (pauses in needs_input), fully_booked, merchant_declined, bad_data. Rejected for real merchants; omit it in productionreservation_name· string · requis
Name for the reservationspecial_requests· string · optionnelclient_reference_id· string · optionnel
Your unique ID for this booking request (a UUID is ideal). Retrying with the same value returns the existing booking (idempotent_replay: true) instead of creating a duplicate; the same value with different parameters is rejected as client_reference_conflictaccept_within_window· boolean · optionnel
Auto-accept merchant counter-offers inside the window (recommended: true)
Exemple d'appel{"name": "place_booking", "arguments": {"datetime": "texte", "party_size": 1, "merchant_id": "texte", "reservation_name": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - search_merchants≈ 621 tokens
Filter-based search over the restaurant registry (coverage cities + timezones in get_registry_meta). NOT ranked: results come back in deterministic order (merchant_id ASC by default; distance ASC when lat/lng given and order_by="distance"). Returns compact records with pagination. Use get_merchant for the full signal dump on a specific merchant. All filters are optional and combinable.
Paramètres, retour & exemple (15)
Paramètreslat· number · optionnel
Latitude for geo-radius filter (requires lng and radius_km)lng· number · optionnellimit· integer · optionneloffset· integer · optionnelopen_at· string · optionnel
ISO-8601 datetime; only merchants open at this time. With an explicit offset ('2026-07-18T19:00:00+09:00' or trailing Z) the instant is evaluated in each merchant's own timezone; without one it means each merchant's local wall clocksandbox· boolean · optionnel
Filter by merchant kind. true = sandbox test merchants only (safe integration targets: they book end-to-end and return a SIMULATED confirmation, never dialing a real venue). false = real merchants only — use this for any booking a human will act on. Omitted = both. Every result carries `sandbox`; never present a sandbox confirmation to a user as a real reservation.order_by· string · optionnel · merchant_id | distanceradius_km· number · optionnel
Radius in km around lat/lngparty_size· integer · optionnel
Only merchants that can seat this party sizecuisine_tags· array · optionnel
Match ANY of these cuisines, e.g. ['japanese','korean']neighborhood· string · optionnel
Exact neighborhood name, e.g. 'Mission'bookable_only· boolean · optionnel
Only merchants the registry can book right now (phone-verified, accepts reservations, not opted out)attribute_tags· array · optionnel
Match ALL of these attributes, e.g. ['outdoor_seating','vegetarian_friendly']price_band_max· integer · optionnelprice_band_min· integer · optionnel
Exemple d'appel{"name": "search_merchants", "arguments": {"lat": 1, "lng": 1, "limit": 1, "offset": 1, "open_at": "texte", "sandbox": true}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - submit_feedback≈ 240 tokens
Report how a confirmed reservation actually went. Accepted only against a confirmed booking_id, once per booking, within 14 days of confirmation. Structured fields first; optional free text ≤ 500 chars. This corpus is served raw to all agents via get_merchant — it is never editorialized or turned into a score.
Paramètres, retour & exemple (6)
Paramètresfree_text· string · optionnelbooking_id· string · requiswould_repeat· boolean · optionnelseated_on_time· boolean · optionnelmatched_description· boolean · optionnel
Did the merchant match the registry's description?reservation_honored· boolean · requis
Did the merchant honor the reservation?
Exemple d'appel{"name": "submit_feedback", "arguments": {"booking_id": "texte", "reservation_honored": true}}Exemple de retour{"content": [{"type": "text", "text": "…"}]}
C'est votre serveur ?
Revendiquez-le sur l'espace créateur (preuve GitHub, domaine ou npm) pour afficher le badge « propriétaire vérifié » et lancer un pentest comportemental à la demande afin d'obtenir le badge « Vérifié ».