@dangahagan/weather-mcp 0.1.0 β 0.1.1
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.
- package/LICENSE +1 -1
- package/README.md +106 -367
- package/package.json +2 -1
package/LICENSE
CHANGED
package/README.md
CHANGED
|
@@ -1,414 +1,153 @@
|
|
|
1
|
-
#
|
|
1
|
+
# MCP Registry
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
The MCP registry provides MCP clients with a list of MCP servers, like an app store for MCP servers.
|
|
4
4
|
|
|
5
|
-
|
|
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)**
|
|
6
6
|
|
|
7
|
-
##
|
|
7
|
+
## Development Status
|
|
8
8
|
|
|
9
|
-
- **
|
|
10
|
-
- **Current Conditions**: Get real-time weather observations for US locations
|
|
11
|
-
- **Historical Data**: Access historical weather observations for any location worldwide
|
|
12
|
-
- Recent data (last 7 days): Detailed hourly observations from NOAA real-time API (US only)
|
|
13
|
-
- Archival data (>7 days old): Hourly/daily weather data from 1940-present via Open-Meteo (global coverage)
|
|
14
|
-
- **Service Status Checking**: Proactively verify API availability with health checks
|
|
15
|
-
- **Enhanced Error Handling**: Detailed, actionable error messages with status page links
|
|
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!
|
|
16
10
|
|
|
17
|
-
|
|
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)).
|
|
18
12
|
|
|
19
|
-
|
|
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)
|
|
20
18
|
|
|
21
|
-
|
|
22
|
-
```bash
|
|
23
|
-
npm install -g weather-mcp
|
|
24
|
-
```
|
|
19
|
+
## Contributing
|
|
25
20
|
|
|
26
|
-
|
|
27
|
-
```bash
|
|
28
|
-
npx -y weather-mcp
|
|
29
|
-
```
|
|
21
|
+
We use multiple channels for collaboration - see [modelcontextprotocol.io/community/communication](https://modelcontextprotocol.io/community/communication).
|
|
30
22
|
|
|
31
|
-
|
|
32
|
-
```json
|
|
33
|
-
{
|
|
34
|
-
"mcpServers": {
|
|
35
|
-
"weather": {
|
|
36
|
-
"command": "npx",
|
|
37
|
-
"args": ["-y", "weather-mcp"]
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
```
|
|
23
|
+
Often (but not always) ideas flow through this pipeline:
|
|
42
24
|
|
|
43
|
-
|
|
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
|
|
44
29
|
|
|
45
|
-
|
|
30
|
+
### Quick start:
|
|
46
31
|
|
|
47
|
-
|
|
48
|
-
- Node.js 18 or higher
|
|
49
|
-
- npm or yarn
|
|
50
|
-
- **No API keys or tokens required**
|
|
32
|
+
#### Pre-requisites
|
|
51
33
|
|
|
52
|
-
**
|
|
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**
|
|
53
38
|
|
|
54
|
-
|
|
55
|
-
```bash
|
|
56
|
-
git clone https://github.com/dgahagan/weather-mcp.git
|
|
57
|
-
cd weather-mcp
|
|
58
|
-
```
|
|
59
|
-
|
|
60
|
-
2. Install dependencies:
|
|
61
|
-
```bash
|
|
62
|
-
npm install
|
|
63
|
-
```
|
|
39
|
+
#### Running the server
|
|
64
40
|
|
|
65
|
-
3. Build the project:
|
|
66
41
|
```bash
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
## Usage with AI Assistants
|
|
71
|
-
|
|
72
|
-
This MCP server works with any client that supports the Model Context Protocol, including:
|
|
73
|
-
|
|
74
|
-
- **Claude Desktop** - Official Claude desktop application
|
|
75
|
-
- **Claude Code** - Official Claude CLI tool
|
|
76
|
-
- **Cline** - VS Code extension for AI-assisted coding
|
|
77
|
-
- **Cursor** - AI-powered code editor
|
|
78
|
-
- **Zed** - High-performance code editor with AI features
|
|
79
|
-
- **VS Code (GitHub Copilot)** - With MCP support enabled
|
|
80
|
-
- **LM Studio** - Local AI model interface
|
|
81
|
-
- **Postman** - API platform with MCP integration
|
|
82
|
-
|
|
83
|
-
For detailed setup instructions for each client, see **[CLIENT_SETUP.md](./docs/CLIENT_SETUP.md)**.
|
|
84
|
-
|
|
85
|
-
### Quick Start: Claude Code
|
|
86
|
-
|
|
87
|
-
Edit `~/.config/claude-code/mcp_settings.json` (macOS/Linux) or `%APPDATA%\claude-code\mcp_settings.json` (Windows):
|
|
88
|
-
|
|
89
|
-
```json
|
|
90
|
-
{
|
|
91
|
-
"mcpServers": {
|
|
92
|
-
"weather": {
|
|
93
|
-
"command": "node",
|
|
94
|
-
"args": ["/absolute/path/to/weather-mcp/dist/index.js"]
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
```
|
|
99
|
-
|
|
100
|
-
Restart Claude Code and the weather tools will be available.
|
|
101
|
-
|
|
102
|
-
## Finding Coordinates
|
|
103
|
-
|
|
104
|
-
All tools require latitude and longitude coordinates. You can find coordinates for any location by:
|
|
105
|
-
- Asking Claude Code: "What are the coordinates for [city name]?"
|
|
106
|
-
- Using Google Maps: Right-click a location and select the coordinates
|
|
107
|
-
- Using a geocoding service like geocode.maps.co or nominatim.org
|
|
108
|
-
|
|
109
|
-
### Common US City Coordinates
|
|
110
|
-
|
|
111
|
-
| City | Latitude | Longitude |
|
|
112
|
-
|------|----------|-----------|
|
|
113
|
-
| San Francisco, CA | 37.7749 | -122.4194 |
|
|
114
|
-
| New York, NY | 40.7128 | -74.0060 |
|
|
115
|
-
| Chicago, IL | 41.8781 | -87.6298 |
|
|
116
|
-
| Los Angeles, CA | 34.0522 | -118.2437 |
|
|
117
|
-
| Denver, CO | 39.7392 | -104.9903 |
|
|
118
|
-
| Miami, FL | 25.7617 | -80.1918 |
|
|
119
|
-
| Seattle, WA | 47.6062 | -122.3321 |
|
|
120
|
-
| Austin, TX | 30.2672 | -97.7431 |
|
|
121
|
-
|
|
122
|
-
## Available Tools
|
|
123
|
-
|
|
124
|
-
### 1. check_service_status
|
|
125
|
-
Check the operational status of weather APIs.
|
|
126
|
-
|
|
127
|
-
**Parameters:** None
|
|
128
|
-
|
|
129
|
-
**Description:**
|
|
130
|
-
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.
|
|
131
|
-
|
|
132
|
-
**Example:**
|
|
133
|
-
```
|
|
134
|
-
Check if the weather services are operational
|
|
135
|
-
```
|
|
136
|
-
|
|
137
|
-
**Returns:**
|
|
138
|
-
- Operational status for NOAA API (forecasts & current conditions)
|
|
139
|
-
- Operational status for Open-Meteo API (historical data)
|
|
140
|
-
- Status page links and recommended actions if issues are detected
|
|
141
|
-
- Overall service availability summary
|
|
142
|
-
|
|
143
|
-
### 2. get_forecast
|
|
144
|
-
Get weather forecast for a location.
|
|
145
|
-
|
|
146
|
-
**Parameters:**
|
|
147
|
-
- `latitude` (required): Latitude coordinate (-90 to 90)
|
|
148
|
-
- `longitude` (required): Longitude coordinate (-180 to 180)
|
|
149
|
-
- `days` (optional): Number of days in forecast (1-7, default: 7)
|
|
150
|
-
|
|
151
|
-
**Example:**
|
|
152
|
-
```
|
|
153
|
-
Get the weather forecast for San Francisco (latitude: 37.7749, longitude: -122.4194)
|
|
154
|
-
```
|
|
155
|
-
|
|
156
|
-
### 3. get_current_conditions
|
|
157
|
-
Get current weather conditions for a location.
|
|
158
|
-
|
|
159
|
-
**Parameters:**
|
|
160
|
-
- `latitude` (required): Latitude coordinate (-90 to 90)
|
|
161
|
-
- `longitude` (required): Longitude coordinate (-180 to 180)
|
|
162
|
-
|
|
163
|
-
**Example:**
|
|
164
|
-
```
|
|
165
|
-
What are the current weather conditions in New York? (latitude: 40.7128, longitude: -74.0060)
|
|
42
|
+
# Start full development environment
|
|
43
|
+
make dev-compose
|
|
166
44
|
```
|
|
167
45
|
|
|
168
|
-
|
|
169
|
-
Get historical weather observations for a location.
|
|
170
|
-
|
|
171
|
-
**Parameters:**
|
|
172
|
-
- `latitude` (required): Latitude coordinate (-90 to 90)
|
|
173
|
-
- `longitude` (required): Longitude coordinate (-180 to 180)
|
|
174
|
-
- `start_date` (required): Start date in ISO format (YYYY-MM-DD)
|
|
175
|
-
- `end_date` (required): End date in ISO format (YYYY-MM-DD)
|
|
176
|
-
- `limit` (optional): Max observations to return (1-500, default: 168)
|
|
177
|
-
|
|
178
|
-
**Data Source Selection:**
|
|
179
|
-
The server automatically chooses the best data source based on your date range:
|
|
180
|
-
|
|
181
|
-
- **Last 7 days**: Uses NOAA real-time API
|
|
182
|
-
- β Detailed hourly observations from weather stations
|
|
183
|
-
- β Includes: temperature, conditions, wind speed, humidity, pressure
|
|
184
|
-
- β High reliability and availability
|
|
185
|
-
- β οΈ US locations only
|
|
186
|
-
|
|
187
|
-
- **Older than 7 days**: Uses Open-Meteo Historical Weather API
|
|
188
|
-
- β No API token required
|
|
189
|
-
- β Global coverage (worldwide)
|
|
190
|
-
- β Historical data from 1940 to present
|
|
191
|
-
- β Hourly data for ranges up to 31 days
|
|
192
|
-
- β Daily summaries for longer periods
|
|
193
|
-
- β Includes: temperature, precipitation, wind, humidity, pressure, cloud cover
|
|
194
|
-
- β High resolution reanalysis data (9-25km grid)
|
|
195
|
-
- β οΈ 5-day delay for most recent data
|
|
196
|
-
|
|
197
|
-
**Examples:**
|
|
198
|
-
|
|
199
|
-
Recent data (US locations, detailed observations):
|
|
200
|
-
```
|
|
201
|
-
"What was the weather like in Chicago 3 days ago?"
|
|
202
|
-
Coordinates: latitude: 41.8781, longitude: -87.6298
|
|
203
|
-
Date range: 3 days ago to 2 days ago
|
|
204
|
-
```
|
|
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.
|
|
205
47
|
|
|
206
|
-
|
|
207
|
-
```
|
|
208
|
-
"What was the weather in Paris on January 15, 2024?"
|
|
209
|
-
Coordinates: latitude: 48.8566, longitude: 2.3522
|
|
210
|
-
Date range: 2024-01-15 to 2024-01-15
|
|
211
|
-
```
|
|
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.
|
|
212
49
|
|
|
213
|
-
|
|
214
|
-
```
|
|
215
|
-
"Show me weather data for Tokyo from January 1, 2020 to December 31, 2020"
|
|
216
|
-
Coordinates: latitude: 35.6762, longitude: 139.6503
|
|
217
|
-
Date range: 2020-01-01 to 2020-12-31
|
|
218
|
-
```
|
|
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`.
|
|
219
51
|
|
|
220
|
-
|
|
221
|
-
If you get "No historical data available":
|
|
222
|
-
- For recent dates (last 7 days): Ensure you're using US coordinates
|
|
223
|
-
- For older dates: Data should be available globally back to 1940
|
|
224
|
-
- Note: Most recent data has a 5-day delay
|
|
225
|
-
- Very recent dates (last 5 days) may not be available in archival data yet
|
|
52
|
+
The setup can be configured with environment variables in [docker-compose.yml](./docker-compose.yml) - see [.env.example](./.env.example) for a reference.
|
|
226
53
|
|
|
227
|
-
|
|
54
|
+
<details>
|
|
55
|
+
<summary>Alternative: Running a pre-built Docker image</summary>
|
|
228
56
|
|
|
229
|
-
|
|
57
|
+
Pre-built Docker images are automatically published to GitHub Container Registry:
|
|
230
58
|
|
|
231
|
-
|
|
59
|
+
```bash
|
|
60
|
+
# Run latest stable release
|
|
61
|
+
docker run -p 8080:8080 ghcr.io/modelcontextprotocol/registry:latest
|
|
232
62
|
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
- **Status page links** - Direct links to official service status pages
|
|
236
|
-
- **Recommended actions** - Concrete steps to resolve or investigate the issue
|
|
63
|
+
# Run latest from main branch (continuous deployment)
|
|
64
|
+
docker run -p 8080:8080 ghcr.io/modelcontextprotocol/registry:main
|
|
237
65
|
|
|
238
|
-
|
|
66
|
+
# Run specific release version
|
|
67
|
+
docker run -p 8080:8080 ghcr.io/modelcontextprotocol/registry:v1.0.0
|
|
239
68
|
|
|
240
|
-
|
|
69
|
+
# Run development build from main branch
|
|
70
|
+
docker run -p 8080:8080 ghcr.io/modelcontextprotocol/registry:main-20250906-abc123d
|
|
241
71
|
```
|
|
242
|
-
NOAA API server error: Service temporarily unavailable
|
|
243
72
|
|
|
244
|
-
|
|
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)
|
|
245
77
|
|
|
246
|
-
|
|
247
|
-
- Planned outages: https://weather-gov.github.io/api/planned-outages
|
|
248
|
-
- Service notices: https://www.weather.gov/notification
|
|
249
|
-
- Report issues: nco.ops@noaa.gov or (301) 683-1518
|
|
250
|
-
```
|
|
78
|
+
</details>
|
|
251
79
|
|
|
252
|
-
|
|
253
|
-
```
|
|
254
|
-
Open-Meteo API rate limit exceeded (10,000 requests/day for non-commercial use).
|
|
80
|
+
#### Publishing a server
|
|
255
81
|
|
|
256
|
-
|
|
257
|
-
- Reducing request frequency
|
|
258
|
-
- Using daily instead of hourly data for longer periods
|
|
259
|
-
- Upgrading to a commercial plan for higher limits
|
|
82
|
+
To publish a server, we've built a simple CLI. You can use it with:
|
|
260
83
|
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
### Service Status Checking
|
|
265
|
-
|
|
266
|
-
Use the `check_service_status` tool to proactively verify API availability:
|
|
84
|
+
```bash
|
|
85
|
+
# Build the latest CLI
|
|
86
|
+
make publisher
|
|
267
87
|
|
|
88
|
+
# Use it!
|
|
89
|
+
./bin/mcp-publisher --help
|
|
268
90
|
```
|
|
269
|
-
# Query example
|
|
270
|
-
"Check if the weather services are working"
|
|
271
|
-
|
|
272
|
-
# Returns:
|
|
273
|
-
- β
/β Status for NOAA API (US forecasts & current conditions)
|
|
274
|
-
- β
/β Status for Open-Meteo API (global historical data)
|
|
275
|
-
- Links to official status pages
|
|
276
|
-
- Recommended actions if issues detected
|
|
277
|
-
- Overall service availability summary
|
|
278
|
-
```
|
|
279
|
-
|
|
280
|
-
**When to use:**
|
|
281
|
-
- Before making multiple weather requests
|
|
282
|
-
- When experiencing errors or timeouts
|
|
283
|
-
- To verify service availability after an outage
|
|
284
|
-
- For monitoring and alerting purposes
|
|
285
91
|
|
|
286
|
-
|
|
287
|
-
- **NOAA API:**
|
|
288
|
-
- Planned outages: https://weather-gov.github.io/api/planned-outages
|
|
289
|
-
- Service notices: https://www.weather.gov/notification
|
|
290
|
-
- Report issues: https://weather-gov.github.io/api/reporting-issues
|
|
92
|
+
See [the publisher guide](./docs/guides/publishing/publish-server.md) for more details.
|
|
291
93
|
|
|
292
|
-
|
|
293
|
-
- Production status: https://open-meteo.com/en/docs/model-updates
|
|
294
|
-
- GitHub issues: https://github.com/open-meteo/open-meteo/issues
|
|
295
|
-
- Documentation: https://open-meteo.com/en/docs
|
|
94
|
+
#### Other commands
|
|
296
95
|
|
|
297
|
-
## Testing
|
|
298
|
-
|
|
299
|
-
### Quick Test
|
|
300
|
-
|
|
301
|
-
Verify NOAA API connectivity:
|
|
302
96
|
```bash
|
|
303
|
-
|
|
97
|
+
# Run lint, unit tests and integration tests
|
|
98
|
+
make check
|
|
304
99
|
```
|
|
305
100
|
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
### Manual Testing with Claude Code
|
|
309
|
-
|
|
310
|
-
See [TESTING_GUIDE.md](./docs/TESTING_GUIDE.md) for comprehensive testing instructions including:
|
|
311
|
-
- Setup steps
|
|
312
|
-
- Test cases for all tools
|
|
313
|
-
- Error handling verification
|
|
314
|
-
- Performance testing
|
|
315
|
-
- Debugging tips
|
|
316
|
-
|
|
317
|
-
## Development
|
|
101
|
+
There are also a few more helpful commands for development. Run `make help` to learn more, or look in [Makefile](./Makefile).
|
|
318
102
|
|
|
319
|
-
|
|
103
|
+
<!--
|
|
104
|
+
For Claude and other AI tools: Always prefer make targets over custom commands where possible.
|
|
105
|
+
-->
|
|
320
106
|
|
|
321
|
-
|
|
322
|
-
- `npm run dev` - Run the server in development mode with tsx
|
|
323
|
-
- `npm start` - Run the compiled server
|
|
324
|
-
- `npx tsx tests/test_noaa_api.ts` - Run API connectivity tests
|
|
107
|
+
## Architecture
|
|
325
108
|
|
|
326
109
|
### Project Structure
|
|
327
110
|
|
|
328
111
|
```
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
β βββ
|
|
336
|
-
β
|
|
337
|
-
β
|
|
338
|
-
β
|
|
339
|
-
β
|
|
340
|
-
βββ
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
- **
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
- **
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
-
|
|
362
|
-
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
### Geographic Coverage
|
|
372
|
-
|
|
373
|
-
**Forecasts and Current Conditions:**
|
|
374
|
-
- NOAA APIs only cover **United States locations**
|
|
375
|
-
- International locations are not supported for forecasts and current conditions
|
|
376
|
-
|
|
377
|
-
**Historical Data:**
|
|
378
|
-
- Recent data (last 7 days): **US locations only** (NOAA API)
|
|
379
|
-
- Archival data (>7 days old): **Global coverage** (Open-Meteo API)
|
|
380
|
-
|
|
381
|
-
### Historical Data (get_historical_weather)
|
|
382
|
-
|
|
383
|
-
**Recent Data (Last 7 Days)** - US Only, High Detail:
|
|
384
|
-
- β Detailed hourly observations from weather stations
|
|
385
|
-
- β No API token required
|
|
386
|
-
- β οΈ US locations only
|
|
387
|
-
- β οΈ May have occasional gaps depending on weather station
|
|
388
|
-
- β οΈ Observations may be delayed up to 20 minutes
|
|
389
|
-
|
|
390
|
-
**Archival Data (Older than 7 Days)** - Global, Reanalysis-Based:
|
|
391
|
-
- β Global coverage (any location worldwide)
|
|
392
|
-
- β No API token required
|
|
393
|
-
- β Reliable data from 1940 to present
|
|
394
|
-
- β Hourly data for date ranges up to 31 days
|
|
395
|
-
- β Daily summaries for longer periods
|
|
396
|
-
- β οΈ Most recent data has a 5-day delay
|
|
397
|
-
- β οΈ Reanalysis-based (grid model, not direct station observations)
|
|
398
|
-
|
|
399
|
-
### Rate Limits
|
|
400
|
-
- **NOAA Weather API**: Automatic retry with exponential backoff on rate limit errors
|
|
401
|
-
- **Open-Meteo API**: 10,000 requests/day for non-commercial use
|
|
402
|
-
|
|
403
|
-
### Recommendations
|
|
404
|
-
- **For recent US weather**: Use dates within the last 7 days for detailed station observations
|
|
405
|
-
- **For historical analysis**: Open-Meteo provides reliable global coverage back to 1940
|
|
406
|
-
- **For international locations**: Only historical data (>7 days old) is supported
|
|
407
|
-
|
|
408
|
-
## License
|
|
409
|
-
|
|
410
|
-
MIT
|
|
411
|
-
|
|
412
|
-
## Contributing
|
|
413
|
-
|
|
414
|
-
Contributions are welcome! Please feel free to submit a Pull Request.
|
|
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!
|
package/package.json
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dangahagan/weather-mcp",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.1",
|
|
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
|
+
"mcpName": "io.github.dgahagan/weather-mcp",
|
|
5
6
|
"main": "dist/index.js",
|
|
6
7
|
"type": "module",
|
|
7
8
|
"bin": {
|