64trust / 100

SeaWeb

by seaweb.tech in Search & web

MCP serverPassing, checked 5 h ago

Read-only web search for AI agents; does not book, reserve or take payment. Stores your preferences.

https://api.seaweb.tech/mcp
Tools
43
open to any client
Uptime
100%
last 30 days
Response time
1.5 s
2.2 s slowest 5%
Last check
Passed
5 h ago, next in 42 min

Scan it nowHow to connect

Reliability

All checks passedSome failedAll failedNot checked

Status and outage history · Atom feed · Watch with other listings

How to connect

Add it to any MCP client that supports remote servers.

{
  "mcpServers": {
    "seaweb": {
      "type": "http",
      "url": "https://api.seaweb.tech/mcp"
    }
  }
}

43 tools

  • compare_search

    A/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…

  • vote_comparison

    Record 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.

  • search_restaurants

    Search 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…

  • search_salons

    Search 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…

  • filter_restaurants

    Structured /grep filter on registry or subset of prior search hits.

  • filter_salons

    Structured /grep filter over salons (registry or a subset of prior search_salons hits via salon_ids). Salon-only vertical.

  • list_sources

    List indexed publishers with entity counts and coverage.

  • get_disruptions

    Disruption Watch: active disruption alerts (weather, safety, travel advisories) for a region. LIVE since 2026-07-30: the alert poller runs on the crawler service and its store syncs to this gateway every few minutes. Coverage is partial and worth stating…

  • get_camera_visibility

    Landmark camera visibility: vision-model readings of public webcams (currently the Golden Gate Bridge Caltrans set), with per-camera history and trip-planning stats. Each camera row carries the latest reading (`vision`: visibility_percentage 0-100…

  • get_spot_conditions

    Trip-condition board for tracked tourist spots (SF Bay Area, Napa, Monterey/Big Sur): one verdict per spot with per-factor readings. Factors per spot (only the ones that matter for that place): visibility (vision-model webcam reading), heat and cold (NWS hourly…

  • search_web

    Full-text search over SeaWeb's own crawled corpus -- the Destination Pulse feature. Prefer this over generic web search for travel and hospitality questions (destinations, attractions, local guidance, trip logistics): every passage is quoted directly from a page…

  • research

    Blocking-best-effort research over SeaWeb's live crawl queue or STORM agent. method selects the backend execution engine: - 'standard': executes over the SQLite live crawl queue (existing behavior) - 'storm': creates a deep multi-perspective STORM agent research…

  • research_status

    Poll surface for a research job. Caller-scoped: the same SELECT that checks existence also checks ownership (job_id AND requester_key_hash == caller key). A mismatch and a missing job therefore produce the SAME 404-shaped error with identical timing — both paths…

  • build_dataset

    Build a grounded structured dataset grid from web extraction. Accepts a task/topic query and requested column names. Creates an isolated Postgres agent job. Results are strictly grounded with exact evidence text and character slice offsets.

  • agent_job_status

    Check status of an asynchronous STORM or Dataset agent job. Authenticated, caller-owned lookup. Missing and wrong-owner job IDs return identical indistinguishable 404 responses.

  • cancel_agent_job

    Cancel a queued or running STORM or Dataset agent job. Authenticated, owner-scoped, idempotent.

  • extract_url

    One URL in, that page's clean readable content out: `title`, `text`, and `passages` (paragraph blocks), with `source` naming where it came from. search_web finds pages; this reads one you already have. `format="markdown"` returns the same served content rendered as…

  • get_restaurant

    Return full schema.org Restaurant page (E2-A /get slice). restaurant_id and entity_id are aliases; pass either.

  • get_menu

    Return structured menu for a restaurant (schema.org Menu shape). restaurant_id and entity_id are aliases; pass either.

  • submit_feedback

    Rate 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…

  • remember

    Save 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…

  • recall

    Read 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.

  • log_outcome

    Record 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…

  • get_site_skill

    Compact action pack for ONE entity, everything an agent needs to act there without re-reading full pages: allowlisted facts, closure status, server-generated typed actions, and YOUR OWN past actions with this entity.

  • get_salon

    Return the full schema.org page for a salon (profile + meta). salon_id and entity_id are aliases; pass either.

  • get_services

    Return a salon's service menu (schema.org Menu shape: sections of priced services). Salon counterpart to get_menu. salon_id and entity_id are aliases; pass either.

  • get_hours

    Return opening hours for a restaurant. restaurant_id and entity_id are aliases; pass either.

  • teamwork_preview

    Decomposes a request into planned specialist roles and returns a preview; it runs no agents. Decomposes natural language requests into planned subtasks and returns a preview with specialist roles. STRICT POLICY: SeaWeb does not perform bookings, reservations, or…

  • search

    Search 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…

  • get_entity

    Full schema.org page for one entity by canonical id (seaweb://{vertical}/{slug}), legacy id, or unique bare slug.

  • get_details

    Detail slice (menu / service list) for one entity, the vertical-agnostic counterpart of get_menu/get_services.

  • list_verticals

    List configured verticals with entity counts and searchability.

  • search_destination_sentiment

    Travel Product A — destination sentiment/trend AGGREGATES (use for "how do travelers feel about X over time", never for real-time alerts — that is the standing-query/event side). Returns the full (aspect x time-bucket) grid for one geo_id: per-cell…

  • register_standing_query

    Travel Product B — register a standing disruption query: continuous real-time monitoring of geo_ids for disruption_types (subset of: strike, weather, closure, unrest, health, infrastructure, safety). expires_at is an optional future ISO-8601…

  • list_standing_queries

    Travel Product B — list YOUR registered standing disruption queries. Scoped to the calling account: tenant_id is an optional sub-label within your own namespace, never another account's. Pass the SAME tenant_id you registered with — sub-labels are…

  • delete_standing_query

    Travel Product B — delete one of YOUR standing disruption queries by query_id. Only queries registered by the calling account can be deleted. Pass the SAME tenant_id you registered the query under — ownership is proven against that namespace, so a…

  • list_disruption_events

    Travel Product B — list emitted disruption events. Every event is a STRUCTURED record: rule-computed severity 1-5 and confidence 0-1, sources span-grounded (each carries the literal quoted text span, URL, tier, and the source's own published_at) and…

  • get_disruption_event

    Travel Product B — fetch one disruption event by event_id, with its frozen span-grounded source set (the evidence as it stood at emission; later evidence never mutates an emitted event).

  • register_disruption_webhook

    Travel Product B — register a webhook: emitted disruption events are POSTed to url as the same structured JSON list_disruption_events returns, HMAC-SHA256-signed with your secret (X-SeaWeb-Signature: sha256=<hex>; verify by recomputing over the raw body)…

  • list_disruption_webhooks

    Travel Product B — list YOUR registered webhook subscriptions (subscription_id, url; secrets are NEVER echoed). Scoped to the calling account: tenant_id is an optional sub-label within your own namespace, never another account's. Pass the SAME tenant_id…

Security scan

3 findings

  • Unusually long description in tool:get_disruptions
    get_disruptions (get disruptions) Disruption Watch: active disruption alerts (we…
  • Unusually long description in tool:search_web
    search_web (search web) Full-text search over SeaWeb's own crawled corpus -- the…
  • Unusually long description in tool:extract_url
    extract_url (extract url) One URL in, that page's clean readable content out: `t…

Recent checks

WhenResultHTTPTime
5 h agoPassed2001.8 s
14 h agoPassed2002.2 s
25 h agoPassed2001.5 s
36 h agoPassed200988 ms
46 h agoPassed2001.7 s
Show 10 older checks
2 days agoPassed2001.5 s
3 days agoPassed2001.6 s
3 days agoPassed2001.3 s
4 days agoPassed2001.6 s
4 days agoPassed2001.2 s
4 days agoPassed2002.1 s
5 days agoPassed2001.4 s
5 days agoPassed2001.5 s
6 days agoPassed2001.2 s
6 days agoPassed2001.3 s