epwforge-mcp
Server Details
EPW/DDY weather files - TMY/AMY/CMIP6 morphing, UHI, events, smoke. 3 of 4 tools anon-free.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- guzz-labs/epwforge-mcp
- GitHub Stars
- 0
- Server Listing
- epwforge-mcp
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Average 4.4/5 across 5 of 5 tools scored. Lowest: 3.9/5.
Tools are mostly distinct: 'analyze_weather' returns numerical stats, 'chart_weather' visualizes, 'explore_design_conditions' offers interactive exploration, 'find_station' searches stations, and 'generate_weather_file' creates EPW files. However, 'analyze_weather' and 'explore_design_conditions' both provide design conditions, which could cause confusion about which to use for single-site analysis.
All tool names follow a consistent verb_noun pattern in snake_case: analyze_weather, chart_weather, explore_design_conditions, find_station, generate_weather_file. There is no mixing of conventions, making the naming predictable.
With 5 tools, the server is well-scoped for its purpose—covering analysis, visualization, interactive exploration, station lookup, and file generation. Each tool serves a clear function without unnecessary duplication.
The tool set covers the key workflows: finding stations, analyzing and charting weather data, exploring interactively, and generating files. A minor gap is the lack of a tool to directly upload custom EPW files, but the 'config' mode in some tools allows synthetic generation. Overall, it handles common tasks without serious omissions.
Available Tools
5 toolsanalyze_weatherAInspect
Compute design conditions, HDD/CDD, monthly stats, and peak heating/cooling days for one or more EPW files. Accepts a url (existing EPW), urls (compare 2+), or config (synthesize on the fly with morphing/UHI/events/smoke). Config mode runs the full generation pipeline server-side but returns only stats — never the EPW content. Token-saver: pass compact: true to get a ~10-field headline response (~100 tokens) instead of the full ~800-token payload. Use compact for sanity-checking, dashboards, or when chaining many calls; full when you need monthly arrays / peak days / full ASHRAE. Optional include_full_ashrae adds ASHRAE 0.4/1/2% cooling + 99.6/99% heating design conditions with mean coincident dewpoint. Optional include_improbability (config mode) adds a stress-test score. Optional include_idf adds ready-to-paste EnergyPlus SizingPeriod:DesignDay objects. Optional units ('imperial' default | 'metric'). Presentation: when calling with urls (multiple files), the response includes a comparisons array — render it as a markdown table to the user. Lead with the headline delta, not the raw data. No auth required; no credits charged.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | EPW URL to analyze (single file) | |
| urls | No | Multiple EPW URLs for comparison (first = baseline). Max 10. | |
| units | No | Output units (default: imperial). When 'metric', temperatures are °C, wind m/s, precip mm, distance km/m. | |
| config | No | Synthesize an EPW server-side and analyze it. Stats only — file never returned. lat + lon required. Same morph/UHI/event params as generate_weather_file. | |
| compact | No | Return a ~10-field headline-only response (~100 tokens) instead of the full ~800-token payload. Drops monthly arrays, peak days, n_hours, weather_basis blob. Good for sanity checks, dashboards, batched chained calls. Set to false (default) when you need the full payload. | |
| include_idf | No | Add ready-to-paste EnergyPlus SizingPeriod:DesignDay IDF objects to the response. AEC-facing. Ignored when compact=true. | |
| include_full_ashrae | No | Add ASHRAE 0.4%/1%/2% cooling DB + 99.6%/99% heating DB design conditions to the response. Free. Ignored when compact=true. | |
| include_improbability | No | Add EPWForge's stress-test improbability score (config mode only). Indicates how extreme the synthesized scenario is vs historical baselines. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, but description fully discloses behavior: config mode synthesizes server-side but returns only stats, no EPW content; token-saver compact option; no auth/credits required; presentation guidance for comparisons. All relevant behavioral traits are covered.
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?
Description is lengthy but well-structured with front-loaded purpose and logical grouping. Every sentence adds unique value, though some details (e.g., event_duration ranges) could be moved to parameter descriptions to reduce verbosity.
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?
Despite no output schema, description explains response structure (comparisons array, markdown table rendering, compact vs full payload). All optional flags are documented with their effects. The tool's complexity is fully addressed.
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%, but description adds significant value: explains compact token savings (~100 vs ~800 tokens), config mode limitations, include options (idf, full_ashrae, improbability), units default, and urls first-as-baseline. This goes well beyond basic schema definitions.
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 clearly states the tool computes design conditions, HDD/CDD, monthly stats, and peak days for EPW files. It distinguishes from siblings like chart_weather (charts) and generate_weather_file (generates EPWs) by specifying analysis of existing or synthesized files.
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 modes (url, urls, config) with appropriate contexts, and guidance on compact vs full output. Lacks explicit when-not-to-use or alternatives to siblings, but the modes cover the intended use cases sufficiently.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chart_weatherAInspect
Render an SVG chart from EPW data. Eight chart types: diurnal (~10 KB, monthly hourly profile), temp_carpet (heatmap of hour × day-of-year — ~30 KB preview / ~150 KB full), wind_rose (~12 KB, polar bars by direction × speed), monthly_boxplot (~6 KB, Q1/median/Q3 + whiskers per month), utci_carpet (~90 KB, outdoor heat-stress hour × day, colored by UTCI category — Bröde 2012, shaded Tmrt), economizer_carpet (~90 KB, air-side economizer free / integrated / locked-out hour × day under ASHRAE 90.1 high-limit), pv_tilt_azimuth (~60 KB, annual PV generation across full tilt × azimuth space, isotropic-sky POA at lat from EPW header — optimum orientation marked), solar_under_events (~12 KB, weekly GHI of the modified scenario vs the no-overlay reference; bands color event-affected weeks. Requires config — server runs the pipeline twice, with and without overlays), comparison (~10 KB, design-condition deltas across EPWs). Accepts url (single), urls (2+ for comparison), or config (synthesize on the fly). Config mode is anon-safe — runs pipeline, returns SVG only. No auth required. Token budget: SVGs are returned inline by default. Large outputs (>50 KB) auto-upload to Blob storage (when configured) and return a URL instead, keeping your context lean. Always check svg_size_kb in the response. Presentation: when handing the chart to the user, just link or embed it — don't narrate what's in it. Let the chart speak.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | EPW URL (single-EPW charts: diurnal, temp_carpet, wind_rose, monthly_boxplot, utci_carpet, economizer_carpet, pv_tilt_azimuth) | |
| urls | No | EPW URLs for chart_type=comparison (first = baseline) | |
| config | No | Synthesize an EPW and chart it. Same params as generate_weather_file. SVG only — no file delivery. | |
| pv_tilt | No | pv_tilt_azimuth only. Optional — marks the user's planned tilt (deg, 0=horizontal) on the heatmap alongside the optimum. | |
| econ_mode | No | economizer_carpet only. 'drybulb' (default) limits OA by Tdb; 'enthalpy' limits by moist-air enthalpy — more honest in humid climates (captures latent load). | |
| chart_type | No | Default: diurnal | |
| pv_azimuth | No | pv_tilt_azimuth only. Optional — marks the user's planned compass azimuth (deg, 0=N, 180=S) on the heatmap. | |
| resolution | No | temp_carpet only. 'preview' (default) ~30 KB with 32 color buckets — visually identical at typical render sizes. 'full' ~150 KB with per-cell rgb() — use only when saving to file or when you specifically need exact color fidelity. | |
| econ_high_limit_f | No | economizer_carpet only. ASHRAE 90.1 high-limit shutoff. Defaults: 75°F (drybulb mode) or 28 BTU/lb (enthalpy mode). | |
| econ_supply_air_f | No | economizer_carpet only. Supply-air temperature setpoint (°F). Default 55. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses auth requirements (none), token budget auto-upload, and chart sizes. Mentions that config mode is anon-safe. Does not hide behavioral traits. With no annotations, this is thorough.
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?
While lengthy, every sentence provides actionable information. Structured logically: purpose, chart types, input guidance, token budget, presentation. Could be slightly more concise but not wasteful.
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?
Comprehensive for a tool with 10 parameters and multiple modes. Covers token budget, auth, and sizing. Lacks explicit error handling or return format details beyond SVG/URL, but given complexity, it's well-done.
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?
Full schema coverage with 100% parameter descriptions. Tool description adds significant context: chart sizes, usage scenarios for each parameter, and warnings (e.g., event_duration min 14 for stress-test). Exceeds baseline of 3.
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 'Render' and resource 'SVG chart from EPW data'. Lists all chart types with sizes and brief descriptions. Clearly differentiated from sibling tools that analyze, explore, find stations, or generate weather files.
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?
Clearly states when to use url, urls, or config, and which chart types apply. Provides guidelines on token budget and presentation. Lacks explicit exclusions or comparison to sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
explore_design_conditionsAInspect
Interactive single-site design-conditions explorer. Returns full ASHRAE design conditions + diurnal chart for the requested scenario. In MCP Apps-capable hosts (Claude Desktop, ChatGPT, VS Code, Goose), the response renders as a widget with sliders for SSP / year / percentile / UHI — dragging a slider re-calls this tool live. Use when a user wants to interactively tune a single site. For multi-site comparison, use analyze_weather(urls=[...]) instead. Defaults to present-day TMY (no morph) — pass ssp+year for future scenarios. P75 default percentile is design-realistic; P50 underestimates the tail. No auth required.
| Name | Required | Description | Default |
|---|---|---|---|
| lat | Yes | Latitude, decimal degrees | |
| lon | Yes | Longitude, decimal degrees | |
| ssp | No | CMIP6 emission scenario. Omit for present-day TMY. ssp585 was deprecated per CMIP7 (deemed implausible); use ssp370 as the high-end scenario. | |
| uhi | No | Urban Heat Island preset | |
| year | No | Future horizon. Pair with ssp. | |
| percentile | No | Warming percentile. P75 design-realistic; P50 median. | |
| allow_custom_location | No | Required when no OneBuilding station within 50 km |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Despite no annotations, the description thoroughly explains interactive widget behavior, live re-calling on slider drag, default present-day TMY, percentile implications, and that no auth is required.
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?
Well-structured with front-loaded purpose, then widget behavior, then sibling reference, then defaults. Concise enough, though could be slightly shorter without losing clarity.
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?
Covers output (ASHRAE design conditions + diurnal chart), interactive behavior, and defaults. Missing explicit mention of the 'allow_custom_location' parameter and response details outside the widget, but given the widget behavior, this is adequate.
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%, so baseline is 3. The description adds value by explaining the default percentile (P75 design-realistic), that ssp585 is deprecated, and the default scenario (TMY).
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 verb 'explore' and the resource 'design conditions' for a single site, and distinguishes itself from the sibling tool analyze_weather for multi-site comparison.
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?
Explicitly says 'Use when a user wants to interactively tune a single site' and provides an alternative: 'For multi-site comparison, use analyze_weather(urls=[...]) instead.' Also covers default behavior and authentication.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_stationAInspect
Search the GuzzStations catalog (17,000+ weather stations worldwide, self-hosted mirror of OneBuilding TMYx). Returns matching stations with EPW URLs ready to pass to analyze_weather or chart_weather. Optionally enriches with AMY extreme years (hottest / coldest / most-humid on record) and CMIP6 climate deltas. No auth required.
| Name | Required | Description | Default |
|---|---|---|---|
| lat | No | Latitude — when set, results sorted by proximity | |
| lon | No | ||
| ssp | No | SSP scenario (only used with include_climate_deltas). ssp585 was deprecated per CMIP7 (deemed implausible); use ssp370 as the high-end scenario. | |
| year | No | Future horizon (only used with include_climate_deltas) | |
| query | No | Search by city / state (case-insensitive partial match) | |
| country | No | ISO 3-letter country code filter, e.g. 'USA', 'GBR' | |
| percentile | No | Warming percentile (only used with include_climate_deltas, default 50) | |
| max_results | No | Max stations (default: 10) | |
| include_amy_extremes | No | When true and lat+lon are set, also returns the hottest / coldest / most-humid years on record (per ERA5, 1950–present). Useful for picking AMY basis years. | |
| include_climate_deltas | No | When true with lat+lon+ssp+year, also returns the monthly CMIP6 delta-T per month and per variable. Lets agents reason about specific shifts before generating files. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states that no authentication is required and describes optional enrichment conditions. However, it does not disclose error handling, rate limits, or what happens when no stations match. For a search tool, the transparency is adequate but not comprehensive.
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 four sentences, concisely covering purpose, optional features, and auth requirements. It front-loads the main function and then details enrichments. Every sentence adds value, though there is a minor redundancy in mentioning 'no auth required' after the primary purpose.
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?
Given the complexity of 10 parameters and no output schema, the description explains the optional enrichment conditions and links to sibling tools. It does not describe the return format or pagination, but the mention of 'EPW URLs ready to pass to...' implies the output structure. Reasonably complete for a search 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?
With 90% schema description coverage, the schema already defines parameter semantics. The description adds context about the catalog (self-hosted mirror) and the relationship to sibling tools, but does not clarify parameter syntax or constraints beyond what the schema provides. Baseline score of 3 is appropriate due to high schema coverage.
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 it searches a catalog of weather stations, returns EPW URLs for use with sibling tools, and optionally enriches with AMY extremes and CMIP6 deltas. It distinguishes itself from siblings by specifying the output's downstream use.
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 says to use this tool for searching stations and optionally enriching results. It also mentions passing results to analyze_weather or chart_weather, providing context for when to use siblings. However, it does not explicitly state when not to use this tool or suggest alternatives like explore_design_conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_weather_fileAInspect
Generate and deliver an EPW or DDY file. The only paid tool — charges credits per call: 1 for a single file, 2 for a 4-file scenarios batch, 10 for a per-model CMIP6 ensemble. Requires auth (Bearer API key or OAuth). Free tier: 5 welcome credits at signup. For preview/analysis without download, use analyze_weather or chart_weather with config instead.
| Name | Required | Description | Default |
|---|---|---|---|
| lat | Yes | Latitude, decimal degrees | |
| lon | Yes | Longitude, decimal degrees | |
| ssp | No | CMIP6 emission scenario. ssp585 was deprecated per CMIP7 (deemed implausible); use ssp370 as the high-end scenario. | |
| uhi | No | Urban Heat Island preset | |
| year | No | Future horizon | |
| basis | No | Weather file basis (default: tmy) | |
| smoke | No | Enable wildfire smoke overlay | |
| events | No | Comma-separated events. Valid: heatwave, coldsnap, hothumid, coldwindy. Pairs auto-compound (heat+humid, cold+wind). | |
| format | No | Output format (default: epw) | |
| amy_year | No | Year for AMY basis | |
| ensemble | No | Generate a per-model CMIP6 ensemble (~20 EPWs, one per climate model). Costs 10 credits. Requires ssp + year. | |
| intensity | No | Per-event "type:1-7" intensity (1-10 with stress_test=true). 5 = typical extreme, 7 = severe ~50-yr return. | |
| scenarios | No | Batch mode — array of configs, each generated in parallel. Same shape as the top-level config. When set, top-level config params are ignored. Costs 1 credit per scenario (up to 10). | |
| percentile | No | Warming percentile (default: 50) | |
| tmy_period | No | TMYx vintage. Default 2011-2025. | |
| include_ddy | No | When format=epw, also include the matching DDY in the response (single-file only). | |
| stress_test | No | Unlock intensity 8-10. Default false. | |
| event_duration | No | Event length in days (3-30, default 14). **For stress-test scenarios use 14-21 days** — shorter durations don't capture sustained operational impact (charging schedules, occupancy patterns, equipment cycling). 7 days is too short for any design or resilience analysis. Use 7-10 only for transient short-duration events. | |
| intensity_auto | No | Auto-fill unspecified intensities from IPCC AR6 (default: true) | |
| smoke_duration | No | Smoke days (3-30, default: 7) | |
| smoke_intensity | No | Smoke severity 1-10 → peak AOD 0.1-6.0 |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses key behaviors: charges credits (with specific costs per call type), requires auth, and free tier credits. However, lacks description of response format (e.g., download link or binary) and rate limiting, which would be needed for full transparency given no annotations.
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?
Five sentences, each essential: purpose, cost breakdown, auth requirement, free tier info, and sibling alternatives. No redundancy, front-loaded with primary action.
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?
Covers cost, auth, and alternatives well. However, with 21 parameters and no output schema, the agent lacks information about the response format (how the file is delivered). This gap slightly reduces completeness.
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 covers all 21 parameters with rich descriptions, so baseline is 3. Description adds value by linking parameters to credit costs (e.g., scenarios batch costs 2, ensemble costs 10), providing global context not present in schema.
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 generates and delivers EPW or DDY files, distinguishes itself as the only paid tool, and explicitly contrasts with sibling tools (analyze_weather, chart_weather) for preview/analysis use cases.
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 explicit guidance on when to use (need file) vs. when to use alternatives (preview/analysis without download), and mentions prerequisites like auth and credit costs, leaving no ambiguity about usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Your Connectors
Sign in to create a connector for this server.