{"_id":"@dangahagan/weather-mcp","_rev":"66-7ef3dacfeb852455666eedc759f1f623","name":"@dangahagan/weather-mcp","dist-tags":{"latest":"1.33.0"},"versions":{"0.1.0":{"name":"@dangahagan/weather-mcp","version":"0.1.0","keywords":["mcp","mcp-server","model-context-protocol","weather","weather-api","noaa","open-meteo","forecast","climate","historical-weather","claude","claude-code","ai","llm"],"author":{"name":"Dan Gahagan"},"license":"MIT","_id":"@dangahagan/weather-mcp@0.1.0","maintainers":[{"name":"dangahagan","email":"dangahagan@gmail.com"}],"homepage":"https://github.com/dgahagan/weather-mcp#readme","bugs":{"url":"https://github.com/dgahagan/weather-mcp/issues"},"bin":{"weather-mcp":"dist/index.js"},"dist":{"shasum":"2e0cedfb89fe499e1864d10dbfa26c11af50506b","tarball":"https://registry.npmjs.org/@dangahagan/weather-mcp/-/weather-mcp-0.1.0.tgz","fileCount":27,"integrity":"sha512-I9R6Ge0mrL2etqLR76FY8h45A85oQXGMOirr9q5SPAWn6vhFvBp2JssSavX1E78vhBzhrcv/olkwAhY5LUQ1zw==","signatures":[{"sig":"MEUCIQCtS2ACUC0geesKJ/Sd8t84acEutQFRHvurug+IJq5juwIgWBYT+80BAMR56gsSdtORcjWUt1W4XhqQ3iDfpPOfVAg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":140970},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"af28c5f0faeab829198ab7911dfc9ac47399f1bc","scripts":{"dev":"tsx src/index.ts","test":"echo \"Error: no test specified\" && exit 1","build":"tsc","start":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"dangahagan","email":"dangahagan@gmail.com"},"repository":{"url":"git+https://github.com/dgahagan/weather-mcp.git","type":"git"},"_npmVersion":"10.9.3","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.","directories":{},"_nodeVersion":"22.19.0","dependencies":{"axios":"^1.13.1","dotenv":"^17.2.3","@modelcontextprotocol/sdk":"^1.21.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","typescript":"^5.9.3","@types/node":"^24.10.0"},"_npmOperationalInternal":{"tmp":"tmp/weather-mcp_0.1.0_1762358708662_0.5865987733677815","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@dangahagan/weather-mcp","version":"0.1.1","keywords":["mcp","mcp-server","model-context-protocol","weather","weather-api","noaa","open-meteo","forecast","climate","historical-weather","claude","claude-code","ai","llm"],"author":{"name":"Dan Gahagan"},"license":"MIT","_id":"@dangahagan/weather-mcp@0.1.1","maintainers":[{"name":"dangahagan","email":"dangahagan@gmail.com"}],"homepage":"https://github.com/dgahagan/weather-mcp#readme","bugs":{"url":"https://github.com/dgahagan/weather-mcp/issues"},"bin":{"weather-mcp":"dist/index.js"},"dist":{"shasum":"84b4343218c21c6443d29e82346ee2852a4b4ef9","tarball":"https://registry.npmjs.org/@dangahagan/weather-mcp/-/weather-mcp-0.1.1.tgz","fileCount":27,"integrity":"sha512-GYavCcr4oP8BhTmjmlFLtK1rI1ztBWTWlMl9e8d7TUUKnUNQkhFJTb4AUmC9BgK8IFeYAcvF267syxuzVtvUAA==","signatures":[{"sig":"MEYCIQDhDpZKG+GTWm/ASJuyF4rKdIeTpKwgsK+1u6F1GmhZ2wIhAO3rUiwVMkadkLleU/WDqQi4PUw5zvNWkSSorB3gPh76","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":135316},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"9c07c6e16ae4160a335d0ae892ec4ac71ea2b29d","mcpName":"io.github.dgahagan/weather-mcp","scripts":{"dev":"tsx src/index.ts","test":"echo \"Error: no test specified\" && exit 1","build":"tsc","start":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"dangahagan","email":"dangahagan@gmail.com"},"repository":{"url":"git+https://github.com/dgahagan/weather-mcp.git","type":"git"},"_npmVersion":"10.9.3","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.","directories":{},"_nodeVersion":"22.19.0","dependencies":{"axios":"^1.13.1","dotenv":"^17.2.3","@modelcontextprotocol/sdk":"^1.21.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","typescript":"^5.9.3","@types/node":"^24.10.0"},"_npmOperationalInternal":{"tmp":"tmp/weather-mcp_0.1.1_1762360021992_0.6089824786022158","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@dangahagan/weather-mcp","version":"0.1.2","keywords":["mcp","mcp-server","model-context-protocol","weather","weather-api","noaa","open-meteo","forecast","climate","historical-weather","claude","claude-code","ai","llm"],"author":{"name":"Dan Gahagan"},"license":"MIT","_id":"@dangahagan/weather-mcp@0.1.2","maintainers":[{"name":"dangahagan","email":"dangahagan@gmail.com"}],"homepage":"https://github.com/dgahagan/weather-mcp#readme","bugs":{"url":"https://github.com/dgahagan/weather-mcp/issues"},"bin":{"weather-mcp":"dist/index.js"},"dist":{"shasum":"e5277ded6d0a74b6ac3b82ccae52e0c4670ba066","tarball":"https://registry.npmjs.org/@dangahagan/weather-mcp/-/weather-mcp-0.1.2.tgz","fileCount":27,"integrity":"sha512-+MZ4c89Opx6QhIPhZxjZBiSUpvl+Bt4cZOATTOW2sOJuH/FGzrVUpgq6etNP/juch/FLeleAkkslzunAcPBoQA==","signatures":[{"sig":"MEYCIQCA0DY3HiWdbW81NaXJrZ++Mect+V/BYghUppXbL0uPmwIhAJHur2fQLUChnJDQorNn8CDwrw5vv7FvVBbbIFNvGS+3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":141625},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"969be9fed61cc65f2c7cd5e2a22f65385552d429","mcpName":"io.github.dgahagan/weather-mcp","scripts":{"dev":"tsx src/index.ts","test":"echo \"Error: no test specified\" && exit 1","build":"tsc","start":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"dangahagan","email":"dangahagan@gmail.com"},"repository":{"url":"git+https://github.com/dgahagan/weather-mcp.git","type":"git"},"_npmVersion":"10.9.3","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.","directories":{},"_nodeVersion":"22.19.0","dependencies":{"axios":"^1.13.1","dotenv":"^17.2.3","@modelcontextprotocol/sdk":"^1.21.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","typescript":"^5.9.3","@types/node":"^24.10.0"},"_npmOperationalInternal":{"tmp":"tmp/weather-mcp_0.1.2_1762362235786_0.9385187584144934","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@dangahagan/weather-mcp","version":"0.2.0","keywords":["mcp","mcp-server","model-context-protocol","weather","weather-api","noaa","open-meteo","forecast","climate","historical-weather","claude","claude-code","ai","llm"],"author":{"name":"Dan Gahagan"},"license":"MIT","_id":"@dangahagan/weather-mcp@0.2.0","maintainers":[{"name":"dangahagan","email":"dangahagan@gmail.com"}],"homepage":"https://github.com/dgahagan/weather-mcp#readme","bugs":{"url":"https://github.com/dgahagan/weather-mcp/issues"},"bin":{"weather-mcp":"dist/index.js"},"dist":{"shasum":"be043c5cb6bbcd2744a1cf5c4495e36032226d33","tarball":"https://registry.npmjs.org/@dangahagan/weather-mcp/-/weather-mcp-0.2.0.tgz","fileCount":35,"integrity":"sha512-4Ju36fJu4rwXnTFuWnmIPnXr3wN9D/r0SjxywFLeTdR0LZWdYvgvDJlrdFFLy0abvyvrTzuRgyj0xcRXpy497Q==","signatures":[{"sig":"MEUCIQCKEVTCjmHwSUMQVkNBNEq694LIbSxKh92nOMmNnACR2gIgfBr6MIxNSLlWWMPIjynp30Bf+8WHzPCDscE7SncgUH0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":174450},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"eb908bcfc4fd6fbb19a312e8823f059d43ee31fb","mcpName":"io.github.dgahagan/weather-mcp","scripts":{"dev":"tsx src/index.ts","test":"echo \"Error: no test specified\" && exit 1","build":"tsc","start":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"dangahagan","email":"dangahagan@gmail.com"},"repository":{"url":"git+https://github.com/dgahagan/weather-mcp.git","type":"git"},"_npmVersion":"10.9.3","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.","directories":{},"_nodeVersion":"22.19.0","dependencies":{"axios":"^1.13.1","dotenv":"^17.2.3","@modelcontextprotocol/sdk":"^1.21.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","typescript":"^5.9.3","@types/node":"^24.10.0"},"_npmOperationalInternal":{"tmp":"tmp/weather-mcp_0.2.0_1762397271757_0.7892202038459935","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@dangahagan/weather-mcp","version":"0.4.0","keywords":["mcp","mcp-server","model-context-protocol","weather","weather-api","noaa","open-meteo","forecast","climate","historical-weather","claude","claude-code","ai","llm"],"author":{"name":"Dan Gahagan"},"license":"MIT","_id":"@dangahagan/weather-mcp@0.4.0","maintainers":[{"name":"dangahagan","email":"dangahagan@gmail.com"}],"homepage":"https://github.com/dgahagan/weather-mcp#readme","bugs":{"url":"https://github.com/dgahagan/weather-mcp/issues"},"bin":{"weather-mcp":"dist/index.js"},"dist":{"shasum":"8a1e4f271fcd1375c367f6fcb47a623a3a1c10e2","tarball":"https://registry.npmjs.org/@dangahagan/weather-mcp/-/weather-mcp-0.4.0.tgz","fileCount":79,"integrity":"sha512-f1bmvt4H+xKwYN/n8EMP2BFW2+SQuChknQACBNm6YefGBLz1xxnXcLG/fipSaM2EH8GCwGowIMnpPFeUfrES5Q==","signatures":[{"sig":"MEUCIQD0+vu3CYER+deOeZlcJwniDdZg84pa7ncRrO0c2PuMZwIgG2zFicIjEmTr7BRnGyjruB8o9CQrpGazoI0xzWbLUs4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":317307},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"03e96e999f2a6243e36a6d454d8890e1f23e4743","mcpName":"io.github.dgahagan/weather-mcp","scripts":{"dev":"tsx src/index.ts","test":"vitest run","audit":"npm audit --audit-level=moderate","build":"tsc","start":"node dist/index.js","test:ui":"vitest --ui","audit:fix":"npm audit fix","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"dangahagan","email":"dangahagan@gmail.com"},"repository":{"url":"git+https://github.com/dgahagan/weather-mcp.git","type":"git"},"_npmVersion":"10.9.3","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.","directories":{},"_nodeVersion":"22.19.0","dependencies":{"axios":"^1.13.1","dotenv":"^17.2.3","@modelcontextprotocol/sdk":"^1.21.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","vitest":"^4.0.7","typescript":"^5.9.3","@types/node":"^24.10.0","@vitest/coverage-v8":"^4.0.7"},"_npmOperationalInternal":{"tmp":"tmp/weather-mcp_0.4.0_1762462468420_0.16511347584351133","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@dangahagan/weather-mcp","version":"1.0.0","keywords":["mcp","mcp-server","model-context-protocol","weather","weather-api","noaa","open-meteo","forecast","climate","historical-weather","claude","claude-code","ai","llm"],"author":{"name":"Dan Gahagan"},"license":"MIT","_id":"@dangahagan/weather-mcp@1.0.0","maintainers":[{"name":"dangahagan","email":"dangahagan@gmail.com"}],"homepage":"https://github.com/dgahagan/weather-mcp#readme","bugs":{"url":"https://github.com/dgahagan/weather-mcp/issues"},"bin":{"weather-mcp":"dist/index.js"},"dist":{"shasum":"64ac6886a011b2fcf1962ddc95fa395e9fe7a0d0","tarball":"https://registry.npmjs.org/@dangahagan/weather-mcp/-/weather-mcp-1.0.0.tgz","fileCount":99,"integrity":"sha512-fEZl+KM1vNOfuUj41mmd5xrUXoHBzE3HkORZ7olbdlNoyQ56Ie6bSzavDz5CqCi2ZmErZRQTVC+kwZRCQtbt8Q==","signatures":[{"sig":"MEUCIQC96gfa5O8sRvZ7cEwg9y+i+22F1MyXVoH6no2Py6ELdgIgTBR2Uyq9Tjrke5HPymoqP1QQ56WZOIv5HCSDTCDEjfU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":467389},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"8abf62c0c300858140ca066533bace292ac5f0ff","mcpName":"io.github.dgahagan/weather-mcp","scripts":{"dev":"tsx src/index.ts","test":"vitest run","audit":"npm audit --audit-level=moderate","build":"tsc","start":"node dist/index.js","test:ui":"vitest --ui","audit:fix":"npm audit fix","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"dangahagan","email":"dangahagan@gmail.com"},"repository":{"url":"git+https://github.com/dgahagan/weather-mcp.git","type":"git"},"_npmVersion":"10.9.3","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.","directories":{},"_nodeVersion":"22.19.0","dependencies":{"axios":"^1.13.1","dotenv":"^17.2.3","@modelcontextprotocol/sdk":"^1.21.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","vitest":"^4.0.7","typescript":"^5.9.3","@types/node":"^24.10.0","@vitest/coverage-v8":"^4.0.7"},"_npmOperationalInternal":{"tmp":"tmp/weather-mcp_1.0.0_1762485369660_0.48625895905135286","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@dangahagan/weather-mcp","version":"1.0.1","keywords":["mcp","mcp-server","model-context-protocol","weather","weather-api","noaa","open-meteo","forecast","climate","historical-weather","claude","claude-code","ai","llm"],"author":{"name":"Dan Gahagan"},"license":"MIT","_id":"@dangahagan/weather-mcp@1.0.1","maintainers":[{"name":"dangahagan","email":"dangahagan@gmail.com"}],"homepage":"https://github.com/dgahagan/weather-mcp#readme","bugs":{"url":"https://github.com/dgahagan/weather-mcp/issues"},"bin":{"weather-mcp":"dist/index.js"},"dist":{"shasum":"0272ed49e7c8444c6fcfddf15467697811840857","tarball":"https://registry.npmjs.org/@dangahagan/weather-mcp/-/weather-mcp-1.0.1.tgz","fileCount":99,"integrity":"sha512-841u7hwlIjxedyr3iX/AsWEIquq4ECIUJh5+iQRNRNVQV8RWrqVX9nSDY/T7xprC8pMrScuJQhHqc2sQlxmMgw==","signatures":[{"sig":"MEYCIQDIbw6RPmLGQv+ZwJcJCEXJ84tvQKbvynbkgitq18UlSAIhANNlX95d506o1YsKSkfVtvrJjSNNtP8ixg7gDNLzszDO","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":467389},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"f9f2365318be953733ffd42b5a1fda356c6bfcb4","mcpName":"io.github.dgahagan/weather-mcp","scripts":{"dev":"tsx src/index.ts","test":"vitest run","audit":"npm audit --audit-level=moderate","build":"tsc","start":"node dist/index.js","test:ui":"vitest --ui","audit:fix":"npm audit fix","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"dangahagan","email":"dangahagan@gmail.com"},"repository":{"url":"git+https://github.com/dgahagan/weather-mcp.git","type":"git"},"_npmVersion":"10.9.3","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.","directories":{},"_nodeVersion":"22.19.0","dependencies":{"axios":"^1.13.1","dotenv":"^17.2.3","@modelcontextprotocol/sdk":"^1.21.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","vitest":"^4.0.7","typescript":"^5.9.3","@types/node":"^24.10.0","@vitest/coverage-v8":"^4.0.7"},"_npmOperationalInternal":{"tmp":"tmp/weather-mcp_1.0.1_1762486271162_0.3147885201156515","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@dangahagan/weather-mcp","version":"1.1.0","keywords":["mcp","mcp-server","model-context-protocol","weather","weather-api","noaa","open-meteo","forecast","climate","historical-weather","claude","claude-code","ai","llm"],"author":{"name":"Dan Gahagan"},"license":"MIT","_id":"@dangahagan/weather-mcp@1.1.0","maintainers":[{"name":"dangahagan","email":"dangahagan@gmail.com"}],"homepage":"https://github.com/dgahagan/weather-mcp#readme","bugs":{"url":"https://github.com/dgahagan/weather-mcp/issues"},"bin":{"weather-mcp":"dist/index.js"},"dist":{"shasum":"725a667efb712b9502ed5eee9d1e7ce4ce0e53d6","tarball":"https://registry.npmjs.org/@dangahagan/weather-mcp/-/weather-mcp-1.1.0.tgz","fileCount":103,"integrity":"sha512-yO7+f4KqK2nIZzk9T07uHFrAEJk/ROJ4dK3zdDCGVa//GESZltIVCL8SWRxCS2v3164Xl8B4OZoyWlc4ASJd8g==","signatures":[{"sig":"MEUCIQCCoK6gxo4pG9K70lZYQzuhxyjXlLeZu0slHDTAiarEaAIgF3YmcvkXcCr+k7oNIHmBonB5mmBblO3JaDxwDxKMqzE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":492771},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"8ba1ea8a506c97aa86adece680e3a153b62f712f","mcpName":"io.github.dgahagan/weather-mcp","scripts":{"dev":"tsx src/index.ts","test":"vitest run","audit":"npm audit --audit-level=moderate","build":"tsc","start":"node dist/index.js","test:ui":"vitest --ui","audit:fix":"npm audit fix","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"dangahagan","email":"dangahagan@gmail.com"},"repository":{"url":"git+https://github.com/dgahagan/weather-mcp.git","type":"git"},"_npmVersion":"10.9.3","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.","directories":{},"_nodeVersion":"22.19.0","dependencies":{"axios":"^1.13.1","dotenv":"^17.2.3","@modelcontextprotocol/sdk":"^1.21.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","vitest":"^4.0.7","typescript":"^5.9.3","@types/node":"^24.10.0","@vitest/coverage-v8":"^4.0.7"},"_npmOperationalInternal":{"tmp":"tmp/weather-mcp_1.1.0_1762522815089_0.48317247917777784","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@dangahagan/weather-mcp","version":"1.2.0","keywords":["mcp","mcp-server","model-context-protocol","weather","weather-api","noaa","open-meteo","forecast","climate","historical-weather","claude","claude-code","ai","llm"],"author":{"name":"Dan Gahagan"},"license":"MIT","_id":"@dangahagan/weather-mcp@1.2.0","maintainers":[{"name":"dangahagan","email":"dangahagan@gmail.com"}],"homepage":"https://github.com/dgahagan/weather-mcp#readme","bugs":{"url":"https://github.com/dgahagan/weather-mcp/issues"},"bin":{"weather-mcp":"dist/index.js"},"dist":{"shasum":"33eb6139a0625b278992993f9714cdbe955c7718","tarball":"https://registry.npmjs.org/@dangahagan/weather-mcp/-/weather-mcp-1.2.0.tgz","fileCount":127,"integrity":"sha512-ln13PGtA2IhhVCVJD/2kB3OG6PJW578RK11OlVuHXIcrGuNv0vHCTUd/LqJfb5i76qaW8vEcQGmvJFWTNcbiSg==","signatures":[{"sig":"MEYCIQCLSkRFylDDi5VfQKU4TJyZ/ChNbOQ84dsgt1nwzJZlqQIhAItqKzApDClVwsTV3J52AJUAqXE9Lk7Rp+Iki7Ckisx9","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":585225},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"ab7f3cbf09cf67641688d44e832020873b32c5ab","mcpName":"io.github.dgahagan/weather-mcp","scripts":{"dev":"tsx src/index.ts","test":"vitest run","audit":"npm audit --audit-level=moderate","build":"tsc","start":"node dist/index.js","test:ui":"vitest --ui","audit:fix":"npm audit fix","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"dangahagan","email":"dangahagan@gmail.com"},"repository":{"url":"git+https://github.com/dgahagan/weather-mcp.git","type":"git"},"_npmVersion":"10.9.3","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.","directories":{},"_nodeVersion":"22.19.0","dependencies":{"axios":"^1.13.1","luxon":"^3.7.2","dotenv":"^17.2.3","@modelcontextprotocol/sdk":"^1.21.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","vitest":"^4.0.7","typescript":"^5.9.3","@types/node":"^24.10.0","@types/luxon":"^3.7.1","@vitest/coverage-v8":"^4.0.7"},"_npmOperationalInternal":{"tmp":"tmp/weather-mcp_1.2.0_1762538958001_0.4831333987579627","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"@dangahagan/weather-mcp","version":"1.2.1","keywords":["mcp","mcp-server","model-context-protocol","weather","weather-api","noaa","open-meteo","forecast","climate","historical-weather","claude","claude-code","ai","llm"],"author":{"name":"Dan Gahagan"},"license":"MIT","_id":"@dangahagan/weather-mcp@1.2.1","maintainers":[{"name":"dangahagan","email":"dangahagan@gmail.com"}],"homepage":"https://github.com/dgahagan/weather-mcp#readme","bugs":{"url":"https://github.com/dgahagan/weather-mcp/issues"},"bin":{"weather-mcp":"dist/index.js"},"dist":{"shasum":"1b18496d0d69cb620d0038462a83466370837e63","tarball":"https://registry.npmjs.org/@dangahagan/weather-mcp/-/weather-mcp-1.2.1.tgz","fileCount":127,"integrity":"sha512-CN/pIgQshVHuXKUm2mKoAi1mzvKWWYsqXr10zV0wh7w5KwUUi/903iyyGX9ktDKBgSUwKtMe8di08FcKbAyaxQ==","signatures":[{"sig":"MEYCIQC/IgouIzmWXuRvDr8LvS0c7upuvlEEBcoHeg5R/6z9VAIhAM0pCSKMMyssyufCBUegFwT/6OA22JHF/Z/nBehXqsZ9","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":594166},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"7b7b2ace24851cea71bfa587a4c9adb126f23212","mcpName":"io.github.dgahagan/weather-mcp","scripts":{"dev":"tsx src/index.ts","test":"vitest run","audit":"npm audit --audit-level=moderate","build":"tsc","start":"node dist/index.js","test:ui":"vitest --ui","audit:fix":"npm audit fix","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"dangahagan","email":"dangahagan@gmail.com"},"repository":{"url":"git+https://github.com/dgahagan/weather-mcp.git","type":"git"},"_npmVersion":"10.9.3","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.","directories":{},"_nodeVersion":"22.19.0","dependencies":{"axios":"^1.13.1","luxon":"^3.7.2","dotenv":"^17.2.3","@modelcontextprotocol/sdk":"^1.21.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","vitest":"^4.0.7","typescript":"^5.9.3","@types/node":"^24.10.0","@types/luxon":"^3.7.1","@vitest/coverage-v8":"^4.0.7"},"_npmOperationalInternal":{"tmp":"tmp/weather-mcp_1.2.1_1762543115359_0.5101013693278218","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@dangahagan/weather-mcp","version":"1.3.0","keywords":["mcp","mcp-server","model-context-protocol","weather","weather-api","noaa","open-meteo","forecast","climate","historical-weather","claude","claude-code","ai","llm"],"author":{"name":"Dan Gahagan"},"license":"MIT","_id":"@dangahagan/weather-mcp@1.3.0","maintainers":[{"name":"dangahagan","email":"dangahagan@gmail.com"}],"homepage":"https://github.com/dgahagan/weather-mcp#readme","bugs":{"url":"https://github.com/dgahagan/weather-mcp/issues"},"bin":{"weather-mcp":"dist/index.js"},"dist":{"shasum":"7e95bb5acbd45b322bec0b4f721e1aa46b4ce36f","tarball":"https://registry.npmjs.org/@dangahagan/weather-mcp/-/weather-mcp-1.3.0.tgz","fileCount":127,"integrity":"sha512-jjepSlbCiv441lxsx1DcPehwDFvnoXhtH6Nwk9z7DL3umJ53DZhhZYtKo1+nwjaTlZ8PL6jo/hrz2Iwj5Hm5dA==","signatures":[{"sig":"MEUCIQCvLIN0/GKpA0bNrrJv5WDeKEMvMKLkNmATfGLqpl+W5QIgYN+8DLjMWPep3d71yGLfxKoK2vCCxm95R70zeqJapLU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":597257},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"0138d98440ecd22873e6869e0d91d5829ef3d28d","mcpName":"io.github.dgahagan/weather-mcp","scripts":{"dev":"tsx src/index.ts","test":"vitest run","audit":"npm audit --audit-level=moderate","build":"tsc","start":"node dist/index.js","test:ui":"vitest --ui","audit:fix":"npm audit fix","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"dangahagan","email":"dangahagan@gmail.com"},"repository":{"url":"git+https://github.com/dgahagan/weather-mcp.git","type":"git"},"_npmVersion":"10.9.3","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.","directories":{},"_nodeVersion":"22.19.0","dependencies":{"axios":"^1.13.1","luxon":"^3.7.2","dotenv":"^17.2.3","@modelcontextprotocol/sdk":"^1.21.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","vitest":"^4.0.7","typescript":"^5.9.3","@types/node":"^24.10.0","@types/luxon":"^3.7.1","@vitest/coverage-v8":"^4.0.7"},"_npmOperationalInternal":{"tmp":"tmp/weather-mcp_1.3.0_1762549794862_0.9644819455534832","host":"s3://npm-registry-packages-npm-production"}},"1.6.1":{"name":"@dangahagan/weather-mcp","version":"1.6.1","keywords":["mcp","mcp-server","model-context-protocol","weather","weather-api","noaa","open-meteo","forecast","climate","historical-weather","claude","claude-code","ai","llm"],"author":{"name":"Dan Gahagan"},"license":"MIT","_id":"@dangahagan/weather-mcp@1.6.1","maintainers":[{"name":"dangahagan","email":"dangahagan@gmail.com"}],"homepage":"https://github.com/dgahagan/weather-mcp#readme","bugs":{"url":"https://github.com/dgahagan/weather-mcp/issues"},"bin":{"weather-mcp":"dist/index.js"},"dist":{"shasum":"3faca2e16f8e2728a086dea6a5c91792e9a52729","tarball":"https://registry.npmjs.org/@dangahagan/weather-mcp/-/weather-mcp-1.6.1.tgz","fileCount":179,"integrity":"sha512-H7NLrEjnHqlowT4m8w7rgueykYZrM37udk+Y04lp63STbYfsw3+LyW4VgXXcfRDk2fkdYDhlcuCFWFByleGn/A==","signatures":[{"sig":"MEYCIQDJpYNzCRl7WLveazT0rPxPfa/K7PV1dvaVkIwko2veXQIhAPkaOwSjloAQUyAfMdfxFvemXVm3YjWT8MvzKuzEp6q6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":826607},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"492ff6d847fbce7126ed16e74e5655770aa948fa","mcpName":"io.github.dgahagan/weather-mcp","scripts":{"dev":"tsx src/index.ts","test":"vitest run","audit":"npm audit --audit-level=moderate","build":"tsc","start":"node dist/index.js","test:ui":"vitest --ui","audit:fix":"npm audit fix","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"dangahagan","email":"dangahagan@gmail.com"},"repository":{"url":"git+https://github.com/dgahagan/weather-mcp.git","type":"git"},"_npmVersion":"10.9.3","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.","directories":{},"_nodeVersion":"22.19.0","dependencies":{"mqtt":"^5.14.1","axios":"^1.13.1","luxon":"^3.7.2","dotenv":"^17.2.3","ngeohash":"^0.6.3","@modelcontextprotocol/sdk":"^1.21.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","vitest":"^4.0.8","typescript":"^5.9.3","@types/mqtt":"^0.0.34","@types/node":"^24.10.0","@types/luxon":"^3.7.1","@types/ngeohash":"^0.6.8","@vitest/coverage-v8":"^4.0.8"},"_npmOperationalInternal":{"tmp":"tmp/weather-mcp_1.6.1_1762804972039_0.25604333640879506","host":"s3://npm-registry-packages-npm-production"}},"1.7.1":{"name":"@dangahagan/weather-mcp","version":"1.7.1","keywords":["mcp","mcp-server","model-context-protocol","weather","weather-api","noaa","open-meteo","forecast","climate","historical-weather","claude","claude-code","ai","llm"],"author":{"name":"Dan Gahagan"},"license":"MIT","_id":"@dangahagan/weather-mcp@1.7.1","maintainers":[{"name":"dangahagan","email":"dangahagan@gmail.com"}],"homepage":"https://github.com/weather-mcp/weather-mcp#readme","bugs":{"url":"https://github.com/weather-mcp/weather-mcp/issues"},"bin":{"weather-mcp":"dist/index.js"},"dist":{"shasum":"4d2a10efeca9bf08b8777d8c171ee323afb2b5ac","tarball":"https://registry.npmjs.org/@dangahagan/weather-mcp/-/weather-mcp-1.7.1.tgz","fileCount":235,"integrity":"sha512-t3juGo1TA5QD3/qklQcWVnEc/NYU8GovY9g9RDxpB1KPqhces8N3Xv447ghAOjRsvVhpslkJZYRCxIQe6YhuMA==","signatures":[{"sig":"MEUCIQC3GIHEPO8nrICRQloHQMRrlMfmBsGG6c2OMDlOsMu+4AIge0yGeVV7Io8Tc0RGAmyKqiL8NMKa/ZkvL02MW0lckmg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1029864},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"2bc64cfdd8d5e932faee0836ab02243cb57ec2f4","mcpName":"io.github.dgahagan/weather-mcp","scripts":{"dev":"tsx src/index.ts","test":"vitest run","audit":"npm audit --audit-level=moderate","build":"tsc","start":"node dist/index.js","test:ui":"vitest --ui","audit:fix":"npm audit fix","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"dangahagan","email":"dangahagan@gmail.com"},"repository":{"url":"git+https://github.com/weather-mcp/weather-mcp.git","type":"git"},"_npmVersion":"10.9.3","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.","directories":{},"_nodeVersion":"22.19.0","dependencies":{"mqtt":"^5.14.1","axios":"^1.13.1","luxon":"^3.7.2","dotenv":"^17.2.3","ngeohash":"^0.6.3","@modelcontextprotocol/sdk":"^1.21.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","vitest":"^4.0.8","typescript":"^6.0.3","@types/node":"^25.9.3","@types/luxon":"^3.7.1","@types/ngeohash":"^0.6.8","@vitest/coverage-v8":"^4.0.8"},"_npmOperationalInternal":{"tmp":"tmp/weather-mcp_1.7.1_1782096448195_0.07699843623180902","host":"s3://npm-registry-packages-npm-production"}},"1.8.0":{"name":"@dangahagan/weather-mcp","version":"1.8.0","keywords":["mcp","mcp-server","model-context-protocol","weather","weather-api","noaa","open-meteo","forecast","climate","historical-weather","claude","claude-code","ai","llm"],"author":{"name":"Dan Gahagan"},"license":"MIT","_id":"@dangahagan/weather-mcp@1.8.0","maintainers":[{"name":"dangahagan","email":"dangahagan@gmail.com"}],"homepage":"https://github.com/weather-mcp/weather-mcp#readme","bugs":{"url":"https://github.com/weather-mcp/weather-mcp/issues"},"bin":{"weather-mcp":"dist/index.js"},"dist":{"shasum":"b16580cadc7d8ce4f8a0a49570e0336f9f1252df","tarball":"https://registry.npmjs.org/@dangahagan/weather-mcp/-/weather-mcp-1.8.0.tgz","fileCount":243,"integrity":"sha512-f56eteyBlBTJlG6VdPF2y4AbkpI9iiBRbNnWrqzBnwINfJiGqzTEonvImSp61HbGCZqJKW3if8Q6Eek06CIv2A==","signatures":[{"sig":"MEQCIDCbNkr9393/RrFx8rQ4ydCkI7njuXK8zK1wPAwGDSAIAiBCQbaCR6ENZjxfvbY07uDoTjWilq8lrnraoCshVWLFfg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1054135},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"0b5e93b2f541bb623040cf7a2cf655c66dea60ff","mcpName":"io.github.dgahagan/weather-mcp","scripts":{"dev":"tsx src/index.ts","test":"vitest run","audit":"npm audit --audit-level=moderate","build":"tsc","start":"node dist/index.js","test:ui":"vitest --ui","audit:fix":"npm audit fix","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"dangahagan","email":"dangahagan@gmail.com"},"repository":{"url":"git+https://github.com/weather-mcp/weather-mcp.git","type":"git"},"_npmVersion":"10.9.3","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.","directories":{},"_nodeVersion":"22.19.0","dependencies":{"mqtt":"^5.14.1","axios":"^1.13.1","luxon":"^3.7.2","dotenv":"^17.2.3","ngeohash":"^0.6.3","tz-lookup":"^6.1.25","@modelcontextprotocol/sdk":"^1.21.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","vitest":"^4.0.8","typescript":"^6.0.3","@types/node":"^25.9.3","@types/luxon":"^3.7.1","@types/ngeohash":"^0.6.8","@types/tz-lookup":"^6.1.2","@vitest/coverage-v8":"^4.0.8"},"_npmOperationalInternal":{"tmp":"tmp/weather-mcp_1.8.0_1782103505895_0.9444148806455153","host":"s3://npm-registry-packages-npm-production"}},"1.8.1":{"name":"@dangahagan/weather-mcp","version":"1.8.1","keywords":["mcp","mcp-server","model-context-protocol","weather","weather-api","noaa","open-meteo","forecast","climate","historical-weather","claude","claude-code","ai","llm"],"author":{"name":"Dan Gahagan"},"license":"MIT","_id":"@dangahagan/weather-mcp@1.8.1","maintainers":[{"name":"dangahagan","email":"dangahagan@gmail.com"}],"homepage":"https://github.com/weather-mcp/weather-mcp#readme","bugs":{"url":"https://github.com/weather-mcp/weather-mcp/issues"},"bin":{"weather-mcp":"dist/index.js"},"dist":{"shasum":"3f3a11a93df2c5c5fa66a780a277c38f5325a7cb","tarball":"https://registry.npmjs.org/@dangahagan/weather-mcp/-/weather-mcp-1.8.1.tgz","fileCount":243,"integrity":"sha512-lU0tZx8gtMtWHjZ+t4jFFf0oW/fYp+iQ/kKVnM1OzlsElXVMOVWqo37T2xlBK4lpp87aV88ONl2YmpEDmul2iQ==","signatures":[{"sig":"MEUCIDLAe2WRAA2nJx6D5k4yT3GBZd2++np3mjugSPNqLn8eAiEA0KVJVLvOxoesazJrWoHGZOwluf+qMKvq6dyZvgviUqw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dangahagan%2fweather-mcp@1.8.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1054109},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"436f2350d720f378c7e717212f55f0d93edecd9c","mcpName":"io.github.dgahagan/weather-mcp","scripts":{"dev":"tsx src/index.ts","test":"vitest run","audit":"npm audit --audit-level=moderate","build":"tsc","start":"node dist/index.js","test:ui":"vitest --ui","audit:fix":"npm audit fix","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:37f5d9f7-3408-4322-9d52-be5d592163ef"}},"repository":{"url":"git+https://github.com/weather-mcp/weather-mcp.git","type":"git"},"_npmVersion":"11.18.0","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.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"mqtt":"^5.14.1","axios":"^1.13.1","luxon":"^3.7.2","dotenv":"^17.2.3","ngeohash":"^0.6.3","tz-lookup":"^6.1.25","@modelcontextprotocol/sdk":"^1.21.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","vitest":"^4.0.8","typescript":"^6.0.3","@types/node":"^26.0.0","@types/luxon":"^3.7.1","@types/ngeohash":"^0.6.8","@types/tz-lookup":"^6.1.2","@vitest/coverage-v8":"^4.0.8"},"_npmOperationalInternal":{"tmp":"tmp/weather-mcp_1.8.1_1783397310543_0.7816565843948027","host":"s3://npm-registry-packages-npm-production"}},"1.8.2":{"name":"@dangahagan/weather-mcp","version":"1.8.2","keywords":["mcp","mcp-server","model-context-protocol","weather","weather-api","weather-forecast","noaa","open-meteo","forecast","climate","historical-weather","weather-alerts","air-quality","marine-weather","lightning","weather-radar","wildfire","geocoding","no-api-key","free","claude","claude-code","cursor","ai","llm","ai-tools"],"author":{"name":"Dan Gahagan"},"license":"MIT","_id":"@dangahagan/weather-mcp@1.8.2","maintainers":[{"name":"dangahagan","email":"dangahagan@gmail.com"}],"homepage":"https://github.com/weather-mcp/weather-mcp#readme","bugs":{"url":"https://github.com/weather-mcp/weather-mcp/issues"},"bin":{"weather-mcp":"dist/index.js"},"dist":{"shasum":"01bfa33a9ed87348722a5d6ec593fe88186c0f18","tarball":"https://registry.npmjs.org/@dangahagan/weather-mcp/-/weather-mcp-1.8.2.tgz","fileCount":243,"integrity":"sha512-7QftRR1KPMoGYX3LmxF90CEwZlUwoEs73700hV7mqxtXNLxNiizlfN4DfwUlY5SReHEa/FTamKFVW++hXq0BQg==","signatures":[{"sig":"MEQCIB/5VbEdeAWfbqdwlx2xgwV+VcciZupR+G0IN9Qj8UGDAiA2x81VmEbtj/H9teeW/HtLdCUebEMofBbBnY89g+zl2w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dangahagan%2fweather-mcp@1.8.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1013159},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"cd29f7a8ed77b95c48f371b99f8d432d857fcb6d","mcpName":"io.github.dgahagan/weather-mcp","scripts":{"dev":"tsx src/index.ts","test":"vitest run","audit":"npm audit --audit-level=moderate","build":"tsc","start":"node dist/index.js","test:ui":"vitest --ui","audit:fix":"npm audit fix","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:37f5d9f7-3408-4322-9d52-be5d592163ef"}},"repository":{"url":"git+https://github.com/weather-mcp/weather-mcp.git","type":"git"},"_npmVersion":"11.18.0","description":"MCP server giving AI assistants 16 weather tools with zero API keys: global forecasts, current conditions, alerts, air quality, marine conditions, lightning detection, radar imagery, river levels, wildfire tracking, and historical weather back to 1940. Bu","directories":{},"_nodeVersion":"22.23.1","dependencies":{"mqtt":"^5.14.1","axios":"^1.13.1","luxon":"^3.7.2","dotenv":"^17.2.3","ngeohash":"^0.6.3","tz-lookup":"^6.1.25","@modelcontextprotocol/sdk":"^1.21.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","vitest":"^4.0.8","typescript":"^6.0.3","@types/node":"^26.0.0","@types/luxon":"^3.7.1","@types/ngeohash":"^0.6.8","@types/tz-lookup":"^6.1.2","@vitest/coverage-v8":"^4.0.8"},"_npmOperationalInternal":{"tmp":"tmp/weather-mcp_1.8.2_1783399738753_0.3275717430573224","host":"s3://npm-registry-packages-npm-production"}},"1.11.0":{"name":"@dangahagan/weather-mcp","version":"1.11.0","keywords":["mcp","mcp-server","model-context-protocol","weather","weather-api","weather-forecast","noaa","open-meteo","forecast","climate","historical-weather","weather-alerts","air-quality","marine-weather","lightning","weather-radar","wildfire","geocoding","no-api-key","free","claude","claude-code","cursor","ai","llm","ai-tools"],"author":{"name":"Dan Gahagan"},"license":"MIT","_id":"@dangahagan/weather-mcp@1.11.0","maintainers":[{"name":"dangahagan","email":"dangahagan@gmail.com"}],"homepage":"https://github.com/weather-mcp/weather-mcp#readme","bugs":{"url":"https://github.com/weather-mcp/weather-mcp/issues"},"bin":{"weather-mcp":"dist/index.js"},"dist":{"shasum":"ea45ca5780c3f93d301069b86df069c2eee1e3de","tarball":"https://registry.npmjs.org/@dangahagan/weather-mcp/-/weather-mcp-1.11.0.tgz","fileCount":259,"integrity":"sha512-3lfYSaEOKFzDapJWX4yo8HXh73mCcRidu7uFJps8IRTFpvCTbe6VVUHz0/3iq037T1l+9N8GIS7eNex46sKI/A==","signatures":[{"sig":"MEYCIQC6Se/kbfIdGtAtsfX/D9Htcn/WFdmMZcN0EDcoZ1IkOgIhAPVdjqVYDC8gDFLMmrsWpBNXEV1mgMdJWrCP3q0daPwH","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dangahagan%2fweather-mcp@1.11.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1115507},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"2971e4f1865e4d14085c1289d2a966a9e9633901","mcpName":"io.github.dgahagan/weather-mcp","scripts":{"dev":"tsx src/index.ts","test":"vitest run","audit":"npm audit --audit-level=moderate","build":"tsc","start":"node dist/index.js","test:ui":"vitest --ui","audit:fix":"npm audit fix","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:37f5d9f7-3408-4322-9d52-be5d592163ef"}},"repository":{"url":"git+https://github.com/weather-mcp/weather-mcp.git","type":"git"},"_npmVersion":"12.0.1","description":"MCP server giving AI assistants 16 weather tools with zero API keys: global forecasts, current conditions, alerts, air quality, marine conditions, lightning detection, radar imagery, river levels, wildfire tracking, and historical weather back to 1940. Bu","directories":{},"_nodeVersion":"22.23.1","dependencies":{"mqtt":"^5.14.1","axios":"^1.13.1","luxon":"^3.7.2","dotenv":"^17.2.3","ngeohash":"^0.6.3","tz-lookup":"^6.1.25","@modelcontextprotocol/sdk":"^1.21.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","vitest":"^4.0.8","typescript":"^6.0.3","@types/node":"^26.0.0","@types/luxon":"^3.7.1","@types/ngeohash":"^0.6.8","@types/tz-lookup":"^6.1.2","@vitest/coverage-v8":"^4.0.8"},"_npmOperationalInternal":{"tmp":"tmp/weather-mcp_1.11.0_1783954642650_0.02872818791831211","host":"s3://npm-registry-packages-npm-production"}},"1.11.1":{"name":"@dangahagan/weather-mcp","version":"1.11.1","keywords":["mcp","mcp-server","model-context-protocol","weather","weather-api","weather-forecast","noaa","open-meteo","forecast","climate","historical-weather","weather-alerts","air-quality","marine-weather","lightning","weather-radar","wildfire","geocoding","no-api-key","free","claude","claude-code","cursor","ai","llm","ai-tools"],"author":{"name":"Dan Gahagan"},"license":"MIT","_id":"@dangahagan/weather-mcp@1.11.1","maintainers":[{"name":"dangahagan","email":"dangahagan@gmail.com"}],"homepage":"https://github.com/weather-mcp/weather-mcp#readme","bugs":{"url":"https://github.com/weather-mcp/weather-mcp/issues"},"bin":{"weather-mcp":"dist/index.js"},"dist":{"shasum":"b9fea20adac447574f94b7f6d4da528ec88f68a6","tarball":"https://registry.npmjs.org/@dangahagan/weather-mcp/-/weather-mcp-1.11.1.tgz","fileCount":259,"integrity":"sha512-KRNPwVi093gulcl2n9EBLsRFsEt5CHppjqbmWmDL5J7it9hz7aSVlvng99oxXb2vG8MMMiTMx6UIkQ8FY+Zusg==","signatures":[{"sig":"MEYCIQDSF6psGCF9RrUKcT9OnVsxruJ0RMinD66HOllGp0awwAIhAJE9xyq6HE24tmYcz93BrEY4kTB42iS72G3qZJaIsl8r","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dangahagan%2fweather-mcp@1.11.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1126950},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"4c508998aaac1968c09b6ec928777d5660ada0af","mcpName":"io.github.dgahagan/weather-mcp","scripts":{"dev":"tsx src/index.ts","test":"vitest run","audit":"npm audit --audit-level=moderate","build":"tsc","start":"node dist/index.js","test:ui":"vitest --ui","audit:fix":"npm audit fix","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:37f5d9f7-3408-4322-9d52-be5d592163ef"}},"repository":{"url":"git+https://github.com/weather-mcp/weather-mcp.git","type":"git"},"_npmVersion":"12.0.1","description":"MCP server giving AI assistants 16 weather tools with zero API keys: global forecasts, current conditions, alerts, air quality, marine conditions, lightning detection, radar imagery, river levels, wildfire tracking, and historical weather back to 1940. Bu","directories":{},"_nodeVersion":"22.23.1","dependencies":{"mqtt":"^5.14.1","axios":"^1.13.1","luxon":"^3.7.2","dotenv":"^17.2.3","ngeohash":"^0.6.3","tz-lookup":"^6.1.25","@modelcontextprotocol/sdk":"^1.21.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","vitest":"^4.0.8","typescript":"^6.0.3","@types/node":"^26.0.0","@types/luxon":"^3.7.1","@types/ngeohash":"^0.6.8","@types/tz-lookup":"^6.1.2","@vitest/coverage-v8":"^4.0.8"},"_npmOperationalInternal":{"tmp":"tmp/weather-mcp_1.11.1_1783960441465_0.6452711299080058","host":"s3://npm-registry-packages-npm-production"}},"1.13.0":{"name":"@dangahagan/weather-mcp","version":"1.13.0","keywords":["mcp","mcp-server","model-context-protocol","weather","weather-api","weather-forecast","noaa","open-meteo","forecast","climate","historical-weather","weather-alerts","air-quality","marine-weather","lightning","weather-radar","wildfire","geocoding","no-api-key","free","claude","claude-code","cursor","ai","llm","ai-tools"],"author":{"name":"Dan Gahagan"},"license":"MIT","_id":"@dangahagan/weather-mcp@1.13.0","maintainers":[{"name":"dangahagan","email":"dangahagan@gmail.com"}],"homepage":"https://github.com/weather-mcp/weather-mcp#readme","bugs":{"url":"https://github.com/weather-mcp/weather-mcp/issues"},"bin":{"weather-mcp":"dist/index.js"},"dist":{"shasum":"19ec17cbea01aa1e36ade57370c12d464d346e9b","tarball":"https://registry.npmjs.org/@dangahagan/weather-mcp/-/weather-mcp-1.13.0.tgz","fileCount":259,"integrity":"sha512-xKET0TMxNGOamDoxYR6iw5C9Hl7HROUhIkI1N8x/eVMbn/i2Et1uNmbxfRGJyiV2BCGPzSxp/3CUQNR/diVx+g==","signatures":[{"sig":"MEQCIA8v55FhDhHyz6Vh74Y9N96UYb37GuhcNCKRAcq4Tp6HAiA+O9RwSdY4CnHXYSLxUfenrE2kvpwGe1y5vlkvx5Qmmg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dangahagan%2fweather-mcp@1.13.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1201039},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"c892bdc255cebbeafa4cf633ddf7a0dcef62081f","mcpName":"io.github.dgahagan/weather-mcp","scripts":{"dev":"tsx src/index.ts","test":"vitest run","audit":"npm audit --audit-level=moderate","build":"tsc","start":"node dist/index.js","stress":"node scripts/stress-harness.mjs","test:ui":"vitest --ui","audit:fix":"npm audit fix","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:37f5d9f7-3408-4322-9d52-be5d592163ef"}},"repository":{"url":"git+https://github.com/weather-mcp/weather-mcp.git","type":"git"},"_npmVersion":"12.0.1","description":"MCP server giving AI assistants 17 weather tools with zero API keys: global forecasts, current conditions, alerts, air quality, marine conditions, lightning detection, radar imagery, river levels, wildfire tracking, and historical weather back to 1940. Bu","directories":{},"_nodeVersion":"22.23.1","dependencies":{"mqtt":"^5.14.1","axios":"^1.13.1","luxon":"^3.7.2","dotenv":"^17.2.3","ngeohash":"^0.6.3","tz-lookup":"^6.1.25","@modelcontextprotocol/sdk":"^1.21.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","vitest":"^4.0.8","typescript":"^7.0.2","@types/node":"^26.1.1","@types/luxon":"^3.7.1","@types/ngeohash":"^0.6.8","@types/tz-lookup":"^6.1.2","@vitest/coverage-v8":"^4.0.8"},"_npmOperationalInternal":{"tmp":"tmp/weather-mcp_1.13.0_1784312228101_0.5904356582808061","host":"s3://npm-registry-packages-npm-production"}},"1.14.0":{"name":"@dangahagan/weather-mcp","version":"1.14.0","keywords":["mcp","mcp-server","model-context-protocol","weather","weather-api","weather-forecast","noaa","open-meteo","forecast","climate","historical-weather","weather-alerts","air-quality","marine-weather","lightning","weather-radar","wildfire","geocoding","no-api-key","free","claude","claude-code","cursor","ai","llm","ai-tools"],"author":{"name":"Dan Gahagan"},"license":"MIT","_id":"@dangahagan/weather-mcp@1.14.0","maintainers":[{"name":"dangahagan","email":"dangahagan@gmail.com"}],"homepage":"https://github.com/weather-mcp/weather-mcp#readme","bugs":{"url":"https://github.com/weather-mcp/weather-mcp/issues"},"bin":{"weather-mcp":"dist/index.js"},"dist":{"shasum":"a56c8c42a27ca6b17f9e4c0fd45461f1ae23d14a","tarball":"https://registry.npmjs.org/@dangahagan/weather-mcp/-/weather-mcp-1.14.0.tgz","fileCount":263,"integrity":"sha512-+FonT49ZXk49/ZJAIGfrm6y+a/kkoVkm2uiKwFMAig959x6E+P2B3qIup4yy/wNVci3huZKkbrf+jWQICKt1+w==","signatures":[{"sig":"MEQCIFYvqdgiBXfQqIJp1Q8lDMS9Hy5QJ1nP1a2no+G2MsjVAiAoun+XmO2AIQCi0WW4tJrJmhxTPvyQYzhMgRKyleDvNA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dangahagan%2fweather-mcp@1.14.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1209808},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"db84d03570f79b3fa3e05fd844d5d67963477586","mcpName":"io.github.dgahagan/weather-mcp","scripts":{"dev":"tsx src/index.ts","test":"vitest run","audit":"npm audit --audit-level=moderate","build":"tsc","start":"node dist/index.js","stress":"node scripts/stress-harness.mjs","test:ui":"vitest --ui","audit:fix":"npm audit fix","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:37f5d9f7-3408-4322-9d52-be5d592163ef"}},"repository":{"url":"git+https://github.com/weather-mcp/weather-mcp.git","type":"git"},"_npmVersion":"11.19.0","description":"MCP server giving AI assistants 17 weather tools with zero API keys: global forecasts, current conditions, alerts, air quality, marine conditions, lightning detection, radar imagery, river levels, wildfire tracking, and historical weather back to 1940. Bu","directories":{},"_nodeVersion":"22.23.1","dependencies":{"mqtt":"^5.14.1","axios":"^1.19.0","luxon":"^3.7.2","dotenv":"^17.2.3","ngeohash":"^0.6.4","tz-lookup":"^6.1.25","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.11","vitest":"^4.0.8","typescript":"^7.0.2","@types/node":"^26.1.2","@types/luxon":"^3.7.3","@types/ngeohash":"^0.6.8","@types/tz-lookup":"^6.1.2","@vitest/coverage-v8":"^4.0.8"},"_npmOperationalInternal":{"tmp":"tmp/weather-mcp_1.14.0_1786564182803_0.027879208277495238","host":"s3://npm-registry-packages-npm-production"}},"1.18.0":{"name":"@dangahagan/weather-mcp","version":"1.18.0","keywords":["mcp","mcp-server","model-context-protocol","weather","weather-api","weather-forecast","noaa","open-meteo","forecast","climate","historical-weather","weather-alerts","air-quality","marine-weather","lightning","weather-radar","wildfire","geocoding","no-api-key","free","claude","claude-code","cursor","ai","llm","ai-tools"],"author":{"name":"Dan Gahagan"},"license":"MIT","_id":"@dangahagan/weather-mcp@1.18.0","maintainers":[{"name":"dangahagan","email":"dangahagan@gmail.com"}],"homepage":"https://github.com/weather-mcp/weather-mcp#readme","bugs":{"url":"https://github.com/weather-mcp/weather-mcp/issues"},"bin":{"weather-mcp":"dist/index.js"},"dist":{"shasum":"c1245cd70acc54d85367eb1cfcfcc2ead1158017","tarball":"https://registry.npmjs.org/@dangahagan/weather-mcp/-/weather-mcp-1.18.0.tgz","fileCount":295,"integrity":"sha512-TbevXngekjOPzsx024GcsH8UISNtAjNRQBKjT8UXuOVm6guUevRHncmvZ01oSwSbZ1vqyOHdvZNhc7KuR97bFg==","signatures":[{"sig":"MEYCIQD7faek6S6/KMxPAANm5fEqN6h+d4D+c23IBNEoz0hRnQIhAMHAvuh7for4TpvFfnrvhKoxeIGRoncoEaqBpITWzfe6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dangahagan%2fweather-mcp@1.18.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1452348},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"d9c35e5ccadb0d909c7b7c689e7d9dd4207b7848","mcpName":"io.github.dgahagan/weather-mcp","scripts":{"dev":"tsx src/index.ts","test":"vitest run","audit":"npm audit --audit-level=moderate","build":"tsc","start":"node dist/index.js","stress":"node scripts/stress-harness.mjs","test:ui":"vitest --ui","audit:fix":"npm audit fix","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:37f5d9f7-3408-4322-9d52-be5d592163ef"}},"repository":{"url":"git+https://github.com/weather-mcp/weather-mcp.git","type":"git"},"_npmVersion":"11.19.0","description":"MCP server giving AI assistants 17 weather tools with zero API keys: global forecasts, current conditions, alerts, air quality, marine conditions, lightning detection, radar imagery, river levels, wildfire tracking, and historical weather back to 1940. Bu","directories":{},"_nodeVersion":"22.23.2","dependencies":{"mqtt":"^5.14.1","axios":"^1.19.0","luxon":"^3.7.2","dotenv":"^17.2.3","ngeohash":"^0.6.4","tz-lookup":"^6.1.25","astronomy-engine":"^2.1.19","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.11","vitest":"^4.0.8","typescript":"^7.0.2","@types/node":"^26.1.2","@types/luxon":"^3.7.3","@types/ngeohash":"^0.6.8","@types/tz-lookup":"^6.1.2","@vitest/coverage-v8":"^4.0.8"},"_npmOperationalInternal":{"tmp":"tmp/weather-mcp_1.18.0_1786649135787_0.8819989198995306","host":"s3://npm-registry-packages-npm-production"}},"1.19.0":{"name":"@dangahagan/weather-mcp","version":"1.19.0","keywords":["mcp","mcp-server","model-context-protocol","weather","weather-api","weather-forecast","noaa","open-meteo","forecast","climate","historical-weather","weather-alerts","air-quality","marine-weather","lightning","weather-radar","wildfire","geocoding","no-api-key","free","claude","claude-code","cursor","ai","llm","ai-tools"],"author":{"name":"Dan Gahagan"},"license":"MIT","_id":"@dangahagan/weather-mcp@1.19.0","maintainers":[{"name":"dangahagan","email":"dangahagan@gmail.com"}],"homepage":"https://github.com/weather-mcp/weather-mcp#readme","bugs":{"url":"https://github.com/weather-mcp/weather-mcp/issues"},"bin":{"weather-mcp":"dist/index.js"},"dist":{"shasum":"bed96cbb0b39465eb614c3c16af779999d92f1d0","tarball":"https://registry.npmjs.org/@dangahagan/weather-mcp/-/weather-mcp-1.19.0.tgz","fileCount":319,"integrity":"sha512-j6Y5JC7Rq+fzyuqmOrN7e94hrTPUeyYRx5iHQuatL0DsY5nh14K8BCVzZxMdBv38MyJ3EkqEKXBpEuV3yU310w==","signatures":[{"sig":"MEQCIEBUDd4WLuiuM916Xmx1xdNa9BQLTIfwpb0wSxvwih9lAiBx5S3joy9mw8JpF4XD1qynUnl3mpxSMptTJFrtCqa8bA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dangahagan%2fweather-mcp@1.19.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1629128},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"8329a37cf1e04b9d2be550c0254632e9466fcbc1","mcpName":"io.github.dgahagan/weather-mcp","scripts":{"dev":"tsx src/index.ts","test":"vitest run","audit":"npm audit --audit-level=moderate","build":"tsc","start":"node dist/index.js","stress":"node scripts/stress-harness.mjs","test:ui":"vitest --ui","examples":"node scripts/capture-examples.mjs","audit:fix":"npm audit fix","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:37f5d9f7-3408-4322-9d52-be5d592163ef"}},"repository":{"url":"git+https://github.com/weather-mcp/weather-mcp.git","type":"git"},"_npmVersion":"11.19.0","description":"MCP server giving AI assistants 17 weather tools with zero API keys: global forecasts, current conditions, alerts, air quality, marine conditions, lightning detection, radar imagery, river levels, wildfire tracking, and historical weather back to 1940. Bu","directories":{},"_nodeVersion":"22.23.1","dependencies":{"mqtt":"^5.14.1","axios":"^1.19.0","luxon":"^3.7.2","pngjs":"^7.0.0","dotenv":"^17.2.3","ngeohash":"^0.6.4","tz-lookup":"^6.1.25","astronomy-engine":"^2.1.19","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.11","vitest":"^4.0.8","typescript":"^7.0.2","@types/node":"^26.1.2","@types/luxon":"^3.7.3","@types/pngjs":"^6.0.5","@types/ngeohash":"^0.6.8","@types/tz-lookup":"^6.1.2","@vitest/coverage-v8":"^4.0.8"},"_npmOperationalInternal":{"tmp":"tmp/weather-mcp_1.19.0_1786679964212_0.7076537977954211","host":"s3://npm-registry-packages-npm-production"}},"1.20.0":{"name":"@dangahagan/weather-mcp","version":"1.20.0","keywords":["mcp","mcp-server","model-context-protocol","weather","weather-api","weather-forecast","noaa","open-meteo","forecast","climate","historical-weather","weather-alerts","air-quality","marine-weather","lightning","weather-radar","wildfire","geocoding","no-api-key","free","claude","claude-code","cursor","ai","llm","ai-tools"],"author":{"name":"Dan Gahagan"},"license":"MIT","_id":"@dangahagan/weather-mcp@1.20.0","maintainers":[{"name":"dangahagan","email":"dangahagan@gmail.com"}],"homepage":"https://github.com/weather-mcp/weather-mcp#readme","bugs":{"url":"https://github.com/weather-mcp/weather-mcp/issues"},"bin":{"weather-mcp":"dist/index.js"},"dist":{"shasum":"44c7bf246193121398694defd1b265327a25b1fe","tarball":"https://registry.npmjs.org/@dangahagan/weather-mcp/-/weather-mcp-1.20.0.tgz","fileCount":331,"integrity":"sha512-ZhpXWvpwF5pBMVzaad0rsgFc53pdUQEG/+YC3zXYdMUHuE2bpkQp+lLHFeMmZoUaiwEPv9mLs/Hh18T6QOPVkQ==","signatures":[{"sig":"MEUCIB4aPvAXATaiMxzE0vV09kSlk+AWsgNnuPNo/ysVrLj7AiEA2JZ8wE5YO7lUPkDzo/I9NMveA1qz/G1dKP8DxAKSxmk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dangahagan%2fweather-mcp@1.20.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1758022},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"bcb96726832f2bcb053402d7c21a509158f3091f","mcpName":"io.github.dgahagan/weather-mcp","scripts":{"dev":"tsx src/index.ts","test":"vitest run","audit":"npm audit --audit-level=moderate","build":"tsc","start":"node dist/index.js","stress":"node scripts/stress-harness.mjs","test:ui":"vitest --ui","examples":"node scripts/capture-examples.mjs","audit:fix":"npm audit fix","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:37f5d9f7-3408-4322-9d52-be5d592163ef"}},"repository":{"url":"git+https://github.com/weather-mcp/weather-mcp.git","type":"git"},"_npmVersion":"11.19.0","description":"MCP server giving AI assistants 17 weather tools with zero API keys: global forecasts, current conditions, alerts, air quality, marine conditions, lightning detection, radar imagery, river levels, wildfire tracking, and historical weather back to 1940. Bu","directories":{},"_nodeVersion":"22.23.2","dependencies":{"mqtt":"^5.14.1","axios":"^1.19.0","luxon":"^3.7.2","pngjs":"^7.0.0","dotenv":"^17.2.3","ngeohash":"^0.6.4","tz-lookup":"^6.1.25","astronomy-engine":"^2.1.19","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.11","vitest":"^4.0.8","typescript":"^7.0.2","@types/node":"^26.1.2","@types/luxon":"^3.7.3","@types/pngjs":"^6.0.5","@types/ngeohash":"^0.6.8","@types/tz-lookup":"^6.1.2","@vitest/coverage-v8":"^4.0.8"},"_npmOperationalInternal":{"tmp":"tmp/weather-mcp_1.20.0_1786739834657_0.7502060150998315","host":"s3://npm-registry-packages-npm-production"}},"1.21.0":{"name":"@dangahagan/weather-mcp","version":"1.21.0","keywords":["mcp","mcp-server","model-context-protocol","weather","weather-api","weather-forecast","noaa","open-meteo","forecast","climate","historical-weather","weather-alerts","air-quality","marine-weather","lightning","weather-radar","wildfire","geocoding","no-api-key","free","claude","claude-code","cursor","ai","llm","ai-tools"],"author":{"name":"Dan Gahagan"},"license":"MIT","_id":"@dangahagan/weather-mcp@1.21.0","maintainers":[{"name":"dangahagan","email":"dangahagan@gmail.com"}],"homepage":"https://github.com/weather-mcp/weather-mcp#readme","bugs":{"url":"https://github.com/weather-mcp/weather-mcp/issues"},"bin":{"weather-mcp":"dist/index.js"},"dist":{"shasum":"eb7527b39febebb063f88883b76aea04e56866f7","tarball":"https://registry.npmjs.org/@dangahagan/weather-mcp/-/weather-mcp-1.21.0.tgz","fileCount":339,"integrity":"sha512-RK4FwUSaFwauIZ1YlxzKuJTXxDW2ss+zt63H9OFdYhIwnsGHf0Q/v5426Dh3iv5HNp8qMb2u1LWRg0PWXGePUg==","signatures":[{"sig":"MEYCIQDO51SXE7M71s9UWSHFazPsBjEHZQL5TlLBtxlo6/Zu5gIhAPme9fbrpywHdiZhP8mqHG646o91WedLrSLQyi4sNWMA","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dangahagan%2fweather-mcp@1.21.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1930180},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"f89576147d3adf41aab000b4496eae7583ce7c1a","mcpName":"io.github.dgahagan/weather-mcp","scripts":{"dev":"tsx src/index.ts","test":"vitest run","audit":"npm audit --audit-level=moderate","build":"tsc","start":"node dist/index.js","stress":"node scripts/stress-harness.mjs","test:ui":"vitest --ui","examples":"node scripts/capture-examples.mjs","audit:fix":"npm audit fix","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:37f5d9f7-3408-4322-9d52-be5d592163ef"}},"repository":{"url":"git+https://github.com/weather-mcp/weather-mcp.git","type":"git"},"_npmVersion":"11.19.0","description":"MCP server giving AI assistants 17 weather tools with zero API keys: global forecasts, current conditions, alerts, air quality, marine conditions, lightning detection, radar imagery, river levels, wildfire tracking, and historical weather back to 1940. Bu","directories":{},"_nodeVersion":"22.23.2","dependencies":{"mqtt":"^5.14.1","axios":"^1.19.0","luxon":"^3.7.2","pngjs":"^7.0.0","dotenv":"^17.2.3","ngeohash":"^0.6.4","tz-lookup":"^6.1.25","astronomy-engine":"^2.1.19","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.12","vitest":"^4.0.8","typescript":"^7.0.2","@types/node":"^26.2.0","@types/luxon":"^3.7.4","@types/pngjs":"^6.0.5","@types/ngeohash":"^0.6.8","@types/tz-lookup":"^6.1.2","@vitest/coverage-v8":"^4.0.8"},"_npmOperationalInternal":{"tmp":"tmp/weather-mcp_1.21.0_1787063668415_0.9567393738637016","host":"s3://npm-registry-packages-npm-production"}},"1.22.0":{"name":"@dangahagan/weather-mcp","version":"1.22.0","keywords":["mcp","mcp-server","model-context-protocol","weather","weather-api","weather-forecast","noaa","open-meteo","forecast","climate","historical-weather","weather-alerts","air-quality","marine-weather","lightning","weather-radar","wildfire","geocoding","no-api-key","free","claude","claude-code","cursor","ai","llm","ai-tools"],"author":{"name":"Dan Gahagan"},"license":"MIT","_id":"@dangahagan/weather-mcp@1.22.0","maintainers":[{"name":"dangahagan","email":"dangahagan@gmail.com"}],"homepage":"https://github.com/weather-mcp/weather-mcp#readme","bugs":{"url":"https://github.com/weather-mcp/weather-mcp/issues"},"bin":{"weather-mcp":"dist/index.js"},"dist":{"shasum":"20b2a1ea08cf5581eb802ebd2863af4d9678a2a3","tarball":"https://registry.npmjs.org/@dangahagan/weather-mcp/-/weather-mcp-1.22.0.tgz","fileCount":347,"integrity":"sha512-37wVQACR1eg3KbetM2/z5lToRrebibeKVVhQ6b8tngsFrETN9+N1LBf2c6pNtBqBLUjoD4PHUP7/V5XH0uNxWA==","signatures":[{"sig":"MEUCIQCC0yJJOzJUpbFELh42q2ZpcMRYRGGsIeHyJthtoBuJ2AIgSjfi/SgFRJeTp5xvy5NVQmxXFIHz+DhvPBbqKcdue4g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dangahagan%2fweather-mcp@1.22.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1970505},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"09cff0b089e43e57015bf359668a6bc5e1b190c4","mcpName":"io.github.dgahagan/weather-mcp","scripts":{"dev":"tsx src/index.ts","test":"vitest run","audit":"npm audit --audit-level=moderate","build":"tsc","start":"node dist/index.js","stress":"node scripts/stress-harness.mjs","test:ui":"vitest --ui","examples":"node scripts/capture-examples.mjs","audit:fix":"npm audit fix","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:37f5d9f7-3408-4322-9d52-be5d592163ef"}},"repository":{"url":"git+https://github.com/weather-mcp/weather-mcp.git","type":"git"},"_npmVersion":"11.19.0","description":"MCP server giving AI assistants 17 weather tools with zero API keys: global forecasts, current conditions, alerts, air quality, marine conditions, lightning detection, radar imagery, river levels, wildfire tracking, and historical weather back to 1940. Bu","directories":{},"_nodeVersion":"22.23.2","dependencies":{"mqtt":"^5.14.1","axios":"^1.19.0","luxon":"^3.7.2","pngjs":"^7.0.0","dotenv":"^17.2.3","ngeohash":"^0.6.4","tz-lookup":"^6.1.25","astronomy-engine":"^2.1.19","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.12","vitest":"^4.0.8","typescript":"^7.0.2","@types/node":"^26.2.0","@types/luxon":"^3.7.4","@types/pngjs":"^6.0.5","@types/ngeohash":"^0.6.8","@types/tz-lookup":"^6.1.2","@vitest/coverage-v8":"^4.0.8"},"_npmOperationalInternal":{"tmp":"tmp/weather-mcp_1.22.0_1787073705681_0.15232261693136384","host":"s3://npm-registry-packages-npm-production"}},"1.23.0":{"name":"@dangahagan/weather-mcp","version":"1.23.0","keywords":["mcp","mcp-server","model-context-protocol","weather","weather-api","weather-forecast","noaa","open-meteo","forecast","climate","historical-weather","weather-alerts","air-quality","marine-weather","lightning","weather-radar","wildfire","geocoding","no-api-key","free","claude","claude-code","cursor","ai","llm","ai-tools"],"author":{"name":"Dan Gahagan"},"license":"MIT","_id":"@dangahagan/weather-mcp@1.23.0","maintainers":[{"name":"dangahagan","email":"dangahagan@gmail.com"}],"homepage":"https://github.com/weather-mcp/weather-mcp#readme","bugs":{"url":"https://github.com/weather-mcp/weather-mcp/issues"},"bin":{"weather-mcp":"dist/index.js"},"dist":{"shasum":"21ed4ea4ccbb646793cc2e145124c1f941c42f1d","tarball":"https://registry.npmjs.org/@dangahagan/weather-mcp/-/weather-mcp-1.23.0.tgz","fileCount":355,"integrity":"sha512-eGWRlrJYzD36f2Ps25F9ghJno/U4HLO0slsX91SpvPgjQ4yDFCykXrryyO/W5tBvtI4Z0izSM+k9jOpWy82Gfw==","signatures":[{"sig":"MEUCIQCgonVv5B2PcsbKFlD/EkTqYEkDED9M7FT0983X+lWBrgIgWfdLcJ9Vjzc+/6ilY0kXhqmZXy78T7ZHGBvRDA1CXuE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dangahagan%2fweather-mcp@1.23.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2034240},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"8e5af48c0a7335d894b9e22717b1958a55f8a99e","mcpName":"io.github.dgahagan/weather-mcp","scripts":{"dev":"tsx src/index.ts","test":"vitest run","audit":"npm audit --audit-level=moderate","build":"tsc","start":"node dist/index.js","stress":"node scripts/stress-harness.mjs","test:ui":"vitest --ui","examples":"node scripts/capture-examples.mjs","audit:fix":"npm audit fix","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:37f5d9f7-3408-4322-9d52-be5d592163ef"}},"repository":{"url":"git+https://github.com/weather-mcp/weather-mcp.git","type":"git"},"_npmVersion":"11.19.0","description":"MCP server giving AI assistants 17 weather tools with zero API keys: global forecasts, current conditions, alerts, air quality, marine conditions, lightning detection, radar imagery, river levels, wildfire tracking, and historical weather back to 1940. Bu","directories":{},"_nodeVersion":"22.23.2","dependencies":{"mqtt":"^5.14.1","axios":"^1.19.0","luxon":"^3.7.2","pngjs":"^7.0.0","dotenv":"^17.2.3","ngeohash":"^0.6.4","tz-lookup":"^6.1.25","astronomy-engine":"^2.1.19","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.12","vitest":"^4.0.8","typescript":"^7.0.2","@types/node":"^26.2.0","@types/luxon":"^3.7.4","@types/pngjs":"^6.0.5","@types/ngeohash":"^0.6.8","@types/tz-lookup":"^6.1.2","@vitest/coverage-v8":"^4.0.8"},"_npmOperationalInternal":{"tmp":"tmp/weather-mcp_1.23.0_1787088027652_0.901408464987286","host":"s3://npm-registry-packages-npm-production"}},"1.24.0":{"name":"@dangahagan/weather-mcp","version":"1.24.0","keywords":["mcp","mcp-server","model-context-protocol","weather","weather-api","weather-forecast","noaa","open-meteo","forecast","climate","historical-weather","weather-alerts","air-quality","marine-weather","lightning","weather-radar","wildfire","geocoding","no-api-key","free","claude","claude-code","cursor","ai","llm","ai-tools"],"author":{"name":"Dan Gahagan"},"license":"MIT","_id":"@dangahagan/weather-mcp@1.24.0","maintainers":[{"name":"dangahagan","email":"dangahagan@gmail.com"}],"homepage":"https://github.com/weather-mcp/weather-mcp#readme","bugs":{"url":"https://github.com/weather-mcp/weather-mcp/issues"},"bin":{"weather-mcp":"dist/index.js"},"dist":{"shasum":"976cf63bd21d132b857355d2f2b164e43fca8e61","tarball":"https://registry.npmjs.org/@dangahagan/weather-mcp/-/weather-mcp-1.24.0.tgz","fileCount":375,"integrity":"sha512-Qk/X7HJy/pFXJyND+j9wtZlRJAEihG0sUnpeixZoGM5flmyYbspAJPuTZOWjkQWtSVUlyOrkukuRWyu6BfOIGw==","signatures":[{"sig":"MEUCIHiF+BpWMFUQErMbcFVyCs3pjbKtN4yl+YKH12qedVdAAiEA/6JOchSlLMZt+fu3PO0BEkAOwTEpnaTw6P6/HEhCCfE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dangahagan%2fweather-mcp@1.24.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2227203},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"e72b23c204033c2016ce9caf87c5e50f77b92523","mcpName":"io.github.dgahagan/weather-mcp","scripts":{"dev":"tsx src/index.ts","test":"vitest run","audit":"npm audit --audit-level=moderate","build":"tsc","start":"node dist/index.js","stress":"node scripts/stress-harness.mjs","test:ui":"vitest --ui","examples":"node scripts/capture-examples.mjs","audit:fix":"npm audit fix","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:37f5d9f7-3408-4322-9d52-be5d592163ef"}},"repository":{"url":"git+https://github.com/weather-mcp/weather-mcp.git","type":"git"},"_npmVersion":"11.19.0","description":"MCP server giving AI assistants 17 weather tools with zero API keys: global forecasts, current conditions, alerts, air quality, marine conditions, lightning detection, radar imagery, river levels, wildfire tracking, and historical weather back to 1940. Bu","directories":{},"_nodeVersion":"22.23.2","dependencies":{"mqtt":"^5.14.1","axios":"^1.19.0","luxon":"^3.7.2","pngjs":"^7.0.0","dotenv":"^17.2.3","ngeohash":"^0.6.4","tz-lookup":"^6.1.25","fast-xml-parser":"^5.11.0","astronomy-engine":"^2.1.19","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.12","vitest":"^4.0.8","typescript":"^7.0.2","@types/node":"^26.2.0","@types/luxon":"^3.7.4","@types/pngjs":"^6.0.5","@types/ngeohash":"^0.6.8","@types/tz-lookup":"^6.1.2","@vitest/coverage-v8":"^4.1.11"},"_npmOperationalInternal":{"tmp":"tmp/weather-mcp_1.24.0_1787598347263_0.11115680382764959","host":"s3://npm-registry-packages-npm-production"}},"1.25.0":{"name":"@dangahagan/weather-mcp","version":"1.25.0","keywords":["mcp","mcp-server","model-context-protocol","weather","weather-api","weather-forecast","noaa","open-meteo","forecast","climate","historical-weather","weather-alerts","air-quality","marine-weather","lightning","weather-radar","wildfire","geocoding","no-api-key","free","claude","claude-code","cursor","ai","llm","ai-tools"],"author":{"name":"Dan Gahagan"},"license":"MIT","_id":"@dangahagan/weather-mcp@1.25.0","maintainers":[{"name":"dangahagan","email":"dangahagan@gmail.com"}],"homepage":"https://github.com/weather-mcp/weather-mcp#readme","bugs":{"url":"https://github.com/weather-mcp/weather-mcp/issues"},"bin":{"weather-mcp":"dist/index.js"},"dist":{"shasum":"cb29e0c471014adefef1cc9b6b4e13be318b7876","tarball":"https://registry.npmjs.org/@dangahagan/weather-mcp/-/weather-mcp-1.25.0.tgz","fileCount":375,"integrity":"sha512-c8u6xifZ/tHfxC4cPPLOg1kIpBaxnZI65kF0VPPqMo1eB6PaF2ZBH6/Gx2ScUzLHDVv7Gen1QAInQOkDncbhaA==","signatures":[{"sig":"MEUCIQDw498M0XQndb+ZfdMqBGmUIzZZKzvx5jVAjdHnaaER6gIgI8J98ExChxC5R6UIsR7ipA39FxPvmKC56CV/BLR2+tc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dangahagan%2fweather-mcp@1.25.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2245364},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"119258dc5692b189020fd50c806737befcd5dacd","mcpName":"io.github.dgahagan/weather-mcp","scripts":{"dev":"tsx src/index.ts","test":"vitest run","audit":"npm audit --audit-level=moderate","build":"tsc","start":"node dist/index.js","stress":"node scripts/stress-harness.mjs","test:ui":"vitest --ui","examples":"node scripts/capture-examples.mjs","audit:fix":"npm audit fix","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:37f5d9f7-3408-4322-9d52-be5d592163ef"}},"repository":{"url":"git+https://github.com/weather-mcp/weather-mcp.git","type":"git"},"_npmVersion":"11.19.0","description":"MCP server giving AI assistants 17 weather tools with zero API keys: global forecasts, current conditions, alerts, air quality, marine conditions, lightning detection, radar imagery, river levels, wildfire tracking, and historical weather back to 1940. Bu","directories":{},"_nodeVersion":"22.23.2","dependencies":{"axios":"^1.19.0","luxon":"^3.7.2","pngjs":"^7.0.0","dotenv":"^17.2.3","ngeohash":"^0.6.4","tz-lookup":"^6.1.25","fast-xml-parser":"^5.11.0","astronomy-engine":"^2.1.19","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.12","vitest":"^4.0.8","typescript":"^7.0.2","@types/node":"^26.2.0","@types/luxon":"^3.7.4","@types/pngjs":"^6.0.5","@types/ngeohash":"^0.6.8","@types/tz-lookup":"^6.1.2","@vitest/coverage-v8":"^4.1.11"},"optionalDependencies":{"mqtt":"^5.14.1"},"_npmOperationalInternal":{"tmp":"tmp/weather-mcp_1.25.0_1787633858371_0.4190341879797841","host":"s3://npm-registry-packages-npm-production"}},"1.25.1":{"name":"@dangahagan/weather-mcp","version":"1.25.1","keywords":["mcp","mcp-server","model-context-protocol","weather","weather-api","weather-forecast","noaa","open-meteo","forecast","climate","historical-weather","weather-alerts","air-quality","marine-weather","lightning","weather-radar","wildfire","geocoding","no-api-key","free","claude","claude-code","cursor","ai","llm","ai-tools"],"author":{"name":"Dan Gahagan"},"license":"MIT","_id":"@dangahagan/weather-mcp@1.25.1","maintainers":[{"name":"dangahagan","email":"dangahagan@gmail.com"}],"homepage":"https://github.com/weather-mcp/weather-mcp#readme","bugs":{"url":"https://github.com/weather-mcp/weather-mcp/issues"},"bin":{"weather-mcp":"dist/index.js"},"dist":{"shasum":"887c498c513d8406098261cb6afebf7e852f4e4c","tarball":"https://registry.npmjs.org/@dangahagan/weather-mcp/-/weather-mcp-1.25.1.tgz","fileCount":375,"integrity":"sha512-4mjwP88tFcKNHVRwONl5cVEitPMRERZkd6ovuOqPIppp1R/4LnJH5vQkbkBNxeYWEZGsw2YI6yz5M4z0t5pWdw==","signatures":[{"sig":"MEQCIDvugYK6vf8IMDK7YShlFgviBOLsYXwJMqfIznFhEeOoAiAr/SqzQkpa1boKeBITg8zK8NV5Qya9439+GGHXZqgq0g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dangahagan%2fweather-mcp@1.25.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2248325},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"e4654d61f7c1e394a78882b1386c4741b5c8ea92","mcpName":"io.github.dgahagan/weather-mcp","scripts":{"dev":"tsx src/index.ts","test":"vitest run","audit":"npm audit --audit-level=moderate","build":"tsc","start":"node dist/index.js","stress":"node scripts/stress-harness.mjs","test:ui":"vitest --ui","examples":"node scripts/capture-examples.mjs","audit:fix":"npm audit fix","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:37f5d9f7-3408-4322-9d52-be5d592163ef"}},"repository":{"url":"git+https://github.com/weather-mcp/weather-mcp.git","type":"git"},"_npmVersion":"11.19.0","description":"MCP server giving AI assistants 17 weather tools with zero API keys: global forecasts, current conditions, alerts, air quality, marine conditions, lightning detection, radar imagery, river levels, wildfire tracking, and historical weather back to 1940. Bu","directories":{},"_nodeVersion":"22.23.2","dependencies":{"axios":"^1.19.0","luxon":"^3.7.2","pngjs":"^7.0.0","dotenv":"^17.2.3","ngeohash":"^0.6.4","tz-lookup":"^6.1.25","fast-xml-parser":"^5.11.0","astronomy-engine":"^2.1.19","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.12","vitest":"^4.0.8","typescript":"^7.0.2","@types/node":"^26.2.0","@types/luxon":"^3.7.4","@types/pngjs":"^6.0.5","@types/ngeohash":"^0.6.8","@types/tz-lookup":"^6.1.2","@vitest/coverage-v8":"^4.1.11"},"optionalDependencies":{"mqtt":"^5.14.1"},"_npmOperationalInternal":{"tmp":"tmp/weather-mcp_1.25.1_1787691732057_0.9344320283536198","host":"s3://npm-registry-packages-npm-production"}},"1.25.2":{"name":"@dangahagan/weather-mcp","version":"1.25.2","keywords":["mcp","mcp-server","model-context-protocol","weather","weather-api","weather-forecast","noaa","open-meteo","forecast","climate","historical-weather","weather-alerts","air-quality","marine-weather","lightning","weather-radar","wildfire","geocoding","no-api-key","free","claude","claude-code","cursor","ai","llm","ai-tools"],"author":{"name":"Dan Gahagan"},"license":"MIT","_id":"@dangahagan/weather-mcp@1.25.2","maintainers":[{"name":"dangahagan","email":"dangahagan@gmail.com"}],"homepage":"https://github.com/weather-mcp/weather-mcp#readme","bugs":{"url":"https://github.com/weather-mcp/weather-mcp/issues"},"bin":{"weather-mcp":"dist/index.js"},"dist":{"shasum":"8345ba4254c3e1fde5e0568e69d81356e0652822","tarball":"https://registry.npmjs.org/@dangahagan/weather-mcp/-/weather-mcp-1.25.2.tgz","fileCount":379,"integrity":"sha512-+jWWjMCP0XHNcWZ/LbgiVMYwxdINX6koz+Ig9qXypQ52vAmRbSY02mU4HTlr4VZ5iDr7Zs564iyLHNy5xrpAJw==","signatures":[{"sig":"MEQCIBl4KW6u6Or5Yrp8CSn+PPQoouovNrufRvgVB72h6aj0AiB0XV+zZiidr322IobUixzqvqoCRc3SUDVONIRMLcVSYg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dangahagan%2fweather-mcp@1.25.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2252242},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"0d293408f72cf5d0d68deb0cefc588114c1df1f3","mcpName":"io.github.dgahagan/weather-mcp","scripts":{"dev":"tsx src/index.ts","test":"vitest run","audit":"npm audit --audit-level=moderate","build":"tsc","start":"node dist/index.js","stress":"node scripts/stress-harness.mjs","test:ui":"vitest --ui","examples":"node scripts/capture-examples.mjs","audit:fix":"npm audit fix","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:37f5d9f7-3408-4322-9d52-be5d592163ef"}},"repository":{"url":"git+https://github.com/weather-mcp/weather-mcp.git","type":"git"},"_npmVersion":"11.19.0","description":"MCP server giving AI assistants 17 weather tools with zero API keys: global forecasts, current conditions, alerts, air quality, marine conditions, lightning detection, radar imagery, river levels, wildfire tracking, and historical weather back to 1940. Bu","directories":{},"_nodeVersion":"22.23.2","dependencies":{"axios":"^1.19.0","luxon":"^3.7.2","pngjs":"^7.0.0","dotenv":"^17.2.3","ngeohash":"^0.6.4","tz-lookup":"^6.1.25","fast-xml-parser":"^5.11.0","astronomy-engine":"^2.1.19","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.12","vitest":"^4.0.8","typescript":"^7.0.2","@types/node":"^26.2.0","@types/luxon":"^3.7.4","@types/pngjs":"^6.0.5","@types/ngeohash":"^0.6.8","@types/tz-lookup":"^6.1.2","@vitest/coverage-v8":"^4.1.11"},"optionalDependencies":{"mqtt":"^5.14.1"},"_npmOperationalInternal":{"tmp":"tmp/weather-mcp_1.25.2_1787719859961_0.4605304177494287","host":"s3://npm-registry-packages-npm-production"}},"1.25.3":{"name":"@dangahagan/weather-mcp","version":"1.25.3","keywords":["mcp","mcp-server","model-context-protocol","weather","weather-api","weather-forecast","noaa","open-meteo","forecast","climate","historical-weather","weather-alerts","air-quality","marine-weather","lightning","weather-radar","wildfire","geocoding","no-api-key","free","claude","claude-code","cursor","ai","llm","ai-tools"],"author":{"name":"Dan Gahagan"},"license":"MIT","_id":"@dangahagan/weather-mcp@1.25.3","maintainers":[{"name":"dangahagan","email":"dangahagan@gmail.com"}],"homepage":"https://github.com/weather-mcp/weather-mcp#readme","bugs":{"url":"https://github.com/weather-mcp/weather-mcp/issues"},"bin":{"weather-mcp":"dist/index.js"},"dist":{"shasum":"f557d1445c6090445e79b75ec8f4aae6ab58fba0","tarball":"https://registry.npmjs.org/@dangahagan/weather-mcp/-/weather-mcp-1.25.3.tgz","fileCount":379,"integrity":"sha512-QlGXSRhB02qm6ts3BZXQaeaMUnxym8q9h+v470lFWJwAx3IVYvffvVuU6LQrtun9YvwZ27M8eZvI5ijMRL/CtQ==","signatures":[{"sig":"MEUCIAXaaWrXj8caz1l52Y7LoeiUAmGochiZfiqu8kV7XeaLAiEAnAMnMmuH0jabPkrTbKhJvlbDkYBfHcD/SRBrw1xTGWk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dangahagan%2fweather-mcp@1.25.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2253126},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"b4c13c54e19d96e014beb6d4446df1a0748b0476","mcpName":"io.github.dgahagan/weather-mcp","scripts":{"dev":"tsx src/index.ts","test":"vitest run","audit":"npm audit --audit-level=moderate","build":"tsc","start":"node dist/index.js","stress":"node scripts/stress-harness.mjs","test:ui":"vitest --ui","examples":"node scripts/capture-examples.mjs","audit:fix":"npm audit fix","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:37f5d9f7-3408-4322-9d52-be5d592163ef"}},"repository":{"url":"git+https://github.com/weather-mcp/weather-mcp.git","type":"git"},"_npmVersion":"11.19.0","description":"MCP server giving AI assistants 17 weather tools with zero API keys: global forecasts, current conditions, alerts, air quality, marine conditions, lightning detection, radar imagery, river levels, wildfire tracking, and historical weather back to 1940. Bu","directories":{},"_nodeVersion":"22.23.2","dependencies":{"axios":"^1.19.0","luxon":"^3.7.2","pngjs":"^7.0.0","dotenv":"^17.2.3","ngeohash":"^0.6.4","tz-lookup":"^6.1.25","fast-xml-parser":"^5.11.0","astronomy-engine":"^2.1.19","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.12","vitest":"^4.0.8","typescript":"^7.0.2","@types/node":"^26.2.0","@types/luxon":"^3.7.4","@types/pngjs":"^6.0.5","@types/ngeohash":"^0.6.8","@types/tz-lookup":"^6.1.2","@vitest/coverage-v8":"^4.1.11"},"optionalDependencies":{"mqtt":"^5.14.1"},"_npmOperationalInternal":{"tmp":"tmp/weather-mcp_1.25.3_1787749187894_0.553674510774228","host":"s3://npm-registry-packages-npm-production"}},"1.25.4":{"name":"@dangahagan/weather-mcp","version":"1.25.4","keywords":["mcp","mcp-server","model-context-protocol","weather","weather-api","weather-forecast","noaa","open-meteo","forecast","climate","historical-weather","weather-alerts","air-quality","marine-weather","lightning","weather-radar","wildfire","geocoding","no-api-key","free","claude","claude-code","cursor","ai","llm","ai-tools"],"author":{"name":"Dan Gahagan"},"license":"MIT","_id":"@dangahagan/weather-mcp@1.25.4","maintainers":[{"name":"dangahagan","email":"dangahagan@gmail.com"}],"homepage":"https://github.com/weather-mcp/weather-mcp#readme","bugs":{"url":"https://github.com/weather-mcp/weather-mcp/issues"},"bin":{"weather-mcp":"dist/index.js"},"dist":{"shasum":"8f5f4a8565685afaaeb88a47dfe8fa7604532be3","tarball":"https://registry.npmjs.org/@dangahagan/weather-mcp/-/weather-mcp-1.25.4.tgz","fileCount":379,"integrity":"sha512-vX40KdEdoZ76TXl3RKIow0LCfw1F8tbBxnjdeu4c4M/gYXyVn4E+d/KHQoGfsJ6DVHvxFZ5VSlsxZrAFvgd1jw==","signatures":[{"sig":"MEQCID66nAvhsU4iza/yfis04PpAraCqZMl+O2bIVjoyJDOzAiBD2n1H0rkPAbRB1cbuQacTHiJQ5NzVymklOWNier10gw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dangahagan%2fweather-mcp@1.25.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2257781},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"667ab8a8b5a2b17d3b3ccc0a79b4e980ceaf68c7","mcpName":"io.github.dgahagan/weather-mcp","scripts":{"dev":"tsx src/index.ts","test":"vitest run","audit":"npm audit --audit-level=moderate","build":"tsc","start":"node dist/index.js","stress":"node scripts/stress-harness.mjs","test:ui":"vitest --ui","examples":"node scripts/capture-examples.mjs","audit:fix":"npm audit fix","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:37f5d9f7-3408-4322-9d52-be5d592163ef"}},"repository":{"url":"git+https://github.com/weather-mcp/weather-mcp.git","type":"git"},"_npmVersion":"11.19.1","description":"MCP server giving AI assistants 17 weather tools with zero API keys: global forecasts, current conditions, alerts, air quality, marine conditions, lightning detection, radar imagery, river levels, wildfire tracking, and historical weather back to 1940. Bu","directories":{},"_nodeVersion":"22.23.2","dependencies":{"axios":"^1.19.0","luxon":"^3.7.2","pngjs":"^7.0.0","dotenv":"^17.2.3","ngeohash":"^0.6.4","tz-lookup":"^6.1.25","fast-xml-parser":"^5.11.0","astronomy-engine":"^2.1.19","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.12","vitest":"^4.0.8","typescript":"^7.0.2","@types/node":"^26.2.0","@types/luxon":"^3.7.4","@types/pngjs":"^6.0.5","@types/ngeohash":"^0.6.8","@types/tz-lookup":"^6.1.2","@vitest/coverage-v8":"^4.1.11"},"optionalDependencies":{"mqtt":"^5.14.1"},"_npmOperationalInternal":{"tmp":"tmp/weather-mcp_1.25.4_1787792311515_0.5873984309470393","host":"s3://npm-registry-packages-npm-production"}},"1.25.5":{"name":"@dangahagan/weather-mcp","version":"1.25.5","keywords":["mcp","mcp-server","model-context-protocol","weather","weather-api","weather-forecast","noaa","open-meteo","forecast","climate","historical-weather","weather-alerts","air-quality","marine-weather","lightning","weather-radar","wildfire","geocoding","no-api-key","free","claude","claude-code","cursor","ai","llm","ai-tools"],"author":{"name":"Dan Gahagan"},"license":"MIT","_id":"@dangahagan/weather-mcp@1.25.5","maintainers":[{"name":"dangahagan","email":"dangahagan@gmail.com"}],"homepage":"https://github.com/weather-mcp/weather-mcp#readme","bugs":{"url":"https://github.com/weather-mcp/weather-mcp/issues"},"bin":{"weather-mcp":"dist/index.js"},"dist":{"shasum":"ec04e0d8d3e970a5418c2818d74fe16d2a2eda59","tarball":"https://registry.npmjs.org/@dangahagan/weather-mcp/-/weather-mcp-1.25.5.tgz","fileCount":379,"integrity":"sha512-czo0eZIgy9h5gtOFg6rHgAfEU8wkCWDLqyqviROTaAvKP7dd7Nyh0z6BLtTCSvywG11kNTA4peSN5sIoCBY3/w==","signatures":[{"sig":"MEYCIQDarVnO6HjJ5+SfnnbxtvTVx9KPG8baoAxp4v4UhmDmCQIhAPKjj1CrbrRHmEAmPrk2FGOtibpWyznfwRPwM9pMpb/d","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dangahagan%2fweather-mcp@1.25.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2260236},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"b77ee23a4baea4bfad79c86e6ab58729f5511db6","mcpName":"io.github.dgahagan/weather-mcp","scripts":{"dev":"tsx src/index.ts","test":"vitest run","audit":"npm audit --audit-level=moderate","build":"tsc","start":"node dist/index.js","stress":"node scripts/stress-harness.mjs","test:ui":"vitest --ui","examples":"node scripts/capture-examples.mjs","audit:fix":"npm audit fix","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:37f5d9f7-3408-4322-9d52-be5d592163ef"}},"repository":{"url":"git+https://github.com/weather-mcp/weather-mcp.git","type":"git"},"_npmVersion":"11.19.1","description":"MCP server giving AI assistants 17 weather tools with zero API keys: global forecasts, current conditions, alerts, air quality, marine conditions, lightning detection, radar imagery, river levels, wildfire tracking, and historical weather back to 1940. Bu","directories":{},"_nodeVersion":"22.23.2","dependencies":{"axios":"^1.19.0","luxon":"^3.7.2","pngjs":"^7.0.0","dotenv":"^17.2.3","ngeohash":"^0.6.4","tz-lookup":"^6.1.25","fast-xml-parser":"^5.11.0","astronomy-engine":"^2.1.19","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.12","vitest":"^4.0.8","typescript":"^7.0.2","@types/node":"^26.2.0","@types/luxon":"^3.7.4","@types/pngjs":"^6.0.5","@types/ngeohash":"^0.6.8","@types/tz-lookup":"^6.1.2","@vitest/coverage-v8":"^4.1.11"},"optionalDependencies":{"mqtt":"^5.14.1"},"_npmOperationalInternal":{"tmp":"tmp/weather-mcp_1.25.5_1787808629246_0.7189179001354025","host":"s3://npm-registry-packages-npm-production"}},"1.25.6":{"name":"@dangahagan/weather-mcp","version":"1.25.6","keywords":["mcp","mcp-server","model-context-protocol","weather","weather-api","weather-forecast","noaa","open-meteo","forecast","climate","historical-weather","weather-alerts","air-quality","marine-weather","lightning","weather-radar","wildfire","geocoding","no-api-key","free","claude","claude-code","cursor","ai","llm","ai-tools"],"author":{"name":"Dan Gahagan"},"license":"MIT","_id":"@dangahagan/weather-mcp@1.25.6","maintainers":[{"name":"dangahagan","email":"dangahagan@gmail.com"}],"homepage":"https://github.com/weather-mcp/weather-mcp#readme","bugs":{"url":"https://github.com/weather-mcp/weather-mcp/issues"},"bin":{"weather-mcp":"dist/index.js"},"dist":{"shasum":"a40779cde627c8689ada4a91377b09517d9cbb2c","tarball":"https://registry.npmjs.org/@dangahagan/weather-mcp/-/weather-mcp-1.25.6.tgz","fileCount":379,"integrity":"sha512-y22Z8Ej0FDuQcsG9luvrxEAf6yr6HjoEBCKmJH6KLQr0hy4UA+jpe8tTrE0bcNLLm0Q8jrTzpXCE7Ha4YQOMog==","signatures":[{"sig":"MEQCIDRlvEOO3ZlrpNaPYtedWLq5CMQQlkLBk++4Qtsb7C1OAiARwklSPoeEvzEyAUiFnVPQ97xBYXd8bIu2IP5huxSGEg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIDs8COTLXoUKVlQCJwEFRkJcU5JgwG3OOK/x5QS944M/AiBiJQCaxkI4Ko3SZh9tFrc01JaEZWe9CS/qEzCpbPMWTg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dangahagan%2fweather-mcp@1.25.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2263328},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"5dfd70cf6d34cf95123da7877c0eaf745866a83a","mcpName":"io.github.dgahagan/weather-mcp","scripts":{"dev":"tsx src/index.ts","test":"vitest run","audit":"npm audit --audit-level=moderate","build":"tsc","start":"node dist/index.js","stress":"node scripts/stress-harness.mjs","test:ui":"vitest --ui","examples":"node scripts/capture-examples.mjs","audit:fix":"npm audit fix","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:37f5d9f7-3408-4322-9d52-be5d592163ef"}},"repository":{"url":"git+https://github.com/weather-mcp/weather-mcp.git","type":"git"},"_npmVersion":"11.19.1","description":"MCP server giving AI assistants 17 weather tools with zero API keys: global forecasts, current conditions, alerts, air quality, marine conditions, lightning detection, radar imagery, river levels, wildfire tracking, and historical weather back to 1940. Bu","directories":{},"_nodeVersion":"22.23.2","dependencies":{"axios":"^1.19.0","luxon":"^3.7.2","pngjs":"^7.0.0","dotenv":"^17.2.3","ngeohash":"^0.6.4","tz-lookup":"^6.1.25","fast-xml-parser":"^5.11.0","astronomy-engine":"^2.1.19","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.12","vitest":"^4.0.8","typescript":"^7.0.2","@types/node":"^26.2.0","@types/luxon":"^3.7.4","@types/pngjs":"^6.0.5","@types/ngeohash":"^0.6.8","@types/tz-lookup":"^6.1.2","@vitest/coverage-v8":"^4.1.11"},"optionalDependencies":{"mqtt":"^5.14.1"},"_npmOperationalInternal":{"tmp":"tmp/weather-mcp_1.25.6_1787860270491_0.1329082291825685","host":"s3://npm-registry-packages-npm-production"}},"1.25.7":{"name":"@dangahagan/weather-mcp","version":"1.25.7","keywords":["mcp","mcp-server","model-context-protocol","weather","weather-api","weather-forecast","noaa","open-meteo","forecast","climate","historical-weather","weather-alerts","air-quality","marine-weather","lightning","weather-radar","wildfire","geocoding","no-api-key","free","claude","claude-code","cursor","ai","llm","ai-tools"],"author":{"name":"Dan Gahagan"},"license":"MIT","_id":"@dangahagan/weather-mcp@1.25.7","maintainers":[{"name":"dangahagan","email":"dangahagan@gmail.com"}],"homepage":"https://github.com/weather-mcp/weather-mcp#readme","bugs":{"url":"https://github.com/weather-mcp/weather-mcp/issues"},"bin":{"weather-mcp":"dist/index.js"},"dist":{"shasum":"15dc0f549eae165323afcd3ddee9ec292b17520d","tarball":"https://registry.npmjs.org/@dangahagan/weather-mcp/-/weather-mcp-1.25.7.tgz","fileCount":379,"integrity":"sha512-80qrCdCSkrbb91278JuM/IRvJGUQr7s/YL1Jd9wpegeERwN+m8vpVfVBfyatr3wWEKpuKA99iNP/aZrLDaPZkw==","signatures":[{"sig":"MEQCIDSc03gNB0VAuJhOAPazglgMKjSTsgTiLbbc29baJ/uCAiBSo/3pvRgiUioAf9tSq1eRO66sWZKvF/Uh56BHNz78xw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDftc7pXMWqh0Oa9xM5qqxTq5wG0pEiB55TRzXUQHsoogIgLVlqyxp6mzW952L228fXx4dLw/Y90c8o1V7pXGsIGxc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dangahagan%2fweather-mcp@1.25.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2268461},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"32d0e70ee8353a160692746be8786a41ecbcb1de","mcpName":"io.github.dgahagan/weather-mcp","scripts":{"dev":"tsx src/index.ts","test":"vitest run","audit":"npm audit --audit-level=moderate","build":"tsc","start":"node dist/index.js","stress":"node scripts/stress-harness.mjs","test:ui":"vitest --ui","examples":"node scripts/capture-examples.mjs","audit:fix":"npm audit fix","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:37f5d9f7-3408-4322-9d52-be5d592163ef"}},"repository":{"url":"git+https://github.com/weather-mcp/weather-mcp.git","type":"git"},"_npmVersion":"11.19.1","description":"MCP server giving AI assistants 17 weather tools with zero API keys: global forecasts, current conditions, alerts, air quality, marine conditions, lightning detection, radar imagery, river levels, wildfire tracking, and historical weather back to 1940. Bu","directories":{},"_nodeVersion":"22.23.2","dependencies":{"axios":"^1.19.0","luxon":"^3.7.2","pngjs":"^7.0.0","dotenv":"^17.2.3","ngeohash":"^0.6.4","tz-lookup":"^6.1.25","fast-xml-parser":"^5.11.0","astronomy-engine":"^2.1.19","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.12","vitest":"^4.0.8","typescript":"^7.0.2","@types/node":"^26.2.0","@types/luxon":"^3.7.4","@types/pngjs":"^6.0.5","@types/ngeohash":"^0.6.8","@types/tz-lookup":"^6.1.2","@vitest/coverage-v8":"^4.1.11"},"optionalDependencies":{"mqtt":"^5.14.1"},"_npmOperationalInternal":{"tmp":"tmp/weather-mcp_1.25.7_1787880685947_0.29723717376066894","host":"s3://npm-registry-packages-npm-production"}},"1.25.8":{"name":"@dangahagan/weather-mcp","version":"1.25.8","keywords":["mcp","mcp-server","model-context-protocol","weather","weather-api","weather-forecast","noaa","open-meteo","forecast","climate","historical-weather","weather-alerts","air-quality","marine-weather","lightning","weather-radar","wildfire","geocoding","no-api-key","free","claude","claude-code","cursor","ai","llm","ai-tools"],"author":{"name":"Dan Gahagan"},"license":"MIT","_id":"@dangahagan/weather-mcp@1.25.8","maintainers":[{"name":"dangahagan","email":"dangahagan@gmail.com"}],"homepage":"https://github.com/weather-mcp/weather-mcp#readme","bugs":{"url":"https://github.com/weather-mcp/weather-mcp/issues"},"bin":{"weather-mcp":"dist/index.js"},"dist":{"shasum":"3f9e952f462c9bdc8e958ac615905f6718ebd49c","tarball":"https://registry.npmjs.org/@dangahagan/weather-mcp/-/weather-mcp-1.25.8.tgz","fileCount":379,"integrity":"sha512-HA4S5AhzyK88BaYKp52Cn581hnpENYkdYD5xqI2pLxmK3CPqWTsBuaew0faFnM9lmxKAaGTWj9DvTquLr7rLiw==","signatures":[{"sig":"MEYCIQDWY+aH2HltUu8mlyjUYWDo3wW1C0HCTqBcfuJjLfGy+QIhAPwUjpkuYUdXjICUEQ+B4E+ZPk+B2aBJu4cn74BiF/0E","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCQJLCuTpr6AM/rA36FtuvDeNqeYxnWrjtavgaZcbmDRAIgcpCLo8Z8RNf59tq6c3zSyyaew5PEXQJXMjl7ehZhkLY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dangahagan%2fweather-mcp@1.25.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2269730},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"60d9ba3b9c6c84cd3fcffac32cb73d47930ef23f","mcpName":"io.github.dgahagan/weather-mcp","scripts":{"dev":"tsx src/index.ts","test":"vitest run","audit":"npm audit --audit-level=moderate","build":"tsc","start":"node dist/index.js","stress":"node scripts/stress-harness.mjs","test:ui":"vitest --ui","examples":"node scripts/capture-examples.mjs","audit:fix":"npm audit fix","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:37f5d9f7-3408-4322-9d52-be5d592163ef"}},"repository":{"url":"git+https://github.com/weather-mcp/weather-mcp.git","type":"git"},"_npmVersion":"11.19.1","description":"MCP server giving AI assistants 17 weather tools with zero API keys: global forecasts, current conditions, alerts, air quality, marine conditions, lightning detection, radar imagery, river levels, wildfire tracking, and historical weather back to 1940. Bu","directories":{},"_nodeVersion":"22.23.2","dependencies":{"axios":"^1.19.0","luxon":"^3.7.2","pngjs":"^7.0.0","dotenv":"^17.2.3","ngeohash":"^0.6.4","tz-lookup":"^6.1.25","fast-xml-parser":"^5.11.0","astronomy-engine":"^2.1.19","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.12","vitest":"^4.0.8","typescript":"^7.0.2","@types/node":"^26.2.0","@types/luxon":"^3.7.4","@types/pngjs":"^6.0.5","@types/ngeohash":"^0.6.8","@types/tz-lookup":"^6.1.2","@vitest/coverage-v8":"^4.1.11"},"optionalDependencies":{"mqtt":"^5.14.1"},"_npmOperationalInternal":{"tmp":"tmp/weather-mcp_1.25.8_1787887543431_0.6421250903951345","host":"s3://npm-registry-packages-npm-production"}},"1.25.9":{"name":"@dangahagan/weather-mcp","version":"1.25.9","keywords":["mcp","mcp-server","model-context-protocol","weather","weather-api","weather-forecast","noaa","open-meteo","forecast","climate","historical-weather","weather-alerts","air-quality","marine-weather","lightning","weather-radar","wildfire","geocoding","no-api-key","free","claude","claude-code","cursor","ai","llm","ai-tools"],"author":{"name":"Dan Gahagan"},"license":"MIT","_id":"@dangahagan/weather-mcp@1.25.9","maintainers":[{"name":"dangahagan","email":"dangahagan@gmail.com"}],"homepage":"https://github.com/weather-mcp/weather-mcp#readme","bugs":{"url":"https://github.com/weather-mcp/weather-mcp/issues"},"bin":{"weather-mcp":"dist/index.js"},"dist":{"shasum":"193335e12bc2aac0fdaf8b4e2644254d88c55c99","tarball":"https://registry.npmjs.org/@dangahagan/weather-mcp/-/weather-mcp-1.25.9.tgz","fileCount":379,"integrity":"sha512-pJgBzuHKLHMmWux2XGaVIfYG3hKeU6kCwhKtblFk2QXQtJDq9CEfSm1xNgOKk2WM9dBPYDhdYHUZwj4OpvvIRQ==","signatures":[{"sig":"MEYCIQCbSdzMR+kwdwk3Udd4Bc6EiKcrJfSAnxXtlfoE2FUh+QIhAPt8R0zxtEjAqbz/n7xRH61fWfRZFJ3EB05QLThKgy3X","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIDwyTrHSqKE9k99tObe2vMt7aprpmQA4u6eR4tME1OKqAiEA/1vZsHNl1EM4gwMvEtVTxZeHhCgeyfMpR0MTmk3QWO0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dangahagan%2fweather-mcp@1.25.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2287711},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"2c872cd166ee2d10b87e52f9226d5951df3f38a3","mcpName":"io.github.dgahagan/weather-mcp","scripts":{"dev":"tsx src/index.ts","test":"vitest run","audit":"npm audit --audit-level=moderate","build":"tsc","start":"node dist/index.js","stress":"node scripts/stress-harness.mjs","test:ui":"vitest --ui","examples":"node scripts/capture-examples.mjs","audit:fix":"npm audit fix","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:37f5d9f7-3408-4322-9d52-be5d592163ef"}},"repository":{"url":"git+https://github.com/weather-mcp/weather-mcp.git","type":"git"},"_npmVersion":"11.19.1","description":"MCP server giving AI assistants 17 weather tools with zero API keys: global forecasts, current conditions, alerts, air quality, marine conditions, lightning detection, radar imagery, river levels, wildfire tracking, and historical weather back to 1940. Bu","directories":{},"_nodeVersion":"22.23.2","dependencies":{"axios":"^1.19.0","luxon":"^3.7.2","pngjs":"^7.0.0","dotenv":"^17.2.3","ngeohash":"^0.6.4","tz-lookup":"^6.1.25","fast-xml-parser":"^5.11.0","astronomy-engine":"^2.1.19","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.12","vitest":"^4.0.8","typescript":"^7.0.2","@types/node":"^26.2.0","@types/luxon":"^3.7.4","@types/pngjs":"^6.0.5","@types/ngeohash":"^0.6.8","@types/tz-lookup":"^6.1.2","@vitest/coverage-v8":"^4.1.11"},"optionalDependencies":{"mqtt":"^5.14.1"},"_npmOperationalInternal":{"tmp":"tmp/weather-mcp_1.25.9_1787925110480_0.07648687160913337","host":"s3://npm-registry-packages-npm-production"}},"1.25.10":{"name":"@dangahagan/weather-mcp","version":"1.25.10","keywords":["mcp","mcp-server","model-context-protocol","weather","weather-api","weather-forecast","noaa","open-meteo","forecast","climate","historical-weather","weather-alerts","air-quality","marine-weather","lightning","weather-radar","wildfire","geocoding","no-api-key","free","claude","claude-code","cursor","ai","llm","ai-tools"],"author":{"name":"Dan Gahagan"},"license":"MIT","_id":"@dangahagan/weather-mcp@1.25.10","maintainers":[{"name":"dangahagan","email":"dangahagan@gmail.com"}],"homepage":"https://github.com/weather-mcp/weather-mcp#readme","bugs":{"url":"https://github.com/weather-mcp/weather-mcp/issues"},"bin":{"weather-mcp":"dist/index.js"},"dist":{"shasum":"a47a4ae2cfbb2d44d92321f87524fbce71592d6b","tarball":"https://registry.npmjs.org/@dangahagan/weather-mcp/-/weather-mcp-1.25.10.tgz","fileCount":379,"integrity":"sha512-xLuSj0cilueR+6kcYdAvLAM/Whj+VI8fEBa1YG3Qeec1wOu5/FIkinVDlZkyoxB/F10RYdZEA64KzATKdoaurQ==","signatures":[{"sig":"MEQCIG/fo4spxdZ5h8BNIBS38PknC9oojSXugNx3Qdr7rQiXAiBM6JQ0sywk4P9HS/KR2JWXe9I2hQdPW6BrCUPNBkOLcg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCoEESNQkHNqR6GJ2BSEWTOUEolIuPmc3LWxc/TquDYkAIgdveDn7Cbt3FAcz+6p17+WV1EIUPt4k/FM0sVi6FCGDc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dangahagan%2fweather-mcp@1.25.10","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2292348},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"8384d9d894e55e4d65f43a1a2decfd4955b2cc5b","mcpName":"io.github.dgahagan/weather-mcp","scripts":{"dev":"tsx src/index.ts","test":"vitest run","audit":"npm audit --audit-level=moderate","build":"tsc","start":"node dist/index.js","stress":"node scripts/stress-harness.mjs","test:ui":"vitest --ui","examples":"node scripts/capture-examples.mjs","audit:fix":"npm audit fix","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:37f5d9f7-3408-4322-9d52-be5d592163ef"}},"repository":{"url":"git+https://github.com/weather-mcp/weather-mcp.git","type":"git"},"_npmVersion":"11.19.1","description":"MCP server giving AI assistants 17 weather tools with zero API keys: global forecasts, current conditions, alerts, air quality, marine conditions, lightning detection, radar imagery, river levels, wildfire tracking, and historical weather back to 1940. Bu","directories":{},"_nodeVersion":"22.23.2","dependencies":{"axios":"^1.19.0","luxon":"^3.7.2","pngjs":"^7.0.0","dotenv":"^17.2.3","ngeohash":"^0.6.4","tz-lookup":"^6.1.25","fast-xml-parser":"^5.11.0","astronomy-engine":"^2.1.19","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.12","vitest":"^4.0.8","typescript":"^7.0.2","@types/node":"^26.2.0","@types/luxon":"^3.7.4","@types/pngjs":"^6.0.5","@types/ngeohash":"^0.6.8","@types/tz-lookup":"^6.1.2","@vitest/coverage-v8":"^4.1.11"},"optionalDependencies":{"mqtt":"^5.14.1"},"_npmOperationalInternal":{"tmp":"tmp/weather-mcp_1.25.10_1787943721876_0.5218090161242868","host":"s3://npm-registry-packages-npm-production"}},"1.25.11":{"name":"@dangahagan/weather-mcp","version":"1.25.11","keywords":["mcp","mcp-server","model-context-protocol","weather","weather-api","weather-forecast","noaa","open-meteo","forecast","climate","historical-weather","weather-alerts","air-quality","marine-weather","lightning","weather-radar","wildfire","geocoding","no-api-key","free","claude","claude-code","cursor","ai","llm","ai-tools"],"author":{"name":"Dan Gahagan"},"license":"MIT","_id":"@dangahagan/weather-mcp@1.25.11","maintainers":[{"name":"dangahagan","email":"dangahagan@gmail.com"}],"homepage":"https://github.com/weather-mcp/weather-mcp#readme","bugs":{"url":"https://github.com/weather-mcp/weather-mcp/issues"},"bin":{"weather-mcp":"dist/index.js"},"dist":{"shasum":"5f58802012d69ce5bb8b760a9183e3f94dc1641e","tarball":"https://registry.npmjs.org/@dangahagan/weather-mcp/-/weather-mcp-1.25.11.tgz","fileCount":383,"integrity":"sha512-ixcwKYzQVWKVbal7jX/JnvMBIDJmWVggOSpwylF4a6ylN8yYQJ0rDwW4s7HO9NpZQjV5EDLRRlXw++u7iuWBFg==","signatures":[{"sig":"MEUCIQCRR8mTpfkmfwcKGFdqRmJCgMxoVWNH08jowM2jhx3AjAIgJYbrHagKAuFpGDvaPZ38Nh0d6U5tlR6I56MoIyxhXzU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIE1W0pOcMIdY5RYwrNvMR160eRuNCvU2SwJs46/WhIY8AiEA8ZLywBJpAQBwGhxzVN+hTrSmOW8B+9bO/UQSCpVBwjk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dangahagan%2fweather-mcp@1.25.11","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2297855},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"f95604e60a832dac8c7f7834087dcaa014a7be3e","mcpName":"io.github.dgahagan/weather-mcp","scripts":{"dev":"tsx src/index.ts","test":"vitest run","audit":"npm audit --audit-level=moderate","build":"tsc","start":"node dist/index.js","stress":"node scripts/stress-harness.mjs","test:ui":"vitest --ui","examples":"node scripts/capture-examples.mjs","audit:fix":"npm audit fix","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:37f5d9f7-3408-4322-9d52-be5d592163ef"}},"repository":{"url":"git+https://github.com/weather-mcp/weather-mcp.git","type":"git"},"_npmVersion":"11.19.1","description":"MCP server giving AI assistants 17 weather tools with zero API keys: global forecasts, current conditions, alerts, air quality, marine conditions, lightning detection, radar imagery, river levels, wildfire tracking, and historical weather back to 1940. Bu","directories":{},"_nodeVersion":"22.23.2","dependencies":{"axios":"^1.19.0","luxon":"^3.7.2","pngjs":"^7.0.0","dotenv":"^17.2.3","ngeohash":"^0.6.4","tz-lookup":"^6.1.25","fast-xml-parser":"^5.11.0","astronomy-engine":"^2.1.19","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.12","vitest":"^4.0.8","typescript":"^7.0.2","@types/node":"^26.2.0","@types/luxon":"^3.7.4","@types/pngjs":"^6.0.5","@types/ngeohash":"^0.6.8","@types/tz-lookup":"^6.1.2","@vitest/coverage-v8":"^4.1.11"},"optionalDependencies":{"mqtt":"^5.14.1"},"_npmOperationalInternal":{"tmp":"tmp/weather-mcp_1.25.11_1787980077044_0.6853568165660278","host":"s3://npm-registry-packages-npm-production"}},"1.25.12":{"name":"@dangahagan/weather-mcp","version":"1.25.12","keywords":["mcp","mcp-server","model-context-protocol","weather","weather-api","weather-forecast","noaa","open-meteo","forecast","climate","historical-weather","weather-alerts","air-quality","marine-weather","lightning","weather-radar","wildfire","geocoding","no-api-key","free","claude","claude-code","cursor","ai","llm","ai-tools"],"author":{"name":"Dan Gahagan"},"license":"MIT","_id":"@dangahagan/weather-mcp@1.25.12","maintainers":[{"name":"dangahagan","email":"dangahagan@gmail.com"}],"homepage":"https://github.com/weather-mcp/weather-mcp#readme","bugs":{"url":"https://github.com/weather-mcp/weather-mcp/issues"},"bin":{"weather-mcp":"dist/index.js"},"dist":{"shasum":"bc4ed08d898139737244688751d203947af1b0b1","tarball":"https://registry.npmjs.org/@dangahagan/weather-mcp/-/weather-mcp-1.25.12.tgz","fileCount":383,"integrity":"sha512-GhCZQScbIL7F4TSp2+nJ+6niziU2rNyVFGkOcuXw7x/0iG3CyCN1ypQ4M1SVKQTgKpNte846sp6jczaX1Qf4nQ==","signatures":[{"sig":"MEQCIBtQBaTJu54LvNWyLQjg0wt4/XURQebCOAqPtD78ow3iAiBTsjUgBDM/005Axm9kRZwfP/8yr/2Ql/C9pmmxf8nTkA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIFKUvnkMn/Cz1jX8cqH+Wn2aVa9OSNG0doC+b9YNUr1PAiEAoKbEDWGH18RDSp1HOZezyQo1nlMrefvYi62L2xFbD0g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dangahagan%2fweather-mcp@1.25.12","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2300295},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"4a71f386ae33cbd9e43d7aff56ff2ae71da839a4","mcpName":"io.github.dgahagan/weather-mcp","scripts":{"dev":"tsx src/index.ts","test":"vitest run","audit":"npm audit --audit-level=moderate","build":"tsc","start":"node dist/index.js","stress":"node scripts/stress-harness.mjs","test:ui":"vitest --ui","examples":"node scripts/capture-examples.mjs","audit:fix":"npm audit fix","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:37f5d9f7-3408-4322-9d52-be5d592163ef"}},"repository":{"url":"git+https://github.com/weather-mcp/weather-mcp.git","type":"git"},"_npmVersion":"11.19.1","description":"MCP server giving AI assistants 17 weather tools with zero API keys: global forecasts, current conditions, alerts, air quality, marine conditions, lightning detection, radar imagery, river levels, wildfire tracking, and historical weather back to 1940. Bu","directories":{},"_nodeVersion":"22.23.2","dependencies":{"axios":"^1.19.0","luxon":"^3.7.2","pngjs":"^7.0.0","dotenv":"^17.2.3","ngeohash":"^0.6.4","tz-lookup":"^6.1.25","fast-xml-parser":"^5.11.0","astronomy-engine":"^2.1.19","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.12","vitest":"^4.0.8","typescript":"^7.0.2","@types/node":"^26.2.0","@types/luxon":"^3.7.4","@types/pngjs":"^6.0.5","@types/ngeohash":"^0.6.8","@types/tz-lookup":"^6.1.2","@vitest/coverage-v8":"^4.1.11"},"optionalDependencies":{"mqtt":"^5.14.1"},"_npmOperationalInternal":{"tmp":"tmp/weather-mcp_1.25.12_1788031377120_0.9060931398575818","host":"s3://npm-registry-packages-npm-production"}},"1.25.13":{"name":"@dangahagan/weather-mcp","version":"1.25.13","keywords":["mcp","mcp-server","model-context-protocol","weather","weather-api","weather-forecast","noaa","open-meteo","forecast","climate","historical-weather","weather-alerts","air-quality","marine-weather","lightning","weather-radar","wildfire","geocoding","no-api-key","free","claude","claude-code","cursor","ai","llm","ai-tools"],"author":{"name":"Dan Gahagan"},"license":"MIT","_id":"@dangahagan/weather-mcp@1.25.13","maintainers":[{"name":"dangahagan","email":"dangahagan@gmail.com"}],"homepage":"https://github.com/weather-mcp/weather-mcp#readme","bugs":{"url":"https://github.com/weather-mcp/weather-mcp/issues"},"bin":{"weather-mcp":"dist/index.js"},"dist":{"shasum":"3d0735acbc65d6a86b976f1818e748c1c6897230","tarball":"https://registry.npmjs.org/@dangahagan/weather-mcp/-/weather-mcp-1.25.13.tgz","fileCount":383,"integrity":"sha512-IkgAJ7MSW8WOlaNXNXOCvCBlCELiTzupNHuhBNy4hpFvCkUV2tnB0zwFNfbRHQr1KCmguGlQ687aFG+M4KbIwg==","signatures":[{"sig":"MEUCIQDVwb4scgu3xSoA0kAt+8/2pf+4eFw4bC1laIhjF1rFYAIgRuuvv4Bb9csPMeQZaNtgAmBOOhFIQj7K4C/1jyX5xQA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDb4L6f4FDfnrHFgQat/9ar5A88Cslj17ExfZYMpv7PzwIgYdZs/NxGZazriCx2HW6BgxK/44G1UfSpIearGYsJQ5E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dangahagan%2fweather-mcp@1.25.13","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2310353},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"420c5cc2a780f6c19bb7ae2e98c4565e8f2a6bfc","mcpName":"io.github.dgahagan/weather-mcp","scripts":{"dev":"tsx src/index.ts","test":"vitest run","audit":"npm audit --audit-level=moderate","build":"tsc","start":"node dist/index.js","stress":"node scripts/stress-harness.mjs","test:ui":"vitest --ui","examples":"node scripts/capture-examples.mjs","audit:fix":"npm audit fix","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:37f5d9f7-3408-4322-9d52-be5d592163ef"}},"repository":{"url":"git+https://github.com/weather-mcp/weather-mcp.git","type":"git"},"_npmVersion":"11.19.1","description":"MCP server giving AI assistants 17 weather tools with zero API keys: global forecasts, current conditions, alerts, air quality, marine conditions, lightning detection, radar imagery, river levels, wildfire tracking, and historical weather back to 1940. Bu","directories":{},"_nodeVersion":"22.23.2","dependencies":{"axios":"^1.19.0","luxon":"^3.7.2","pngjs":"^7.0.0","dotenv":"^17.2.3","ngeohash":"^0.6.4","tz-lookup":"^6.1.25","fast-xml-parser":"^5.11.0","astronomy-engine":"^2.1.19","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.12","vitest":"^4.0.8","typescript":"^7.0.2","@types/node":"^26.2.0","@types/luxon":"^3.7.4","@types/pngjs":"^6.0.5","@types/ngeohash":"^0.6.8","@types/tz-lookup":"^6.1.2","@vitest/coverage-v8":"^4.1.11"},"optionalDependencies":{"mqtt":"^5.14.1"},"_npmOperationalInternal":{"tmp":"tmp/weather-mcp_1.25.13_1788067442161_0.3855739200229209","host":"s3://npm-registry-packages-npm-production"}},"1.25.14":{"name":"@dangahagan/weather-mcp","version":"1.25.14","keywords":["mcp","mcp-server","model-context-protocol","weather","weather-api","weather-forecast","noaa","open-meteo","forecast","climate","historical-weather","weather-alerts","air-quality","marine-weather","lightning","weather-radar","wildfire","geocoding","no-api-key","free","claude","claude-code","cursor","ai","llm","ai-tools"],"author":{"name":"Dan Gahagan"},"license":"MIT","_id":"@dangahagan/weather-mcp@1.25.14","maintainers":[{"name":"dangahagan","email":"dangahagan@gmail.com"}],"homepage":"https://github.com/weather-mcp/weather-mcp#readme","bugs":{"url":"https://github.com/weather-mcp/weather-mcp/issues"},"bin":{"weather-mcp":"dist/index.js"},"dist":{"shasum":"670d08e49e85f652515c25c3644b32fe27b81583","tarball":"https://registry.npmjs.org/@dangahagan/weather-mcp/-/weather-mcp-1.25.14.tgz","fileCount":383,"integrity":"sha512-m6OjsChiNRdH8bzqDeVAeehDTj97WJ88GG0n7Ya/dtUtU4a+EuHd9xoWX0OwM2wDUv0OHj9MNyy7jiMfwyIg1g==","signatures":[{"sig":"MEUCID+TUPEfb49PRrindgNqkwsYCQIich19LfsBnd7QtADAAiEA9SKk/bjUFeymCIbZjkiAN7hg+KvoUEqN0XxpKE5iAME=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCB/jEDTTcarkrvvzQmnqItT6AGMTW9YSsWrnsVZU9n3gIhALkBF78DeC/ckvCXBznNxLvRcRB5SC3kUWjGGZ4ITrLx","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dangahagan%2fweather-mcp@1.25.14","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2310353},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"50bb94ea5b5ea00f0055ae69193b0866f92ad399","mcpName":"io.github.dgahagan/weather-mcp","scripts":{"dev":"tsx src/index.ts","test":"vitest run","audit":"npm audit --audit-level=moderate","build":"tsc","start":"node dist/index.js","stress":"node scripts/stress-harness.mjs","test:ui":"vitest --ui","examples":"node scripts/capture-examples.mjs","audit:fix":"npm audit fix","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:37f5d9f7-3408-4322-9d52-be5d592163ef"}},"repository":{"url":"git+https://github.com/weather-mcp/weather-mcp.git","type":"git"},"_npmVersion":"11.19.1","description":"MCP server giving AI assistants 17 weather tools with zero API keys: global forecasts, current conditions, alerts, air quality, marine conditions, lightning detection, radar imagery, river levels, wildfire tracking, and historical weather back to 1940. Bu","directories":{},"_nodeVersion":"22.23.2","dependencies":{"axios":"^1.19.0","luxon":"^3.7.2","pngjs":"^7.0.0","dotenv":"^17.2.3","ngeohash":"^0.6.4","tz-lookup":"^6.1.25","fast-xml-parser":"^5.11.0","astronomy-engine":"^2.1.19","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.12","vitest":"^4.0.8","typescript":"^7.0.2","@types/node":"^26.2.0","@types/luxon":"^3.7.4","@types/pngjs":"^6.0.5","@types/ngeohash":"^0.6.8","@types/tz-lookup":"^6.1.2","@vitest/coverage-v8":"^4.1.11"},"optionalDependencies":{"mqtt":"^5.14.1"},"_npmOperationalInternal":{"tmp":"tmp/weather-mcp_1.25.14_1788123975703_0.7859581509706783","host":"s3://npm-registry-packages-npm-production"}},"1.25.15":{"name":"@dangahagan/weather-mcp","version":"1.25.15","keywords":["mcp","mcp-server","model-context-protocol","weather","weather-api","weather-forecast","noaa","open-meteo","forecast","climate","historical-weather","weather-alerts","air-quality","marine-weather","lightning","weather-radar","wildfire","geocoding","no-api-key","free","claude","claude-code","cursor","ai","llm","ai-tools"],"author":{"name":"Dan Gahagan"},"license":"MIT","_id":"@dangahagan/weather-mcp@1.25.15","maintainers":[{"name":"dangahagan","email":"dangahagan@gmail.com"}],"homepage":"https://github.com/weather-mcp/weather-mcp#readme","bugs":{"url":"https://github.com/weather-mcp/weather-mcp/issues"},"bin":{"weather-mcp":"dist/index.js"},"dist":{"shasum":"a82f2e9a9fc829267694b6af50db43e43041d730","tarball":"https://registry.npmjs.org/@dangahagan/weather-mcp/-/weather-mcp-1.25.15.tgz","fileCount":383,"integrity":"sha512-7vLlOa6vH8eo9m+dHIEoVyBc9bcWAewuw9Q7gygCmYYejuN1ALNbnGA7eauDe8Fd81Rg0/E+cJwys1CSjdoNPA==","signatures":[{"sig":"MEUCIQCXb/8AmmQ0XqayHI9cpMVqSmg9BV4JxmDagKl1MEPdhQIgAK56A4whnG7QNLwmxZ6pHClr6OTgIt2yReM19s4oNr0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIE6V0tueZsDRjFpRlm/OpPZvJ6sf8mQw5nPG5Z/cnrCuAiBhnSf/1B1cjrVdNZZICXRMZDpjNJH9kue6OyHpAVLd7g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dangahagan%2fweather-mcp@1.25.15","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2344123},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"36e022b3881b2f67814e03b62f13c49ccfd1f689","mcpName":"io.github.dgahagan/weather-mcp","scripts":{"dev":"tsx src/index.ts","test":"vitest run","audit":"npm audit --audit-level=moderate","build":"tsc","start":"node dist/index.js","stress":"node scripts/stress-harness.mjs","test:ui":"vitest --ui","examples":"node scripts/capture-examples.mjs","audit:fix":"npm audit fix","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:37f5d9f7-3408-4322-9d52-be5d592163ef"}},"repository":{"url":"git+https://github.com/weather-mcp/weather-mcp.git","type":"git"},"_npmVersion":"11.19.1","description":"MCP server giving AI assistants 17 weather tools with zero API keys: global forecasts, current conditions, alerts, air quality, marine conditions, lightning detection, radar imagery, river levels, wildfire tracking, and historical weather back to 1940. Bu","directories":{},"_nodeVersion":"22.23.2","dependencies":{"axios":"^1.19.0","luxon":"^3.7.2","pngjs":"^7.0.0","dotenv":"^17.2.3","ngeohash":"^0.6.4","tz-lookup":"^6.1.25","fast-xml-parser":"^5.11.0","astronomy-engine":"^2.1.19","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.12","vitest":"^4.0.8","typescript":"^7.0.2","@types/node":"^26.2.0","@types/luxon":"^3.7.4","@types/pngjs":"^6.0.5","@types/ngeohash":"^0.6.8","@types/tz-lookup":"^6.1.2","@vitest/coverage-v8":"^4.1.11"},"optionalDependencies":{"mqtt":"^5.14.1"},"_npmOperationalInternal":{"tmp":"tmp/weather-mcp_1.25.15_1788275011568_0.5807451973782334","host":"s3://npm-registry-packages-npm-production"}},"1.25.16":{"name":"@dangahagan/weather-mcp","version":"1.25.16","keywords":["mcp","mcp-server","model-context-protocol","weather","weather-api","weather-forecast","noaa","open-meteo","forecast","climate","historical-weather","weather-alerts","air-quality","marine-weather","lightning","weather-radar","wildfire","geocoding","no-api-key","free","claude","claude-code","cursor","ai","llm","ai-tools"],"author":{"name":"Dan Gahagan"},"license":"MIT","_id":"@dangahagan/weather-mcp@1.25.16","maintainers":[{"name":"dangahagan","email":"dangahagan@gmail.com"}],"homepage":"https://github.com/weather-mcp/weather-mcp#readme","bugs":{"url":"https://github.com/weather-mcp/weather-mcp/issues"},"bin":{"weather-mcp":"dist/index.js"},"dist":{"shasum":"cfdc5ad1929222995165863741197fcc566de57c","tarball":"https://registry.npmjs.org/@dangahagan/weather-mcp/-/weather-mcp-1.25.16.tgz","fileCount":383,"integrity":"sha512-Mi30BkNjlHqS0b+AGHBNDL7dJpF73TqGcVQUZwia2zJeAaZ4FEDDYuTvw3lhZAawlDBZZcM+OrnrIsET3o/Zhw==","signatures":[{"sig":"MEYCIQCm+yhH6XqdPKIMQHWHiB+OIyjkEIr/2wKx58ei1Fb9cwIhAJMk/PGHdS17HEEquKxlCdDHYgXv315sVeIzAKHE6VOe","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDN1XPAxtBptuCv1+FV0K3gb+FnP3HqlkA5BC8hLj5dlQIgCnSQacFeCYaoFmvW1pCwNOdJSpuf4RK3RROAMMchO2o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dangahagan%2fweather-mcp@1.25.16","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2355095},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"013ff5e8bd00b7ef669aee8ba36c2a05b8bd0fc9","mcpName":"io.github.dgahagan/weather-mcp","scripts":{"dev":"tsx src/index.ts","test":"vitest run","audit":"npm audit --audit-level=moderate","build":"tsc","start":"node dist/index.js","stress":"node scripts/stress-harness.mjs","test:ui":"vitest --ui","examples":"node scripts/capture-examples.mjs","audit:fix":"npm audit fix","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:37f5d9f7-3408-4322-9d52-be5d592163ef"}},"repository":{"url":"git+https://github.com/weather-mcp/weather-mcp.git","type":"git"},"_npmVersion":"11.19.1","description":"MCP server giving AI assistants 17 weather tools with zero API keys: global forecasts, current conditions, alerts, air quality, marine conditions, lightning detection, radar imagery, river levels, wildfire tracking, and historical weather back to 1940. Bu","directories":{},"_nodeVersion":"22.23.2","dependencies":{"axios":"^1.20.0","luxon":"^3.7.2","pngjs":"^7.0.0","dotenv":"^17.2.3","ngeohash":"^0.6.4","tz-lookup":"^6.1.25","fast-xml-parser":"^5.11.1","astronomy-engine":"^2.1.19","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.12","vitest":"^4.0.8","typescript":"^7.0.2","@types/node":"^26.4.0","@types/luxon":"^3.7.5","@types/pngjs":"^6.0.5","@types/ngeohash":"^0.6.8","@types/tz-lookup":"^6.1.2","@vitest/coverage-v8":"^4.1.11"},"optionalDependencies":{"mqtt":"^5.14.1"},"_npmOperationalInternal":{"tmp":"tmp/weather-mcp_1.25.16_1788296650660_0.3888916001013514","host":"s3://npm-registry-packages-npm-production"}},"1.25.17":{"name":"@dangahagan/weather-mcp","version":"1.25.17","keywords":["mcp","mcp-server","model-context-protocol","weather","weather-api","weather-forecast","noaa","open-meteo","forecast","climate","historical-weather","weather-alerts","air-quality","marine-weather","lightning","weather-radar","wildfire","geocoding","no-api-key","free","claude","claude-code","cursor","ai","llm","ai-tools"],"author":{"name":"Dan Gahagan"},"license":"MIT","_id":"@dangahagan/weather-mcp@1.25.17","maintainers":[{"name":"dangahagan","email":"dangahagan@gmail.com"}],"homepage":"https://github.com/weather-mcp/weather-mcp#readme","bugs":{"url":"https://github.com/weather-mcp/weather-mcp/issues"},"bin":{"weather-mcp":"dist/index.js"},"dist":{"shasum":"75f2392140946c8a4d2135ddad4c2ce763b51a43","tarball":"https://registry.npmjs.org/@dangahagan/weather-mcp/-/weather-mcp-1.25.17.tgz","fileCount":383,"integrity":"sha512-85cGKgPzzPLd9ARPd7UPUwMBUQlv5XL9ygAsqA8qKIP8JwOcUBiUEnAbfaf4yJuLU1VkWZ5CSPx7esLtkfGbpA==","signatures":[{"sig":"MEUCIQCc1zuG+Lja+F775N2sXC5da++R0Y1ocskBd0ucNBRReQIgViSuse64sNoxv0P4IQfgh8J6rHS+l1WUf2/gTCI6SFE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCHOgMNPlPjCDETwFgAMhOxdnmBom/g/wjHYSldYHjNfwIhAIjDB6CUh59q8/pXGK5YStU0NnKvaimJGD4VlvD00pVB","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dangahagan%2fweather-mcp@1.25.17","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2356083},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"bc26d9a3eca8c18d1055a5309fc9b0584bbbe528","mcpName":"io.github.dgahagan/weather-mcp","scripts":{"dev":"tsx src/index.ts","test":"vitest run","audit":"npm audit --audit-level=moderate","build":"tsc","start":"node dist/index.js","stress":"node scripts/stress-harness.mjs","test:ui":"vitest --ui","examples":"node scripts/capture-examples.mjs","audit:fix":"npm audit fix","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:37f5d9f7-3408-4322-9d52-be5d592163ef"}},"repository":{"url":"git+https://github.com/weather-mcp/weather-mcp.git","type":"git"},"_npmVersion":"11.19.1","description":"MCP server giving AI assistants 17 weather tools with zero API keys: global forecasts, current conditions, alerts, air quality, marine conditions, lightning detection, radar imagery, river levels, wildfire tracking, and historical weather back to 1940. Bu","directories":{},"_nodeVersion":"22.23.2","dependencies":{"axios":"^1.20.0","luxon":"^3.7.2","pngjs":"^7.0.0","dotenv":"^17.2.3","ngeohash":"^0.6.4","tz-lookup":"^6.1.25","fast-xml-parser":"^5.11.1","astronomy-engine":"^2.1.19","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.12","vitest":"^4.0.8","typescript":"^7.0.2","@types/node":"^26.4.0","@types/luxon":"^3.7.5","@types/pngjs":"^6.0.5","@types/ngeohash":"^0.6.8","@types/tz-lookup":"^6.1.2","@vitest/coverage-v8":"^4.1.11"},"optionalDependencies":{"mqtt":"^5.14.1"},"_npmOperationalInternal":{"tmp":"tmp/weather-mcp_1.25.17_1788322300151_0.25919073252039526","host":"s3://npm-registry-packages-npm-production"}},"1.25.18":{"name":"@dangahagan/weather-mcp","version":"1.25.18","keywords":["mcp","mcp-server","model-context-protocol","weather","weather-api","weather-forecast","noaa","open-meteo","forecast","climate","historical-weather","weather-alerts","air-quality","marine-weather","lightning","weather-radar","wildfire","geocoding","no-api-key","free","claude","claude-code","cursor","ai","llm","ai-tools"],"author":{"name":"Dan Gahagan"},"license":"MIT","_id":"@dangahagan/weather-mcp@1.25.18","maintainers":[{"name":"dangahagan","email":"dangahagan@gmail.com"}],"homepage":"https://github.com/weather-mcp/weather-mcp#readme","bugs":{"url":"https://github.com/weather-mcp/weather-mcp/issues"},"bin":{"weather-mcp":"dist/index.js"},"dist":{"shasum":"a02e38cf0578ed9620076a7511f2e2beb47e1af2","tarball":"https://registry.npmjs.org/@dangahagan/weather-mcp/-/weather-mcp-1.25.18.tgz","fileCount":383,"integrity":"sha512-D7y2Y0u9Q98zSaxXXEf7TPekt6SsKY9wf6CYUkl649IPBryEyU/067p/qIIy6yEq0ernHn9IuAe1h/afpkEYSg==","signatures":[{"sig":"MEUCIQDQ3LxQ7VcceYdiSGI9ig3AFPnLUZPWns587cXIZP9tcQIgcGTi95vliuCnfCz7uqB2W5Gevd5ELn0IVMdbypZqypc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQClCwdoKfz1dIxqFOhph5NQKx6oa2Bb7X+AjP6zeBubugIhAPD9+mTMJL7MW42P2qITsjfrDfoQajQpsJktRMbckiUz","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dangahagan%2fweather-mcp@1.25.18","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2359477},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"3c074ef2bd97b0bf6d2e6a809426d68872e95037","mcpName":"io.github.dgahagan/weather-mcp","scripts":{"dev":"tsx src/index.ts","test":"vitest run","audit":"npm audit --audit-level=moderate","build":"tsc","start":"node dist/index.js","stress":"node scripts/stress-harness.mjs","test:ui":"vitest --ui","examples":"node scripts/capture-examples.mjs","audit:fix":"npm audit fix","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:37f5d9f7-3408-4322-9d52-be5d592163ef"}},"repository":{"url":"git+https://github.com/weather-mcp/weather-mcp.git","type":"git"},"_npmVersion":"11.19.1","description":"MCP server giving AI assistants 17 weather tools with zero API keys: global forecasts, current conditions, alerts, air quality, marine conditions, lightning detection, radar imagery, river levels, wildfire tracking, and historical weather back to 1940. Bu","directories":{},"_nodeVersion":"22.23.2","dependencies":{"axios":"^1.20.0","luxon":"^3.7.2","pngjs":"^7.0.0","dotenv":"^17.2.3","ngeohash":"^0.6.4","tz-lookup":"^6.1.25","fast-xml-parser":"^5.11.1","astronomy-engine":"^2.1.19","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.12","vitest":"^4.0.8","typescript":"^7.0.2","@types/node":"^26.4.0","@types/luxon":"^3.7.5","@types/pngjs":"^6.0.5","@types/ngeohash":"^0.6.8","@types/tz-lookup":"^6.1.2","@vitest/coverage-v8":"^4.1.11"},"optionalDependencies":{"mqtt":"^5.14.1"},"_npmOperationalInternal":{"tmp":"tmp/weather-mcp_1.25.18_1788367035103_0.674375298344148","host":"s3://npm-registry-packages-npm-production"}},"1.26.0":{"name":"@dangahagan/weather-mcp","version":"1.26.0","keywords":["mcp","mcp-server","model-context-protocol","weather","weather-api","weather-forecast","noaa","open-meteo","forecast","climate","historical-weather","weather-alerts","air-quality","marine-weather","lightning","weather-radar","wildfire","geocoding","no-api-key","free","claude","claude-code","cursor","ai","llm","ai-tools"],"author":{"name":"Dan Gahagan"},"license":"MIT","_id":"@dangahagan/weather-mcp@1.26.0","maintainers":[{"name":"dangahagan","email":"dangahagan@gmail.com"}],"homepage":"https://github.com/weather-mcp/weather-mcp#readme","bugs":{"url":"https://github.com/weather-mcp/weather-mcp/issues"},"bin":{"weather-mcp":"dist/index.js"},"dist":{"shasum":"a20c15fa7552e4fc11647669e64c42e3d24d67b8","tarball":"https://registry.npmjs.org/@dangahagan/weather-mcp/-/weather-mcp-1.26.0.tgz","fileCount":395,"integrity":"sha512-2hOV+OH8o77/Dn5QRH0kQukVwEU8YcQy3QSgEK0ORp390/Y1tSCAS+Cd+YsaQgKdcpZJ3nADc0aOEPi5KFByLw==","signatures":[{"sig":"MEYCIQD4/ZKE2c6lhbh/16/AOCQ3bbVfBQbjfr3sP/F4WCwKpwIhAPrWAvU0z/zqdry6ZXMzJnJQAFJsSNYBM5hIEbXwMYY+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIBInPyOyZ596hNhwsI5F6zsbH9cKywy6HXutbIC0z04sAiEA3tvJCExCYUjLnDdsOD0jnQ8wSFSOwv/DspV/RV2sVis=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dangahagan%2fweather-mcp@1.26.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2477841},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"d2b0242e949bc7ce9d60e88bdd91dbda3f785620","mcpName":"io.github.dgahagan/weather-mcp","scripts":{"dev":"tsx src/index.ts","test":"vitest run","audit":"npm audit --audit-level=moderate","build":"tsc","start":"node dist/index.js","stress":"node scripts/stress-harness.mjs","test:ui":"vitest --ui","examples":"node scripts/capture-examples.mjs","audit:fix":"npm audit fix","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:37f5d9f7-3408-4322-9d52-be5d592163ef"}},"overrides":{"fast-uri":"3.1.6"},"repository":{"url":"git+https://github.com/weather-mcp/weather-mcp.git","type":"git"},"_npmVersion":"11.19.1","description":"MCP server giving AI assistants 17 weather tools with zero API keys: global forecasts, current conditions, alerts, air quality, marine conditions, lightning detection, radar imagery, river levels, wildfire tracking, and historical weather back to 1940. Bu","directories":{},"_nodeVersion":"22.23.2","dependencies":{"axios":"^1.20.0","luxon":"^3.7.2","pngjs":"^7.0.0","dotenv":"^17.2.3","ngeohash":"^0.6.4","tz-lookup":"^6.1.25","fast-xml-parser":"^5.11.1","astronomy-engine":"^2.1.19","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.12","vitest":"^4.0.8","typescript":"^7.0.2","@types/node":"^26.4.0","@types/luxon":"^3.7.5","@types/pngjs":"^6.0.5","@types/ngeohash":"^0.6.8","@types/tz-lookup":"^6.1.2","@vitest/coverage-v8":"^4.1.11"},"optionalDependencies":{"mqtt":"^5.14.1"},"_npmOperationalInternal":{"tmp":"tmp/weather-mcp_1.26.0_1788395157591_0.8787455907444677","host":"s3://npm-registry-packages-npm-production"}},"1.27.0":{"name":"@dangahagan/weather-mcp","version":"1.27.0","keywords":["mcp","mcp-server","model-context-protocol","weather","weather-api","weather-forecast","noaa","open-meteo","forecast","climate","historical-weather","weather-alerts","air-quality","marine-weather","lightning","weather-radar","wildfire","geocoding","no-api-key","free","claude","claude-code","cursor","ai","llm","ai-tools"],"author":{"name":"Dan Gahagan"},"license":"MIT","_id":"@dangahagan/weather-mcp@1.27.0","maintainers":[{"name":"dangahagan","email":"dangahagan@gmail.com"}],"homepage":"https://github.com/weather-mcp/weather-mcp#readme","bugs":{"url":"https://github.com/weather-mcp/weather-mcp/issues"},"bin":{"weather-mcp":"dist/index.js"},"dist":{"shasum":"9b10a5f6a08f27c1bf03554ce9f02b255ad3b7f4","tarball":"https://registry.npmjs.org/@dangahagan/weather-mcp/-/weather-mcp-1.27.0.tgz","fileCount":419,"integrity":"sha512-fPLcu7/Kq9pD+XiKZYZZWJzgCiYAzQQKDN0UCT7lEk9hfKJBD7L3jtMASojvfgNC4nZ/5T0R5++dWoq8aSKrZQ==","signatures":[{"sig":"MEQCIGR0kiJDvlJNmXCknY4mcEJtsYG5Z+gLsGG8AlBPz5mtAiAYbcFtjnEC2QlUtgs6unZiDb5nZlC8xPhQfxzDzoOelg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCGfgqfaq2cXj+9FKrSXe4U9a87a96E05XX7grKrW4+KwIhAIo2wbVI16CYx+k0AItSk9GoMTS07wGCKvE4iBS8nyK3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dangahagan%2fweather-mcp@1.27.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3355200},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"3501f7f94b53db5cc117113cd446e9c6d9304c4e","mcpName":"io.github.dgahagan/weather-mcp","scripts":{"dev":"tsx src/index.ts","test":"vitest run","audit":"npm audit --audit-level=moderate","build":"tsc","start":"node dist/index.js","stress":"node scripts/stress-harness.mjs","test:ui":"vitest --ui","examples":"node scripts/capture-examples.mjs","audit:fix":"npm audit fix","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build","generate:jma-areas":"node scripts/generate-jma-areas.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:37f5d9f7-3408-4322-9d52-be5d592163ef"}},"overrides":{"fast-uri":"3.1.6"},"repository":{"url":"git+https://github.com/weather-mcp/weather-mcp.git","type":"git"},"_npmVersion":"11.19.1","description":"MCP server giving AI assistants 17 weather tools with zero API keys: global forecasts, current conditions, alerts, air quality, marine conditions, lightning detection, radar imagery, river levels, wildfire tracking, and historical weather back to 1940. Bu","directories":{},"_nodeVersion":"22.23.2","dependencies":{"axios":"^1.20.0","luxon":"^3.7.2","pngjs":"^7.0.0","dotenv":"^17.2.3","ngeohash":"^0.6.4","tz-lookup":"^6.1.25","fast-xml-parser":"^5.11.1","astronomy-engine":"^2.1.19","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.12","vitest":"^4.0.8","typescript":"^7.0.2","@types/node":"^26.4.0","@types/luxon":"^3.7.5","@types/pngjs":"^6.0.5","@types/ngeohash":"^0.6.8","@types/tz-lookup":"^6.1.2","@vitest/coverage-v8":"^4.1.11"},"optionalDependencies":{"mqtt":"^5.14.1"},"_npmOperationalInternal":{"tmp":"tmp/weather-mcp_1.27.0_1788441326460_0.005306379040679099","host":"s3://npm-registry-packages-npm-production"}},"1.27.1":{"name":"@dangahagan/weather-mcp","version":"1.27.1","keywords":["mcp","mcp-server","model-context-protocol","weather","weather-api","weather-forecast","noaa","open-meteo","forecast","climate","historical-weather","weather-alerts","air-quality","marine-weather","lightning","weather-radar","wildfire","geocoding","no-api-key","free","claude","claude-code","cursor","ai","llm","ai-tools"],"author":{"name":"Dan Gahagan"},"license":"MIT","_id":"@dangahagan/weather-mcp@1.27.1","maintainers":[{"name":"dangahagan","email":"dangahagan@gmail.com"}],"homepage":"https://github.com/weather-mcp/weather-mcp#readme","bugs":{"url":"https://github.com/weather-mcp/weather-mcp/issues"},"bin":{"weather-mcp":"dist/index.js"},"dist":{"shasum":"5bbdf5a323a7f1ccd75bffc2f21080f96861372f","tarball":"https://registry.npmjs.org/@dangahagan/weather-mcp/-/weather-mcp-1.27.1.tgz","fileCount":419,"integrity":"sha512-R6PTltVTTprgodoiYy7kjAJF68dRl/EKSvWvQuoGiFMr6DZ3YHWzrwjiQLbldvN/aPTX8iGfgFaCxVA44iN4ew==","signatures":[{"sig":"MEQCIGRtKieUdJM8Rjh6kG0y0t9oJnzIsKh81Tl2QjAquzzdAiAGWu3qiiUCRz2oICTglE2fqW/V/np+E+YafrrY/q+SbA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIDGGIGtlH8rKpUDON+8dpxDGbiq74tA1XOHm5aDtfjmSAiBPiaY8XyX9c9SvW6icMNiG9XpRGMnFWhBS1n2eTf8FLQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dangahagan%2fweather-mcp@1.27.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3357186},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"4d3a50f1ec2116eb129a344ecf4dddc55e1d1ff9","mcpName":"io.github.dgahagan/weather-mcp","scripts":{"dev":"tsx src/index.ts","test":"vitest run","audit":"npm audit --audit-level=moderate","build":"tsc","start":"node dist/index.js","stress":"node scripts/stress-harness.mjs","test:ui":"vitest --ui","examples":"node scripts/capture-examples.mjs","audit:fix":"npm audit fix","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build","generate:jma-areas":"node scripts/generate-jma-areas.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:37f5d9f7-3408-4322-9d52-be5d592163ef"}},"overrides":{"fast-uri":"3.1.6"},"repository":{"url":"git+https://github.com/weather-mcp/weather-mcp.git","type":"git"},"_npmVersion":"11.19.1","description":"MCP server giving AI assistants 17 weather tools with zero API keys: global forecasts, current conditions, alerts, air quality, marine conditions, lightning detection, radar imagery, river levels, wildfire tracking, and historical weather back to 1940. Bu","directories":{},"_nodeVersion":"22.23.2","dependencies":{"axios":"^1.20.0","luxon":"^3.7.2","pngjs":"^7.0.0","dotenv":"^17.2.3","ngeohash":"^0.6.4","tz-lookup":"^6.1.25","fast-xml-parser":"^5.11.1","astronomy-engine":"^2.1.19","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.12","vitest":"^4.0.8","typescript":"^7.0.2","@types/node":"^26.4.0","@types/luxon":"^3.7.5","@types/pngjs":"^6.0.5","@types/ngeohash":"^0.6.8","@types/tz-lookup":"^6.1.2","@vitest/coverage-v8":"^4.1.11"},"optionalDependencies":{"mqtt":"^5.14.1"},"_npmOperationalInternal":{"tmp":"tmp/weather-mcp_1.27.1_1788462308001_0.9291533311305236","host":"s3://npm-registry-packages-npm-production"}},"1.28.0":{"name":"@dangahagan/weather-mcp","version":"1.28.0","keywords":["mcp","mcp-server","model-context-protocol","weather","weather-api","weather-forecast","noaa","open-meteo","forecast","climate","historical-weather","weather-alerts","air-quality","marine-weather","lightning","weather-radar","wildfire","geocoding","no-api-key","free","claude","claude-code","cursor","ai","llm","ai-tools"],"author":{"name":"Dan Gahagan"},"license":"MIT","_id":"@dangahagan/weather-mcp@1.28.0","maintainers":[{"name":"dangahagan","email":"dangahagan@gmail.com"}],"homepage":"https://github.com/weather-mcp/weather-mcp#readme","bugs":{"url":"https://github.com/weather-mcp/weather-mcp/issues"},"bin":{"weather-mcp":"dist/index.js"},"dist":{"shasum":"a9ebb3ff158ba738c750d64d099c6a6f3c6782d6","tarball":"https://registry.npmjs.org/@dangahagan/weather-mcp/-/weather-mcp-1.28.0.tgz","fileCount":427,"integrity":"sha512-o1S9vSlSK7B75XPGaMLqyxEr7ZJVWi1+lDtFIJFh+s3hgrQeCZ33BHyMyt2GxdKQwh0SZsaLvRd5VtVioROwLA==","signatures":[{"sig":"MEQCIBVKBReo9mGvpVlK9STdPI1cITkGBaCrlGbkOl+vpCH4AiB9uEFUV2bsZN3mgW6vTvAPXlz+A4bJExh+k77nl4sdvg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQC25Phf2XGR/2V2YxN2uFmAM140ZNXPe+nWnjmfp20g8gIhAM3cqu+eQ2UbcBI83yujaRnKi8a1uU4wghEtvX4wZZFg","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dangahagan%2fweather-mcp@1.28.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3410976},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"11875979a3397d10c324a9e53e07016f79bbb1f1","mcpName":"io.github.dgahagan/weather-mcp","scripts":{"dev":"tsx src/index.ts","test":"vitest run","audit":"npm audit --audit-level=moderate","build":"tsc","start":"node dist/index.js","stress":"node scripts/stress-harness.mjs","test:ui":"vitest --ui","examples":"node scripts/capture-examples.mjs","audit:fix":"npm audit fix","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build","generate:jma-areas":"node scripts/generate-jma-areas.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:37f5d9f7-3408-4322-9d52-be5d592163ef"}},"overrides":{"fast-uri":"3.1.6"},"repository":{"url":"git+https://github.com/weather-mcp/weather-mcp.git","type":"git"},"_npmVersion":"11.19.1","description":"MCP server giving AI assistants 17 weather tools with zero API keys: global forecasts, current conditions, alerts, air quality, marine conditions, lightning detection, radar imagery, river levels, wildfire tracking, and historical weather back to 1940. Bu","directories":{},"_nodeVersion":"22.23.2","dependencies":{"axios":"^1.20.0","luxon":"^3.7.2","pngjs":"^7.0.0","dotenv":"^17.2.3","ngeohash":"^0.6.4","tz-lookup":"^6.1.25","fast-xml-parser":"^5.11.1","astronomy-engine":"^2.1.19","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.12","vitest":"^4.0.8","typescript":"^7.0.2","@types/node":"^26.4.0","@types/luxon":"^3.7.5","@types/pngjs":"^6.0.5","@types/ngeohash":"^0.6.8","@types/tz-lookup":"^6.1.2","@vitest/coverage-v8":"^4.1.11"},"optionalDependencies":{"mqtt":"^5.14.1"},"_npmOperationalInternal":{"tmp":"tmp/weather-mcp_1.28.0_1788576216123_0.848341248821471","host":"s3://npm-registry-packages-npm-production"}},"1.28.1":{"name":"@dangahagan/weather-mcp","version":"1.28.1","keywords":["mcp","mcp-server","model-context-protocol","weather","weather-api","weather-forecast","noaa","open-meteo","forecast","climate","historical-weather","weather-alerts","air-quality","marine-weather","lightning","weather-radar","wildfire","geocoding","no-api-key","free","claude","claude-code","cursor","ai","llm","ai-tools"],"author":{"name":"Dan Gahagan"},"license":"MIT","_id":"@dangahagan/weather-mcp@1.28.1","maintainers":[{"name":"dangahagan","email":"dangahagan@gmail.com"}],"homepage":"https://github.com/weather-mcp/weather-mcp#readme","bugs":{"url":"https://github.com/weather-mcp/weather-mcp/issues"},"bin":{"weather-mcp":"dist/index.js"},"dist":{"shasum":"1143f2258e8a55711be690d4da9e212cb8525824","tarball":"https://registry.npmjs.org/@dangahagan/weather-mcp/-/weather-mcp-1.28.1.tgz","fileCount":427,"integrity":"sha512-Yne1AizMQxdtjkzIUWp3S+K76QERwtdJWaPy25/OFH00iFSBhOXpmKdeVSCwuJPLqvH8q6ULBg0qGf8vSyoMkw==","signatures":[{"sig":"MEQCIAeTDyKZM3xNuzKZABAPoeEUlbsPYBzTP/LV6p6zINSIAiBsMIzG3vcn6rohQaY5h37EwFRsLWN0QNXS1LvreJCcUQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIBtDlsbdWZ/RNJyXsNCrRjKPAbqJcThW1pSA/Y3NUrSfAiEA7ZAK2I+fjFR/IjUwcGWKnwcrA5WdkSI7TvVA2t2I+vQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dangahagan%2fweather-mcp@1.28.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3406921},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"e73547e0ab7d7d3853929b0d0c4870780952d39c","mcpName":"io.github.dgahagan/weather-mcp","scripts":{"dev":"tsx src/index.ts","test":"vitest run","audit":"npm audit --audit-level=moderate","build":"tsc","start":"node dist/index.js","stress":"node scripts/stress-harness.mjs","test:ui":"vitest --ui","examples":"node scripts/capture-examples.mjs","audit:fix":"npm audit fix","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build","generate:jma-areas":"node scripts/generate-jma-areas.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:37f5d9f7-3408-4322-9d52-be5d592163ef"}},"overrides":{"fast-uri":"3.1.6"},"repository":{"url":"git+https://github.com/weather-mcp/weather-mcp.git","type":"git"},"_npmVersion":"11.19.1","description":"MCP server giving AI assistants 17 weather tools with zero API keys: global forecasts, current conditions, alerts, air quality, marine conditions, lightning detection, radar imagery, river levels, wildfire tracking, and historical weather back to 1940. Bu","directories":{},"_nodeVersion":"22.23.2","dependencies":{"axios":"^1.20.0","luxon":"^3.7.2","pngjs":"^7.0.0","dotenv":"^17.2.3","ngeohash":"^0.6.4","tz-lookup":"^6.1.25","fast-xml-parser":"^5.11.1","astronomy-engine":"^2.1.19","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.12","vitest":"^4.0.8","typescript":"^7.0.2","@types/node":"^26.4.0","@types/luxon":"^3.7.5","@types/pngjs":"^6.0.5","@types/ngeohash":"^0.6.8","@types/tz-lookup":"^6.1.2","@vitest/coverage-v8":"^4.1.11"},"optionalDependencies":{"mqtt":"^5.14.1"},"_npmOperationalInternal":{"tmp":"tmp/weather-mcp_1.28.1_1788880204237_0.660739199650769","host":"s3://npm-registry-packages-npm-production"}},"1.29.0":{"name":"@dangahagan/weather-mcp","version":"1.29.0","keywords":["mcp","mcp-server","model-context-protocol","weather","weather-api","weather-forecast","noaa","open-meteo","forecast","climate","historical-weather","weather-alerts","air-quality","marine-weather","lightning","weather-radar","wildfire","geocoding","no-api-key","free","claude","claude-code","cursor","ai","llm","ai-tools"],"author":{"name":"Dan Gahagan"},"license":"MIT","_id":"@dangahagan/weather-mcp@1.29.0","maintainers":[{"name":"dangahagan","email":"dangahagan@gmail.com"}],"homepage":"https://github.com/weather-mcp/weather-mcp#readme","bugs":{"url":"https://github.com/weather-mcp/weather-mcp/issues"},"bin":{"weather-mcp":"dist/index.js"},"dist":{"shasum":"8e3db07c90f7dbacbfd7fbe3e90adb4021f604d1","tarball":"https://registry.npmjs.org/@dangahagan/weather-mcp/-/weather-mcp-1.29.0.tgz","fileCount":427,"integrity":"sha512-b5xagSlW5CAsOeQkrUCVl9RDb8l49/XkAus0WFHYoPe/Mje7gL71uFQGu1YicoSurLtPZCCQTdF/J8dFDUQm0w==","signatures":[{"sig":"MEYCIQDBfIl37e1pmMMPwm7ki1RmC3yIqyx5HAk5fJOGTxs19AIhANLqcmoTrE40jumHZWj5A7f4Xn/ITAUTZepBogJgE5uJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIH+G0rLL01exWUQH8plgzRrn1+R5NaraqUkU9u/59CGxAiAehQsE1P7ZXuyd5QRIu/AL4LqqqSydZr4K/wISIwS2Gg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dangahagan%2fweather-mcp@1.29.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3411051},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"e60e6b0963b1aace6b5b74cd11a5224472ae81e8","mcpName":"io.github.dgahagan/weather-mcp","scripts":{"dev":"tsx src/index.ts","test":"vitest run","audit":"npm audit --audit-level=moderate","build":"tsc","start":"node dist/index.js","stress":"node scripts/stress-harness.mjs","test:ui":"vitest --ui","examples":"node scripts/capture-examples.mjs","audit:fix":"npm audit fix","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build","generate:jma-areas":"node scripts/generate-jma-areas.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:37f5d9f7-3408-4322-9d52-be5d592163ef"}},"overrides":{"fast-uri":"3.1.6"},"repository":{"url":"git+https://github.com/weather-mcp/weather-mcp.git","type":"git"},"_npmVersion":"11.19.1","description":"MCP server giving AI assistants 17 weather tools with zero API keys: global forecasts, current conditions, alerts, air quality, marine conditions, lightning detection, radar imagery, river levels, wildfire tracking, and historical weather back to 1940. Bu","directories":{},"_nodeVersion":"22.23.2","dependencies":{"axios":"^1.20.0","luxon":"^3.7.2","pngjs":"^7.0.0","dotenv":"^17.2.3","ngeohash":"^0.6.4","tz-lookup":"^6.1.25","fast-xml-parser":"^5.11.1","astronomy-engine":"^2.1.19","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.12","vitest":"^4.0.8","typescript":"^7.0.2","@types/node":"^26.4.0","@types/luxon":"^3.7.5","@types/pngjs":"^6.0.5","@types/ngeohash":"^0.6.8","@types/tz-lookup":"^6.1.2","@vitest/coverage-v8":"^4.1.11"},"optionalDependencies":{"mqtt":"^5.14.1"},"_npmOperationalInternal":{"tmp":"tmp/weather-mcp_1.29.0_1788898803611_0.9249626980635088","host":"s3://npm-registry-packages-npm-production"}},"1.29.1":{"name":"@dangahagan/weather-mcp","version":"1.29.1","keywords":["mcp","mcp-server","model-context-protocol","weather","weather-api","weather-forecast","noaa","open-meteo","forecast","climate","historical-weather","weather-alerts","air-quality","marine-weather","lightning","weather-radar","wildfire","geocoding","no-api-key","free","claude","claude-code","cursor","ai","llm","ai-tools"],"author":{"name":"Dan Gahagan"},"license":"MIT","_id":"@dangahagan/weather-mcp@1.29.1","maintainers":[{"name":"dangahagan","email":"dangahagan@gmail.com"}],"homepage":"https://github.com/weather-mcp/weather-mcp#readme","bugs":{"url":"https://github.com/weather-mcp/weather-mcp/issues"},"bin":{"weather-mcp":"dist/index.js"},"dist":{"shasum":"8915f6b18096a4bc6c2e2ccbb942f5c769be66b3","tarball":"https://registry.npmjs.org/@dangahagan/weather-mcp/-/weather-mcp-1.29.1.tgz","fileCount":427,"integrity":"sha512-MPnvcjylsZatR1f2l/j+M0yGKOO3QfLpu7NUIc5Abyl8Wt5x71MIjWgXofOs716lOKwFRtdBFhyCh1FvgLZXPg==","signatures":[{"sig":"MEUCIQCPQiFEK2HAFF6u8nttY0VDZjFrixsQCY77o3ALZJqa2wIgHT1aiXy26aL4HBZ8oFmL1WGXOFrcQt470vwYzB0WImA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDWAC5oh++ErJ3SMAu16AE8taHrKj3+ycoffYsWo9In8gIgQeGlSFyUmSccWD+hUJty5zNGsdExORxCJ0bDm3ZTSxI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dangahagan%2fweather-mcp@1.29.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3411058},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"9e8b16d261a2bbc33b09892dab0e323dd1052db2","mcpName":"io.github.dgahagan/weather-mcp","scripts":{"dev":"tsx src/index.ts","test":"vitest run","audit":"npm audit --audit-level=moderate","build":"tsc","start":"node dist/index.js","stress":"node scripts/stress-harness.mjs","test:ui":"vitest --ui","examples":"node scripts/capture-examples.mjs","audit:fix":"npm audit fix","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build","generate:jma-areas":"node scripts/generate-jma-areas.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:37f5d9f7-3408-4322-9d52-be5d592163ef"}},"overrides":{"fast-uri":"3.1.6"},"repository":{"url":"git+https://github.com/weather-mcp/weather-mcp.git","type":"git"},"_npmVersion":"11.19.1","description":"MCP server giving AI assistants 17 weather tools with zero API keys: global forecasts, current conditions, alerts, air quality, marine conditions, lightning detection, radar imagery, river levels, wildfire tracking, and historical weather back to 1940. Bu","directories":{},"_nodeVersion":"22.23.2","dependencies":{"axios":"^1.20.0","luxon":"^3.7.2","pngjs":"^7.0.0","dotenv":"^17.2.3","ngeohash":"^0.6.4","tz-lookup":"^6.1.25","fast-xml-parser":"^5.11.1","astronomy-engine":"^2.1.19","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.12","vitest":"^4.0.8","typescript":"^7.0.2","@types/node":"^26.4.0","@types/luxon":"^3.7.5","@types/pngjs":"^6.0.5","@types/ngeohash":"^0.6.8","@types/tz-lookup":"^6.1.2","@vitest/coverage-v8":"^4.1.11"},"optionalDependencies":{"mqtt":"^5.14.1"},"_npmOperationalInternal":{"tmp":"tmp/weather-mcp_1.29.1_1788961520314_0.948532418584676","host":"s3://npm-registry-packages-npm-production"}},"1.29.2":{"name":"@dangahagan/weather-mcp","version":"1.29.2","keywords":["mcp","mcp-server","model-context-protocol","weather","weather-api","weather-forecast","noaa","open-meteo","forecast","climate","historical-weather","weather-alerts","air-quality","marine-weather","lightning","weather-radar","wildfire","geocoding","no-api-key","free","claude","claude-code","cursor","ai","llm","ai-tools"],"author":{"name":"Dan Gahagan"},"license":"MIT","_id":"@dangahagan/weather-mcp@1.29.2","maintainers":[{"name":"dangahagan","email":"dangahagan@gmail.com"}],"homepage":"https://github.com/weather-mcp/weather-mcp#readme","bugs":{"url":"https://github.com/weather-mcp/weather-mcp/issues"},"bin":{"weather-mcp":"dist/index.js"},"dist":{"shasum":"0a413befd6ae9837de0454cc77cd767f1fb5bf77","tarball":"https://registry.npmjs.org/@dangahagan/weather-mcp/-/weather-mcp-1.29.2.tgz","fileCount":431,"integrity":"sha512-gs7mHOCigDUCcTdC+EL83mU5zixxr/jE4epgqbZr5riRMH2CEr01LiJKzb8i3pkOGQQMg2w99PSBM1s5rjiAIg==","signatures":[{"sig":"MEUCIEb1lU4HnhyU/qqGer70BXFj63gLg1vW0UPm1iQkR5oCAiEAppVvmrQcwqwLjzrgWEeN3ftsbgPYn0mawE6A8Q/zufo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDJCquW0gm5+s0AZCmkVs1UQW/4rm6ggxXiPc05QJT+BAIgN14RKM3RgfVTi+/F5fUlHdtkYTvACcloUWW0g6jsNBU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dangahagan%2fweather-mcp@1.29.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3417724},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"8d604bdc3694475010ed9c33944d17e8ec34b7b6","mcpName":"io.github.dgahagan/weather-mcp","scripts":{"dev":"tsx src/index.ts","test":"vitest run","audit":"npm audit --audit-level=moderate","build":"tsc","start":"node dist/index.js","stress":"node scripts/stress-harness.mjs","test:ui":"vitest --ui","examples":"node scripts/capture-examples.mjs","audit:fix":"npm audit fix","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build","generate:jma-areas":"node scripts/generate-jma-areas.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:37f5d9f7-3408-4322-9d52-be5d592163ef"}},"overrides":{"fast-uri":"3.1.6"},"repository":{"url":"git+https://github.com/weather-mcp/weather-mcp.git","type":"git"},"_npmVersion":"11.19.1","description":"MCP server giving AI assistants 17 weather tools with zero API keys: global forecasts, current conditions, alerts, air quality, marine conditions, lightning detection, radar imagery, river levels, wildfire tracking, and historical weather back to 1940. Bu","directories":{},"_nodeVersion":"22.23.2","dependencies":{"axios":"^1.20.0","luxon":"^3.7.2","pngjs":"^7.0.0","dotenv":"^17.2.3","ngeohash":"^0.6.4","tz-lookup":"^6.1.25","fast-xml-parser":"^5.11.1","astronomy-engine":"^2.1.19","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.12","vitest":"^4.0.8","typescript":"^7.0.2","@types/node":"^26.4.0","@types/luxon":"^3.7.5","@types/pngjs":"^6.0.5","@types/ngeohash":"^0.6.8","@types/tz-lookup":"^6.1.2","@vitest/coverage-v8":"^4.1.11"},"optionalDependencies":{"mqtt":"^5.14.1"},"_npmOperationalInternal":{"tmp":"tmp/weather-mcp_1.29.2_1788973323012_0.03246524184762678","host":"s3://npm-registry-packages-npm-production"}},"1.29.3":{"name":"@dangahagan/weather-mcp","version":"1.29.3","keywords":["mcp","mcp-server","model-context-protocol","weather","weather-api","weather-forecast","noaa","open-meteo","forecast","climate","historical-weather","weather-alerts","air-quality","marine-weather","lightning","weather-radar","wildfire","geocoding","no-api-key","free","claude","claude-code","cursor","ai","llm","ai-tools"],"author":{"name":"Dan Gahagan"},"license":"MIT","_id":"@dangahagan/weather-mcp@1.29.3","maintainers":[{"name":"dangahagan","email":"dangahagan@gmail.com"}],"homepage":"https://github.com/weather-mcp/weather-mcp#readme","bugs":{"url":"https://github.com/weather-mcp/weather-mcp/issues"},"bin":{"weather-mcp":"dist/index.js"},"dist":{"shasum":"050651da0f6b3fe129bdd670fe0264618000491a","tarball":"https://registry.npmjs.org/@dangahagan/weather-mcp/-/weather-mcp-1.29.3.tgz","fileCount":431,"integrity":"sha512-e/oDPk94K/2/uPN8wEzfIz/olYj8RmUYpPl9p+pECGWvhQap7fPFSp2aCYgXDnCjMyLdufDWSMhrTTRXPKGmCw==","signatures":[{"sig":"MEQCIDMbzxT/Jee1M6Tb/TB1KMd/ys8NnWqRexNO4lc/Hp2kAiAXhTRcErZg7ftdCKkE332m7eSQK8pNByKSoRP1VswDmg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIBZESTyoshFoS4OBdDrAYvbtqod1wdZJUYgp520/iESFAiEA0Dm/jMNKZKp3lXb43TqUCOF2KBzfsuHJckzHEySfVNc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dangahagan%2fweather-mcp@1.29.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3417724},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"37731256d8ce39fadae7a049029e14f2dbc759a8","mcpName":"io.github.dgahagan/weather-mcp","scripts":{"dev":"tsx src/index.ts","test":"vitest run","audit":"npm audit --audit-level=moderate","build":"tsc","start":"node dist/index.js","stress":"node scripts/stress-harness.mjs","test:ui":"vitest --ui","examples":"node scripts/capture-examples.mjs","audit:fix":"npm audit fix","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build","generate:jma-areas":"node scripts/generate-jma-areas.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:37f5d9f7-3408-4322-9d52-be5d592163ef"}},"overrides":{"fast-uri":"3.1.6"},"repository":{"url":"git+https://github.com/weather-mcp/weather-mcp.git","type":"git"},"_npmVersion":"11.19.1","description":"MCP server giving AI assistants 17 weather tools with zero API keys: global forecasts, current conditions, alerts, air quality, marine conditions, lightning detection, radar imagery, river levels, wildfire tracking, and historical weather back to 1940. Bu","directories":{},"_nodeVersion":"22.23.2","dependencies":{"axios":"^1.20.0","luxon":"^3.7.2","pngjs":"^7.0.0","dotenv":"^17.2.3","ngeohash":"^0.6.4","tz-lookup":"^6.1.25","fast-xml-parser":"^5.11.1","astronomy-engine":"^2.1.19","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.12","vitest":"^4.0.8","typescript":"^7.0.2","@types/node":"^26.4.0","@types/luxon":"^3.7.5","@types/pngjs":"^6.0.5","@types/ngeohash":"^0.6.8","@types/tz-lookup":"^6.1.2","@vitest/coverage-v8":"^4.1.11"},"optionalDependencies":{"mqtt":"^5.14.1"},"_npmOperationalInternal":{"tmp":"tmp/weather-mcp_1.29.3_1789140313264_0.42465470868639543","host":"s3://npm-registry-packages-npm-production"}},"1.30.0":{"name":"@dangahagan/weather-mcp","version":"1.30.0","keywords":["mcp","mcp-server","model-context-protocol","weather","weather-api","weather-forecast","noaa","open-meteo","forecast","climate","historical-weather","weather-alerts","air-quality","marine-weather","lightning","weather-radar","wildfire","geocoding","no-api-key","free","claude","claude-code","cursor","ai","llm","ai-tools"],"author":{"name":"Dan Gahagan"},"license":"MIT","_id":"@dangahagan/weather-mcp@1.30.0","maintainers":[{"name":"dangahagan","email":"dangahagan@gmail.com"}],"homepage":"https://github.com/weather-mcp/weather-mcp#readme","bugs":{"url":"https://github.com/weather-mcp/weather-mcp/issues"},"bin":{"weather-mcp":"dist/index.js"},"dist":{"shasum":"b04c008def916eae40e0eb292fc407e73c045c07","tarball":"https://registry.npmjs.org/@dangahagan/weather-mcp/-/weather-mcp-1.30.0.tgz","fileCount":443,"integrity":"sha512-A0etWOMe4RGzgziAUPJwKvfk+StTc8uf7LH7wy0sJnAlLESwFOvtAleK8LxRVP+Cs7UpMtuHz5uYU5rfYCkB9A==","signatures":[{"sig":"MEYCIQCn68gBnd6GS1D2AiUeoZL4fK//Q9DnM3bjOopGqzKIhQIhAK7DWfS48OyS+j6knWN5UXJN/LBVgeb2T+lv7b/9RxiD","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDLQg1S1BvoPWWndLNPIWx1zNNCBVH3o+AKcwxqqL9RKwIgLbEMw788TFcxaBC7wMMfrw11xJqqAGTDXdK7uRq0oZQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dangahagan%2fweather-mcp@1.30.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3506686},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"a1f7932e58aa357ed83d2e0d749bbc09272200ed","mcpName":"io.github.dgahagan/weather-mcp","scripts":{"dev":"tsx src/index.ts","test":"vitest run","audit":"npm audit --audit-level=moderate","build":"tsc","start":"node dist/index.js","stress":"node scripts/stress-harness.mjs","test:ui":"vitest --ui","examples":"node scripts/capture-examples.mjs","audit:fix":"npm audit fix","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build","generate:jma-areas":"node scripts/generate-jma-areas.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:37f5d9f7-3408-4322-9d52-be5d592163ef"}},"overrides":{"fast-uri":"3.1.6"},"repository":{"url":"git+https://github.com/weather-mcp/weather-mcp.git","type":"git"},"_npmVersion":"11.19.1","description":"MCP server giving AI assistants 17 weather tools with zero API keys: global forecasts, current conditions, alerts, air quality, marine conditions, lightning detection, radar imagery, river levels, wildfire tracking, and historical weather back to 1940. Bu","directories":{},"_nodeVersion":"22.23.2","dependencies":{"axios":"^1.20.0","luxon":"^3.7.2","pngjs":"^7.0.0","dotenv":"^17.2.3","ngeohash":"^0.6.4","tz-lookup":"^6.1.25","fast-xml-parser":"^5.11.1","astronomy-engine":"^2.1.19","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.13","vitest":"^5.0.0","typescript":"^7.0.2","@types/node":"^26.5.0","@types/luxon":"^3.7.5","@types/pngjs":"^6.0.5","@types/ngeohash":"^0.6.8","@types/tz-lookup":"^6.1.2","@vitest/coverage-v8":"^5.0.0"},"optionalDependencies":{"mqtt":"^5.14.1"},"_npmOperationalInternal":{"tmp":"tmp/weather-mcp_1.30.0_1789183823120_0.16676473043804108","host":"s3://npm-registry-packages-npm-production"}},"1.30.1":{"name":"@dangahagan/weather-mcp","version":"1.30.1","keywords":["mcp","mcp-server","model-context-protocol","weather","weather-api","weather-forecast","noaa","open-meteo","forecast","climate","historical-weather","weather-alerts","air-quality","marine-weather","lightning","weather-radar","wildfire","geocoding","no-api-key","free","claude","claude-code","cursor","ai","llm","ai-tools"],"author":{"name":"Dan Gahagan"},"license":"MIT","_id":"@dangahagan/weather-mcp@1.30.1","maintainers":[{"name":"dangahagan","email":"dangahagan@gmail.com"}],"homepage":"https://github.com/weather-mcp/weather-mcp#readme","bugs":{"url":"https://github.com/weather-mcp/weather-mcp/issues"},"bin":{"weather-mcp":"dist/index.js"},"dist":{"shasum":"e33cef96ebe7d354a2818ba79d6da4a81c01004f","tarball":"https://registry.npmjs.org/@dangahagan/weather-mcp/-/weather-mcp-1.30.1.tgz","fileCount":443,"integrity":"sha512-X5/1k/0Zv/iGnolgZVF27XddNJDSNjLDSfjcX49bR9l9LzSd9qml3n4kGBb7eChaHN3bJ9mwFlM/UPqDD6lKIw==","signatures":[{"sig":"MEUCIQCYF4e6s642ZCSsizxlNsRzFufDoUPWRLlQJTRN47HFzwIgRmB2FjWo1sNwd4IJtrbkMyOlsWKsNTBvlSB6vk++v8w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIFiptgK5B75n+FhR/ehSdOxtmvrjXZ2jwUAP9VxiQ462AiEAmwgBmrJpfmmOrEP6CrtSlpM8JR9aarGd3I7XgHZQVh8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dangahagan%2fweather-mcp@1.30.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3511994},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"8b5d756a205ed03d05f635b4954facfcc5f8289d","mcpName":"io.github.dgahagan/weather-mcp","scripts":{"dev":"tsx src/index.ts","test":"vitest run","audit":"npm audit --audit-level=moderate","build":"tsc","start":"node dist/index.js","stress":"node scripts/stress-harness.mjs","test:ui":"vitest --ui","examples":"node scripts/capture-examples.mjs","audit:fix":"npm audit fix","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build","generate:jma-areas":"node scripts/generate-jma-areas.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:37f5d9f7-3408-4322-9d52-be5d592163ef"}},"overrides":{"fast-uri":"3.1.6"},"repository":{"url":"git+https://github.com/weather-mcp/weather-mcp.git","type":"git"},"_npmVersion":"11.19.1","description":"MCP server giving AI assistants 17 weather tools with zero API keys: global forecasts, current conditions, alerts, air quality, marine conditions, lightning detection, radar imagery, river levels, wildfire tracking, and historical weather back to 1940. Bu","directories":{},"_nodeVersion":"22.23.2","dependencies":{"axios":"^1.20.0","luxon":"^3.7.2","pngjs":"^7.0.0","dotenv":"^17.2.3","ngeohash":"^0.6.4","tz-lookup":"^6.1.25","fast-xml-parser":"^5.11.1","astronomy-engine":"^2.1.19","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.13","vitest":"^5.0.0","typescript":"^7.0.2","@types/node":"^26.5.1","@types/luxon":"^3.7.5","@types/pngjs":"^6.0.5","@types/ngeohash":"^0.6.8","@types/tz-lookup":"^6.1.2","@vitest/coverage-v8":"^5.0.0"},"optionalDependencies":{"mqtt":"^5.14.1"},"_npmOperationalInternal":{"tmp":"tmp/weather-mcp_1.30.1_1789676962408_0.05734719331918803","host":"s3://npm-registry-packages-npm-production"}},"1.31.0":{"name":"@dangahagan/weather-mcp","version":"1.31.0","keywords":["mcp","mcp-server","model-context-protocol","weather","weather-api","weather-forecast","noaa","open-meteo","forecast","climate","historical-weather","weather-alerts","air-quality","marine-weather","lightning","weather-radar","wildfire","geocoding","no-api-key","free","claude","claude-code","cursor","ai","llm","ai-tools"],"author":{"name":"Dan Gahagan"},"license":"MIT","_id":"@dangahagan/weather-mcp@1.31.0","maintainers":[{"name":"dangahagan","email":"dangahagan@gmail.com"}],"homepage":"https://github.com/weather-mcp/weather-mcp#readme","bugs":{"url":"https://github.com/weather-mcp/weather-mcp/issues"},"bin":{"weather-mcp":"dist/index.js"},"dist":{"shasum":"286b1f4ca47642bc5900bea0f988a98e0f9f3a83","tarball":"https://registry.npmjs.org/@dangahagan/weather-mcp/-/weather-mcp-1.31.0.tgz","fileCount":443,"integrity":"sha512-PLph7eCRXXE8rQ2xRbGrnmvO6TF9Lr3CaxyefD6e2xgJHp9q1PJ45GVvBSC1XqT1/A5+aH2iaDk0sppHW7tbCQ==","signatures":[{"sig":"MEUCIDrx4biVO1fpgJV0bzpi4iiT8CzPAgji95WYsUMUG/IaAiEAzvwz6ka0LiI3hPDHZAo2wyW+4rWotjXnI6GR4ScfC2g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCd6zsCxkBaJnOaXKHQ4ASAokAsIm2Fn0WjTs0c4CZQ7AIgED8T7GI49qoQQ0h5BMXAG1XkKcuPN6FZGrdNpYvtMUo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dangahagan%2fweather-mcp@1.31.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3518865},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"a24b600585e522485baddc6f32d26f613185dcd9","mcpName":"io.github.dgahagan/weather-mcp","scripts":{"dev":"tsx src/index.ts","test":"vitest run","audit":"npm audit --audit-level=moderate","build":"tsc","start":"node dist/index.js","stress":"node scripts/stress-harness.mjs","test:ui":"vitest --ui","examples":"node scripts/capture-examples.mjs","audit:fix":"npm audit fix","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build","generate:jma-areas":"node scripts/generate-jma-areas.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:37f5d9f7-3408-4322-9d52-be5d592163ef"}},"overrides":{"fast-uri":"3.1.6"},"repository":{"url":"git+https://github.com/weather-mcp/weather-mcp.git","type":"git"},"_npmVersion":"11.19.1","description":"MCP server giving AI assistants 17 weather tools with zero API keys: global forecasts, current conditions, alerts, air quality, marine conditions, lightning detection, radar imagery, river levels, wildfire tracking, and historical weather back to 1940. Bu","directories":{},"_nodeVersion":"22.23.2","dependencies":{"axios":"^1.20.0","luxon":"^3.7.2","pngjs":"^7.0.0","dotenv":"^17.2.3","ngeohash":"^0.6.4","tz-lookup":"^6.1.25","fast-xml-parser":"^5.11.1","astronomy-engine":"^2.1.19","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.13","vitest":"^5.0.0","typescript":"^7.0.2","@types/node":"^26.5.1","@types/luxon":"^3.7.5","@types/pngjs":"^6.0.5","@types/ngeohash":"^0.6.8","@types/tz-lookup":"^6.1.2","@vitest/coverage-v8":"^5.0.0"},"optionalDependencies":{"mqtt":"^5.14.1"},"_npmOperationalInternal":{"tmp":"tmp/weather-mcp_1.31.0_1789704310561_0.2663327500786099","host":"s3://npm-registry-packages-npm-production"}},"1.31.1":{"name":"@dangahagan/weather-mcp","version":"1.31.1","keywords":["mcp","mcp-server","model-context-protocol","weather","weather-api","weather-forecast","noaa","open-meteo","forecast","climate","historical-weather","weather-alerts","air-quality","marine-weather","lightning","weather-radar","wildfire","geocoding","no-api-key","free","claude","claude-code","cursor","ai","llm","ai-tools"],"author":{"name":"Dan Gahagan"},"license":"MIT","_id":"@dangahagan/weather-mcp@1.31.1","maintainers":[{"name":"dangahagan","email":"dangahagan@gmail.com"}],"homepage":"https://github.com/weather-mcp/weather-mcp#readme","bugs":{"url":"https://github.com/weather-mcp/weather-mcp/issues"},"bin":{"weather-mcp":"dist/index.js"},"dist":{"shasum":"c483455e9c89c18582d2a3109d2b024f0b764983","tarball":"https://registry.npmjs.org/@dangahagan/weather-mcp/-/weather-mcp-1.31.1.tgz","fileCount":443,"integrity":"sha512-YvMlwtEUx4UKnG81j0KhrlkLpLhpaBAw92G5Rfx8zaA75Xuooe5EP/00TfEKu6UEaiAHSafciK3m2/5K9Yk43g==","signatures":[{"sig":"MEUCIQDQQDuiMLdkyXxTk3l/HaHmvnUwN4XuBjSXbMVQ8xh7TgIgSVdvLR63Vt7I5eyYW3wQqJTHTP+PlWcy/3X/jX8Uz8Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIB0HGzTNRQf6jf42DRqlqF6P4EdNQfDv1009s3DNw/GaAiB35/WnukU/0gSUbMY2xwLunO/2OApJP/nbFdtJIYX1Gw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dangahagan%2fweather-mcp@1.31.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3535137},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"16993e6c564c361187ac58ad3c0fe1be9e6a5517","mcpName":"io.github.dgahagan/weather-mcp","scripts":{"dev":"tsx src/index.ts","test":"vitest run","audit":"npm audit --audit-level=moderate","build":"tsc","start":"node dist/index.js","stress":"node scripts/stress-harness.mjs","test:ui":"vitest --ui","examples":"node scripts/capture-examples.mjs","audit:fix":"npm audit fix","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build","generate:jma-areas":"node scripts/generate-jma-areas.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:37f5d9f7-3408-4322-9d52-be5d592163ef"}},"overrides":{"fast-uri":"3.1.6"},"repository":{"url":"git+https://github.com/weather-mcp/weather-mcp.git","type":"git"},"_npmVersion":"11.19.1","description":"MCP server giving AI assistants 17 weather tools with zero API keys: global forecasts, current conditions, alerts, air quality, marine conditions, lightning detection, radar imagery, river levels, wildfire tracking, and historical weather back to 1940. Bu","directories":{},"_nodeVersion":"22.23.2","dependencies":{"axios":"^1.20.0","luxon":"^3.7.2","pngjs":"^7.0.0","dotenv":"^17.2.3","ngeohash":"^0.6.4","tz-lookup":"^6.1.25","fast-xml-parser":"^5.11.1","astronomy-engine":"^2.1.19","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.13","vitest":"^5.0.0","typescript":"^7.0.2","@types/node":"^26.5.1","@types/luxon":"^3.7.5","@types/pngjs":"^6.0.5","@types/ngeohash":"^0.6.8","@types/tz-lookup":"^6.1.2","@vitest/coverage-v8":"^5.0.0"},"optionalDependencies":{"mqtt":"^5.14.1"},"_npmOperationalInternal":{"tmp":"tmp/weather-mcp_1.31.1_1789741807218_0.9038997441629892","host":"s3://npm-registry-packages-npm-production"}},"1.31.2":{"name":"@dangahagan/weather-mcp","version":"1.31.2","keywords":["mcp","mcp-server","model-context-protocol","weather","weather-api","weather-forecast","noaa","open-meteo","forecast","climate","historical-weather","weather-alerts","air-quality","marine-weather","lightning","weather-radar","wildfire","geocoding","no-api-key","free","claude","claude-code","cursor","ai","llm","ai-tools"],"author":{"name":"Dan Gahagan"},"license":"MIT","_id":"@dangahagan/weather-mcp@1.31.2","maintainers":[{"name":"dangahagan","email":"dangahagan@gmail.com"}],"homepage":"https://github.com/weather-mcp/weather-mcp#readme","bugs":{"url":"https://github.com/weather-mcp/weather-mcp/issues"},"bin":{"weather-mcp":"dist/index.js"},"dist":{"shasum":"a552a09a2219d6137b58189bc4925dd6f625df8d","tarball":"https://registry.npmjs.org/@dangahagan/weather-mcp/-/weather-mcp-1.31.2.tgz","fileCount":443,"integrity":"sha512-uKIu28CWORO1Arcek2ALsPwuzZ6pGjF9l4tB1bbKlVAuL0s+GJPq/eAs7Psp6+duOuRpBU2sSbiiaH8spU4ndw==","signatures":[{"sig":"MEUCIQDc4qa2hgwasEBICbh1+2GmFYZf42en5s0r9jr199kBLAIgMpwKi1ezgixc1Nq0uoYZpzgYBIO0hsCL2ButZkk0E58=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIAbjqVWZtUgoDY7rCap/MzoW9Ms9yrdsUS3lfSfZi/56AiBoI0Z413fNuY/bwB78LtwQHdmx7U6+uRpTZB2BrMhW8Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dangahagan%2fweather-mcp@1.31.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3549475},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"bd9d9c1a4855dc86c3ce95bad6d9f04699c9eaac","mcpName":"io.github.dgahagan/weather-mcp","scripts":{"dev":"tsx src/index.ts","test":"vitest run","audit":"npm audit --audit-level=moderate","build":"tsc","start":"node dist/index.js","stress":"node scripts/stress-harness.mjs","test:ui":"vitest --ui","examples":"node scripts/capture-examples.mjs","audit:fix":"npm audit fix","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build","generate:jma-areas":"node scripts/generate-jma-areas.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:37f5d9f7-3408-4322-9d52-be5d592163ef"}},"overrides":{"fast-uri":"3.1.6"},"repository":{"url":"git+https://github.com/weather-mcp/weather-mcp.git","type":"git"},"_npmVersion":"11.19.1","description":"MCP server giving AI assistants 17 weather tools with zero API keys: global forecasts, current conditions, alerts, air quality, marine conditions, lightning detection, radar imagery, river levels, wildfire tracking, and historical weather back to 1940. Bu","directories":{},"_nodeVersion":"22.23.2","dependencies":{"axios":"^1.20.0","luxon":"^3.7.2","pngjs":"^7.0.0","dotenv":"^17.2.3","ngeohash":"^0.6.4","tz-lookup":"^6.1.25","fast-xml-parser":"^5.11.1","astronomy-engine":"^2.1.19","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.13","vitest":"^5.0.0","typescript":"^7.0.2","@types/node":"^26.5.1","@types/luxon":"^3.7.5","@types/pngjs":"^6.0.5","@types/ngeohash":"^0.6.8","@types/tz-lookup":"^6.1.2","@vitest/coverage-v8":"^5.0.0"},"optionalDependencies":{"mqtt":"^5.14.1"},"_npmOperationalInternal":{"tmp":"tmp/weather-mcp_1.31.2_1789752048885_0.8688548205495021","host":"s3://npm-registry-packages-npm-production"}},"1.31.3":{"name":"@dangahagan/weather-mcp","version":"1.31.3","keywords":["mcp","mcp-server","model-context-protocol","weather","weather-api","weather-forecast","noaa","open-meteo","forecast","climate","historical-weather","weather-alerts","air-quality","marine-weather","lightning","weather-radar","wildfire","geocoding","no-api-key","free","claude","claude-code","cursor","ai","llm","ai-tools"],"author":{"name":"Dan Gahagan"},"license":"MIT","_id":"@dangahagan/weather-mcp@1.31.3","maintainers":[{"name":"dangahagan","email":"dangahagan@gmail.com"}],"homepage":"https://github.com/weather-mcp/weather-mcp#readme","bugs":{"url":"https://github.com/weather-mcp/weather-mcp/issues"},"bin":{"weather-mcp":"dist/index.js"},"dist":{"shasum":"2710c8e0484cc1bc76a97cf90a7bef33b3bcd84b","tarball":"https://registry.npmjs.org/@dangahagan/weather-mcp/-/weather-mcp-1.31.3.tgz","fileCount":443,"integrity":"sha512-36F1Za3p0hSVGV3dgne7AfnXuqOPwRm3uehaWcd5IS2W5AvJXjlBL7yTBUT0jWBDAI3MrDYAdB8vdQtVjJBFWg==","signatures":[{"sig":"MEUCIHMD7bcMcMX7g2UeJ/2GMWp2DdzA3t0MFTvHmMuLNknmAiEA6w7Xvg98Ec4RQsVPUOq/d8gTABsraH+WQx/tzR2aNQA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQD/g6c/+nhSvNhNj5/QM+9UaVu4CTNDFrXTdb9gXi0JGAIhAOm3pkRH459nAbcqDf9Sto2Xkj8n13yZjV7VWfqRzDfp","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dangahagan%2fweather-mcp@1.31.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3550041},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"780c6cd1daf00ff90e839eb567dca17d15fe6718","mcpName":"io.github.dgahagan/weather-mcp","scripts":{"dev":"tsx src/index.ts","test":"vitest run","audit":"npm audit --audit-level=moderate","build":"tsc","start":"node dist/index.js","stress":"node scripts/stress-harness.mjs","test:ui":"vitest --ui","examples":"node scripts/capture-examples.mjs","audit:fix":"npm audit fix","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build","generate:jma-areas":"node scripts/generate-jma-areas.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:37f5d9f7-3408-4322-9d52-be5d592163ef"}},"overrides":{"fast-uri":"3.1.6"},"repository":{"url":"git+https://github.com/weather-mcp/weather-mcp.git","type":"git"},"_npmVersion":"11.19.1","description":"MCP server giving AI assistants 17 weather tools with zero API keys: global forecasts, current conditions, alerts, air quality, marine conditions, lightning detection, radar imagery, river levels, wildfire tracking, and historical weather back to 1940. Bu","directories":{},"_nodeVersion":"22.23.2","dependencies":{"axios":"^1.20.0","luxon":"^3.7.2","pngjs":"^7.0.0","dotenv":"^17.2.3","ngeohash":"^0.6.4","tz-lookup":"^6.1.25","fast-xml-parser":"^5.11.1","astronomy-engine":"^2.1.19","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.13","vitest":"^5.0.0","typescript":"^7.0.2","@types/node":"^26.5.1","@types/luxon":"^3.7.5","@types/pngjs":"^6.0.5","@types/ngeohash":"^0.6.8","@types/tz-lookup":"^6.1.2","@vitest/coverage-v8":"^5.0.0"},"optionalDependencies":{"mqtt":"^5.14.1"},"_npmOperationalInternal":{"tmp":"tmp/weather-mcp_1.31.3_1789817956965_0.6398536794148026","host":"s3://npm-registry-packages-npm-production"}},"1.31.4":{"name":"@dangahagan/weather-mcp","version":"1.31.4","keywords":["mcp","mcp-server","model-context-protocol","weather","weather-api","weather-forecast","noaa","open-meteo","forecast","climate","historical-weather","weather-alerts","air-quality","marine-weather","lightning","weather-radar","wildfire","geocoding","no-api-key","free","claude","claude-code","cursor","ai","llm","ai-tools"],"author":{"name":"Dan Gahagan"},"license":"MIT","_id":"@dangahagan/weather-mcp@1.31.4","maintainers":[{"name":"dangahagan","email":"dangahagan@gmail.com"}],"homepage":"https://github.com/weather-mcp/weather-mcp#readme","bugs":{"url":"https://github.com/weather-mcp/weather-mcp/issues"},"bin":{"weather-mcp":"dist/index.js"},"dist":{"shasum":"6099379816de4310b4dc68d44cebf3b5d8662b89","tarball":"https://registry.npmjs.org/@dangahagan/weather-mcp/-/weather-mcp-1.31.4.tgz","fileCount":447,"integrity":"sha512-HFflRNm911FOCXlYV7vr8gAHJWCE48/sJeh+zxp6Rl84AItBTTJaQPJJn/odeITFisJ3hYDio3MS2Xv+36UD1g==","signatures":[{"sig":"MEYCIQCweRyxbyeCIcjbiXiZYBFr2DUpCDiPoWibbveOlNf9+gIhAMGcbeQ/8o++f7MdtjAekITrxqGbhmyw61KOTFjNF6A5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIHblueTs9Pa7+EXsvqyORpuLUvVkRqBzA2RG17160bUJAiEAshFgOaIHQ5qzXSeIT03P/Bo6yexP3qH8hoWGJlirav4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dangahagan%2fweather-mcp@1.31.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3555522},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"9492473399790d9dfbfeb6050b9e5c2d9362df72","mcpName":"io.github.dgahagan/weather-mcp","scripts":{"dev":"tsx src/index.ts","test":"vitest run","audit":"npm audit --audit-level=moderate","build":"tsc","start":"node dist/index.js","stress":"node scripts/stress-harness.mjs","test:ui":"vitest --ui","examples":"node scripts/capture-examples.mjs","audit:fix":"npm audit fix","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build","generate:jma-areas":"node scripts/generate-jma-areas.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:37f5d9f7-3408-4322-9d52-be5d592163ef"}},"overrides":{"fast-uri":"3.1.6"},"repository":{"url":"git+https://github.com/weather-mcp/weather-mcp.git","type":"git"},"_npmVersion":"11.20.0","description":"MCP server giving AI assistants 17 weather tools with zero API keys: global forecasts, current conditions, alerts, air quality, marine conditions, lightning detection, radar imagery, river levels, wildfire tracking, and historical weather back to 1940. Bu","directories":{},"_nodeVersion":"22.23.2","dependencies":{"axios":"^1.20.0","luxon":"^3.7.2","pngjs":"^7.0.0","dotenv":"^17.2.3","ngeohash":"^0.6.4","tz-lookup":"^6.1.25","fast-xml-parser":"^5.11.1","astronomy-engine":"^2.1.19","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.13","vitest":"^5.0.0","typescript":"^7.0.2","@types/node":"^26.5.1","@types/luxon":"^3.7.5","@types/pngjs":"^6.0.5","@types/ngeohash":"^0.6.8","@types/tz-lookup":"^6.1.2","@vitest/coverage-v8":"^5.0.0"},"optionalDependencies":{"mqtt":"^5.14.1"},"_npmOperationalInternal":{"tmp":"tmp/weather-mcp_1.31.4_1790183707552_0.6222364581229727","host":"s3://npm-registry-packages-npm-production"}},"1.31.5":{"name":"@dangahagan/weather-mcp","version":"1.31.5","keywords":["mcp","mcp-server","model-context-protocol","weather","weather-api","weather-forecast","noaa","open-meteo","forecast","climate","historical-weather","weather-alerts","air-quality","marine-weather","lightning","weather-radar","wildfire","geocoding","no-api-key","free","claude","claude-code","cursor","ai","llm","ai-tools"],"author":{"name":"Dan Gahagan"},"license":"MIT","_id":"@dangahagan/weather-mcp@1.31.5","maintainers":[{"name":"dangahagan","email":"dangahagan@gmail.com"}],"homepage":"https://github.com/weather-mcp/weather-mcp#readme","bugs":{"url":"https://github.com/weather-mcp/weather-mcp/issues"},"bin":{"weather-mcp":"dist/index.js"},"dist":{"shasum":"e705f4c31e7b7d0d1b08c5f46c35ff8053bda62a","tarball":"https://registry.npmjs.org/@dangahagan/weather-mcp/-/weather-mcp-1.31.5.tgz","fileCount":451,"integrity":"sha512-05wQ6h59wt9f8uMFHYVUgR5V8slzXpFMUDE6gqwHCrrcGac2XX/x2WEbZZhzquW18GCUcG8LeMlHITIkArVDEA==","signatures":[{"sig":"MEQCIDWqiwbrdpUtylh6pf6DIDc09Wl6L0p8HFH3IPyKLRKvAiBE348ORJ46bAurKI5Vz0UWKnqUWj89KWrMlUnrFzCsWg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIBcFRAZRHe/AmvmlzNuKvtNY+Xf9FKnMbTPgOVAfeZAQAiEA5OwOLxs+tkNRtgMz+5EzoVhUmFjH39O9E2Pmw9j2uy4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dangahagan%2fweather-mcp@1.31.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3570892},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"b699bce8bcfc6d495d2f2f34bd3cf952631f02f4","mcpName":"io.github.dgahagan/weather-mcp","scripts":{"dev":"tsx src/index.ts","test":"vitest run","audit":"npm audit --audit-level=moderate","build":"tsc","start":"node dist/index.js","stress":"node scripts/stress-harness.mjs","test:ui":"vitest --ui","examples":"node scripts/capture-examples.mjs","audit:fix":"npm audit fix","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build","generate:jma-areas":"node scripts/generate-jma-areas.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:37f5d9f7-3408-4322-9d52-be5d592163ef"}},"overrides":{"fast-uri":"3.1.6"},"repository":{"url":"git+https://github.com/weather-mcp/weather-mcp.git","type":"git"},"_npmVersion":"11.20.0","description":"MCP server giving AI assistants 17 weather tools with zero API keys: global forecasts, current conditions, alerts, air quality, marine conditions, lightning detection, radar imagery, river levels, wildfire tracking, and historical weather back to 1940. Bu","directories":{},"_nodeVersion":"22.23.2","dependencies":{"axios":"^1.20.0","luxon":"^3.7.2","pngjs":"^7.0.0","dotenv":"^17.2.3","ngeohash":"^0.6.4","tz-lookup":"^6.1.25","fast-xml-parser":"^5.11.1","astronomy-engine":"^2.1.19","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.13","vitest":"^5.0.0","typescript":"^7.0.2","@types/node":"^26.5.1","@types/luxon":"^3.7.5","@types/pngjs":"^6.0.5","@types/ngeohash":"^0.6.8","@types/tz-lookup":"^6.1.2","@vitest/coverage-v8":"^5.0.0"},"optionalDependencies":{"mqtt":"^5.14.1"},"_npmOperationalInternal":{"tmp":"tmp/weather-mcp_1.31.5_1790218168215_0.13762755264990267","host":"s3://npm-registry-packages-npm-production"}},"1.32.0":{"name":"@dangahagan/weather-mcp","version":"1.32.0","keywords":["mcp","mcp-server","model-context-protocol","weather","weather-api","weather-forecast","noaa","open-meteo","forecast","climate","historical-weather","weather-alerts","air-quality","marine-weather","lightning","weather-radar","wildfire","geocoding","no-api-key","free","claude","claude-code","cursor","ai","llm","ai-tools"],"author":{"name":"Dan Gahagan"},"license":"MIT","_id":"@dangahagan/weather-mcp@1.32.0","maintainers":[{"name":"dangahagan","email":"dangahagan@gmail.com"}],"homepage":"https://github.com/weather-mcp/weather-mcp#readme","bugs":{"url":"https://github.com/weather-mcp/weather-mcp/issues"},"bin":{"weather-mcp":"dist/index.js"},"dist":{"shasum":"af19cb9485904dcdb997d212b0fe4a71aea57d88","tarball":"https://registry.npmjs.org/@dangahagan/weather-mcp/-/weather-mcp-1.32.0.tgz","fileCount":451,"integrity":"sha512-SXqSXxf69IiPMeu/bxSjgg2FMbexW2LNmyKsNxP7V5DxIg6s5/ChtZC0FYuC5lbRLvs1xAot/kmOc/3mhl7ekw==","signatures":[{"sig":"MEYCIQDOCTjHoVCnToy+Kwo0Vml+iqwaAzyoGKdqDvtv3+gfLwIhAOxZU5plV4N+vvrIwZDXi9I8sEkIKRKklcTMvCGCY1yZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIE/7G3EbPR4SeR2IUhAm8atK14clbsGE07tD4KPHVbuLAiASdXcwBbjLt8EYMnoxdpyg4fJqxkXGJpbLrgn9RDkBMw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dangahagan%2fweather-mcp@1.32.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3574972},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"8c62cec13a9b91318c0e3f051fdf4dd56c5c61f2","mcpName":"io.github.dgahagan/weather-mcp","scripts":{"dev":"tsx src/index.ts","test":"vitest run","audit":"npm audit --audit-level=moderate","build":"tsc","start":"node dist/index.js","stress":"node scripts/stress-harness.mjs","test:ui":"vitest --ui","examples":"node scripts/capture-examples.mjs","audit:fix":"npm audit fix","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build","generate:jma-areas":"node scripts/generate-jma-areas.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:37f5d9f7-3408-4322-9d52-be5d592163ef"}},"overrides":{"fast-uri":"3.1.6"},"repository":{"url":"git+https://github.com/weather-mcp/weather-mcp.git","type":"git"},"_npmVersion":"11.20.0","description":"MCP server giving AI assistants 17 weather tools with zero API keys: global forecasts, current conditions, alerts, air quality, marine conditions, lightning detection, radar imagery, river levels, wildfire tracking, and historical weather back to 1940. Bu","directories":{},"_nodeVersion":"22.23.2","dependencies":{"axios":"^1.20.0","luxon":"^3.7.2","pngjs":"^7.0.0","dotenv":"^17.2.3","ngeohash":"^0.6.4","tz-lookup":"^6.1.25","fast-xml-parser":"^5.11.1","astronomy-engine":"^2.1.19","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.13","vitest":"^5.0.0","typescript":"^7.0.2","@types/node":"^26.5.1","@types/luxon":"^3.7.5","@types/pngjs":"^6.0.5","@types/ngeohash":"^0.6.8","@types/tz-lookup":"^6.1.2","@vitest/coverage-v8":"^5.0.0"},"optionalDependencies":{"mqtt":"^5.14.1"},"_npmOperationalInternal":{"tmp":"tmp/weather-mcp_1.32.0_1790225525838_0.2079857961705025","host":"s3://npm-registry-packages-npm-production"}},"1.32.1":{"name":"@dangahagan/weather-mcp","version":"1.32.1","keywords":["mcp","mcp-server","model-context-protocol","weather","weather-api","weather-forecast","noaa","open-meteo","forecast","climate","historical-weather","weather-alerts","air-quality","marine-weather","lightning","weather-radar","wildfire","geocoding","no-api-key","free","claude","claude-code","cursor","ai","llm","ai-tools"],"author":{"name":"Dan Gahagan"},"license":"MIT","_id":"@dangahagan/weather-mcp@1.32.1","maintainers":[{"name":"dangahagan","email":"dangahagan@gmail.com"}],"homepage":"https://github.com/weather-mcp/weather-mcp#readme","bugs":{"url":"https://github.com/weather-mcp/weather-mcp/issues"},"bin":{"weather-mcp":"dist/index.js"},"dist":{"shasum":"bffa1fb378d254577545a2b01ba84f03a2c57bbb","tarball":"https://registry.npmjs.org/@dangahagan/weather-mcp/-/weather-mcp-1.32.1.tgz","fileCount":451,"integrity":"sha512-lW5nMPI4jQNAbUcHWXUwkjotbgxT1Xi5qepZn6uAopJCi0ju6O3Hg+dDsVghqe0cSz+H6xAUvBX0BswfoUN4Aw==","signatures":[{"sig":"MEUCIHzsZAXhNyVqpKFxWvv2R3Rwof29InqcpTDYnLmpXxkKAiEAvNPNRL8ICNUqHbZIMAypE2MgvNcK5KSP2Ll9VbhRKew=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCu4SHAG/2NvtDde/z+A4AH1lU2EjC4sGBW3X/YYzSgMwIhAN3cGpsSdNQN6fmYkkk2fFEcStE2TyCt4D6FF7R+ff5L","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dangahagan%2fweather-mcp@1.32.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3575947},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"496be1ebee8e5cabba1646cf2fbec60eeeadd607","mcpName":"io.github.dgahagan/weather-mcp","scripts":{"dev":"tsx src/index.ts","test":"vitest run","audit":"npm audit --audit-level=moderate","build":"tsc","start":"node dist/index.js","stress":"node scripts/stress-harness.mjs","test:ui":"vitest --ui","examples":"node scripts/capture-examples.mjs","audit:fix":"npm audit fix","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build","generate:jma-areas":"node scripts/generate-jma-areas.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:37f5d9f7-3408-4322-9d52-be5d592163ef"}},"overrides":{"fast-uri":"3.1.6"},"repository":{"url":"git+https://github.com/weather-mcp/weather-mcp.git","type":"git"},"_npmVersion":"11.20.0","description":"MCP server giving AI assistants 17 weather tools with zero API keys: global forecasts, current conditions, alerts, air quality, marine conditions, lightning detection, radar imagery, river levels, wildfire tracking, and historical weather back to 1940. Bu","directories":{},"_nodeVersion":"22.23.2","dependencies":{"axios":"^1.20.0","luxon":"^3.7.2","pngjs":"^7.0.0","dotenv":"^17.2.3","ngeohash":"^0.6.4","tz-lookup":"^6.1.25","fast-xml-parser":"^5.11.1","astronomy-engine":"^2.1.19","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.13","vitest":"^5.0.0","typescript":"^7.0.2","@types/node":"^26.5.1","@types/luxon":"^3.7.5","@types/pngjs":"^6.0.5","@types/ngeohash":"^0.6.8","@types/tz-lookup":"^6.1.2","@vitest/coverage-v8":"^5.0.0"},"optionalDependencies":{"mqtt":"^5.14.1"},"_npmOperationalInternal":{"tmp":"tmp/weather-mcp_1.32.1_1790282930758_0.6318112487589924","host":"s3://npm-registry-packages-npm-production"}},"1.33.0":{"_id":"@dangahagan/weather-mcp@1.33.0","bin":{"weather-mcp":"dist/index.js"},"bugs":{"url":"https://github.com/weather-mcp/weather-mcp/issues"},"dist":{"shasum":"7f163eb98ea96b39fa034e6fe4b3995c1870d0d3","tarball":"https://registry.npmjs.org/@dangahagan/weather-mcp/-/weather-mcp-1.33.0.tgz","fileCount":451,"integrity":"sha512-iOoBgbeO7DyBITcyClMfzJx2gt6IlIO+6P9TPTgHHC0q3bEgT4fHE7tegPROtLY7xR6QvG/r3tArKD3+9ZcbMA==","signatures":[{"sig":"MEUCIQCAWjTb4enrviLWx+bEf6Mbj9SlykXs7JtovzrYgpgZnQIgKuky7LxARJ17IRwmRQqjCYNzMF9bhXQX5bVW80/mySw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIA65J0r7xOfIzSZhFdeIsZOKlqXZDmcYqgWZiuiPPvpFAiAo4URU7lPcBg3LPcjG4/IdDtb3TmBzu/YgQ52y9cFK5A=="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dangahagan%2fweather-mcp@1.33.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3580257},"main":"dist/index.js","name":"@dangahagan/weather-mcp","type":"module","types":"./dist/index.d.ts","author":{"name":"Dan Gahagan"},"engines":{"node":">=18.0.0"},"gitHead":"8cc582394a5a1595a74498a2b4c5915de71487e4","license":"MIT","mcpName":"io.github.dgahagan/weather-mcp","scripts":{"dev":"tsx src/index.ts","test":"vitest run","audit":"npm audit --audit-level=moderate","build":"tsc","start":"node dist/index.js","stress":"node scripts/stress-harness.mjs","test:ui":"vitest --ui","examples":"node scripts/capture-examples.mjs","audit:fix":"npm audit fix","test:watch":"vitest","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build","generate:jma-areas":"node scripts/generate-jma-areas.mjs"},"version":"1.33.0","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:37f5d9f7-3408-4322-9d52-be5d592163ef"}},"homepage":"https://github.com/weather-mcp/weather-mcp#readme","keywords":["mcp","mcp-server","model-context-protocol","weather","weather-api","weather-forecast","noaa","open-meteo","forecast","climate","historical-weather","weather-alerts","air-quality","marine-weather","lightning","weather-radar","wildfire","geocoding","no-api-key","free","claude","claude-code","cursor","ai","llm","ai-tools"],"overrides":{"fast-uri":"3.1.6"},"repository":{"url":"git+https://github.com/weather-mcp/weather-mcp.git","type":"git"},"_npmVersion":"11.20.0","description":"MCP server giving AI assistants 17 weather tools with zero API keys: global forecasts, current conditions, alerts, air quality, marine conditions, lightning detection, radar imagery, river levels, wildfire tracking, and historical weather back to 1940. Bu","directories":{},"maintainers":[{"name":"dangahagan","email":"dangahagan@gmail.com"}],"_nodeVersion":"22.23.2","dependencies":{"axios":"^1.20.0","luxon":"^3.7.2","pngjs":"^7.0.0","dotenv":"^17.2.3","ngeohash":"^0.6.4","tz-lookup":"^6.1.25","fast-xml-parser":"^5.11.1","astronomy-engine":"^2.1.19","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.13","vitest":"^5.0.0","typescript":"^7.0.2","@types/node":"^26.5.1","@types/luxon":"^3.7.5","@types/pngjs":"^6.0.5","@types/ngeohash":"^0.6.8","@types/tz-lookup":"^6.1.2","@vitest/coverage-v8":"^5.0.0"},"optionalDependencies":{"mqtt":"^5.14.1"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/weather-mcp_1.33.0_1790309711514_0.5790382892565205"}}},"time":{"created":"2025-11-05T16:05:08.585Z","modified":"2026-09-25T04:15:12.269Z","0.1.0":"2025-11-05T16:05:08.884Z","0.1.1":"2025-11-05T16:27:02.216Z","0.1.2":"2025-11-05T17:03:55.989Z","0.2.0":"2025-11-06T02:47:51.962Z","0.4.0":"2025-11-06T20:54:28.664Z","1.0.0":"2025-11-07T03:16:09.866Z","1.0.1":"2025-11-07T03:31:11.414Z","1.1.0":"2025-11-07T13:40:15.293Z","1.2.0":"2025-11-07T18:09:18.227Z","1.2.1":"2025-11-07T19:18:35.595Z","1.3.0":"2025-11-07T21:09:55.066Z","1.6.1":"2025-11-10T20:02:52.279Z","1.7.1":"2026-06-22T02:47:28.342Z","1.8.0":"2026-06-22T04:45:06.047Z","1.8.1":"2026-07-07T04:08:30.716Z","1.8.2":"2026-07-07T04:48:58.946Z","1.11.0":"2026-07-13T14:57:22.847Z","1.11.1":"2026-07-13T16:34:01.629Z","1.13.0":"2026-07-17T18:17:08.295Z","1.14.0":"2026-08-12T19:49:42.964Z","1.18.0":"2026-08-13T19:25:35.991Z","1.19.0":"2026-08-14T03:59:24.361Z","1.20.0":"2026-08-14T20:37:14.852Z","1.21.0":"2026-08-18T14:34:28.572Z","1.22.0":"2026-08-18T17:21:45.927Z","1.23.0":"2026-08-18T21:20:27.811Z","1.24.0":"2026-08-24T19:05:47.493Z","1.25.0":"2026-08-25T04:57:38.555Z","1.25.1":"2026-08-25T21:02:12.298Z","1.25.2":"2026-08-26T04:51:00.171Z","1.25.3":"2026-08-26T12:59:48.088Z","1.25.4":"2026-08-27T00:58:31.662Z","1.25.5":"2026-08-27T05:30:29.427Z","1.25.6":"2026-08-27T19:51:10.607Z","1.25.7":"2026-08-28T01:31:26.157Z","1.25.8":"2026-08-28T03:25:43.559Z","1.25.9":"2026-08-28T13:51:50.601Z","1.25.10":"2026-08-28T19:02:02.045Z","1.25.11":"2026-08-29T05:07:57.190Z","1.25.12":"2026-08-29T19:22:57.235Z","1.25.13":"2026-08-30T05:24:02.280Z","1.25.14":"2026-08-30T21:06:15.873Z","1.25.15":"2026-09-01T15:03:31.784Z","1.25.16":"2026-09-01T21:04:10.811Z","1.25.17":"2026-09-02T04:11:40.325Z","1.25.18":"2026-09-02T16:37:15.341Z","1.26.0":"2026-09-03T00:25:57.706Z","1.27.0":"2026-09-03T13:15:26.563Z","1.27.1":"2026-09-03T19:05:08.151Z","1.28.0":"2026-09-05T02:43:36.231Z","1.28.1":"2026-09-08T15:10:04.351Z","1.29.0":"2026-09-08T20:20:03.754Z","1.29.1":"2026-09-09T13:45:20.476Z","1.29.2":"2026-09-09T17:02:03.175Z","1.29.3":"2026-09-11T15:25:13.396Z","1.30.0":"2026-09-12T03:30:23.242Z","1.30.1":"2026-09-17T20:29:22.612Z","1.31.0":"2026-09-18T04:05:10.734Z","1.31.1":"2026-09-18T14:30:07.345Z","1.31.2":"2026-09-18T17:20:48.978Z","1.31.3":"2026-09-19T11:39:17.085Z","1.31.4":"2026-09-23T17:15:07.682Z","1.31.5":"2026-09-24T02:49:28.322Z","1.32.0":"2026-09-24T04:52:05.936Z","1.32.1":"2026-09-24T20:48:50.883Z","1.33.0":"2026-09-25T04:15:11.645Z"},"bugs":{"url":"https://github.com/weather-mcp/weather-mcp/issues"},"author":{"name":"Dan Gahagan"},"license":"MIT","homepage":"https://github.com/weather-mcp/weather-mcp#readme","keywords":["mcp","mcp-server","model-context-protocol","weather","weather-api","weather-forecast","noaa","open-meteo","forecast","climate","historical-weather","weather-alerts","air-quality","marine-weather","lightning","weather-radar","wildfire","geocoding","no-api-key","free","claude","claude-code","cursor","ai","llm","ai-tools"],"repository":{"url":"git+https://github.com/weather-mcp/weather-mcp.git","type":"git"},"description":"MCP server giving AI assistants 17 weather tools with zero API keys: global forecasts, current conditions, alerts, air quality, marine conditions, lightning detection, radar imagery, river levels, wildfire tracking, and historical weather back to 1940. Bu","maintainers":[{"name":"dangahagan","email":"dangahagan@gmail.com"}],"readme":"# Weather MCP Server\n\n[![npm version](https://badge.fury.io/js/@dangahagan%2Fweather-mcp.svg)](https://www.npmjs.com/package/@dangahagan/weather-mcp)\n[![MCP Registry](https://img.shields.io/badge/MCP-Registry-blue)](https://registry.modelcontextprotocol.io/v0/servers?search=io.github.dgahagan/weather-mcp)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![Tests](https://img.shields.io/badge/tests-3%2C689%20passing-brightgreen)](./docs/testing/TEST_SUITE_README.md)\n[![Node](https://img.shields.io/badge/node-%3E%3D18-339933?logo=node.js&logoColor=white)](https://nodejs.org)\n\n**Give your AI assistant real weather data — 17 tools, zero API keys, zero signup, zero cost.**\n\nWeather MCP is a [Model Context Protocol](https://modelcontextprotocol.io) server that connects AI assistants (Claude, Cursor, Cline, Zed, and any other MCP client) to live weather data: forecasts, current conditions, alerts, air quality, marine conditions, lightning, radar, rivers, wildfires, and 85+ years of historical weather. It's built entirely on free public data sources — NOAA, Open-Meteo, MET Norway, USGS, NIFC, NASA FIRMS, RainViewer, and Blitzortung.org — so there is nothing to sign up for and no key to paste in. (A few optional keys unlock extras — see [Optional API keys](#optional-api-keys) — but no tool ever requires one.)\n\n```bash\nclaude mcp add weather -- npx -y @dangahagan/weather-mcp@latest\n```\n\nThat's the whole install for Claude Code. For any other MCP client, add this to its MCP config:\n\n```json\n{\n  \"mcpServers\": {\n    \"weather\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@dangahagan/weather-mcp@latest\"]\n    }\n  }\n}\n```\n\nThen just ask:\n\n> *\"What's the weather in Tokyo this weekend?\"*\n> *\"Is there any lightning near the lake right now?\"*\n> *\"How does today compare to normal for this time of year?\"*\n> *\"Are there wildfires within 50 miles of my cabin?\"*\n> *\"Will there be a full moon this weekend?\"*\n> *\"Is this a record high for today?\"*\n> *\"How bad is the pollen in Berlin today?\"*\n> *\"What was the weather in Paris on June 6, 1944?\"*\n\n👉 **[See it in action](./examples/)** — real prompts like these with the answers they produced, and the raw server output behind them.\n\n📦 Listed in the [Official MCP Registry](https://registry.modelcontextprotocol.io/v0/servers?search=io.github.dgahagan/weather-mcp) as `io.github.dgahagan/weather-mcp`.\n\n✅ **The official package is [`@dangahagan/weather-mcp`](https://www.npmjs.com/package/@dangahagan/weather-mcp)**, published from this repository via npm [trusted publishing](https://docs.npmjs.com/trusted-publishers). Every release carries a signed provenance attestation tying the tarball to the exact commit and workflow that built it — verify any version without installing it:\n\n```bash\nnpm view @dangahagan/weather-mcp@latest dist.attestations\n```\n\nRepublished copies of this server exist under other npm scopes. They are MIT-licensed forks, which the license permits, but they are not maintained here and are usually many versions behind. This issue tracker covers `@dangahagan/weather-mcp` only — for anything installed from another scope, please report it to that package's publisher.\n\n## Why this server?\n\nThere are excellent commercial weather MCPs backed by paid APIs and full-time teams. If you need SLA-backed data, minute-level nowcasting, or premium global station coverage, they're worth a look — this project won't pretend otherwise.\n\nChoose this one if you want:\n\n- **Genuinely free** — every data source is a free public API. No trial that expires, no credit card, no rate-limited \"free tier\" bait.\n- **No API keys** — install to first forecast in under a minute. Nothing to configure, nothing to leak into a repo. ([Three optional keys](#optional-api-keys) add extras if you want them; the default configuration needs none.)\n- **Fully open source** — MIT licensed, readable TypeScript, 3,689 tests. Audit it, fork it, fix it.\n- **Privacy-respecting** — your queries go directly from your machine to public weather APIs. No middleman server, no telemetry.\n- **Breadth** — 17 tools covering weather, safety hazards (lightning, floods, wildfires), marine conditions, air quality, and historical data back to 1940. Most weather MCPs stop at forecasts.\n\nThe tradeoff is honest: US data (NOAA) is richer than international data (Open-Meteo), some tools are US-only, and free APIs come with fair-use rate limits. See [Coverage & Limitations](#coverage--limitations).\n\n## Tools\n\nAll 17 tools, documented in detail in **[docs/TOOLS.md](./docs/TOOLS.md)**:\n\n| Tool | What it does | Coverage |\n|------|-------------|----------|\n| `get_forecast` | Daily/hourly forecasts up to 16 days by coordinates, saved location, or city name (NOAA publishes 7 days daily and ~6.5 days hourly in the US, and says so when you ask for more; `source=\"openmeteo\"` reaches the full range); sunrise/sunset, UV, precipitation probability, optional climate-normals comparison, optional moon phase & twilight almanac, optional five-model agreement comparison When the National Weather Service has a life-threatening alert active for a point in the United States or an NWS-served territory, its warning is surfaced at the top of the response before the report — absence of the banner is not an all-clear, so call `get_alerts` for the authoritative answer | 🌍 Global |\n| `get_current_conditions` | Current weather: temperature, wind, humidity, pressure; NOAA station observations in the US (plus heat index/wind chill, snow depth, optional NOAA fire-weather indices), Open-Meteo model data elsewhere (with an optional computed Fosberg fire-weather index), or real airport station observations worldwide with `source=\"metar\"` (the optional Fosberg index is then computed from the station's own observation). Always states the observation's age, and automatically falls back to a fresher nearby station when the nearest one has gone dark. In extreme conditions automatically adds frostbite time-to-onset (computed wind chill) or heat-stress context (estimated WBGT) When the National Weather Service has a life-threatening alert active for a point in the United States or an NWS-served territory, its warning is surfaced at the top of the response before the report — absence of the banner is not an all-clear, so call `get_alerts` for the authoritative answer | 🌍 Global |\n| `get_alerts` | Active watches, warnings, and advisories sorted by severity; official national warnings for the US (NOAA), Canada (ECCC), 38 European countries (MeteoAlarm), India (NDMA SACHET), the Philippines (PAGASA), Indonesia (BMKG), and Japan (JMA) | 🇺🇸 🇨🇦 🇪🇺 🇮🇳 🇵🇭 🇮🇩 🇯🇵 |\n| `get_historical_weather` | Hourly/daily observations from 1940 to present | 🌍 Global |\n| `get_weather_summary` | One-call overview combining current conditions, forecast, and alerts (optionally air quality and lightning); a life-threatening NWS alert is surfaced once above the whole summary, not once per section | 🌍 Global |\n| `search_location` | Geocode place names to coordinates (\"Paris\" → 48.85, 2.35) | 🌍 Global |\n| `get_air_quality` | AQI (US/European scales), pollutants, UV index, health guidance; current pollen levels for European locations (or worldwide with an optional key); optional day-grouped forecast up to 7 days with per-day peak AQI and UV | 🌍 Global |\n| `get_marine_conditions` | Wave height, swell, ocean currents, sea state on WMO Code Table 3700 (Douglas sea scale) with a severity marker and legend — includes Great Lakes and major US bays; forecast up to 16 days | 🌍 Global |\n| `get_weather_imagery` | Precipitation radar (static or 2-hour animated loops) + GOES satellite imagery; `composite: true` returns a finished radar map over a base map as an image | 🌍 Global |\n| `get_lightning_activity` | Real-time strike detection with 4-level proximity safety assessment | 🌍 Global |\n| `get_river_conditions` | US: NWPS gauge levels, flood stages, streamflow, rise/fall trends, forecast series. Great Britain: Environment Agency observed river levels against each gauge's published typical range. Elsewhere: GloFAS modeled discharge snapped to the nearest river channel, with ensemble forecast | 🌍 Global |\n| `get_wildfire_info` | US: named incidents with containment, size, and safety guidance from the nearest *uncontained* fire. Elsewhere: NASA FIRMS satellite heat detections (VIIRS, near real-time), clustered with distance, bearing, and intensity | 🌍 Global |\n| `check_service_status` | Checks that NOAA and Open-Meteo are reachable, lists the upstreams it does not check, plus cache statistics | — |\n| `save_location` | Save places as aliases (\"home\", \"cabin\") with optional activity tags | — |\n| `list_saved_locations` | List all saved locations | — |\n| `get_saved_location` | Details for one saved location | — |\n| `remove_saved_location` | Delete a saved location | — |\n\n> **Default preset:** with no configuration, the server exposes the `basic` preset — `get_weather_summary` (one call covers most \"what's the weather?\" questions), plus `forecast`, `current_conditions`, `alerts`, `search_location`, and `check_service_status`. Enable everything with one environment variable — see [Tool Selection](#tool-selection).\n\n> **Consistent location input:** every location-based tool accepts the same three forms — `latitude`+`longitude`, a saved `location_name` (e.g. `\"home\"`), or a free-text `city_name` (e.g. `\"Bend, Oregon\"`, geocoded automatically). When a name is used, the response echoes the resolved place and coordinates.\n\n> **Output verbosity:** high-volume tools (`get_forecast`, `get_alerts`, `get_weather_imagery`, `get_river_conditions`, `get_wildfire_info`, `get_lightning_activity`) accept `detail: \"summary\" | \"standard\" | \"full\"` (default `standard`) to trade completeness for token cost — e.g. `full` returns the complete alert text, uncapped hourly forecast, every radar animation frame, and up to 25 nearby gauges/fires/strikes instead of the default 5-10.\n\n## Feature highlights\n\n- **Smart source selection** — US queries use NOAA (detailed, includes forecaster narratives); everywhere else uses Open-Meteo. You never have to pick — and on a US *hourly* forecast the answer tells you which product you got and when NOAA last published it, so reaching for `source=\"openmeteo\"` is a choice you can make rather than one made silently for you. If Open-Meteo is having an outage, a forecast outside the US is answered by MET Norway rather than failing, and says so.\n- **International weather alerts** — `get_alerts` routes by country: NOAA in the US, Environment and Climate Change Canada alerts in Canada, the official national warnings of 38 European countries via EUMETNET MeteoAlarm, the national CAP feeds of India (NDMA SACHET), the Philippines (PAGASA) and Indonesia (BMKG), and the Japan Meteorological Agency's own disaster-prevention feed in Japan — shown unmodified, with the issuing service credited. Where a feed publishes geometry inline, warnings are matched to your exact point by the alert's own polygon rather than to the whole country (the Philippines and Indonesia today; Europe remains country-level). Japanese warnings are matched to your point by JMA warning area, with the Japanese name shown as published and an English gloss beside it. Border cities like Toronto get the right country's alerts, not the nearest bounding box's.\n- **Real observations worldwide** — ask for what a station is *actually reporting* and `get_current_conditions` will read the nearest airport's METAR (`source=\"metar\"`): a genuine instrument reading anywhere on earth, with the station, its distance, and the observation age always stated. Outside the US this is the difference between a measurement and a model estimate.\n- **Model agreement** — ask *\"how confident is this forecast?\"* and `compare_models=true` compares five global models (GFS, ECMWF, ICON, GEM, UKMO) in one request, summarizing where they agree and where they split rather than dumping five forecasts. Spread across models is a proxy for uncertainty, not a guarantee — a tight spread can still be wrong, and the output says so.\n- **Ensemble spread** — the sibling question: *\"how confident is the model itself?\"* `ensemble_spread=true` summarizes ECMWF ENS's 50 perturbed members — per-day High/Moderate/Low confidence, interquartile temperature bands, and how many members produce rain — instead of one deterministic forecast. Member fractions are raw model output, **not calibrated probabilities**: a confident ensemble can still be wrong, and the output says so. Mutually exclusive with `compare_models`; the two answer different questions.\n- **Saved locations** — save \"home\", \"work\", or \"cabin\" once, then ask *\"what's the weather at home?\"* Locations persist in `~/.weather-mcp/locations.json` and can be tagged with activities (\"boating\", \"skiing\") so the AI highlights what matters to you.\n- **Climate context** — optional 30-year climate normals show how today compares: *\"10°F warmer than normal for this date.\"* For US locations the normals also carry the record high/low for the date and the year it was set: *\"is this a record high?\"*\n- **Astronomy almanac** — opt-in moon phase, illumination, moonrise/moonset, civil/nautical/astronomical twilight, and next full/new moon dates on daily forecasts (`include_astronomy`). Computed locally — accurate to the arcminute, works at the poles, costs zero API calls: *\"when does it get fully dark?\"*\n- **Safety-aware output** — lightning, wildfire, flood, and marine tools include graded safety assessments and plain-language recommendations, not just raw numbers.\n- **Winter weather** — snow depth, snowfall accumulation, and ice accumulation forecasts with sensible trace-amount filtering.\n- **Timezone-aware** — every timestamp is rendered in the location's local time with DST handled correctly.\n- **Imperial or metric** — pick your units server-wide (`WEATHER_UNITS`) or per request (`units: \"metric\"`), with fine-grained overrides (wind in knots, pressure in hPa, 24-hour clock). Defaults to imperial. See [Units & Localization](#units--localization).\n- **Built-in caching** — an LRU cache with per-data-type TTLs (5 minutes for alerts, 2 hours for forecasts, forever for finalized historical data) makes repeat queries return in <10ms and cuts upstream API calls by 50–80%.\n- **Actionable errors** — failures explain what happened and link to the upstream status page instead of dumping a stack trace.\n\n## Data sources\n\nAll free, all public, no authentication required:\n\n| Source | Provides | Coverage |\n|--------|----------|----------|\n| [NOAA Weather API](https://www.weather.gov/documentation/services-web-api) | US forecasts, current conditions, alerts, fire weather | US |\n| [Open-Meteo](https://open-meteo.com/) | Global forecasts, historical data (1940+), air quality, marine, geocoding, climate normals, fire-weather inputs | Global |\n| [MET Norway](https://api.met.no/weatherapi/locationforecast/2.0/documentation) | Global forecasts, used only when Open-Meteo fails transiently outside the US (about a nine-day horizon, daily only) — CC BY 4.0 | Global |\n| [NOAA NWPS](https://water.noaa.gov/) | River levels, streamflow, flood stages | US |\n| [Environment Agency](https://environment.data.gov.uk/flood-monitoring/doc/reference) | Observed river levels from the real-time gauge network, with published typical ranges — Open Government Licence v3 | Great Britain |\n| [RCC ACIS](https://www.rcc-acis.org/) | Daily record high/low temperatures | US |\n| [EUMETNET MeteoAlarm](https://meteoalarm.org/) | Official national weather warnings (38 European countries) | Europe |\n| [MSC GeoMet](https://api.weather.gc.ca/) | Environment and Climate Change Canada weather alerts | Canada |\n| [NDMA SACHET](https://sachet.ndma.gov.in/) | Official Indian warnings (CAP; polygon geometry served from a separate endpoint, so alerts are matched at country level) — public domain | India |\n| [PAGASA](https://publicalert.pagasa.dost.gov.ph/) | Official Philippine warnings (CAP, inline polygons) — CC BY 4.0 | Philippines |\n| [BMKG](https://www.bmkg.go.id/) | Official Indonesian nowcast warnings (CAP, inline polygons) — attribution required | Indonesia |\n| [JMA](https://www.jma.go.jp/bosai/warning/) | Official Japanese weather warnings from the disaster-prevention XML feed, matched by class10 warning area — Government Standard Terms of Use; attribution `出典：気象庁ホームページ` | Japan |\n| [NIFC WFIGS](https://data-nifc.opendata.arcgis.com/) | Active wildfire perimeters and incidents | US |\n| [NASA FIRMS](https://firms.modaps.eosdis.nasa.gov/) | Satellite fire detections (VIIRS, near real-time) | Global |\n| [RainViewer](https://www.rainviewer.com/api.html) | Precipitation radar imagery | Global |\n| [NASA GIBS](https://www.earthdata.nasa.gov/engage/open-data-services-software/earthdata-developer-portal/gibs-api) | GOES GeoColor satellite imagery; base map for composited radar | Western Hemisphere (satellite), Global (base map) |\n| [Blitzortung.org](https://www.blitzortung.org/) | Community lightning detection network | Global |\n\nOpen-Meteo allows 10,000 requests/day for non-commercial use; caching keeps typical AI usage far below that. Please respect the upstream providers' fair-use terms.\n\nComposited radar maps (`get_weather_imagery` with `composite: true`) carry the acknowledgment NASA requests for GIBS imagery, alongside the RainViewer radar credit:\n\n> Imagery provided by services from NASA's Global Imagery Browse Services (GIBS), part of NASA's Earth Science Data and Information System (ESDIS).\n\n## Installation\n\n**Recommended — npx (always latest, nothing to manage):**\n\n```bash\n# Claude Code\nclaude mcp add weather -- npx -y @dangahagan/weather-mcp@latest\n```\n\nOr in any MCP client's configuration:\n\n```json\n{\n  \"mcpServers\": {\n    \"weather\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@dangahagan/weather-mcp@latest\"]\n    }\n  }\n}\n```\n\n**Global install:**\n\n```bash\nnpm install -g @dangahagan/weather-mcp\n```\n\n**From source:**\n\n```bash\ngit clone https://github.com/weather-mcp/weather-mcp.git\ncd weather-mcp\nnpm install\nnpm run build\n```\n\nThen point your MCP client at `node /absolute/path/to/weather-mcp/dist/index.js`.\n\nRequires Node.js 18+. No API keys, tokens, or accounts needed — see [Optional API keys](#optional-api-keys) for the three that add optional extras, and [Optional dependency](#optional-dependency) if you want a smaller install.\n\n### Works with\n\nClaude Desktop, Claude Code, Cline, Cursor, Zed, VS Code (GitHub Copilot), LM Studio, Postman — any client that speaks MCP. Per-client setup instructions: **[docs/CLIENT_SETUP.md](./docs/CLIENT_SETUP.md)**.\n\n### Upgrading\n\n- **npx users:** nothing to do — `@latest` always fetches the newest version.\n- **Global install:** `npm install -g @dangahagan/weather-mcp@latest`\n- **From source:** `git pull && npm install && npm run build`\n\nRestart your MCP client after upgrading. See [CHANGELOG.md](./CHANGELOG.md) for release notes.\n\n**Running more than one MCP client on this machine? Restart every one of them.** All clients share a single `~/.weather-mcp/locations.json`, and a client still running a version before 1.31.2 writes that file from a stale in-memory copy — it will delete saved locations that an upgraded client has since written. The hazard is the un-upgraded instance, so the protection holds only once every client on the machine has been restarted onto the new version.\n\n## Configuration\n\n**Most users need zero configuration.** Everything below is optional.\n\nSettings can go in a `.env` file (see [`.env.example`](./.env.example)) or directly in your MCP client config:\n\n```json\n{\n  \"mcpServers\": {\n    \"weather\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@dangahagan/weather-mcp@latest\"],\n      \"env\": {\n        \"ENABLED_TOOLS\": \"all\",\n        \"CACHE_MAX_SIZE\": \"2000\",\n        \"LOG_LEVEL\": \"1\"\n      }\n    }\n  }\n}\n```\n\n### Tool Selection\n\nControl which tools are exposed to reduce context overhead:\n\n| Preset | Tools |\n|--------|-------|\n| `basic` (default) | weather_summary, forecast, current_conditions, alerts, search_location, check_service_status |\n| `standard` | basic + historical_weather, air_quality, and saved-location tools |\n| `full` | everything — standard + marine, imagery, lightning, rivers, wildfire (same as `all`) |\n| `all` | all 17 tools |\n\n**Context cost.** Every MCP client puts the `tools/list` result into model context on\nevery turn, so the preset you choose is a standing cost on every request. Measured on\nthe built server: `basic` **13,249 bytes** (~3.3k tokens), `standard` **21,223** (~5.3k),\n`full`/`all` **31,092** (~7.8k). It scales with the number of **tools**, not the number of\ndata sources — adding Japan and India as alert authorities added zero tools and zero bytes.\n\n```bash\nENABLED_TOOLS=all                               # Use a preset\nENABLED_TOOLS=forecast,current,alerts,aqi       # Specific tools only\nENABLED_TOOLS=basic,+historical,+air_quality    # Add to a preset\nENABLED_TOOLS=all,-marine                       # Remove from a preset\n```\n\nShort aliases are supported: `forecast`, `current`, `alerts`, `historical`, `status`, `search`, `aqi`, `marine`, `radar`, `lightning`, and more.\n\n### Units & Localization\n\nOutput defaults to **imperial** (°F, mph, inHg, miles) and can be switched to **metric** (°C, km/h, hPa, km) server-wide or per request. Precedence: a per-call parameter beats a per-unit env override, which beats the `WEATHER_UNITS` system default.\n\n```bash\nWEATHER_UNITS=metric            # switch everything to metric\nWEATHER_WIND_SPEED_UNIT=kn      # ...but wind in knots\nWEATHER_TIME_FORMAT=24h         # 24-hour clock\n```\n\nOr per call — the AI can honor \"in Celsius\" on the fly:\n\n```jsonc\n{ \"latitude\": 47.6, \"longitude\": -122.3, \"units\": \"metric\" }\n{ \"latitude\": 47.6, \"longitude\": -122.3, \"wind_speed_unit\": \"kn\", \"pressure_unit\": \"hPa\" }\n```\n\nSupported on `get_forecast`, `get_current_conditions`, and `get_historical_weather`. Wind accepts `mph`/`kmh`/`ms`/`kn`; pressure `inHg`/`hPa`. Domain-specialized readings (fire-weather heights, NWPS river gauge stage, and the marine tool's dual-unit wave output) keep their conventional units — NWPS stage is always feet. The Environment Agency river level is the exception: it is published in metres and follows the distance preference, so it renders in metres under `km` and feet under `mi`.\n\n### Other settings\n\n| Variable | Default | Purpose |\n|----------|---------|---------|\n| `ENABLED_TOOLS` | `basic` | Tool preset or list (see above) |\n| `WEATHER_UNITS` | `imperial` | Default unit system: `imperial` or `metric` |\n| `WEATHER_TEMPERATURE_UNIT` … | — | Per-unit overrides: `_TEMPERATURE_`(F/C), `_WIND_SPEED_`(mph/kmh/ms/kn), `_PRECIPITATION_`(inch/mm), `_PRESSURE_`(inHg/hPa), `_DISTANCE_`(mi/km), `_TIME_FORMAT`(12h/24h) |\n| `CACHE_ENABLED` | `true` | Enable/disable response caching |\n| `CACHE_MAX_SIZE` | `1000` | Max cache entries (100–10000) |\n| `API_TIMEOUT_MS` | `30000` | Upstream API timeout (5000–120000) |\n| `WEATHER_LIGHTNING_PREWARM` | `true` | Subscribe saved locations' geohashes at startup so lightning has coverage before the first query, and keep them subscribed for as long as they stay saved. The saved list is re-read every 30 minutes: a location saved from another client is picked up, and a removed one stops being watched within about an hour, with no restart. Follows the lightning tool (`get_lightning_activity`), not `get_weather_summary`: no effect when the lightning tool is disabled, as it is in the default `basic` preset — use `ENABLED_TOOLS=basic,+lightning` to opt in. A saved location that does not fit the 50-subscription limit is skipped rather than displacing an area you queried. Set `false` to skip pre-warm and the persistent MQTT connection it opens. |\n| `LOG_LEVEL` | `1` | `0`/`DEBUG`, `1`/`INFO`, `2`/`WARN`, `3`/`ERROR` — number or name, names case-insensitive. An unrecognized value warns on stderr and falls back to `INFO`. Logs go to stderr |\n| `NCEI_API_TOKEN` | — | Optional [free NCEI token](https://www.ncdc.noaa.gov/cdo-web/token) for official NOAA climate normals (US); falls back to Open-Meteo automatically. See [Optional API keys](#optional-api-keys) |\n| `FIRMS_MAP_KEY` | — | Optional [free FIRMS key](https://firms.modaps.eosdis.nasa.gov/api/map_key/) for targeted wildfire queries and up to 5 days of detection history. See [Optional API keys](#optional-api-keys) |\n| `GOOGLE_POLLEN_API_KEY` | — | Optional key for pollen outside Europe (incl. the US). **Requires a Google Cloud billing account** — free tier is 5,000 lookups/month. See [Optional API keys](#optional-api-keys) and [the setup guide](./docs/GOOGLE_POLLEN_KEY_SETUP.md) |\n| `GOOGLE_WEATHER_API_KEY` | — | Optional key for official weather alerts beyond the US, Canada, Europe, India, the Philippines, Indonesia, and Japan (~45+ more territories). **Requires a Google Cloud billing account.** See [Optional API keys](#optional-api-keys) and [the setup guide](./docs/GOOGLE_WEATHER_KEY_SETUP.md) |\n\nFor caching architecture details, see [.github/CACHING.md](./.github/CACHING.md).\n\n## Optional API keys\n\n**The default is the product.** Every one of the 17 tools works with zero keys,\nzero signup, and zero cost — that is the configuration this project is built\naround and the one most people should use. If that's you, you can skip this\nsection entirely.\n\nFour optional keys each unlock one extra. Without them the corresponding tool\nstill works; it just returns the keyless answer.\n\n| Variable | What it costs | What it adds | Without it |\n|----------|---------------|--------------|------------|\n| [`NCEI_API_TOKEN`](https://www.ncdc.noaa.gov/cdo-web/token) | Free registration (email) | Official NOAA station climate normals for US locations | Normals are computed from the Open-Meteo reanalysis archive — global, and the path virtually every user is already on |\n| [`FIRMS_MAP_KEY`](https://firms.modaps.eosdis.nasa.gov/api/map_key/) | Free registration (email) | Targeted wildfire bbox queries with 1–5 days of detection history | Keyless 24-hour regional detection files — `get_wildfire_info` still works globally |\n| `GOOGLE_POLLEN_API_KEY` | **Free tier, but requires a Google Cloud billing account (credit card on file)** — 5,000 lookups/month free, ~$10/1,000 after. [Setup guide](./docs/GOOGLE_POLLEN_KEY_SETUP.md) | Grass/tree/weed Universal Pollen Index outside Europe, including the US (65+ countries) | European pollen via CAMS still works keyless; elsewhere no pollen section renders |\n| `GOOGLE_WEATHER_API_KEY` | **Free tier, but requires a Google Cloud billing account (credit card on file)** — the Weather API bills under a Maps Platform Essentials SKU; check Google's current allowance. [Setup guide](./docs/GOOGLE_WEATHER_KEY_SETUP.md) | Official weather alerts for ~45+ more territories — Australia, Brazil, Mexico and others ([Google's coverage list](https://developers.google.com/maps/documentation/weather/coverage) is authoritative) | US, Canadian, European, Indian, Philippine, Indonesian, and Japanese alerts still work keyless; elsewhere `get_alerts` returns today's not-covered message |\n\nThe NCEI and FIRMS keys are true free registrations. **The two Google keys are\nnot** — each has a free usage tier, but Google requires a billing account with\na payment method to issue them at all. That's why they aren't described as\nsimply \"free\" anywhere in these docs, and why they stay strictly optional. They\nare separate variables on purpose: the recommended console restriction ties a\nkey to one specific API, so a Pollen-restricted key cannot serve alerts and\nvice versa. If you prefer one unrestricted key, put the same string in both.\n\n### Standing key policy\n\nSo the \"genuinely free\" promise above stays meaningful, this project holds to\nthree rules:\n\n1. **Optional keys must always have a usable free tier.** A key that only makes\n   sense once you're paying doesn't belong here.\n2. **No tool will ever *require* a key.** Every feature has a keyless path, even\n   if that path is \"this data isn't available for your region\".\n3. **Features that would require a *paid* key are out of scope** unless there's\n   significant user demand for that specific service.\n\n## Optional dependency\n\nEverything above installs by default and nothing here needs configuring — this section only\nmatters if you want a smaller install.\n\nOne dependency, `mqtt`, exists for a single tool: `get_lightning_activity` streams live strikes\nfrom Blitzortung.org over MQTT, and nothing else in the server uses that transport. It is declared\nas an `optionalDependency`, so a normal install still includes it and lightning works exactly as\ndescribed above. You can decline it:\n\n```bash\nnpm install -g @dangahagan/weather-mcp --omit=optional\n```\n\nThat installs **121 packages instead of 163** — 42 fewer, `mqtt` and its transitive tree.\n\n**What you give up**, on both paths that reach lightning:\n\n- `get_lightning_activity` returns an error naming the package and how to get it back, rather than\n  a result. It never reports \"no strikes\" — a missing dependency rendering as an all-clear on\n  lightning is precisely the kind of confidently wrong safety answer this project treats as its\n  worst failure.\n- `get_weather_summary` still works, but its optional `lightning` section renders as\n  `## lightning (unavailable)` with the same message. Every other section is unaffected.\n\nNothing else changes: all 16 remaining tools behave identically, and `get_lightning_activity` still\nappears in `tools/list`.\n\nTo get lightning back, reinstall without the flag.\n\n> **Source builds still use a plain `npm install`.** TypeScript needs `mqtt`'s bundled type\n> declarations at build time even though the emitted server loads the package only when lightning\n> is actually requested, so `--omit=optional` belongs to the published package, not to a build from\n> a clone.\n\n## Coverage & Limitations\n\nBeing honest about what free public data can and can't do:\n\n| Capability | Global | US-only |\n|-----------|--------|---------|\n| Forecasts (up to 16 days) | ✅ | Richer detail via NOAA, but NOAA publishes only 7 days daily / ~6.5 days hourly — a longer request is disclosed, not silently truncated |\n| Historical weather (1940+) | ✅ (>7 days old) | Station-level detail for last 7 days |\n| Air quality, marine, radar, lightning | ✅ | — |\n| Current conditions | ✅ (model data, or real station observations via `source=\"metar\"`) | Station observations via NOAA (richer detail) |\n| Weather alerts | ✅ US, Canada, 38 European countries, India, the Philippines, Indonesia, and Japan keyless; ~45+ more territories with an optional key | NWS zone-level precision; Europe and India country-level; Philippines and Indonesia polygon-level; Japan warning-area level |\n| River conditions | ✅ (GloFAS modeled discharge; Environment Agency gauge observations in Great Britain) | Gauge observations + official flood stages via NWPS |\n| Wildfires | ✅ (FIRMS satellite detections) | Named incidents with acreage + containment via NIFC |\n| Fire weather | ✅ (computed Fosberg index + dryness context) | NOAA-published Haines, grassland, red-flag indices |\n| Pollen | 🇪🇺 Europe keyless (CAMS, grains/m³); elsewhere needs an optional key | Universal Pollen Index with `GOOGLE_POLLEN_API_KEY` |\n\n- **A US hourly forecast and a US daily forecast come from the same NOAA product, and that product is human-adjusted.** Its precipitation probability is a chance over the whole grid box, republished on the forecaster's cadence rather than a model run's, so at hourly resolution it can legitimately disagree with `source=\"openmeteo\"`'s faster model view — neither is wrong. `source=\"auto\"` picks NOAA on geography alone and now says so on every hourly response, with the `**Updated:**` header line showing when NOAA last published the grid. Daily forecasts are unaffected.\n- European alerts are matched at **country level** — the keyless MeteoAlarm feeds carry no region polygons, so warnings for a large country may not affect the requested point; the output says so. Canadian alerts use a real bbox query with polygon-backed features.\n- **Philippine and Indonesian alerts are matched by the alert's own polygon**, and **Japanese alerts by JMA warning area**, so a warning is shown only when it actually covers the requested point — finer than Europe's country-level matching. Japan resolves to one of the 143 areas JMA itself publishes warnings for; a point outside all of them, or one whose area is missing from the office's own bulletin, says so rather than reporting an all-clear. **Indian alerts are currently country-level**: SACHET publishes each alert's geometry from a separate endpoint that is not reliably reachable from servers, so Indian warnings are listed with an explicit note that they may not affect your exact location, exactly as Europe's are. Any alert whose geometry cannot be loaded is always listed rather than dropped — never silently treated as \"not near you\".\n- Outside the US, Canada, Europe, India, the Philippines, Indonesia, and Japan, alerts need an optional [`GOOGLE_WEATHER_API_KEY`](#optional-api-keys); without one `get_alerts` says plainly that the region isn't covered rather than guessing. With a key, Google aggregates official national feeds for roughly 45 more territories — Australia, Brazil and Mexico among them, with [Google's coverage page](https://developers.google.com/maps/documentation/weather/coverage) as the authoritative list. Matching is by **provider polygon**, so coverage alignment may not be exact and an empty answer means \"no alerts found\", not a guarantee of coverage; the output says so both ways. Alert text appears in the publisher's source language. **The US, Canada, Europe, India, the Philippines, Indonesia, and Japan never contact Google** — those authorities stay first choice, key or no key — and a key failure surfaces loudly rather than degrading to a possibly-false all-clear.\n- International current conditions default to **model-interpolated** values at the exact coordinates. `source=\"metar\"` returns a **real instrument reading** instead — but from the nearest airport, which may be tens of km away and up to an hour old. The output always names the station, its distance and bearing, and the observation age, so the tradeoff is visible rather than assumed. METAR coverage follows airports, so remote land and open ocean have real gaps.\n- Historical data older than 7 days comes from reanalysis models (9–25km grid), not direct station observations, and trails real time by ~5 days.\n- Non-US wildfire results are **satellite heat detections, not managed incidents** — no fire names, sizes, or containment percentages exist in the data, detections can include industrial heat sources or agricultural burns, and a clear result is not an all-clear (cloud cover hides fires; small or new fires evade detection). The output frames all of this explicitly. Keyless data covers the last 24 hours; an optional free [`FIRMS_MAP_KEY`](https://firms.modaps.eosdis.nasa.gov/api/map_key/) unlocks targeted queries and up to 5 days of detection history (`day_range`).\n- Frostbite-risk and heat-stress (WBGT) lines are **computed by this server** from temperature, humidity, and wind — not agency-published ratings. The wind chill is the standard 2001 North American model; the frostbite time bands are adapted from Environment Canada's published categories and the WBGT is the Australian Bureau of Meteorology's *simplified* estimate, which assumes full sun and light wind and so can overestimate in shade or overcast. Exertion thresholds also genuinely shift with acclimatization. Treat both as context, not as an occupational-safety determination.\n- Non-US fire weather is a **Fosberg Fire Weather Index computed by this server** from current model values — or, with `source=\"metar\"`, from the station's reported values — not an agency-published rating — US locations get NOAA's own Haines/grassland/red-flag indices instead. The output says which it is and defers to national fire authorities; its category bands are a project heuristic.\n- Non-US river discharge is **modeled**, not observed, and has no official flood-stage thresholds — levels are shown relative to recent history and the forecast ensemble. The ~5km model grid means the reported channel may be a few km from the requested point; the output says so when it is.\n- Pollen is **Europe-only without a key**: it rides the CAMS European model on the air-quality endpoint, which returns real grains/m³ in Europe and nothing anywhere else. An optional [`GOOGLE_POLLEN_API_KEY`](#optional-api-keys) fills the gap for 65+ countries including the US, as a grass/tree/weed Universal Pollen Index (0–5) rather than per-species counts. Europe keeps the richer keyless data and never contacts Google.\n- Marine data has limited coastal accuracy and is **not suitable for navigation**.\n- Lightning coverage varies by region (community-operated detector network).\n- Open-Meteo's fair-use limit is 10,000 requests/day; the built-in cache makes this hard to hit in normal use.\n\n## Development\n\n```bash\nnpm run build          # Compile TypeScript\nnpm run dev            # Run in development mode\nnpm test               # Run all 3,689 tests\nnpm run test:coverage  # Coverage report\nnpm run audit          # Dependency vulnerability scan\n```\n\n**Quality bar:** TypeScript strict mode, no `any` types, 100% test coverage on critical utilities (cache, validation, unit conversion, errors), 100% pass rate, minimal runtime dependencies.\n\nProject structure, patterns, and contribution guidance:\n- [CONTRIBUTING.md](./CONTRIBUTING.md) — how to contribute\n- [CLAUDE.md](./CLAUDE.md) — architecture and development guide\n- [docs/README.md](./docs/README.md) — complete documentation index\n\n## Security\n\n- All inputs validated (coordinates, dates, ranges) before any API call\n- Error messages sanitized — no internal details leak to output\n- Zero secrets by design: no keys means nothing to steal or misconfigure\n- Automated dependency scanning (npm audit + Dependabot), minimal dependency footprint\n- Security policy and supported versions: see [SECURITY.md](./SECURITY.md)\n\nTo report a vulnerability, see [SECURITY.md](./SECURITY.md).\n\n## Documentation\n\n- **[Examples](./examples/)** — realistic sessions in cities around the world: prompt → assistant answer → verbatim server output\n- **[Tool Reference](./docs/TOOLS.md)** — all 17 tools: parameters, examples, sample output\n- **[Client Setup](./docs/CLIENT_SETUP.md)** — step-by-step for 8 MCP clients\n- **[Error Handling](./docs/ERROR_HANDLING.md)** — how failures are reported\n- **[Testing Guide](./docs/testing/TESTING_GUIDE.md)** — manual testing procedures\n- **[Changelog](./CHANGELOG.md)** — version history\n- **[Full documentation index](./docs/README.md)**\n\n## Contributing\n\nContributions are welcome — this is a single-maintainer project and issues, PRs, and feedback genuinely help. See [CONTRIBUTING.md](./CONTRIBUTING.md).\n\n## License\n\n[MIT](./LICENSE) — free to use, modify, and distribute.\n\n---\n\n*Weather data provided by NOAA, Open-Meteo, MET Norway, USGS, NIFC, RainViewer, and Blitzortung.org. This project is not affiliated with or endorsed by any of these providers. Do not rely on this server as your sole source for safety-critical decisions — always consult official warnings and forecasts.*\n","readmeFilename":"README.md"}