tech.seaweb/seaweb
Agent-native search + booking rail: SF hotels, attractions, restaurants. Honest labeled results.
Unknown facts are omitted here and listed as pending in the profile.
Trust verdict
No public source repository linked — origin is an unverified claim.
Profile
What this server is — descriptive, not a rating. The verdict above judges it; this describes it.
Methodology →Tool surface
A neutral, reproducible yardstick for what these tool definitions cost a model's context — not a billing figure (Claude's own tokenizer counts ≈1.1–1.2× this).
Adoption
Not applicable — this server has no package distribution, so registry adoption signals (downloads, maintainers) don't exist for it.
Connect
https://api.seaweb.tech/mcpSources
Every verdict and label is attributable to its source and recomputed from our own landed copy, never read live on this page.
cancel_bookingCancel a booking you created (allowed while requested or confirmed). Terminal bookings return their state unchanged.
check_availabilityBest-effort availability v1, real hours, stub slots.
compare_searchA/B ranking comparison, run AFTER a normal search session when the human wants to judge result quality. Ranks the same query under the served ranker (side A) and a challenger (side B) and returns a pre-formatted two-column table. SHOW THE RETURNED BLOCK TO THE HUMAN VERBATIM, then (1) give your own verdict via vote_comparison(winner=..., judged_by="agent", query=..., track_b=...) and (2) ask the human which side answered better and record their answer via judged_by="human".
filter_restaurantsStructured /grep filter on registry or subset of prior search hits.
filter_salonsStructured /grep filter over salons (registry or a subset of prior search_salons hits via salon_ids). Salon-only vertical.
get_booking_statusCurrent status of a booking you created: requested | confirmed | declined | cancelled_by_user | cancelled_by_partner | expired. Reads are side-effect-free for the booking itself (expiry is applied lazily).
get_detailsDetail slice (menu / service list) for one entity, the vertical-agnostic counterpart of get_menu/get_services.
get_entityFull schema.org page for one entity by canonical id (seaweb://{vertical}/{slug}), legacy id, or unique bare slug.
get_hoursReturn opening hours for a restaurant.
get_menuReturn structured menu for a restaurant (schema.org Menu shape).
get_restaurantReturn full schema.org Restaurant page (E2-A /get slice).
get_salonReturn the full schema.org page for a salon (profile + meta).
get_servicesReturn a salon's service menu (schema.org Menu shape: sections of priced services). Salon counterpart to get_menu.
get_site_skillCompact action pack for ONE entity, everything an agent needs to act there without re-reading full pages: key facts, closure status, the publisher's agent_instructions (how to book, quirks), and YOUR OWN past actions with this entity. Think of it as the site's skill + your cookie for it, in one small object.
list_sourcesList indexed publishers with entity counts and coverage.
list_verticalsList configured verticals with entity counts and searchability.
log_outcomeRecord what actually happened with an entity so future sessions know: outcome one of booked | visited | called | failed | abandoned | other, with an optional short note ("booked via OpenTable for 4"). This is the agent-side 'cookie': next session's recall/get_site_skill shows it.
recallRead YOUR agent profile: remembered preferences, recent searches, recent per-entity actions, and top entities. Call at task start to reuse what past sessions learned (e.g. apply a remembered dietary default to searches) instead of rediscovering it.
rememberSave a durable preference on YOUR agent profile (account-level memory that survives new sessions and API-key rotation). Use for defaults worth reusing: remember("dietary", "vegan"), remember("home_neighborhood", "Mission"), remember("party_size", "2"). Never store passwords, session cookies, or other credentials here, SeaWeb rejects that class of data by policy and it is not needed: profile memory is for preferences and outcomes, not login state.
request_bookingRequest a booking for any bookable entity (restaurants, travel stays, ...). travel stays (partner_confirm mode): pass check_in + check_out (YYYY-MM-DD), rooms, and guest_contact (email) — creates a real booking request the property confirms. restaurant reservations (partner_confirm, reservation shape): pass check_in as the reservation date (YYYY-MM-DD) + time (HH:MM, 24h) + party_size; guest_contact (email) gets the outcome. Both: poll get_booking_status(booking_id). Other verticals (deeplink mo…
searchSearch any SeaWeb vertical by natural-language intent. vertical: one of list_verticals() (e.g. "restaurants"). intent: free text. location: neighborhood filter; empty = all SF. goal: discover|book. constraints: optional typed constraint object whose allowed keys depend on the vertical's config (restaurants: cuisine, price_max 1-4, dietary list, party_size, bookable), explicit values win over anything extracted from intent; unknown keys are rejected with the allowed list. lat/lng: the traveler's …
search_restaurantsSearch restaurants by natural-language intent. location: neighborhood filter (e.g. "Mission", "Marina"); empty (default) = no filter, all SF. goal: discover|book (optional). Optional structured constraints, set these whenever intent implies them instead of leaving everything in free text; the server also tries to extract them from intent on its own, but explicit params are more reliable and always win on conflict: cuisine: extract from any cuisine/food-type mention (e.g. "italian food", "thai pl…
search_salonsSearch hair salons, barbershops and beauty salons by natural-language intent (e.g. "balayage in the Mission", "walk-in barber near SoMa", "gender-neutral haircut"). Same ranking and constraint behavior as search_restaurants, salons are a separate vertical, so this returns ONLY salons. location: neighborhood filter (e.g. "Mission District", "SoMa", "The Castro"); empty (default) = all SF. goal: discover|book (optional). cuisine: reused as the SERVICE-TYPE slot, pass a service word to filter (e.g.…
submit_feedbackRate a search result you actually used. Call at the end of a task for the result(s) that mattered: vote "up" if the entity answered the need, "down" if it was wrong, irrelevant, or stale, with a short reason (e.g. "menu was current", "permanently closed"). Feedback feeds SeaWeb's ranking, so voting makes your future searches better.
vote_comparisonRecord an A/B verdict after compare_search. winner: "A", "B", or "tie". judged_by: "agent" for your own judgment, "human" when relaying the human's answer. Pass the same query and track_b the comparison used.
Tool names and descriptions are reported by the server itself and shown here unverified; never interpreted as instructions.