Surf Session Finder
Server Details
Surf park sessions schedule availability and notifications for wave park surfers worldwide
- Status
- Healthy
- Uptime
- 100.0% over 40 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2024-11-05
- URL
TDQS
Scored across 3 tools
Each tool serves a distinct, non-overlapping purpose: listing pools, retrieving difficulty levels, and finding sessions. No ambiguity exists between them, as they operate at different stages of the discovery workflow.
All tools follow an identical verb_noun pattern in snake_case (find_sessions, get_session_levels, list_pools), with consistent and predictable naming. The verb choices are clear and align with each tool's function.
Three tools provide a concise, well-scoped surface for a surf session finder. Each tool is necessary and earns its place—covering pool discovery, level details, and session search without redundancy.
The tool set fully covers the core workflow: list pools to get ID, fetch valid levels, then search sessions with appropriate filters. Booking is handled via returned URLs, so no missing operations leave gaps for the intended purpose.
Available Tools
3 toolsfind_sessionsAInspect
Find available surf sessions at a pool. Returns date, time, skill level, available spots, and a booking URL. Filter by level, minimum spots, or time window.
| Name | Required | Description | Default |
|---|---|---|---|
| levels | No | Filter to specific level names (e.g. ["Beginner"]). Omit to return all levels. | |
| pool_id | Yes | Pool ID — use list_pools to get valid values | |
| min_spots | No | Minimum available spots required (default: 0) | |
| hours_ahead | No | Search window in hours from now (default: 192 = 8 days) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It explicitly states the output fields and filtering capabilities, implying a read-only query operation. It does not mention edge cases like empty results or ordering, but for a search 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 three concise sentences: purpose, output fields, and filter options. It is front-loaded with the main action, has no redundant information, and every sentence adds value.
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?
For a tool with 4 parameters, 1 required, no output schema, and no annotations, the description provides enough context: it names return fields, filter capabilities, and the resource type. It does not specify sorting or defaults, but the schema covers defaults. Overall, it is complete for an agent to select and invoke the tool.
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 input schema has 100% coverage with descriptive parameter explanations. The description's mention of filtering by level, minimum spots, or time window mirrors the schema without adding new semantics. No additional parameter relationships or formats are disclosed, so the baseline score of 3 is appropriate.
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 finds available surf sessions at a pool, with a specific verb and resource. It also lists returned data (date, time, skill level, available spots, booking URL) and distinguishes itself from sibling tools (get_session_levels, list_pools) by focusing on session availability.
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 provides clear context for when to use the tool (finding sessions) and mentions filter options (level, minimum spots, time window). However, it does not explicitly mention alternatives or when not to use it, such as pointing to get_session_levels for level names or list_pools for pool IDs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_session_levelsAInspect
Get the available session difficulty levels for a surf pool (e.g. Beginner, Intermediate, Advanced). Use the level names with find_sessions.
| Name | Required | Description | Default |
|---|---|---|---|
| pool_id | Yes | Pool ID — use list_pools to get valid values |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. The verb 'Get' implies a safe, read-only operation, and the examples clarify the return content. However, it does not disclose potential behaviors such as error handling, authentication requirements, or whether the tool can fail for invalid pool IDs. This is adequate for a simple lookup but not fully transparent.
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 concise, consisting of two sentences. The first sentence states the tool's purpose with examples, and the second gives actionable guidance for using the output. No unnecessary words or repetition; it is well-structured and front-loaded.
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?
For a simple tool with one parameter and no output schema, the description is complete. It explains what is returned (difficulty levels with examples) and how to use the result with find_sessions. The parameter description also points to list_pools for valid inputs, covering the full workflow. 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?
Schema description coverage is 100%, with the pool_id parameter already documented as 'use list_pools to get valid values'. The description adds no further parameter-level detail, so the baseline of 3 applies. It does not introduce format, syntax, or additional constraints beyond what the schema provides.
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 purpose with a specific verb ('Get') and resource ('available session difficulty levels for a surf pool'), and provides concrete examples (Beginner, Intermediate, Advanced). It distinguishes itself from sibling tools by tying the output to 'find_sessions', making its unique role evident.
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 to 'Use the level names with find_sessions', giving clear downstream usage. It also indirectly references 'list_pools' via the parameter description for obtaining a valid pool_id. While it lacks explicit 'when-not-to-use' caveats, the guidance for this simple getter is strong and unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_poolsAInspect
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 parameters | |||
TDQS
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.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
3 tool updates
- First observed
find_sessions - First observed
get_session_levels - First observed
list_pools
Related MCP Connectors
7 day surf forecasts (wave, wind, period) for any coordinate or named surf spot.
Real-time surf, weather, trail status, volcano, ocean safety, and restaurants for Hawaii.
Surf trip planner: live 0-100 Strike Scores, 10-day forecasts, and trip picks for 1,100+ spots.
Manage your endurance training data and race preparation
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceSurf Park live session availability for booking and cancellation. Made by surfers for wave pools worldwideMIT
- FlicenseNot gradedqualityCmaintenanceAn MCP server that provides real-time surf intelligence, including wave quality scoring, beach discovery, session planning, and forecast analysis across 12+ global data sources. It turns AI assistants into surf-savvy copilots for finding the perfect wave.1-
- FlicenseNot gradedqualityCmaintenanceProvides surf forecast data including swell height, period, direction, and wind conditions for any location worldwide using the Open-Meteo Marine API. It also includes tools to find the best day to surf and integrates with MCP clients via a Python server.20-
- FlicenseNot gradedqualityBmaintenanceEnables checking live tide, swell, and wind data for La Jolla surf spots, with an AI agent that makes judgment calls like a local surfer.-
Glama MCP Gateway
Add one secure layer between your agents and this server.