windai-mcp
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-mcpCursor / Other MCP Clients
Add a similar configuration using npx -y windai-mcp as the command.
Global Install
npm install -g windai-mcp
windai-mcpRelated 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): Latitudelongitude(required): Longitudeapi_key(required): WindAI API key (starts withwai_)hub_height(optional): Hub height in metersrated_power(optional): Turbine rated power in kWrotor_diameter(optional): Rotor diameter in metersturbines_count(optional): Number of turbinesPlus:
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 devBuild for production:
npm run build
npm startLinks
License
MIT
Available Tools
5 toolscompare_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.
| Name | Required | Description | Default |
|---|---|---|---|
| locations | Yes | Array of locations to compare (max 5) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| 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 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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| latitude | Yes | Latitude of the site (-90 to 90) | |
| longitude | Yes | Longitude of the site (-180 to 180) | |
| hub_height | No | Hub height in meters (default: 100). Typical range: 60-170m. |
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| latitude | Yes | Latitude of the wind farm site (-90 to 90) | |
| longitude | Yes | Longitude of the wind farm site (-180 to 180) | |
| hub_height | No | Turbine hub height in meters (default: 100) | |
| rated_power | No | Turbine rated power in kW (e.g., 3000 for a 3 MW turbine) | |
| rotor_diameter | No | Rotor diameter in meters (e.g., 126) | |
| swept_area | No | Swept area in m2. If not provided, calculated from rotor_diameter. | |
| turbines_count | No | Number of turbines in the wind farm (default: 1) | |
| total_power | No | Total farm rated power in kW. If not provided, calculated as rated_power * turbines_count. | |
| api_key | Yes | WindAI API key (starts with 'wai_'). Get one at https://windai.tech/account |
TDQS
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.
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.
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.
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.
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.
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.
5 tool updates
v1.0.0- First observed
compare_wind_sites - First observed
get_wind_estimate - First observed
get_wind_farm_assessment - First observed
get_windai_model_info - First observed
get_windai_pricing
TDQS
Scored across 5 tools
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.
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.
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.
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
Related MCP Connectors
Geospatial AI MCP server — satellite imagery, embeddings, weather, GNS governance
NASA POWER MCP — Prediction of Worldwide Energy Resources
Open-Meteo MCP — weather forecast + historical reanalysis + sister APIs
Built-environment forecasts, public benchmarks, and permit or zoning readiness through remote MCP.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceAn 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

WeatherAI MCPofficial
AlicenseNot gradedqualityDmaintenanceWeatherAI MCP server — 11 live weather tools for Claude Desktop, Cursor, Windsurf, and any MCP-compatible AI assistant43 npmMIT- AlicenseNot gradedqualityBmaintenanceEU 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
- AlicenseNot gradedqualityFmaintenanceGeolocation AI - MCP server providing AI-powered tools and automation by MEOK AI Labs14 npmMIT