Skip to main content
Glama
jwillert

windscout-mcp

by jwillert

windscout-mcp

MCP server for wind forecasts, live measurements, wave forecasts, and tides. Built for kite and surf spot checks via AI assistants.

Tools

Tool

Source

Description

search_spots

Windfinder

Find spots by name or slug

get_live_measurements

Windfinder

Real-time wind from weather stations

get_forecast

Open-Meteo

Hourly wind + weather forecast (up to 16 days)

get_marine_forecast

Open-Meteo

Wave height, period, and direction (up to 7 days)

get_tides

Windfinder

High/low tide times and heights for coastal spots

All wind speeds are returned in kn, km/h, and m/s.

Related MCP server: Surf Forecast MCP

Usage

Claude Code

claude mcp add windforecast npx windscout-mcp

Claude Desktop

Add to ~/.config/claude/claude_desktop_config.json:

{
  "mcpServers": {
    "windforecast": {
      "command": "npx",
      "args": ["windscout-mcp"]
    }
  }
}

Other MCP clients

npx windscout-mcp

The server communicates over stdio using the Model Context Protocol.

Data Sources

  • Open-Meteo -- Free weather API, no auth required. Used for forecast and marine data.

  • Windfinder -- Wind and weather community. Used for spot search, live station data, and tides via HTML scraping.

Development

npm install
npm test          # run unit tests
npm run build     # compile TypeScript
npm run dev       # run with tsx (hot reload)

License

MIT

Available Tools

5 tools
get_forecastA

Get hourly wind and weather forecast for up to 16 days. Uses Open-Meteo. Wind speed provided in kn, km/h, and m/s.

ParametersJSON Schema
NameRequiredDescriptionDefault
latYesLatitude
lonYesLongitude
daysNoNumber of forecast days (default: 7)

TDQS

A4/5.0
Behavior4/5

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

With no annotations, the description carries the full burden. It discloses the data source (Open-Meteo), hourly granularity, up to 16 days, and wind speed units. This gives a good understanding of output characteristics, though it does not mention idempotency or error handling.

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?

Three sentences with no wasted words. The first sentence states the core function, the second the data source, and the third provides specific output details. Well-structured and front-loaded.

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

Completeness4/5

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

For a tool with 3 well-documented parameters and no output schema, the description covers key aspects: time range, data source, and wind speed units. It could be more detailed about other forecast elements (e.g., temperature), but it is sufficient for selection.

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

Parameters3/5

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

All parameters (lat, lon, days) have descriptions in the input schema, so baseline is 3. The description adds context about wind speed units but does not enhance parameter understanding beyond the schema.

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 clearly states the tool retrieves hourly wind and weather forecasts for up to 16 days. The mention of 'Uses Open-Meteo' and the specific wind speed units differentiates it from sibling tools like get_live_measurements (current) and get_marine_forecast (marine).

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?

The description implies usage for general wind and weather forecasting but does not explicitly state when to choose this over alternatives such as get_live_measurements or get_marine_forecast. No exclusions or context are provided.

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

get_live_measurementsA

Get current real-time wind measurements from a Windfinder weather station. Requires spotId from search_spots.

ParametersJSON Schema
NameRequiredDescriptionDefault
spotIdYesWindfinder spot slug, e.g. "tarifa". Obtain from search_spots.

TDQS

A3.8/5.0
Behavior2/5

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

No annotations provided, so description carries full burden. It states it's a read operation but lacks details on authentication, rate limits, or any side effects. Minimal disclosure beyond purpose.

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?

Two sentences, no wasted words. Front-loaded with the action and resource. Efficient and to the point.

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

Completeness4/5

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

For a simple one-parameter tool with no output schema, the description covers the essential: what it does and prerequisite. Lacks return format details but is adequate for basic usage.

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

Parameters3/5

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

Schema coverage is 100% with description for spotId. The description reinforces the schema by mentioning the prerequisite source. Does not add significant new meaning beyond what schema provides.

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?

Description clearly states it gets current real-time wind measurements from a Windfinder weather station, specifying the resource and action. It distinguishes from sibling tools like get_forecast by focusing on live data.

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?

Explicitly says requires spotId from search_spots, providing clear when-to-use context. Does not explicitly state when not to use, but implies this is for real-time data versus forecasts.

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

get_marine_forecastA

Get hourly wave and swell forecast for up to 7 days. Uses Open-Meteo Marine API. Includes wave height (m), period (s), and direction.

ParametersJSON Schema
NameRequiredDescriptionDefault
latYesLatitude
lonYesLongitude
daysNoNumber of forecast days (default: 7)

TDQS

A3.5/5.0
Behavior3/5

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

No annotations are provided, so the description must carry the full behavioral burden. It adds value by mentioning the API source (Open-Meteo Marine API) and the data included (wave height, period, direction), but it omits important traits like auth requirements, rate limits, or whether the operation is read-only. The description is adequate but not thorough.

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?

Two sentences, no fluff, front-loaded with the main action. Every sentence adds value: first defines the tool, second provides context (API) and output specifics. Excellent conciseness.

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

Completeness3/5

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

The tool is simple (3 parameters, no output schema), so the description is largely sufficient for basic use. However, it lacks guidance on usage scenarios and behavioral details that would help an agent decide correctly. With no annotations, the description could be more complete.

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

Parameters3/5

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

Schema coverage is 100%, so the schema already documents all parameters. The description adds no additional parameter semantics beyond what the schema provides (e.g., format, constraints, or examples). Baseline score of 3 is appropriate given high schema coverage.

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 clearly states the tool's purpose: 'Get hourly wave and swell forecast for up to 7 days.' It specifies the resource (marine forecast) and distinguishes from siblings like get_forecast and get_tides by focusing on wave/swell data. The verb 'Get' is specific and the resource is well-defined.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool vs alternatives. Sibling tools are listed in context but not referenced; no explicit 'when-to-use' or 'when-not-to-use' instructions are given. The agent must infer usage from the name and description alone.

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

get_tidesA

Get high/low tide times and heights for a coastal Windfinder spot. Requires spotId from search_spots. Returns empty for inland spots.

ParametersJSON Schema
NameRequiredDescriptionDefault
spotIdYesWindfinder spot slug, e.g. "langeoog". Obtain from search_spots. Tides are only available for coastal spots.
daysNoNumber of days (default: 3)

TDQS

A4.2/5.0
Behavior3/5

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

With no annotations provided, the description carries full burden. It discloses that the tool returns empty for inland spots and requires spotId from search_spots. However, it does not detail other behavioral aspects like error handling, rate limits, or required permissions.

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 extremely concise, with two focused sentences that front-load the main purpose. No word is wasted.

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

Completeness4/5

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

For a simple read tool with full parameter coverage and no output schema, the description sufficiently hints at the return values (high/low tide times and heights) and the edge case (inland spots). It lacks explicit return structure but is adequate.

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?

The input schema fully describes both parameters (spotId and days) with details. The description adds value by stating that spotId must come from search_spots and that tides are only for coastal spots, providing context beyond the schema.

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 clearly states the tool retrieves high/low tide times and heights for a coastal Windfinder spot. It distinguishes from siblings like get_forecast by specifying the requirement of spotId from search_spots and the limitation to coastal spots.

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 explains when to use the tool (for a coastal spot with spotId from search_spots) and when not (inland spots return empty). However, it does not explicitly mention alternative tools for inland spots.

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

search_spotsA

Search for a wind spot by Windfinder slug or name. Returns spot info including coordinates. Call this first to get lat/lon and spotId for other tools.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesWindfinder spot slug or name, e.g. "tarifa" or "sylt"

TDQS

A4.6/5.0
Behavior4/5

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

With no annotations, the description carries full burden. It discloses that the tool is a search returning coordinates, but does not mention behavior for missing spots or authentication needs. Sufficient for a simple search tool.

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?

Two sentences with no wasted words. Front-loaded with the core action and purpose.

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

Completeness4/5

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

For a simple search tool with one parameter and no output schema, the description covers the key aspects: what it searches, what it returns, and when to use it. Minor lack of detail on result format.

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% and the description adds examples ('tarifa', 'sylt') and clarifies the parameter is a Windfinder slug or name, adding value beyond the schema.

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 clearly states the tool searches for a wind spot by slug or name and returns spot info including coordinates. It contrasts with sibling tools by indicating this should be called first to obtain parameters for others.

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

Usage Guidelines5/5

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

Provides explicit guidance: 'Call this first to get lat/lon and spotId for other tools.' This tells the agent when to use it and implies that other tools depend on its output.

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. Dates show when Glama detected each change.

  1. 5 tool updatesv1.0.0
    • First observedget_forecast
    • First observedget_live_measurements
    • First observedget_marine_forecast
    • First observedget_tides
    • First observedsearch_spots

TDQS

A4.1/5.0
Disambiguation5/5

Each tool targets a distinct aspect: general forecast, live measurements, marine forecast, tides, and spot search. There is no overlap in functionality, and the descriptions clearly differentiate them.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern with snake_case: get_forecast, get_live_measurements, get_marine_forecast, get_tides, and search_spots. The only minor deviation is search instead of get, but it is a different action (search vs retrieve) and still fits the pattern.

Tool Count5/5

With 5 tools, the server is well-scoped for a wind and weather information service. Each tool provides essential functionality without unnecessary bloat or gaps.

Completeness4/5

The set covers key use cases: spot search, real-time wind, hourly forecast, marine forecast, and tides. A minor gap is the lack of historical data or detailed spot metadata beyond coordinates, but the core workflows are supported.

Maintenance

ActivityStale
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/jwillert/windscout-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server