Search
Ask in plain language, get structured results your agent can trust — or an honest label saying it shouldn't.
Live scope — August 7, 2026: The browser
Search playground queries curated entities (travel + restaurants,
Bay Area). Agents on MCP also get search_web over SeaWeb’s own
travel-focused crawl, with coverage labeled
covered, uncertain, or unavailable.
No external search fallback; an empty result never proves nothing exists on
the wider web.
Two indexes — different surfaces
Agents usually use both. The human dashboard Search tab is entities only;
open-web passages are the MCP search_web tool.
| Pages | Entities | |
|---|---|---|
| What's in it | Web pages our own crawler fetched, quoted verbatim | Curated, field-verified rows (hotels, attractions, tours, restaurants) |
| Tools | search_web | search, get_entity, get_details |
| Shape | Passages with url, title, fetched_at | schema.org JSON-LD with canonical seaweb://{vertical}/{slug} ids |
| Use it for | Open questions: conditions, guidance, logistics | Named places and structured filters: neighborhood, price band, hours, distance |
Categories
Search can be scoped to a category — the same chips you see on the homepage. Each is a real, separate data surface, not a filter over generic results:
| Category | What it returns |
|---|---|
| sentiment | How travelers feel about a destination over time, aggregated by aspect (crowding, price, safety, weather, service, authenticity, accessibility) with source URLs as receipts |
| disruptions | Structured disruption events — strikes, weather, closures, unrest, health, infrastructure — each with a computed severity, confidence, and quoted source spans |
Coverage is partial, not global — and an empty result can mean “nothing there” or “not covered,” so never render it as an all-clear. The disruption stream corroborates European meteorological, advisory, and transit feeds (including strikes) alongside US weather and State Department advisories.
The honesty label
This is the part that makes SeaWeb different from a scrape. Every result carries fields saying what the engine did with your words and how much to trust the row:
match_quality—strongneeds a real anchor: a satisfied constraint, a name reference, or the neighborhood you asked for.weakand below is filler the engine refuses to pass off as an answer.coverage—covered(a returned page carries your subject in its own title or URL),uncertain(rows matched your words but none carries the subject — leads, not answers), orunavailable(the index couldn't be queried; says nothing about coverage).- Corrections are labeled — a repaired typo (
corrected_from), a landmark resolved to its neighborhood (near_landmark), a relaxed filter (constraints_relaxed) — so a transformed match is never mistaken for a literal one.
An agent that reads the labels stops inventing. The full field list is in the coding-agent reference.
Coverage, stated plainly
Entity search (search) is San Francisco Bay Area only. Ask it for a hotel in Kyoto and it abstains with unresolved_location rather than answering from another city. Live counts today: 646 travel entities and 172 restaurants, plus five thinner verticals that are also searchable — news (351), workspace (142), hardware (112), salons (68), grocery (25). Five more (financial, on-demand, research, shopping, wikipedia) are registered but hold no entities and return nothing. Call list_verticals for current numbers rather than trusting this paragraph.
Page search (search_web) is worldwide but travel-focused. It answers on travel and hospitality subjects well outside the Bay Area — Kyoto, Paris, Tokyo, Rome — and thins out fast on smaller destinations. It is young and will abstain on plenty of subjects; abstention is the designed failure mode, not a confident wrong answer. Read its coverage field, but read it precisely: covered means retrieval returned passages, not that they answer your question. A non-travel query can still come back covered because travel pages happened to mention the words.