Skip to main content
Glama

search

Read-onlyIdempotent

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
    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 coordinates (WGS84);
    when set, verified-location results carry distance_mi and proximity
    queries sort by it. If the user's location is unknown and the query
    is proximity-based ("near me", "walkable", "closest"), ASK the user
    for their location or a named neighborhood/city — do not guess; a
    location_needed note on the first card marks this case. Use recall()
    for the account's stored preferences (e.g. home_neighborhood) when
    available. Returns ranked entity cards with canonical
    seaweb://{vertical}/{slug} ids.

    On corpus verticals the cards may be preceded by a plain-text line,
    "[SEAWEB_QUERY] verdict=... [degraded=...]", emitted only when there
    is something non-default to say. Other "[SEAWEB_*]" banner lines can
    precede it (an experiment marker, when that flag is on), so skip
    leading banner lines rather than checking only the first. Read it: `uncertain` means retrieval
    returned nothing and is NOT a claim that the corpus lacks the subject
    (rephrasing often finds it); `not_found` means a subject term has zero
    title hits corpus-wide, which IS an observation about the corpus;
    `unsupported_intent` means a list/superlative ask a reference corpus
    cannot rank. `degraded=...` means a serving stage failed and the
    results are incomplete -- an outage, never an abstention. Absent
    header = answerable, nominal.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
latNo
lngNo
goalNo
intentYes
locationNo
verticalYes
constraintsNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnly/idempotent annotations, the description discloses rich behavioral details: [SEAWEB_QUERY] header semantics, degraded mode, location_needed notes, and explicit-vs-extracted constraint precedence. This goes far beyond the annotations and prepares the agent for edge cases.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long but front-loaded with a clear summary and organized into focused paragraphs for parameters, location, output, and header parsing. Every sentence provides necessary operational detail, with no filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity, the description covers the full lifecycle: parameter semantics, location handling, constraint validation, output format with canonical IDs, and special header processing. With an output schema present, this is exceptionally complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0% property descriptions, but the description thoroughly explains every parameter: vertical, intent, location, goal, constraints, and lat/lng. It also specifies allowed values, defaults, and interaction rules (e.g., explicit constraints override extracted ones, unknown keys rejected).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'Search any SeaWeb vertical by natural-language intent,' clearly identifying the tool's function and scope. It references list_verticals() and vertical-specific capabilities, distinguishing it from siblings like search_restaurants and search_salons.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear usage context, such as asking for location on proximity queries and using recall() for stored preferences. However, it does not explicitly contrast this generic search with vertical-specific alternatives, so it lacks explicit exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

B3.4/5.0
Disambiguation3/5

There is notable overlap among search, search_web, search_restaurants, and search_salons, as well as between filter_restaurants/filter_salons and search with constraints. However, descriptions clarify the intended vertical or corpus, and entity getters are distinct. The overlap is manageable but could cause misselection.

Naming Consistency4/5

Names mostly follow a get_/list_/search_/register_/delete_/submit_/vote_ pattern in snake_case. Minor deviations like 'recall', 'remember', 'research', and 'travel_health' are less predictable but still readable. Overall consistent and clear.

Tool Count2/5

38 tools is on the heavy side for a single MCP server, exceeding the typical well-scoped range. While the server covers multiple subdomains (search, travel disruptions, memory, feedback, research), the sheer number may overwhelm agents and suggests potential consolidation.

Completeness4/5

The tool surface covers core workflows: search and entity retrieval for restaurants/salons, disruption monitoring with standing queries and webhooks (register/list/delete), research submission/polling, and memory/feedback mechanisms. Minor gaps exist (e.g., no cancel for research jobs, no explicit entity list endpoint), but these are workable and do not break typical agent tasks.

Resources