@cyanheads/nws-weather-mcp-server 0.5.9 → 0.5.10
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/CLAUDE.md +8 -7
- package/README.md +11 -4
- package/package.json +13 -8
- package/server.json +4 -4
package/CLAUDE.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Agent Protocol
|
|
2
2
|
|
|
3
3
|
**Server:** nws-weather-mcp-server
|
|
4
|
-
**Version:** 0.5.
|
|
4
|
+
**Version:** 0.5.10
|
|
5
5
|
**Framework:** [@cyanheads/mcp-ts-core](https://www.npmjs.com/package/@cyanheads/mcp-ts-core)
|
|
6
6
|
|
|
7
7
|
> **Read the framework docs first:** `node_modules/@cyanheads/mcp-ts-core/CLAUDE.md` contains the full API reference — builders, Context, error codes, exports, patterns. This file covers server-specific conventions only.
|
|
@@ -255,7 +255,7 @@ src/
|
|
|
255
255
|
|
|
256
256
|
Skills are modular instructions in `skills/` at the project root. Read them directly when a task matches — e.g., `skills/add-tool/SKILL.md` when adding a tool.
|
|
257
257
|
|
|
258
|
-
**Agent skill directory:** Copy skills into the directory your agent discovers (Claude Code: `.claude/skills/`, others: equivalent).
|
|
258
|
+
**Agent skill directory:** Copy skills into the directory your agent discovers (Claude Code: `.claude/skills/`, others: equivalent). Skills then load as context without referencing `skills/` paths. After framework updates, run the `maintenance` skill — Phase B re-syncs the agent directory.
|
|
259
259
|
|
|
260
260
|
Available skills:
|
|
261
261
|
|
|
@@ -264,7 +264,7 @@ Available skills:
|
|
|
264
264
|
| `setup` | Post-init project orientation |
|
|
265
265
|
| `design-mcp-server` | Design tool surface, resources, and services for a new server |
|
|
266
266
|
| `add-tool` | Scaffold a new tool definition |
|
|
267
|
-
| `add-app-tool` | Scaffold an MCP App tool + UI resource
|
|
267
|
+
| `add-app-tool` | Scaffold an MCP App tool + paired UI resource |
|
|
268
268
|
| `add-resource` | Scaffold a new resource definition |
|
|
269
269
|
| `add-prompt` | Scaffold a new prompt definition |
|
|
270
270
|
| `add-service` | Scaffold a new service integration |
|
|
@@ -278,14 +278,14 @@ Available skills:
|
|
|
278
278
|
| `report-issue-local` | File a bug or feature request against this server's own repo via `gh` CLI |
|
|
279
279
|
| `tool-defs-analysis` | Read-only audit of tool/resource/prompt language: voice, leaks, defaults, recovery hints, sparsity |
|
|
280
280
|
| `api-auth` | Auth modes, scopes, JWT/OAuth |
|
|
281
|
-
| `api-canvas` | DataCanvas: tabular SQL
|
|
281
|
+
| `api-canvas` | DataCanvas: register tabular data, run SQL, export, plus the `spillover()` helper for big result sets — Tier 3 opt-in |
|
|
282
282
|
| `api-config` | AppConfig, parseConfig, env vars |
|
|
283
283
|
| `api-context` | Context interface, logger, state, progress |
|
|
284
|
-
| `api-errors` | McpError, JsonRpcErrorCode, error
|
|
284
|
+
| `api-errors` | McpError, JsonRpcErrorCode, error patterns |
|
|
285
285
|
| `api-services` | LLM, Speech, Graph services |
|
|
286
286
|
| `api-telemetry` | OTel catalog: spans, metrics, completion logs, env config, cardinality rules |
|
|
287
287
|
| `api-testing` | createMockContext, test patterns |
|
|
288
|
-
| `api-utils` | Formatting, parsing, security, pagination, scheduling |
|
|
288
|
+
| `api-utils` | Formatting, parsing, security, pagination, scheduling, telemetry helpers |
|
|
289
289
|
| `api-workers` | Cloudflare Workers runtime |
|
|
290
290
|
|
|
291
291
|
When you complete a skill's checklist, check the boxes and add a completion timestamp at the end (e.g., `Completed: 2026-03-11`).
|
|
@@ -300,6 +300,7 @@ When you complete a skill's checklist, check the boxes and add a completion time
|
|
|
300
300
|
| `bun run rebuild` | Clean + build |
|
|
301
301
|
| `bun run clean` | Remove build artifacts |
|
|
302
302
|
| `bun run devcheck` | Lint + format + typecheck + security |
|
|
303
|
+
| `bun run audit:refresh` | Delete `bun.lock`, reinstall, re-audit. Use when `devcheck` flags a transitive advisory — Bun's `update` is sticky on transitive resolutions, so the advisory may be a stale-lockfile false positive. If it survives the refresh, it's real. |
|
|
303
304
|
| `bun run tree` | Generate directory structure doc |
|
|
304
305
|
| `bun run format` | Auto-fix formatting |
|
|
305
306
|
| `bun run lint:mcp` | Validate MCP tool/resource definitions |
|
|
@@ -339,7 +340,7 @@ import { getNwsService } from '@/services/nws/nws-service.js';
|
|
|
339
340
|
|
|
340
341
|
## Checklist
|
|
341
342
|
|
|
342
|
-
- [ ] Zod schemas: all fields have `.describe()`, only JSON-Schema-serializable types (no `z.custom()`, `z.date()`, `z.transform()`,
|
|
343
|
+
- [ ] Zod schemas: all fields have `.describe()`, only JSON-Schema-serializable types (no `z.custom()`, `z.date()`, `z.transform()`, `z.bigint()`, `z.symbol()`, `z.void()`, `z.map()`, `z.set()`, `z.function()`, `z.nan()`)
|
|
343
344
|
- [ ] Optional nested objects: handler guards for empty inner values from form-based clients (`if (input.obj?.field && ...)`, not just `if (input.obj)`). When regex/length constraints matter, use `z.union([z.literal(''), z.string().regex(...).describe(...)])` — literal variants are exempt from `describe-on-fields`.
|
|
344
345
|
- [ ] JSDoc `@fileoverview` + `@module` on every file
|
|
345
346
|
- [ ] `ctx.log` for logging, `ctx.state` for storage
|
package/README.md
CHANGED
|
@@ -1,14 +1,21 @@
|
|
|
1
1
|
<div align="center">
|
|
2
2
|
<h1>@cyanheads/nws-weather-mcp-server</h1>
|
|
3
|
-
<p><b>
|
|
4
|
-
<
|
|
3
|
+
<p><b>Get US weather forecasts, active alerts, and current observations via the National Weather Service API. STDIO or Streamable HTTP.</b>
|
|
4
|
+
<div>5 Tools • 1 Resource</div>
|
|
5
|
+
</p>
|
|
5
6
|
</div>
|
|
6
7
|
|
|
7
8
|
<div align="center">
|
|
8
9
|
|
|
9
|
-
[](./CHANGELOG.md) [](./LICENSE) [](https://github.com/users/cyanheads/packages/container/package/nws-weather-mcp-server) [](https://modelcontextprotocol.io/) [](https://www.npmjs.com/package/@cyanheads/nws-weather-mcp-server) [](https://www.typescriptlang.org/) [](https://bun.sh/)
|
|
10
11
|
|
|
11
|
-
|
|
12
|
+
</div>
|
|
13
|
+
|
|
14
|
+
<div align="center">
|
|
15
|
+
|
|
16
|
+
[](https://cursor.com/en/install-mcp?name=nws-weather-mcp-server&config=eyJjb21tYW5kIjoibnB4IC15IEBjeWFuaGVhZHMvbndzLXdlYXRoZXItbWNwLXNlcnZlciJ9) [](https://vscode.dev/redirect?url=vscode:mcp/install?%7B%22name%22%3A%22nws-weather-mcp-server%22%2C%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%40cyanheads/nws-weather-mcp-server%22%5D%7D)
|
|
17
|
+
|
|
18
|
+
[](https://www.npmjs.com/package/@cyanheads/mcp-ts-core)
|
|
12
19
|
|
|
13
20
|
</div>
|
|
14
21
|
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cyanheads/nws-weather-mcp-server",
|
|
3
|
-
"version": "0.5.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "0.5.10",
|
|
4
|
+
"description": "Get US weather forecasts, active alerts, and current observations via the National Weather Service API. STDIO or Streamable HTTP.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"types": "dist/index.d.ts",
|
|
@@ -17,10 +17,14 @@
|
|
|
17
17
|
"tree": "bun scripts/tree.ts",
|
|
18
18
|
"format": "biome check --write --unsafe .",
|
|
19
19
|
"lint:mcp": "bun scripts/lint-mcp.ts",
|
|
20
|
+
"lint:packaging": "bun scripts/lint-packaging.ts",
|
|
21
|
+
"audit:refresh": "rm -f bun.lock && bun install && bun audit",
|
|
20
22
|
"test": "vitest run",
|
|
23
|
+
"list-skills": "bun scripts/list-skills.ts",
|
|
21
24
|
"start": "node dist/index.js",
|
|
22
25
|
"start:stdio": "MCP_TRANSPORT_TYPE=stdio node dist/index.js",
|
|
23
|
-
"start:http": "MCP_TRANSPORT_TYPE=http node dist/index.js"
|
|
26
|
+
"start:http": "MCP_TRANSPORT_TYPE=http node dist/index.js",
|
|
27
|
+
"publish-mcp": "mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish"
|
|
24
28
|
},
|
|
25
29
|
"mcpName": "io.github.cyanheads/nws-weather-mcp-server",
|
|
26
30
|
"keywords": [
|
|
@@ -64,18 +68,19 @@
|
|
|
64
68
|
"access": "public"
|
|
65
69
|
},
|
|
66
70
|
"dependencies": {
|
|
67
|
-
"@cyanheads/mcp-ts-core": "^0.9.
|
|
71
|
+
"@cyanheads/mcp-ts-core": "^0.9.4",
|
|
68
72
|
"@opentelemetry/api": "^1.9.1",
|
|
69
|
-
"pino-pretty": "^13.1.3"
|
|
73
|
+
"pino-pretty": "^13.1.3",
|
|
74
|
+
"zod": "^4.4.3"
|
|
70
75
|
},
|
|
71
76
|
"devDependencies": {
|
|
72
77
|
"@biomejs/biome": "^2.4.15",
|
|
73
|
-
"@types/node": "^25.
|
|
74
|
-
"@vitest/coverage-istanbul": "^4.1.
|
|
78
|
+
"@types/node": "^25.9.1",
|
|
79
|
+
"@vitest/coverage-istanbul": "^4.1.7",
|
|
75
80
|
"depcheck": "^1.4.7",
|
|
76
81
|
"ignore": "^7.0.5",
|
|
77
82
|
"tsc-alias": "^1.8.17",
|
|
78
83
|
"typescript": "^6.0.3",
|
|
79
|
-
"vitest": "^4.1.
|
|
84
|
+
"vitest": "^4.1.7"
|
|
80
85
|
}
|
|
81
86
|
}
|
package/server.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
|
|
3
3
|
"name": "io.github.cyanheads/nws-weather-mcp-server",
|
|
4
|
-
"description": "
|
|
4
|
+
"description": "Get US weather forecasts, active alerts, and current observations.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"url": "https://github.com/cyanheads/nws-weather-mcp-server",
|
|
7
7
|
"source": "github"
|
|
8
8
|
},
|
|
9
|
-
"version": "0.5.
|
|
9
|
+
"version": "0.5.10",
|
|
10
10
|
"remotes": [
|
|
11
11
|
{
|
|
12
12
|
"type": "streamable-http",
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"registryBaseUrl": "https://registry.npmjs.org",
|
|
20
20
|
"identifier": "@cyanheads/nws-weather-mcp-server",
|
|
21
21
|
"runtimeHint": "bun",
|
|
22
|
-
"version": "0.5.
|
|
22
|
+
"version": "0.5.10",
|
|
23
23
|
"packageArguments": [
|
|
24
24
|
{ "type": "positional", "value": "run" },
|
|
25
25
|
{ "type": "positional", "value": "start:stdio" }
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
"registryBaseUrl": "https://registry.npmjs.org",
|
|
50
50
|
"identifier": "@cyanheads/nws-weather-mcp-server",
|
|
51
51
|
"runtimeHint": "bun",
|
|
52
|
-
"version": "0.5.
|
|
52
|
+
"version": "0.5.10",
|
|
53
53
|
"packageArguments": [
|
|
54
54
|
{ "type": "positional", "value": "run" },
|
|
55
55
|
{ "type": "positional", "value": "start:http" }
|