Skip to main content
Glama

WindAI MCP Server

AI-powered wind resource assessment tools for Claude, ChatGPT, Cursor, and other AI assistants via the Model Context Protocol (MCP).

Get wind speed estimates, compare sites, and run full ML-powered wind farm assessments from any MCP-compatible AI assistant.

Website: windai.tech

Quick Start

Claude Desktop

Add to your Claude Desktop configuration (~/Library/Application Support/Claude/claude_desktop_config.json on macOS or %APPDATA%\Claude\claude_desktop_config.json on Windows):

{
  "mcpServers": {
    "windai": {
      "command": "npx",
      "args": ["-y", "windai-mcp"]
    }
  }
}

Restart Claude Desktop, then ask:

"What's the wind potential at latitude 40.5, longitude -105.2?"

Claude Code

claude mcp add windai -- npx -y windai-mcp

Cursor / Other MCP Clients

Add a similar configuration using npx -y windai-mcp as the command.

Global Install

npm install -g windai-mcp
windai-mcp

Related MCP server: WeatherAI MCP

Tools

get_wind_estimate (Free)

Get an approximate wind resource estimate for any location on Earth. No API key required.

Input:

  • latitude (required): Latitude (-90 to 90)

  • longitude (required): Longitude (-180 to 180)

  • hub_height (optional): Hub height in meters (default: 100)

Returns: Mean wind speed, IEC wind class, wind quality assessment, monthly breakdown, wind power density.

Example prompt: "Estimate the wind resource at 52.5N, 1.8E at 120m hub height"

get_wind_farm_assessment (Requires API Key)

Run a full AI-powered wind resource assessment using WindAI's deep learning model (391-feature neural network trained on 10M+ hourly observations from 289 wind farms).

Input:

  • latitude (required): Latitude

  • longitude (required): Longitude

  • api_key (required): WindAI API key (starts with wai_)

  • hub_height (optional): Hub height in meters

  • rated_power (optional): Turbine rated power in kW

  • rotor_diameter (optional): Rotor diameter in meters

  • turbines_count (optional): Number of turbines

  • Plus: swept_area, total_power

Returns: 8,760+ hourly capacity factors, AEP, P50/P90, monthly and diurnal profiles.

Get an API key: windai.tech/account

compare_wind_sites (Free)

Compare wind potential at multiple locations side by side. Up to 5 locations.

Input:

  • locations (required): Array of { latitude, longitude, name? } objects (2-5 sites)

Returns: Ranked comparison table sorted by wind quality.

Example prompt: "Compare wind potential at these sites: Denver CO (39.7, -105.0), Amarillo TX (35.2, -101.8), and Cheyenne WY (41.1, -104.8)"

get_windai_pricing (Free)

Get current pricing information for WindAI assessments.

Returns: Credit packages, per-site pricing, what's included, and signup links.

get_windai_model_info (Free)

Get information about WindAI's ML model, training data, and accuracy metrics.

Returns: Architecture details, training data stats, accuracy metrics, validation methodology.

Pricing

Package

Credits

Total

Per Site

Savings

Single

1

$49.99

$49.99

--

Starter

10

$449.90

$44.99

10%

Pro

25

$999.75

$39.99

20%

Enterprise

100

$3,499.00

$34.99

30%

Buy credits at windai.tech/credits.

Data Sources

  • Free tools: Open-Meteo ERA5 Historical Reanalysis (2021-2023), no API key needed

  • Paid assessments: WindAI's proprietary deep learning model using ERA5, MERRA2, Copernicus DEM, and turbine specs

Development

git clone <repo-url>
cd windai-mcp
npm install
npm run dev

Build for production:

npm run build
npm start

License

MIT

Available Tools

5 tools
compare_wind_sitesA

Compare wind potential at multiple locations side by side. Up to 5 locations. Returns a ranked comparison table with mean wind speed, IEC wind class, wind quality, and wind power density for each site. Free, no API key required.

ParametersJSON Schema
NameRequiredDescriptionDefault
locationsYesArray of locations to compare (max 5)

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, description carries full burden and discloses: output format (ranked table with specific metrics like IEC wind class), constraints (max 5 sites), and auth requirements (free, no API key). Could improve by mentioning rate limits or error conditions.

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?

Four efficient sentences front-loaded with purpose ('Compare wind potential...'), followed by constraints, output specification, and auth info. No redundant or wasted text; every clause delivers actionable information.

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?

Excellent coverage for complexity level: explains detailed output metrics (compensating for missing output schema), clarifies the comparison/ranking nature, and documents auth. Minor gap: doesn't explain validation behavior for edge cases (e.g., invalid coordinates).

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% (locations array fully documented with lat/lon/name). Description reinforces the 'up to 5' constraint and 'compare' purpose but does not add syntax examples, formatting details, or semantic context beyond what the schema already 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 uses specific verb 'Compare' with resource 'wind potential' and clearly distinguishes from siblings via 'multiple locations side by side' and 'ranked comparison table', differentiating it from single-site tools like get_wind_estimate.

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?

Provides clear context that this is for multi-site analysis (2-5 locations) with 'Up to 5 locations', establishing when to use it versus single-site alternatives. Lacks explicit naming of sibling alternatives or explicit 'when not to use' exclusions.

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

get_windai_model_infoA

Get information about WindAI's machine learning model, including architecture, training data, accuracy metrics, and validation results. Useful for understanding the methodology behind WindAI predictions.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. It discloses what information is returned (architecture, training data, accuracy metrics, validation results) but omits explicit safety declarations (read-only status), authentication requirements, or caching behavior. 'Get information' implies read-only but doesn't confirm it explicitly.

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 well-structured sentences with zero waste. First sentence defines the operation and return content; second provides usage context. Information is front-loaded and appropriately sized.

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?

No output schema exists, but the description compensates by listing specific return fields (architecture, training data, etc.). Given the tool's simplicity (no params, no annotations), this is sufficiently complete, though explicit mention of read-only safety would strengthen it further.

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?

Zero parameters present. Per scoring rules, 0 params = baseline 4. The description appropriately requires no additional parameter context since the schema is empty.

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 uses specific verb 'Get information' and clearly identifies the resource as 'WindAI's machine learning model'. It distinguishes from siblings (pricing, estimates, assessments) by focusing on model metadata like architecture and training data rather than operational wind 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?

Provides clear context with 'Useful for understanding the methodology behind WindAI predictions', indicating when to select this tool. However, it lacks explicit exclusions or named alternatives (e.g., 'Do not use for predictions, use get_wind_estimate').

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

get_windai_pricingA

Get WindAI pricing information for wind resource assessments. Shows available credit packages, what's included in each assessment, and how to get started.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations provided, the description carries full burden and successfully discloses return content structure: available credit packages, assessment inclusions, and onboarding steps. Uses 'Get' and 'Shows' implying safe read-only behavior, though it omits rate limits or caching details.

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 zero waste. First sentence establishes purpose and scope; second sentence details specific return contents (credit packages, inclusions, getting started). Front-loaded and efficient.

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?

Appropriately complete for a zero-parameter lookup tool. Despite no output schema, the description enumerates the three key data categories returned (packages, inclusions, onboarding). Minor gap: does not indicate if authentication is required or if pricing is static/dynamic.

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?

Zero parameters required. Per guidelines, 0 params = baseline 4. The description appropriately focuses on return value semantics rather than inventing parameter documentation.

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?

Specific verb 'Get' paired with clear resource 'WindAI pricing information for wind resource assessments.' Effectively distinguishes from siblings: compare_wind_sites (comparison), get_wind_estimate (data), get_wind_farm_assessment (execution), and get_windai_model_info (technical specs).

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?

Implies usage context (checking pricing/credits before purchasing assessments) by mentioning 'credit packages' and 'how to get started,' but lacks explicit guidance on when to call this versus operational tools like get_wind_farm_assessment or whether it should be called before spending credits.

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

get_wind_estimateA

Get an approximate wind resource estimate for any location on Earth. Returns mean wind speed, IEC wind class, wind quality assessment, monthly wind speeds, and wind power density. Uses 3 years of historical reanalysis data (2021-2023). Free, no API key required.

ParametersJSON Schema
NameRequiredDescriptionDefault
latitudeYesLatitude of the site (-90 to 90)
longitudeYesLongitude of the site (-180 to 180)
hub_heightNoHub height in meters (default: 100). Typical range: 60-170m.

TDQS

A4/5.0
Behavior4/5

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

No annotations provided, so description carries full burden. Effectively discloses data source (3 years 2021-2023 reanalysis), authentication model (free, no API key), and return payload structure (mean speed, IEC class, etc.). Lacks rate limits, error behavior, or latency expectations.

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?

Four sentences with zero waste: purpose, return values, data provenance, and authentication. Front-loaded with core verb and scope. Every sentence adds distinct value not present in structured fields.

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?

Compensates well for missing output schema by enumerating return fields. Addresses auth/data source gaps left by missing annotations. Could improve with error handling or rate limit notes, but adequately complete for a free geospatial lookup tool.

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 description coverage is 100%, documenting ranges for latitude/longitude and defaults/typical ranges for hub_height. Description adds no parameter-specific guidance beyond implying global coverage, so baseline 3 is appropriate.

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 opens with specific verb 'Get' + resource 'approximate wind resource estimate' + scope 'any location on Earth'. Clearly distinguishes from siblings: contrasted with compare_wind_sites (comparison), get_wind_farm_assessment (detailed project assessment), and pricing/model_info utilities.

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?

Provides implicit differentiation through specificity ('approximate', 'any location', 'historical reanalysis data'), but lacks explicit when-to-use guidance versus get_wind_farm_assessment or compare_wind_sites. No mention of prerequisites or exclusion criteria.

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

get_wind_farm_assessmentA

Run a full WindAI AI-powered wind resource assessment using our deep learning model trained on 10M+ hourly observations from 289 wind farms. Returns hourly capacity factors (8,760+ hours), AEP, P50/P90, monthly and diurnal profiles, and comprehensive wind farm performance metrics. Requires a WindAI API key (get one at https://windai.tech/account).

ParametersJSON Schema
NameRequiredDescriptionDefault
latitudeYesLatitude of the wind farm site (-90 to 90)
longitudeYesLongitude of the wind farm site (-180 to 180)
hub_heightNoTurbine hub height in meters (default: 100)
rated_powerNoTurbine rated power in kW (e.g., 3000 for a 3 MW turbine)
rotor_diameterNoRotor diameter in meters (e.g., 126)
swept_areaNoSwept area in m2. If not provided, calculated from rotor_diameter.
turbines_countNoNumber of turbines in the wind farm (default: 1)
total_powerNoTotal farm rated power in kW. If not provided, calculated as rated_power * turbines_count.
api_keyYesWindAI API key (starts with 'wai_'). Get one at https://windai.tech/account

TDQS

A3.8/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. It discloses the ML model nature (deep learning, training data) and auth requirements (API key). However, it omits critical operational traits: read-only status, expected latency (likely slow for ML inference), cost/credits, rate limits, or whether results are cached/persisted.

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 zero waste: sentence 1 defines the action and model context, sentence 2 details outputs (compensating for lack of output schema), sentence 3 states the auth requirement. Every clause earns its place.

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 complex 9-parameter tool with no output schema and no annotations, the description adequately compensates by listing specific return metrics (hourly CFs, AEP, P50/P90). However, it could improve by describing the response structure format or error conditions given the lack of output schema.

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 description coverage is 100%, establishing a baseline of 3. The description mentions the API key requirement (redundant with schema) but does not add semantic context for coordinate precision, turbine parameter relationships, or validation rules beyond what the schema already documents.

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?

Excellent specificity: 'Run a full WindAI AI-powered wind resource assessment' provides clear verb, resource, and scope. The detailed output list (AEP, P50/P90, diurnal profiles) distinguishes this from sibling 'get_wind_estimate' and implies this is the comprehensive option versus the quick estimate alternative.

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 term 'full' implies use for comprehensive analysis versus quick checks, and the API key requirement gates usage, but there is no explicit guidance on when to choose this over 'get_wind_estimate' or 'compare_wind_sites'. No prerequisites (e.g., valid coordinates) or exclusions are stated.

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.

  1. 5 tool updatesv1.0.0
    • First observedcompare_wind_sites
    • First observedget_wind_estimate
    • First observedget_wind_farm_assessment
    • First observedget_windai_model_info
    • First observedget_windai_pricing

TDQS

A4.1/5.0

Scored across 5 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: get_wind_estimate provides free approximate data, get_wind_farm_assessment provides detailed paid analysis, compare_wind_sites handles multi-location comparison, and the remaining two provide service metadata (pricing, model info). No functional overlap exists.

Naming Consistency4/5

All tools use snake_case with verb_noun structure (get_, compare_). The 'windai' prefix appears only on meta-tools (model_info, pricing) distinguishing service information from wind data tools, which is logical but slightly unconventional.

Tool Count5/5

Five tools is an ideal count for this specialized domain: three core wind assessment functions (quick estimate, detailed assessment, comparison) plus two supporting tools (pricing, methodology). No bloat, no missing essentials.

Completeness4/5

Covers the core wind resource assessment workflow well (screening → detailed analysis → comparison). Minor gaps include no account/credit balance check tool (relevant since assessments require paid credits) and no ability to retrieve past assessment history.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    An MCP server that enables AI assistants to look up solar permitting authorities, estimate solar production via PVWatts, and retrieve irradiance data. It streamlines the creation of solar-aware workflows by integrating industry-standard APIs like NREL.
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    EU Crop Intelligence MCP Server — Yield forecasts, weather analysis, and phenology models for 15 countries. AI agent-native, multi-source intelligence (NASA POWER, Eurostat, Open-Meteo).
    MIT