list_pools
List all supported surf pools worldwide with their IDs, names, and locations. Always call this first to get valid pool_id values for the other tools.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
List all supported surf pools worldwide with their IDs, names, and locations. Always call this first to get valid pool_id values for the other tools.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It indicates a read-only list operation and mentions the informational purpose (providing pool_id for other tools). It does not explicitly state the absence of side effects, but 'List' clearly implies a safe read operation. Minor gap: it doesn't mention data freshness or pagination, but for a simple list tool this is sufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no redundant wording. The first sentence states the action and output, the second provides usage guidance. Every word contributes value, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with no parameters and no output schema. The description fully covers its purpose, output, and usage ordering relative to other tools. It explicitly mentions the return fields (IDs, names, locations), so nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so no parameter explanations are needed. The description implicitly communicates that the tool takes no inputs and returns all pools. Baseline for 0 params is 4, and the description adequately covers the lack of parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function with a specific verb ('List'), resource ('supported surf pools'), scope ('worldwide'), and output fields ('IDs, names, and locations'). It distinguishes itself from sibling tools by focusing on pools, not sessions or levels. The additional note about getting valid pool_id values clarifies its role as a prerequisite.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly instructs when to use the tool: 'Always call this first to get valid pool_id values for the other tools.' This provides clear usage context and explains the dependency for sibling tools, making it obvious why this tool should be invoked before others.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Add one secure layer between your agents and this server.
Each tool has a clear, distinct purpose: list_pools retrieves pools, get_session_levels provides difficulty levels for a pool, and find_sessions returns available sessions. There is no functional overlap between them.
All tool names follow a consistent verb_noun pattern in snake_case (list_pools, get_session_levels, find_sessions), making them predictable and easy to use.
Three tools are appropriate for the scope of finding surf sessions: discover pools, get levels, and search sessions. The count feels lean but complete.
The tool set covers the essential workflow: listing pools, retrieving levels, and searching sessions. The booking URL in find_sessions externalizes booking, which is reasonable. A minor gap is the lack of a tool to fetch detailed info for a specific session, but it's not critical.