@dangahagan/weather-mcp 0.1.1 β†’ 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +373 -106
  3. package/package.json +1 -1
package/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2025 MCP Contributors
3
+ Copyright (c) 2025 Weather MCP Server Contributors
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
package/README.md CHANGED
@@ -1,153 +1,420 @@
1
- # MCP Registry
1
+ # Weather MCP Server
2
2
 
3
- The MCP registry provides MCP clients with a list of MCP servers, like an app store for MCP servers.
3
+ [![npm version](https://badge.fury.io/js/@dangahagan%2Fweather-mcp.svg)](https://www.npmjs.com/package/@dangahagan/weather-mcp)
4
+ [![MCP Registry](https://img.shields.io/badge/MCP-Registry-blue)](https://registry.modelcontextprotocol.io/v0/servers?search=io.github.dgahagan/weather-mcp)
5
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
4
6
 
5
- [**πŸ“€ Publish my MCP server**](docs/guides/publishing/publish-server.md) | [**⚑️ Live API docs**](https://registry.modelcontextprotocol.io/docs) | [**πŸ‘€ Ecosystem vision**](docs/explanations/ecosystem-vision.md) | πŸ“– **[Full documentation](./docs)**
7
+ An MCP (Model Context Protocol) server that provides weather data to AI systems like Claude Code. Uses NOAA's API for US weather forecasts and current conditions, plus Open-Meteo for global historical weather data.
6
8
 
7
- ## Development Status
9
+ **πŸ“¦ Available in the [Official MCP Registry](https://registry.modelcontextprotocol.io/v0/servers?search=io.github.dgahagan/weather-mcp)** as `io.github.dgahagan/weather-mcp`
8
10
 
9
- **2025-10-24 update**: The Registry API has entered an **API freeze (v0.1)** πŸŽ‰. For the next month or more, the API will remain stable with no breaking changes, allowing integrators to confidently implement support. This freeze applies to v0.1 while development continues on v0. We'll use this period to validate the API in real-world integrations and gather feedback to shape v1 for general availability. Thank you to everyone for your contributions and patienceβ€”your involvement has been key to getting us here!
11
+ **No API keys required!** Both NOAA and Open-Meteo APIs are free to use with no authentication needed.
10
12
 
11
- **2025-09-08 update**: The registry has launched in preview πŸŽ‰ ([announcement blog post](https://blog.modelcontextprotocol.io/posts/2025-09-08-mcp-registry-preview/)). While the system is now more stable, this is still a preview release and breaking changes or data resets may occur. A general availability (GA) release will follow later. We'd love your feedback in [GitHub discussions](https://github.com/modelcontextprotocol/registry/discussions/new?category=ideas) or in the [#registry-dev Discord](https://discord.com/channels/1358869848138059966/1369487942862504016) ([joining details here](https://modelcontextprotocol.io/community/communication)).
13
+ ## Features
12
14
 
13
- Current key maintainers:
14
- - **Adam Jones** (Anthropic) [@domdomegg](https://github.com/domdomegg)
15
- - **Tadas Antanavicius** (PulseMCP) [@tadasant](https://github.com/tadasant)
16
- - **Toby Padilla** (GitHub) [@toby](https://github.com/toby)
17
- - **Radoslav (Rado) Dimitrov** (Stacklok) [@rdimitrov](https://github.com/rdimitrov)
15
+ - **Get Forecast**: Retrieve weather forecasts for any US location (7-day forecast)
16
+ - **Current Conditions**: Get real-time weather observations for US locations
17
+ - **Historical Data**: Access historical weather observations for any location worldwide
18
+ - Recent data (last 7 days): Detailed hourly observations from NOAA real-time API (US only)
19
+ - Archival data (>7 days old): Hourly/daily weather data from 1940-present via Open-Meteo (global coverage)
20
+ - **Service Status Checking**: Proactively verify API availability with health checks
21
+ - **Enhanced Error Handling**: Detailed, actionable error messages with status page links
18
22
 
19
- ## Contributing
23
+ ## Installation
20
24
 
21
- We use multiple channels for collaboration - see [modelcontextprotocol.io/community/communication](https://modelcontextprotocol.io/community/communication).
25
+ ### Quick Install (Recommended)
22
26
 
23
- Often (but not always) ideas flow through this pipeline:
27
+ **Via npm:**
28
+ ```bash
29
+ npm install -g @dangahagan/weather-mcp
30
+ ```
24
31
 
25
- - **[Discord](https://modelcontextprotocol.io/community/communication)** - Real-time community discussions
26
- - **[Discussions](https://github.com/modelcontextprotocol/registry/discussions)** - Propose and discuss product/technical requirements
27
- - **[Issues](https://github.com/modelcontextprotocol/registry/issues)** - Track well-scoped technical work
28
- - **[Pull Requests](https://github.com/modelcontextprotocol/registry/pulls)** - Contribute work towards issues
32
+ **Via npx (no installation):**
33
+ ```bash
34
+ npx -y @dangahagan/weather-mcp
35
+ ```
29
36
 
30
- ### Quick start:
37
+ Then configure in your MCP client using:
38
+ ```json
39
+ {
40
+ "mcpServers": {
41
+ "weather": {
42
+ "command": "npx",
43
+ "args": ["-y", "@dangahagan/weather-mcp"]
44
+ }
45
+ }
46
+ }
47
+ ```
31
48
 
32
- #### Pre-requisites
49
+ ### From Source
33
50
 
34
- - **Docker**
35
- - **Go 1.24.x**
36
- - **ko** - Container image builder for Go ([installation instructions](https://ko.build/install/))
37
- - **golangci-lint v2.4.0**
51
+ If you prefer to build from source:
38
52
 
39
- #### Running the server
53
+ **Prerequisites:**
54
+ - Node.js 18 or higher
55
+ - npm or yarn
56
+ - **No API keys or tokens required**
40
57
 
58
+ **Setup:**
59
+
60
+ 1. Clone the repository:
41
61
  ```bash
42
- # Start full development environment
43
- make dev-compose
62
+ git clone https://github.com/dgahagan/weather-mcp.git
63
+ cd weather-mcp
44
64
  ```
45
65
 
46
- This starts the registry at [`localhost:8080`](http://localhost:8080) with PostgreSQL. The database uses ephemeral storage and is reset each time you restart the containers, ensuring a clean state for development and testing.
66
+ 2. Install dependencies:
67
+ ```bash
68
+ npm install
69
+ ```
47
70
 
48
- **Note:** The registry uses [ko](https://ko.build) to build container images. The `make dev-compose` command automatically builds the registry image with ko and loads it into your local Docker daemon before starting the services.
71
+ 3. Build the project:
72
+ ```bash
73
+ npm run build
74
+ ```
49
75
 
50
- By default, the registry seeds from the production API with a filtered subset of servers (to keep startup fast). This ensures your local environment mirrors production behavior and all seed data passes validation. For offline development you can seed from a file without validation with `MCP_REGISTRY_SEED_FROM=data/seed.json MCP_REGISTRY_ENABLE_REGISTRY_VALIDATION=false make dev-compose`.
76
+ ## Usage with AI Assistants
51
77
 
52
- The setup can be configured with environment variables in [docker-compose.yml](./docker-compose.yml) - see [.env.example](./.env.example) for a reference.
78
+ This MCP server works with any client that supports the Model Context Protocol, including:
53
79
 
54
- <details>
55
- <summary>Alternative: Running a pre-built Docker image</summary>
80
+ - **Claude Desktop** - Official Claude desktop application
81
+ - **Claude Code** - Official Claude CLI tool
82
+ - **Cline** - VS Code extension for AI-assisted coding
83
+ - **Cursor** - AI-powered code editor
84
+ - **Zed** - High-performance code editor with AI features
85
+ - **VS Code (GitHub Copilot)** - With MCP support enabled
86
+ - **LM Studio** - Local AI model interface
87
+ - **Postman** - API platform with MCP integration
56
88
 
57
- Pre-built Docker images are automatically published to GitHub Container Registry:
89
+ For detailed setup instructions for each client, see **[CLIENT_SETUP.md](./docs/CLIENT_SETUP.md)**.
58
90
 
59
- ```bash
60
- # Run latest stable release
61
- docker run -p 8080:8080 ghcr.io/modelcontextprotocol/registry:latest
91
+ ### Quick Start: Claude Code
92
+
93
+ Edit `~/.config/claude-code/mcp_settings.json` (macOS/Linux) or `%APPDATA%\claude-code\mcp_settings.json` (Windows):
94
+
95
+ ```json
96
+ {
97
+ "mcpServers": {
98
+ "weather": {
99
+ "command": "node",
100
+ "args": ["/absolute/path/to/weather-mcp/dist/index.js"]
101
+ }
102
+ }
103
+ }
104
+ ```
105
+
106
+ Restart Claude Code and the weather tools will be available.
107
+
108
+ ## Finding Coordinates
109
+
110
+ All tools require latitude and longitude coordinates. You can find coordinates for any location by:
111
+ - Asking Claude Code: "What are the coordinates for [city name]?"
112
+ - Using Google Maps: Right-click a location and select the coordinates
113
+ - Using a geocoding service like geocode.maps.co or nominatim.org
114
+
115
+ ### Common US City Coordinates
116
+
117
+ | City | Latitude | Longitude |
118
+ |------|----------|-----------|
119
+ | San Francisco, CA | 37.7749 | -122.4194 |
120
+ | New York, NY | 40.7128 | -74.0060 |
121
+ | Chicago, IL | 41.8781 | -87.6298 |
122
+ | Los Angeles, CA | 34.0522 | -118.2437 |
123
+ | Denver, CO | 39.7392 | -104.9903 |
124
+ | Miami, FL | 25.7617 | -80.1918 |
125
+ | Seattle, WA | 47.6062 | -122.3321 |
126
+ | Austin, TX | 30.2672 | -97.7431 |
127
+
128
+ ## Available Tools
62
129
 
63
- # Run latest from main branch (continuous deployment)
64
- docker run -p 8080:8080 ghcr.io/modelcontextprotocol/registry:main
130
+ ### 1. check_service_status
131
+ Check the operational status of weather APIs.
65
132
 
66
- # Run specific release version
67
- docker run -p 8080:8080 ghcr.io/modelcontextprotocol/registry:v1.0.0
133
+ **Parameters:** None
68
134
 
69
- # Run development build from main branch
70
- docker run -p 8080:8080 ghcr.io/modelcontextprotocol/registry:main-20250906-abc123d
135
+ **Description:**
136
+ Performs health checks on both NOAA and Open-Meteo APIs to verify they are operational. Use this tool when experiencing errors or to proactively verify service availability before making weather data requests. Returns current status, helpful messages, and links to official status pages.
137
+
138
+ **Example:**
139
+ ```
140
+ Check if the weather services are operational
71
141
  ```
72
142
 
73
- **Available tags:**
74
- - **Releases**: `latest`, `v1.0.0`, `v1.1.0`, etc.
75
- - **Continuous**: `main` (latest main branch build)
76
- - **Development**: `main-<date>-<sha>` (specific commit builds)
143
+ **Returns:**
144
+ - Operational status for NOAA API (forecasts & current conditions)
145
+ - Operational status for Open-Meteo API (historical data)
146
+ - Status page links and recommended actions if issues are detected
147
+ - Overall service availability summary
148
+
149
+ ### 2. get_forecast
150
+ Get weather forecast for a location.
77
151
 
78
- </details>
152
+ **Parameters:**
153
+ - `latitude` (required): Latitude coordinate (-90 to 90)
154
+ - `longitude` (required): Longitude coordinate (-180 to 180)
155
+ - `days` (optional): Number of days in forecast (1-7, default: 7)
79
156
 
80
- #### Publishing a server
157
+ **Example:**
158
+ ```
159
+ Get the weather forecast for San Francisco (latitude: 37.7749, longitude: -122.4194)
160
+ ```
81
161
 
82
- To publish a server, we've built a simple CLI. You can use it with:
162
+ ### 3. get_current_conditions
163
+ Get current weather conditions for a location.
83
164
 
84
- ```bash
85
- # Build the latest CLI
86
- make publisher
165
+ **Parameters:**
166
+ - `latitude` (required): Latitude coordinate (-90 to 90)
167
+ - `longitude` (required): Longitude coordinate (-180 to 180)
168
+
169
+ **Example:**
170
+ ```
171
+ What are the current weather conditions in New York? (latitude: 40.7128, longitude: -74.0060)
172
+ ```
173
+
174
+ ### 4. get_historical_weather
175
+ Get historical weather observations for a location.
176
+
177
+ **Parameters:**
178
+ - `latitude` (required): Latitude coordinate (-90 to 90)
179
+ - `longitude` (required): Longitude coordinate (-180 to 180)
180
+ - `start_date` (required): Start date in ISO format (YYYY-MM-DD)
181
+ - `end_date` (required): End date in ISO format (YYYY-MM-DD)
182
+ - `limit` (optional): Max observations to return (1-500, default: 168)
183
+
184
+ **Data Source Selection:**
185
+ The server automatically chooses the best data source based on your date range:
186
+
187
+ - **Last 7 days**: Uses NOAA real-time API
188
+ - βœ“ Detailed hourly observations from weather stations
189
+ - βœ“ Includes: temperature, conditions, wind speed, humidity, pressure
190
+ - βœ“ High reliability and availability
191
+ - ⚠️ US locations only
192
+
193
+ - **Older than 7 days**: Uses Open-Meteo Historical Weather API
194
+ - βœ“ No API token required
195
+ - βœ“ Global coverage (worldwide)
196
+ - βœ“ Historical data from 1940 to present
197
+ - βœ“ Hourly data for ranges up to 31 days
198
+ - βœ“ Daily summaries for longer periods
199
+ - βœ“ Includes: temperature, precipitation, wind, humidity, pressure, cloud cover
200
+ - βœ“ High resolution reanalysis data (9-25km grid)
201
+ - ⚠️ 5-day delay for most recent data
202
+
203
+ **Examples:**
204
+
205
+ Recent data (US locations, detailed observations):
206
+ ```
207
+ "What was the weather like in Chicago 3 days ago?"
208
+ Coordinates: latitude: 41.8781, longitude: -87.6298
209
+ Date range: 3 days ago to 2 days ago
210
+ ```
211
+
212
+ Historical data (global coverage):
213
+ ```
214
+ "What was the weather in Paris on January 15, 2024?"
215
+ Coordinates: latitude: 48.8566, longitude: 2.3522
216
+ Date range: 2024-01-15 to 2024-01-15
217
+ ```
218
+
219
+ Long-term historical analysis:
220
+ ```
221
+ "Show me weather data for Tokyo from January 1, 2020 to December 31, 2020"
222
+ Coordinates: latitude: 35.6762, longitude: 139.6503
223
+ Date range: 2020-01-01 to 2020-12-31
224
+ ```
225
+
226
+ **Troubleshooting:**
227
+ If you get "No historical data available":
228
+ - For recent dates (last 7 days): Ensure you're using US coordinates
229
+ - For older dates: Data should be available globally back to 1940
230
+ - Note: Most recent data has a 5-day delay
231
+ - Very recent dates (last 5 days) may not be available in archival data yet
232
+
233
+ ## Error Handling & Service Status
234
+
235
+ ### Enhanced Error Messages
87
236
 
88
- # Use it!
89
- ./bin/mcp-publisher --help
237
+ This MCP server provides detailed, actionable error messages when issues occur. All error messages include:
238
+
239
+ - **Clear problem description** - What went wrong and why
240
+ - **Contextual help** - Specific guidance based on the error type
241
+ - **Status page links** - Direct links to official service status pages
242
+ - **Recommended actions** - Concrete steps to resolve or investigate the issue
243
+
244
+ **Example Error Messages:**
245
+
246
+ When a service is down:
247
+ ```
248
+ NOAA API server error: Service temporarily unavailable
249
+
250
+ The NOAA Weather API may be experiencing an outage.
251
+
252
+ Check service status:
253
+ - Planned outages: https://weather-gov.github.io/api/planned-outages
254
+ - Service notices: https://www.weather.gov/notification
255
+ - Report issues: nco.ops@noaa.gov or (301) 683-1518
256
+ ```
257
+
258
+ When rate limited:
259
+ ```
260
+ Open-Meteo API rate limit exceeded (10,000 requests/day for non-commercial use).
261
+
262
+ Please retry later or consider:
263
+ - Reducing request frequency
264
+ - Using daily instead of hourly data for longer periods
265
+ - Upgrading to a commercial plan for higher limits
266
+
267
+ More info: https://open-meteo.com/en/pricing
90
268
  ```
91
269
 
92
- See [the publisher guide](./docs/guides/publishing/publish-server.md) for more details.
270
+ ### Service Status Checking
93
271
 
94
- #### Other commands
272
+ Use the `check_service_status` tool to proactively verify API availability:
95
273
 
274
+ ```
275
+ # Query example
276
+ "Check if the weather services are working"
277
+
278
+ # Returns:
279
+ - βœ…/❌ Status for NOAA API (US forecasts & current conditions)
280
+ - βœ…/❌ Status for Open-Meteo API (global historical data)
281
+ - Links to official status pages
282
+ - Recommended actions if issues detected
283
+ - Overall service availability summary
284
+ ```
285
+
286
+ **When to use:**
287
+ - Before making multiple weather requests
288
+ - When experiencing errors or timeouts
289
+ - To verify service availability after an outage
290
+ - For monitoring and alerting purposes
291
+
292
+ **Status Page Links:**
293
+ - **NOAA API:**
294
+ - Planned outages: https://weather-gov.github.io/api/planned-outages
295
+ - Service notices: https://www.weather.gov/notification
296
+ - Report issues: https://weather-gov.github.io/api/reporting-issues
297
+
298
+ - **Open-Meteo API:**
299
+ - Production status: https://open-meteo.com/en/docs/model-updates
300
+ - GitHub issues: https://github.com/open-meteo/open-meteo/issues
301
+ - Documentation: https://open-meteo.com/en/docs
302
+
303
+ ## Testing
304
+
305
+ ### Quick Test
306
+
307
+ Verify NOAA API connectivity:
96
308
  ```bash
97
- # Run lint, unit tests and integration tests
98
- make check
309
+ npx tsx tests/test_noaa_api.ts
99
310
  ```
100
311
 
101
- There are also a few more helpful commands for development. Run `make help` to learn more, or look in [Makefile](./Makefile).
312
+ This runs 5 tests covering all major functionality with real NOAA API calls.
313
+
314
+ ### Manual Testing with Claude Code
315
+
316
+ See [TESTING_GUIDE.md](./docs/TESTING_GUIDE.md) for comprehensive testing instructions including:
317
+ - Setup steps
318
+ - Test cases for all tools
319
+ - Error handling verification
320
+ - Performance testing
321
+ - Debugging tips
102
322
 
103
- <!--
104
- For Claude and other AI tools: Always prefer make targets over custom commands where possible.
105
- -->
323
+ ## Development
106
324
 
107
- ## Architecture
325
+ ### Available Scripts
326
+
327
+ - `npm run build` - Compile TypeScript to JavaScript
328
+ - `npm run dev` - Run the server in development mode with tsx
329
+ - `npm start` - Run the compiled server
330
+ - `npx tsx tests/test_noaa_api.ts` - Run API connectivity tests
108
331
 
109
332
  ### Project Structure
110
333
 
111
334
  ```
112
- β”œβ”€β”€ cmd/ # Application entry points
113
- β”‚ └── publisher/ # Server publishing tool
114
- β”œβ”€β”€ data/ # Seed data
115
- β”œβ”€β”€ deploy/ # Deployment configuration (Pulumi)
116
- β”œβ”€β”€ docs/ # Documentation
117
- β”œβ”€β”€ internal/ # Private application code
118
- β”‚ β”œβ”€β”€ api/ # HTTP handlers and routing
119
- β”‚ β”œβ”€β”€ auth/ # Authentication (GitHub OAuth, JWT, namespace blocking)
120
- β”‚ β”œβ”€β”€ config/ # Configuration management
121
- β”‚ β”œβ”€β”€ database/ # Data persistence (PostgreSQL)
122
- β”‚ β”œβ”€β”€ service/ # Business logic
123
- β”‚ β”œβ”€β”€ telemetry/ # Metrics and monitoring
124
- β”‚ └── validators/ # Input validation
125
- β”œβ”€β”€ pkg/ # Public packages
126
- β”‚ β”œβ”€β”€ api/ # API types and structures
127
- β”‚ β”‚ └── v0/ # Version 0 API types
128
- β”‚ └── model/ # Data models for server.json
129
- β”œβ”€β”€ scripts/ # Development and testing scripts
130
- β”œβ”€β”€ tests/ # Integration tests
131
- └── tools/ # CLI tools and utilities
132
- └── validate-*.sh # Schema validation tools
133
- ```
134
-
135
- ### Authentication
136
-
137
- Publishing supports multiple authentication methods:
138
- - **GitHub OAuth** - For publishing by logging into GitHub
139
- - **GitHub OIDC** - For publishing from GitHub Actions
140
- - **DNS verification** - For proving ownership of a domain and its subdomains
141
- - **HTTP verification** - For proving ownership of a domain
142
-
143
- The registry validates namespace ownership when publishing. E.g. to publish...:
144
- - `io.github.domdomegg/my-cool-mcp` you must login to GitHub as `domdomegg`, or be in a GitHub Action on domdomegg's repos
145
- - `me.adamjones/my-cool-mcp` you must prove ownership of `adamjones.me` via DNS or HTTP challenge
146
-
147
- ## Community Projects
148
-
149
- Check out [community projects](docs/community-projects.md) to explore notable registry-related work created by the community.
150
-
151
- ## More documentation
152
-
153
- See the [documentation](./docs) for more details if your question has not been answered here!
335
+ weather-mcp/
336
+ β”œβ”€β”€ src/
337
+ β”‚ β”œβ”€β”€ index.ts # Main MCP server
338
+ β”‚ β”œβ”€β”€ services/
339
+ β”‚ β”‚ β”œβ”€β”€ noaa.ts # NOAA real-time API service
340
+ β”‚ β”‚ └── openmeteo.ts # Open-Meteo historical weather API service
341
+ β”‚ β”œβ”€β”€ types/
342
+ β”‚ β”‚ β”œβ”€β”€ noaa.ts # NOAA TypeScript type definitions
343
+ β”‚ β”‚ └── openmeteo.ts # Open-Meteo TypeScript type definitions
344
+ β”‚ └── utils/
345
+ β”‚ └── units.ts # Unit conversion utilities
346
+ β”œβ”€β”€ dist/ # Compiled JavaScript (generated)
347
+ β”œβ”€β”€ tests/ # Test files
348
+ └── package.json
349
+ ```
350
+
351
+ ## API Information
352
+
353
+ This server uses two weather APIs:
354
+
355
+ ### NOAA Weather API (Real-time)
356
+ - **Base URL**: https://api.weather.gov
357
+ - **Authentication**: None required (User-Agent header only)
358
+ - **Rate Limits**: Enforced with 5-second retry window
359
+ - **Coverage**: United States locations only
360
+ - **Use cases**: Forecasts, current conditions, recent observations (last 7 days)
361
+ - **Data**: Detailed hourly observations from weather stations
362
+
363
+ ### Open-Meteo Historical Weather API (Archival)
364
+ - **Base URL**: https://archive-api.open-meteo.com/v1
365
+ - **Authentication**: None required (no API token needed)
366
+ - **Rate Limits**: 10,000 requests/day for non-commercial use
367
+ - **Coverage**: Global (worldwide locations)
368
+ - **Use cases**: Historical weather data from 1940 to present
369
+ - **Data**: Hourly or daily temperature, precipitation, wind, humidity, pressure, cloud cover
370
+ - **Resolution**: 9-25km grid resolution from reanalysis models
371
+ - **Delay**: 5-day delay for most recent data
372
+
373
+ For more details on NOAA APIs, see [NOAA_API_RESEARCH.md](./docs/NOAA_API_RESEARCH.md).
374
+
375
+ ## Limitations
376
+
377
+ ### Geographic Coverage
378
+
379
+ **Forecasts and Current Conditions:**
380
+ - NOAA APIs only cover **United States locations**
381
+ - International locations are not supported for forecasts and current conditions
382
+
383
+ **Historical Data:**
384
+ - Recent data (last 7 days): **US locations only** (NOAA API)
385
+ - Archival data (>7 days old): **Global coverage** (Open-Meteo API)
386
+
387
+ ### Historical Data (get_historical_weather)
388
+
389
+ **Recent Data (Last 7 Days)** - US Only, High Detail:
390
+ - βœ“ Detailed hourly observations from weather stations
391
+ - βœ“ No API token required
392
+ - ⚠️ US locations only
393
+ - ⚠️ May have occasional gaps depending on weather station
394
+ - ⚠️ Observations may be delayed up to 20 minutes
395
+
396
+ **Archival Data (Older than 7 Days)** - Global, Reanalysis-Based:
397
+ - βœ“ Global coverage (any location worldwide)
398
+ - βœ“ No API token required
399
+ - βœ“ Reliable data from 1940 to present
400
+ - βœ“ Hourly data for date ranges up to 31 days
401
+ - βœ“ Daily summaries for longer periods
402
+ - ⚠️ Most recent data has a 5-day delay
403
+ - ⚠️ Reanalysis-based (grid model, not direct station observations)
404
+
405
+ ### Rate Limits
406
+ - **NOAA Weather API**: Automatic retry with exponential backoff on rate limit errors
407
+ - **Open-Meteo API**: 10,000 requests/day for non-commercial use
408
+
409
+ ### Recommendations
410
+ - **For recent US weather**: Use dates within the last 7 days for detailed station observations
411
+ - **For historical analysis**: Open-Meteo provides reliable global coverage back to 1940
412
+ - **For international locations**: Only historical data (>7 days old) is supported
413
+
414
+ ## License
415
+
416
+ MIT
417
+
418
+ ## Contributing
419
+
420
+ Contributions are welcome! Please feel free to submit a Pull Request.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dangahagan/weather-mcp",
3
- "version": "0.1.1",
3
+ "version": "0.1.2",
4
4
  "description": "MCP (Model Context Protocol) server providing weather data from NOAA and Open-Meteo APIs. Supports forecasts, current conditions, and historical weather data (1940-present) with no API keys required.",
5
5
  "mcpName": "io.github.dgahagan/weather-mcp",
6
6
  "main": "dist/index.js",