Skip to main content
Glama

Recommend spots

recommend_spot
Read-onlyIdempotent

Ranked top picks (max 5) for an activity in one area on one day — by region id, or lat+lon with a radius. Each pick has the best daylight window, why (from the published conditions), a confidence score with its factors, caveats, and a KaiCast spot card. Returns status "not_covered" / "conditions_only" / "activity_not_modeled" honestly instead of guessing. Activities: snorkel (native model), dive, freedive, spearfish (proxy model; spots in water closed to spearfishing are excluded), surf (not modeled). Free during early access.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
latNoLatitude, decimal degrees. Use with lon.
lonNoLongitude, decimal degrees. Use with lat.
dateNoSpot-local day to plan for. Default: today, or tomorrow once today's daylight has passed. Up to 6 days ahead.
spotNoSpot id, e.g. "hanauma-bay".
limitNoHow many picks (default 3, max 5).
regionNoRegion id, e.g. "us-hi-oahu".
activityYesWhat the user wants to do.
radius_kmNoSearch radius around lat/lon in km (default 40, max 100).

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
cardsYes
picksYes
schemaYes
sourceYes
statusYes
messageNo
coverageYes
disclaimerYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedInput schema / properties / region / description
      Previous value: -"Region id from list_coverage, e.g. \"us-hi-oahu\"."New value: +"Region id, e.g. \"us-hi-oahu\"."
    • changedInput schema / properties / spot / description
      Previous value: -"Spot id from list_coverage or get_conditions, e.g. \"hanauma-bay\"."New value: +"Spot id, e.g. \"hanauma-bay\"."
  2. Changed2 schema fields changed
    • changedInput schema / properties / region / description
      Previous value: -"Region id, e.g. \"us-hi-oahu\"."New value: +"Region id from list_coverage, e.g. \"us-hi-oahu\"."
    • changedInput schema / properties / spot / description
      Previous value: -"Spot id, e.g. \"hanauma-bay\"."New value: +"Spot id from list_coverage or get_conditions, e.g. \"hanauma-bay\"."
  3. Changed2 schema fields changed
    • changedInput schema / properties / region / description
      Previous value: -"Region id from list_coverage, e.g. \"us-hi-oahu\"."New value: +"Region id, e.g. \"us-hi-oahu\"."
    • changedInput schema / properties / spot / description
      Previous value: -"Spot id from list_coverage or get_conditions, e.g. \"hanauma-bay\"."New value: +"Spot id, e.g. \"hanauma-bay\"."
  4. First observed

TDQS

A4.1/5.0
Behavior5/5

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

Annotations cover the safety profile (readOnly, idempotent, non-destructive, closed-world), and the description adds substantial behavior beyond them: the honest status returns ('not_covered', 'conditions_only', 'activity_not_modeled'), per-pick contents (daylight window, confidence with factors, caveats, spot card), which activities use native vs proxy models, that closed-to-spearfishing waters are excluded, and that it is free during early access. This is exactly the value-add the dimension asks for.

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

Conciseness4/5

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

Dense but front-loaded: the core scope leads, followed by return shape, then activity caveats and pricing. Every sentence carries information, though the parenthetical-heavy activity sentence is crammed and requires a second read.

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?

Despite an output schema existing, the description still summarizes the return shape (statuses and pick contents) in a way that sets expectations. Combined with full schema coverage and annotation-backed safety, an agent has everything needed to select and invoke this correctly.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3; the description earns extra by explaining the two alternative addressing modes (region vs lat+lon+radius) and by annotating activity semantics that the enum alone cannot convey — snorkel as native model, spearfish as proxy with exclusions, surf as unmodeled.

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

Purpose4/5

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

The description states a specific verb+resource with scope: 'Ranked top picks (max 5) for an activity in one area on one day', including the two addressing modes (region id or lat+lon with radius). This is well beyond a restatement of the name. It stops short of 5 because it never explicitly names or contrasts with siblings like best_day, which is the closest adjacent tool (day-ranking vs spot-ranking).

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

Usage Guidelines3/5

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

Usage is implied through the scope statement (one activity, one area, one day, up to 6 days ahead) and the activity list with modeling caveats. However, there is no explicit when-to-use/when-not or 'use best_day instead when you want to compare days' guidance, and no alternatives are named despite three sibling tools.

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.

Resources