{"_id":"@cyanheads/open-meteo-mcp-server","_rev":"28-297180946fd1471db7f5e681c12fbe87","name":"@cyanheads/open-meteo-mcp-server","dist-tags":{"latest":"0.4.0"},"versions":{"0.1.0":{"name":"@cyanheads/open-meteo-mcp-server","version":"0.1.0","keywords":["mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","weather","open-meteo","forecast","climate","era5","marine","air-quality","geocoding","elevation"],"author":{"url":"https://github.com/cyanheads","name":"cyanheads"},"license":"Apache-2.0","_id":"@cyanheads/open-meteo-mcp-server@0.1.0","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/open-meteo-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/open-meteo-mcp-server/issues"},"bin":{"open-meteo-mcp-server":"dist/index.js"},"dist":{"shasum":"603fc2767a08c7224c834f8882157ef72e70baae","tarball":"https://registry.npmjs.org/@cyanheads/open-meteo-mcp-server/-/open-meteo-mcp-server-0.1.0.tgz","fileCount":61,"integrity":"sha512-IhqplXQNt4jp4fvwm6T9FTzIV9Y5KyuU6UvIvh9wCdnh/xbHj3Gt8FU7+jSNCa25wNWwy0Xa9qxJHDvAb/6cvQ==","signatures":[{"sig":"MEQCIF8Z5NelkL+wFdg1cuh9NZQSEw1Csi3IXsfyMclOSIneAiBnPmpHdPuHPzoARoCPBOolrLrTdpZrWZvDFL28ZMAxJA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":218672},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"bun":">=1.3.0","node":">=24.0.0"},"gitHead":"4d6ad60ea2cabcf4a803b31fdd4f10507da14789","mcpName":"io.github.cyanheads/open-meteo-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","start":"bun ./dist/index.js","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/open-meteo-mcp-server.mcpb","format":"biome check --write .","rebuild":"bun run scripts/clean.ts && bun run scripts/build.ts","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","list-skills":"bun run scripts/list-skills.ts","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","format:unsafe":"biome check --write --unsafe .","lint:packaging":"bun run scripts/lint-packaging.ts","changelog:build":"bun run scripts/build-changelog.ts","changelog:check":"bun run scripts/build-changelog.ts --check"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"repository":{"url":"git+https://github.com/cyanheads/open-meteo-mcp-server.git","type":"git"},"_npmVersion":"11.12.1","description":"Geocode places, fetch global weather forecasts, ERA5 historical climate, marine conditions, air quality, and terrain elevation via MCP. STDIO or Streamable HTTP.","directories":{},"_nodeVersion":"26.0.0","dependencies":{"zod":"^4.4.3","pino-pretty":"^13.1.3","@cyanheads/mcp-ts-core":"^0.9.16"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ignore":"^7.0.5","vitest":"^4.1.0","depcheck":"^1.4.7","tsc-alias":"^1.8.16","typescript":"^5.9.3","@types/node":"^25.6.0","@biomejs/biome":"^2.4.7"},"_npmOperationalInternal":{"tmp":"tmp/open-meteo-mcp-server_0.1.0_1780150029103_0.05446399665739721","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@cyanheads/open-meteo-mcp-server","version":"0.1.1","keywords":["mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","weather","open-meteo","forecast","climate","era5","marine","air-quality","geocoding","elevation"],"author":{"url":"https://github.com/cyanheads","name":"cyanheads"},"license":"Apache-2.0","_id":"@cyanheads/open-meteo-mcp-server@0.1.1","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/open-meteo-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/open-meteo-mcp-server/issues"},"bin":{"open-meteo-mcp-server":"dist/index.js"},"dist":{"shasum":"c73aeab658f0184264a10820bdc4d70b143a5766","tarball":"https://registry.npmjs.org/@cyanheads/open-meteo-mcp-server/-/open-meteo-mcp-server-0.1.1.tgz","fileCount":62,"integrity":"sha512-zoS8NhL3OiaT6/8SWZGbb9oXOaKXlUSlOMhSPl9ZlDQ2cMvINpjuN3TISQR3Y+rzqmYo+9LDr0oVT1Su2IAKZg==","signatures":[{"sig":"MEQCIHDTm8fBCezuHB312yHWiteoZa8EPCOWTNU266wMk8SCAiBoNBhJCUU+CTxn/VG9ccna1JpVgWYN5GrRnYWjiY69iQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":219741},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"c73aeab658f0184264a10820bdc4d70b143a5766","engines":{"bun":">=1.3.0","node":">=24.0.0"},"mcpName":"io.github.cyanheads/open-meteo-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","start":"bun ./dist/index.js","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/open-meteo-mcp-server.mcpb","format":"biome check --write .","rebuild":"bun run scripts/clean.ts && bun run scripts/build.ts","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","list-skills":"bun run scripts/list-skills.ts","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","format:unsafe":"biome check --write --unsafe .","lint:packaging":"bun run scripts/lint-packaging.ts","changelog:build":"bun run scripts/build-changelog.ts","changelog:check":"bun run scripts/build-changelog.ts --check"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"_integrity":"sha512-zoS8NhL3OiaT6/8SWZGbb9oXOaKXlUSlOMhSPl9ZlDQ2cMvINpjuN3TISQR3Y+rzqmYo+9LDr0oVT1Su2IAKZg==","repository":{"url":"https://github.com/cyanheads/open-meteo-mcp-server","type":"git"},"_npmVersion":"10.8.3","description":"Geocode places, fetch global weather forecasts, ERA5 historical climate, marine conditions, air quality, and terrain elevation via MCP. STDIO or Streamable HTTP.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"^4.4.3","pino-pretty":"^13.1.3","@cyanheads/mcp-ts-core":"^0.9.16"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ignore":"^7.0.5","vitest":"^4.1.0","depcheck":"^1.4.7","tsc-alias":"^1.8.16","typescript":"^5.9.3","@types/node":"^25.6.0","@biomejs/biome":"^2.4.7"},"_npmOperationalInternal":{"tmp":"tmp/open-meteo-mcp-server_0.1.1_1780193806310_0.5737816019622679","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@cyanheads/open-meteo-mcp-server","version":"0.1.2","keywords":["mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","weather","open-meteo","forecast","climate","era5","marine","air-quality","geocoding","elevation"],"author":{"url":"https://github.com/cyanheads","name":"cyanheads"},"license":"Apache-2.0","_id":"@cyanheads/open-meteo-mcp-server@0.1.2","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/open-meteo-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/open-meteo-mcp-server/issues"},"bin":{"open-meteo-mcp-server":"dist/index.js"},"dist":{"shasum":"1921367dd7f2b31d73e2d725a986495cfb163bda","tarball":"https://registry.npmjs.org/@cyanheads/open-meteo-mcp-server/-/open-meteo-mcp-server-0.1.2.tgz","fileCount":71,"integrity":"sha512-G8jqjE8a1NaOqjyoJVW/fSHsYRS+/HfZzEvb4LmgRMtjX8YZyUytTrvfJGXcEwF0l4pX2GnhfkwOTsnL8AH5jQ==","signatures":[{"sig":"MEUCICmZJkjjgRGZIPRWAYSBazo1kpB0DOIG4/t+EqdMdhh7AiEA0JEUXxOi1SJZlk2s+ZyfAdsQHqtWnBuBW5OvF34bblE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":241523},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"1921367dd7f2b31d73e2d725a986495cfb163bda","engines":{"bun":">=1.3.0","node":">=24.0.0"},"mcpName":"io.github.cyanheads/open-meteo-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","start":"bun ./dist/index.js","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/open-meteo-mcp-server.mcpb","format":"biome check --write .","rebuild":"bun run scripts/clean.ts && bun run scripts/build.ts","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","list-skills":"bun run scripts/list-skills.ts","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","format:unsafe":"biome check --write --unsafe .","lint:packaging":"bun run scripts/lint-packaging.ts","changelog:build":"bun run scripts/build-changelog.ts","changelog:check":"bun run scripts/build-changelog.ts --check"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"_integrity":"sha512-G8jqjE8a1NaOqjyoJVW/fSHsYRS+/HfZzEvb4LmgRMtjX8YZyUytTrvfJGXcEwF0l4pX2GnhfkwOTsnL8AH5jQ==","repository":{"url":"https://github.com/cyanheads/open-meteo-mcp-server","type":"git"},"_npmVersion":"10.8.3","description":"Geocode places, fetch global weather forecasts, ERA5 historical climate, marine conditions, air quality, and terrain elevation via MCP. STDIO or Streamable HTTP.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"^4.4.3","pino-pretty":"^13.1.3","@duckdb/node-api":"^1.5.3-r.3","@cyanheads/mcp-ts-core":"^0.9.16"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ignore":"^7.0.5","vitest":"^4.1.0","depcheck":"^1.4.7","tsc-alias":"^1.8.16","typescript":"^5.9.3","@types/node":"^25.6.0","@biomejs/biome":"^2.4.7"},"_npmOperationalInternal":{"tmp":"tmp/open-meteo-mcp-server_0.1.2_1780284321233_0.6955905335386405","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@cyanheads/open-meteo-mcp-server","version":"0.1.3","keywords":["mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","weather","open-meteo","forecast","climate","era5","marine","air-quality","geocoding","elevation"],"author":{"url":"https://github.com/cyanheads","name":"cyanheads"},"license":"Apache-2.0","_id":"@cyanheads/open-meteo-mcp-server@0.1.3","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/open-meteo-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/open-meteo-mcp-server/issues"},"bin":{"open-meteo-mcp-server":"dist/index.js"},"dist":{"shasum":"f502ceb57e238dd90c395b4be977a210634b6da3","tarball":"https://registry.npmjs.org/@cyanheads/open-meteo-mcp-server/-/open-meteo-mcp-server-0.1.3.tgz","fileCount":72,"integrity":"sha512-Y741/pTHr0Y9+k/boBtbRA/WjKXPs3v8rzMjO28BG6MEkf46OwvtBtUI6pX4obc5iSFKMe5VrXo/uVecxtzmTg==","signatures":[{"sig":"MEUCIGa57dDZyDeaMWgnflj1tVtymntMuqRW40VYDLRJ3ybmAiEAvWDc9ODQic1Y0gFeIrdwccWgR0nXVVLvFkschwcSQrQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":244678},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"f502ceb57e238dd90c395b4be977a210634b6da3","engines":{"bun":">=1.3.0","node":">=24.0.0"},"mcpName":"io.github.cyanheads/open-meteo-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","start":"bun ./dist/index.js","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/open-meteo-mcp-server.mcpb","format":"biome check --write .","rebuild":"bun run scripts/clean.ts && bun run scripts/build.ts","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","list-skills":"bun run scripts/list-skills.ts","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","format:unsafe":"biome check --write --unsafe .","lint:packaging":"bun run scripts/lint-packaging.ts","release:github":"tsx scripts/release-github.ts","changelog:build":"bun run scripts/build-changelog.ts","changelog:check":"bun run scripts/build-changelog.ts --check"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"_integrity":"sha512-Y741/pTHr0Y9+k/boBtbRA/WjKXPs3v8rzMjO28BG6MEkf46OwvtBtUI6pX4obc5iSFKMe5VrXo/uVecxtzmTg==","repository":{"url":"https://github.com/cyanheads/open-meteo-mcp-server","type":"git"},"_npmVersion":"10.8.3","description":"Geocode places, fetch global weather forecasts, ERA5 historical climate, marine conditions, air quality, and terrain elevation via MCP. STDIO or Streamable HTTP.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"^4.4.3","pino-pretty":"^13.1.3","@duckdb/node-api":"^1.5.3-r.3","@cyanheads/mcp-ts-core":"^0.9.21"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ignore":"^7.0.5","vitest":"^4.1.8","depcheck":"^1.4.7","tsc-alias":"^1.8.17","typescript":"^5.9.3","@types/node":"^25.9.1","@biomejs/biome":"^2.4.16"},"_npmOperationalInternal":{"tmp":"tmp/open-meteo-mcp-server_0.1.3_1780410658035_0.17454275657028284","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@cyanheads/open-meteo-mcp-server","version":"0.1.4","keywords":["mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","weather","open-meteo","forecast","climate","era5","marine","air-quality","geocoding","elevation"],"author":{"url":"https://github.com/cyanheads","name":"cyanheads"},"license":"Apache-2.0","_id":"@cyanheads/open-meteo-mcp-server@0.1.4","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/open-meteo-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/open-meteo-mcp-server/issues"},"bin":{"open-meteo-mcp-server":"dist/index.js"},"dist":{"shasum":"d05d16a5b7e3ba70807c54dab6d8bff2b3dd3d42","tarball":"https://registry.npmjs.org/@cyanheads/open-meteo-mcp-server/-/open-meteo-mcp-server-0.1.4.tgz","fileCount":81,"integrity":"sha512-4a4BJpiWBqZ30LLQ6Kp1/j+1PYRBjpR+sU8HpFSWsHTE+RQPqTJyjsd5d3yH4RLOyO+kHTQ9ek/2vbfKB1Of4g==","signatures":[{"sig":"MEUCIQD16KWC1TvCPmdRYEz+uhsnT7gBAZ4oX1m580slGdtEZgIgfa3QBE7EwOt8Ilq9KKnj+twXJLS31vblyQ5QKbIr94o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":299619},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"d05d16a5b7e3ba70807c54dab6d8bff2b3dd3d42","engines":{"bun":">=1.3.0","node":">=24.0.0"},"mcpName":"io.github.cyanheads/open-meteo-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","start":"bun ./dist/index.js","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/open-meteo-mcp-server.mcpb","format":"biome check --write .","rebuild":"bun run scripts/clean.ts && bun run scripts/build.ts","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","list-skills":"bun run scripts/list-skills.ts","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","format:unsafe":"biome check --write --unsafe .","lint:packaging":"bun run scripts/lint-packaging.ts","release:github":"tsx scripts/release-github.ts","changelog:build":"bun run scripts/build-changelog.ts","changelog:check":"bun run scripts/build-changelog.ts --check"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"_integrity":"sha512-4a4BJpiWBqZ30LLQ6Kp1/j+1PYRBjpR+sU8HpFSWsHTE+RQPqTJyjsd5d3yH4RLOyO+kHTQ9ek/2vbfKB1Of4g==","repository":{"url":"https://github.com/cyanheads/open-meteo-mcp-server","type":"git"},"_npmVersion":"10.8.3","description":"Geocode places, fetch global weather forecasts, ERA5 historical climate, marine conditions, air quality, and terrain elevation via MCP. STDIO or Streamable HTTP.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"^4.4.3","pino-pretty":"^13.1.3","@duckdb/node-api":"^1.5.3-r.3","@cyanheads/mcp-ts-core":"^0.9.21"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ignore":"^7.0.5","vitest":"^4.1.8","depcheck":"^1.4.7","tsc-alias":"^1.8.17","typescript":"^5.9.3","@types/node":"^25.9.1","@biomejs/biome":"^2.4.16"},"_npmOperationalInternal":{"tmp":"tmp/open-meteo-mcp-server_0.1.4_1780564423964_0.09370247113058094","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@cyanheads/open-meteo-mcp-server","version":"0.1.5","keywords":["mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","weather","open-meteo","forecast","climate","era5","marine","air-quality","geocoding","elevation"],"author":{"url":"https://github.com/cyanheads","name":"cyanheads"},"license":"Apache-2.0","_id":"@cyanheads/open-meteo-mcp-server@0.1.5","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/open-meteo-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/open-meteo-mcp-server/issues"},"bin":{"open-meteo-mcp-server":"dist/index.js"},"dist":{"shasum":"8a868e73da36dacc7db26336e07e6dbd7f32081a","tarball":"https://registry.npmjs.org/@cyanheads/open-meteo-mcp-server/-/open-meteo-mcp-server-0.1.5.tgz","fileCount":82,"integrity":"sha512-naf3P7GnGNBEds0lDs7QO7bZvkVKFjbovarc1Kbwipiz8SzLT/4czjqdjYiH5Novh/3tIZzzKIDjGCXqWczaVQ==","signatures":[{"sig":"MEQCIE00MdDFPGSZi5f1stLfmJxbMfiLThg1mJ+auNWxoF/jAiBZFkoWnCwW+kVHyVHN0laDH3wvT+p1QjrkdfzDP9MXRA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":303092},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"8a868e73da36dacc7db26336e07e6dbd7f32081a","engines":{"bun":">=1.3.0","node":">=24.0.0"},"mcpName":"io.github.cyanheads/open-meteo-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","start":"bun ./dist/index.js","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/open-meteo-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/open-meteo-mcp-server.mcpb","format":"biome check --write .","rebuild":"bun run scripts/clean.ts && bun run scripts/build.ts","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","list-skills":"bun run scripts/list-skills.ts","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","format:unsafe":"biome check --write --unsafe .","lint:packaging":"bun run scripts/lint-packaging.ts","release:github":"bun run scripts/release-github.ts","changelog:build":"bun run scripts/build-changelog.ts","changelog:check":"bun run scripts/build-changelog.ts --check"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"_integrity":"sha512-naf3P7GnGNBEds0lDs7QO7bZvkVKFjbovarc1Kbwipiz8SzLT/4czjqdjYiH5Novh/3tIZzzKIDjGCXqWczaVQ==","repository":{"url":"https://github.com/cyanheads/open-meteo-mcp-server","type":"git"},"_npmVersion":"10.8.3","description":"Geocode places, fetch global weather forecasts, ERA5 historical climate, marine conditions, air quality, and terrain elevation via MCP. STDIO or Streamable HTTP.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"^4.4.3","pino-pretty":"^13.1.3","@duckdb/node-api":"^1.5.3-r.3","@cyanheads/mcp-ts-core":"^0.10.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ignore":"^7.0.5","vitest":"^4.1.8","depcheck":"^1.4.7","tsc-alias":"^1.8.17","typescript":"^6.0.3","@types/node":"^25.9.3","@biomejs/biome":"^2.5.0"},"_npmOperationalInternal":{"tmp":"tmp/open-meteo-mcp-server_0.1.5_1781322401484_0.40998918049135713","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@cyanheads/open-meteo-mcp-server","version":"0.1.6","keywords":["mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","weather","open-meteo","forecast","climate","era5","marine","air-quality","geocoding","elevation"],"author":{"url":"https://github.com/cyanheads","name":"cyanheads"},"license":"Apache-2.0","_id":"@cyanheads/open-meteo-mcp-server@0.1.6","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/open-meteo-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/open-meteo-mcp-server/issues"},"bin":{"open-meteo-mcp-server":"dist/index.js"},"dist":{"shasum":"651aaccdf256fb733c72dae70ffb9d7443944a49","tarball":"https://registry.npmjs.org/@cyanheads/open-meteo-mcp-server/-/open-meteo-mcp-server-0.1.6.tgz","fileCount":83,"integrity":"sha512-Rnyk+mWAwuZwEO5BJIgHWpesCfLKVMNY3I4BcCvF4ID2X4EfGAUL4wXmnO36w+DRq9cjPZEZICHhLs9yNEcTag==","signatures":[{"sig":"MEUCIQCjUM/LIElmrvlhBCGX2Ttdp6dFbeeFExbnHEkfgh12lwIgJsAI8V76y7WYgpRk8HcgGz2TLV/g/4SVs7K0375LE2k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":306381},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"651aaccdf256fb733c72dae70ffb9d7443944a49","engines":{"bun":">=1.3.0","node":">=24.0.0"},"mcpName":"io.github.cyanheads/open-meteo-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","start":"bun ./dist/index.js","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/open-meteo-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/open-meteo-mcp-server.mcpb","format":"biome check --write .","rebuild":"bun run scripts/clean.ts && bun run scripts/build.ts","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","list-skills":"bun run scripts/list-skills.ts","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","format:unsafe":"biome check --write --unsafe .","lint:packaging":"bun run scripts/lint-packaging.ts","release:github":"bun run scripts/release-github.ts","changelog:build":"bun run scripts/build-changelog.ts","changelog:check":"bun run scripts/build-changelog.ts --check"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"_integrity":"sha512-Rnyk+mWAwuZwEO5BJIgHWpesCfLKVMNY3I4BcCvF4ID2X4EfGAUL4wXmnO36w+DRq9cjPZEZICHhLs9yNEcTag==","repository":{"url":"https://github.com/cyanheads/open-meteo-mcp-server","type":"git"},"_npmVersion":"10.8.3","description":"Geocode places, fetch global weather forecasts, ERA5 historical climate, marine conditions, air quality, and terrain elevation via MCP. STDIO or Streamable HTTP.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"^4.4.3","pino-pretty":"^13.1.3","@duckdb/node-api":"^1.5.4-r.1","@cyanheads/mcp-ts-core":"^0.10.9"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ignore":"^7.0.5","vitest":"^4.1.9","depcheck":"^1.4.7","tsc-alias":"^1.8.17","typescript":"^6.0.3","@types/node":"^26.0.0","@biomejs/biome":"^2.5.0"},"_npmOperationalInternal":{"tmp":"tmp/open-meteo-mcp-server_0.1.6_1781976545314_0.4626874808236501","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"@cyanheads/open-meteo-mcp-server","version":"0.1.7","keywords":["mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","weather","open-meteo","forecast","climate","era5","marine","air-quality","geocoding","elevation"],"author":{"url":"https://github.com/cyanheads","name":"cyanheads"},"license":"Apache-2.0","_id":"@cyanheads/open-meteo-mcp-server@0.1.7","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/open-meteo-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/open-meteo-mcp-server/issues"},"bin":{"open-meteo-mcp-server":"dist/index.js"},"dist":{"shasum":"cde3be8324f0b6dab35a897e2e9c6b1585826248","tarball":"https://registry.npmjs.org/@cyanheads/open-meteo-mcp-server/-/open-meteo-mcp-server-0.1.7.tgz","fileCount":84,"integrity":"sha512-HHgLwoUDh8NYaMfi25sJyMhJ3wxESUCS27yfw+bZh29T4mqOEhO/dMCkiTgXe5lONRt8fHU30o2ilISAPNEOTw==","signatures":[{"sig":"MEUCIQCAMvsxe7Fwx3moSujA75gGZPZHbTNuEY8L0HBD4QDhSAIgTruOAfuzTrwu/FVKsYYpoP1WL4BEootVgxKt2pNG7CU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":314776},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"cde3be8324f0b6dab35a897e2e9c6b1585826248","engines":{"bun":">=1.3.0","node":">=24.0.0"},"mcpName":"io.github.cyanheads/open-meteo-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","start":"bun ./dist/index.js","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/open-meteo-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/open-meteo-mcp-server.mcpb","format":"biome check --write .","rebuild":"bun run scripts/clean.ts && bun run scripts/build.ts","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","list-skills":"bun run scripts/list-skills.ts","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","format:unsafe":"biome check --write --unsafe .","lint:packaging":"bun run scripts/lint-packaging.ts","release:github":"bun run scripts/release-github.ts","changelog:build":"bun run scripts/build-changelog.ts","changelog:check":"bun run scripts/build-changelog.ts --check"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"_integrity":"sha512-HHgLwoUDh8NYaMfi25sJyMhJ3wxESUCS27yfw+bZh29T4mqOEhO/dMCkiTgXe5lONRt8fHU30o2ilISAPNEOTw==","repository":{"url":"https://github.com/cyanheads/open-meteo-mcp-server","type":"git"},"_npmVersion":"10.8.3","description":"Geocode places, fetch global weather forecasts, ERA5 historical climate, marine conditions, air quality, and terrain elevation via MCP. STDIO or Streamable HTTP.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"^4.4.3","pino-pretty":"^13.1.3","@duckdb/node-api":"^1.5.4-r.1","@cyanheads/mcp-ts-core":"^0.10.10"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ignore":"^7.0.5","vitest":"^4.1.9","depcheck":"^1.4.7","tsc-alias":"^1.8.17","typescript":"^6.0.3","@types/node":"^26.1.0","@biomejs/biome":"^2.5.2"},"_npmOperationalInternal":{"tmp":"tmp/open-meteo-mcp-server_0.1.7_1782978545965_0.01277758939164686","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"name":"@cyanheads/open-meteo-mcp-server","version":"0.1.8","keywords":["mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","weather","open-meteo","forecast","climate","era5","marine","air-quality","geocoding","elevation"],"author":{"url":"https://github.com/cyanheads","name":"cyanheads"},"license":"Apache-2.0","_id":"@cyanheads/open-meteo-mcp-server@0.1.8","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/open-meteo-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/open-meteo-mcp-server/issues"},"bin":{"open-meteo-mcp-server":"dist/index.js"},"dist":{"shasum":"1dddbfef86a77c4f7bef3cf01128c70174a277ac","tarball":"https://registry.npmjs.org/@cyanheads/open-meteo-mcp-server/-/open-meteo-mcp-server-0.1.8.tgz","fileCount":89,"integrity":"sha512-p4jRchmSt0/+SBVTORIqly0vK2rGH7O1/nMF2DdKpOYcpjh5RonrzWcqffom7+RHIkwMXVi2DMIBxsbYTOM69A==","signatures":[{"sig":"MEQCICJ8Xwuab4FzQzC7SXC2BstgxidSf/PdhIhpDQYGIXvPAiBNYM8VTOfeScDiHrX9nxhyZSnRSGMoeNxdYDQ09K8wUQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":327625},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"1dddbfef86a77c4f7bef3cf01128c70174a277ac","engines":{"bun":">=1.3.0","node":">=24.0.0"},"mcpName":"io.github.cyanheads/open-meteo-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","start":"bun ./dist/index.js","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/open-meteo-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/open-meteo-mcp-server.mcpb","format":"biome check --write .","rebuild":"bun run scripts/clean.ts && bun run scripts/build.ts","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","list-skills":"bun run scripts/list-skills.ts","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","format:unsafe":"biome check --write --unsafe .","lint:packaging":"bun run scripts/lint-packaging.ts","release:github":"bun run scripts/release-github.ts","changelog:build":"bun run scripts/build-changelog.ts","changelog:check":"bun run scripts/build-changelog.ts --check"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"_integrity":"sha512-p4jRchmSt0/+SBVTORIqly0vK2rGH7O1/nMF2DdKpOYcpjh5RonrzWcqffom7+RHIkwMXVi2DMIBxsbYTOM69A==","repository":{"url":"https://github.com/cyanheads/open-meteo-mcp-server","type":"git"},"_npmVersion":"10.8.3","description":"Geocode places, fetch global weather forecasts, ERA5 historical climate, marine conditions, air quality, and terrain elevation via MCP. STDIO or Streamable HTTP.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"^4.4.3","pino-pretty":"^13.1.3","@duckdb/node-api":"^1.5.4-r.1","@cyanheads/mcp-ts-core":"^0.10.10"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ignore":"^7.0.5","vitest":"^4.1.9","depcheck":"^1.4.7","tsc-alias":"^1.8.17","typescript":"^6.0.3","@types/node":"^26.1.0","@biomejs/biome":"^2.5.2"},"_npmOperationalInternal":{"tmp":"tmp/open-meteo-mcp-server_0.1.8_1782980929104_0.8806433329723575","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@cyanheads/open-meteo-mcp-server","version":"0.2.0","keywords":["mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","weather","open-meteo","forecast","climate","era5","marine","air-quality","geocoding","elevation"],"author":{"url":"https://github.com/cyanheads","name":"cyanheads"},"license":"Apache-2.0","_id":"@cyanheads/open-meteo-mcp-server@0.2.0","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/open-meteo-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/open-meteo-mcp-server/issues"},"bin":{"open-meteo-mcp-server":"dist/index.js"},"dist":{"shasum":"394db256d45b46600a2281605ebc9e6d0898156e","tarball":"https://registry.npmjs.org/@cyanheads/open-meteo-mcp-server/-/open-meteo-mcp-server-0.2.0.tgz","fileCount":94,"integrity":"sha512-0dcgXS+za6E5j2ZQBw81CIwB6mhskp7niNixL1wnUmCKYGJrjTH/f9ecl0Jn5DxGl+2c67iYZ8oInp5ZN7wA+w==","signatures":[{"sig":"MEUCIQCFSt3jwkxL8MaeHxMmVkKv+DEuc3OoBIYsTaqSrh9u6AIgUbSJddJbcCcv0dkzq1SPkeJxhbNYnOiJshQUUA7Z75o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":363157},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"394db256d45b46600a2281605ebc9e6d0898156e","engines":{"bun":">=1.3.0","node":">=24.0.0"},"mcpName":"io.github.cyanheads/open-meteo-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","start":"bun ./dist/index.js","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/open-meteo-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/open-meteo-mcp-server.mcpb","format":"biome check --write .","rebuild":"bun run scripts/clean.ts && bun run scripts/build.ts","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","list-skills":"bun run scripts/list-skills.ts","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","format:unsafe":"biome check --write --unsafe .","lint:packaging":"bun run scripts/lint-packaging.ts","release:github":"bun run scripts/release-github.ts","changelog:build":"bun run scripts/build-changelog.ts","changelog:check":"bun run scripts/build-changelog.ts --check"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"_integrity":"sha512-0dcgXS+za6E5j2ZQBw81CIwB6mhskp7niNixL1wnUmCKYGJrjTH/f9ecl0Jn5DxGl+2c67iYZ8oInp5ZN7wA+w==","repository":{"url":"https://github.com/cyanheads/open-meteo-mcp-server","type":"git"},"_npmVersion":"10.8.3","description":"Geocode places, fetch global weather forecasts, ERA5 historical climate, marine conditions, air quality, and terrain elevation via MCP. STDIO or Streamable HTTP.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"^4.4.3","pino-pretty":"^13.1.3","@duckdb/node-api":"^1.5.4-r.1","@cyanheads/mcp-ts-core":"^0.10.10"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ignore":"^7.0.5","vitest":"^4.1.9","depcheck":"^1.4.7","tsc-alias":"^1.8.17","typescript":"^6.0.3","@types/node":"^26.1.0","@biomejs/biome":"^2.5.2"},"_npmOperationalInternal":{"tmp":"tmp/open-meteo-mcp-server_0.2.0_1782982918166_0.11970274429174821","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@cyanheads/open-meteo-mcp-server","version":"0.2.1","keywords":["mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","weather","open-meteo","forecast","climate","era5","marine","air-quality","geocoding","elevation"],"author":"Casey Hand <casey@caseyjhand.com> (https://caseyjhand.com)","license":"Apache-2.0","_id":"@cyanheads/open-meteo-mcp-server@0.2.1","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/open-meteo-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/open-meteo-mcp-server/issues"},"bin":{"open-meteo-mcp-server":"dist/index.js"},"dist":{"shasum":"4931744e951c1022c4c3f301eb79b7e983cce9f9","tarball":"https://registry.npmjs.org/@cyanheads/open-meteo-mcp-server/-/open-meteo-mcp-server-0.2.1.tgz","fileCount":95,"integrity":"sha512-p8QegZ9d2jxbdpIOHwkqvpxytporBlJI3sQ6Ad326d0NzH3L26NPTNM3J0aJTbso2qjIwGi7HwmuP/X4E/ZNfA==","signatures":[{"sig":"MEUCIB5gRh42zJ9HDwUX4QcmbJs/t54/l5I4bXVh1fG9nJKMAiEAlOcfcEe97+VDHl2Tve0UJ2RacmPdWWgSJgDuJvngqgg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":374792},"type":"module","shasum":"4931744e951c1022c4c3f301eb79b7e983cce9f9","engines":{"bun":">=1.3.0","node":">=24.0.0"},"mcpName":"io.github.cyanheads/open-meteo-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","start":"bun ./dist/index.js","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/open-meteo-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/open-meteo-mcp-server.mcpb","format":"biome check --write .","prepare":"git config core.hooksPath .husky || exit 0","rebuild":"bun run scripts/clean.ts && bun run scripts/build.ts","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","list-skills":"bun run scripts/list-skills.ts","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","format:unsafe":"biome check --write --unsafe .","lint:packaging":"bun run scripts/lint-packaging.ts","release:github":"bun run scripts/release-github.ts","changelog:build":"bun run scripts/build-changelog.ts","changelog:check":"bun run scripts/build-changelog.ts --check"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"_integrity":"sha512-p8QegZ9d2jxbdpIOHwkqvpxytporBlJI3sQ6Ad326d0NzH3L26NPTNM3J0aJTbso2qjIwGi7HwmuP/X4E/ZNfA==","repository":{"url":"https://github.com/cyanheads/open-meteo-mcp-server","type":"git"},"_npmVersion":"10.8.3","description":"Geocode places, fetch global weather forecasts, ERA5 historical climate, marine conditions, air quality, and terrain elevation via MCP. STDIO or Streamable HTTP.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"^4.4.3","pino-pretty":"^13.1.3","@duckdb/node-api":"^1.5.4-r.1","@cyanheads/mcp-ts-core":"^0.10.14"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.14","devDependencies":{"ignore":"^7.0.5","vitest":"^4.1.9","depcheck":"^1.4.7","tsc-alias":"^1.8.17","typescript":"^6.0.3","@types/node":"^26.1.0","@biomejs/biome":"^2.5.2","@socketsecurity/bun-security-scanner":"^1.1.2"},"trustedDependencies":["@socketsecurity/bun-security-scanner"],"_npmOperationalInternal":{"tmp":"tmp/open-meteo-mcp-server_0.2.1_1783380192998_0.16666631069590854","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@cyanheads/open-meteo-mcp-server","version":"0.2.2","keywords":["mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","weather","open-meteo","forecast","climate","era5","marine","air-quality","geocoding","elevation"],"author":"Casey Hand <casey@caseyjhand.com> (https://caseyjhand.com)","license":"Apache-2.0","_id":"@cyanheads/open-meteo-mcp-server@0.2.2","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/open-meteo-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/open-meteo-mcp-server/issues"},"bin":{"open-meteo-mcp-server":"dist/index.js"},"dist":{"shasum":"e08923573507fd1f447339feaf6195b333c4031b","tarball":"https://registry.npmjs.org/@cyanheads/open-meteo-mcp-server/-/open-meteo-mcp-server-0.2.2.tgz","fileCount":96,"integrity":"sha512-VzOG+0pxWAZ1wT0D6gpLIjpsaBIgYkr3DJeUzsYZT4EhJd15eN3ToSlRY8wXimjbsoFOB+NHdO/zkw5GITnm6A==","signatures":[{"sig":"MEUCIQCjB/FKbHDt7ZpMgf6eU3SFGLa7CH3O55jwDpUI1POs0gIgALwWuwKnKFgqbo8X/cx00tXgYAkRrgOZPX0uvwNhZTY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":378959},"type":"module","shasum":"e08923573507fd1f447339feaf6195b333c4031b","engines":{"bun":">=1.3.0","node":">=24.0.0"},"mcpName":"io.github.cyanheads/open-meteo-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","start":"bun ./dist/index.js","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/open-meteo-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/open-meteo-mcp-server.mcpb","format":"biome check --write .","prepare":"git config core.hooksPath .husky || exit 0","rebuild":"bun run scripts/clean.ts && bun run scripts/build.ts","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","list-skills":"bun run scripts/list-skills.ts","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","format:unsafe":"biome check --write --unsafe .","lint:packaging":"bun run scripts/lint-packaging.ts","release:github":"bun run scripts/release-github.ts","changelog:build":"bun run scripts/build-changelog.ts","changelog:check":"bun run scripts/build-changelog.ts --check"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"_integrity":"sha512-VzOG+0pxWAZ1wT0D6gpLIjpsaBIgYkr3DJeUzsYZT4EhJd15eN3ToSlRY8wXimjbsoFOB+NHdO/zkw5GITnm6A==","repository":{"url":"https://github.com/cyanheads/open-meteo-mcp-server","type":"git"},"_npmVersion":"10.8.3","description":"Geocode places, fetch global weather forecasts, ERA5 historical climate, marine conditions, air quality, and terrain elevation via MCP. STDIO or Streamable HTTP.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"^4.4.3","pino-pretty":"^13.1.3","@duckdb/node-api":"^1.5.4-r.1","@cyanheads/mcp-ts-core":"^0.10.14"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.14","devDependencies":{"ignore":"^7.0.5","vitest":"^4.1.9","depcheck":"^1.4.7","tsc-alias":"^1.8.17","typescript":"^6.0.3","@types/node":"^26.1.0","@biomejs/biome":"^2.5.2","@socketsecurity/bun-security-scanner":"^1.1.2"},"trustedDependencies":["@socketsecurity/bun-security-scanner"],"_npmOperationalInternal":{"tmp":"tmp/open-meteo-mcp-server_0.2.2_1783382012072_0.7587897984801562","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"@cyanheads/open-meteo-mcp-server","version":"0.2.3","keywords":["mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","weather","open-meteo","forecast","climate","era5","marine","air-quality","geocoding","elevation"],"author":"Casey Hand <casey@caseyjhand.com> (https://caseyjhand.com)","license":"Apache-2.0","_id":"@cyanheads/open-meteo-mcp-server@0.2.3","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/open-meteo-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/open-meteo-mcp-server/issues"},"bin":{"open-meteo-mcp-server":"dist/index.js"},"dist":{"shasum":"2af7be69d6784d04a2acca9010933635267c36d0","tarball":"https://registry.npmjs.org/@cyanheads/open-meteo-mcp-server/-/open-meteo-mcp-server-0.2.3.tgz","fileCount":97,"integrity":"sha512-3TqrlQ7ig91WTTnZ5H7wjLgvlRS5+QIpspPNSx7CYrtzc1UlFliV3jTXRWzJ/g6odoyuVFEuZ/SNA+BVMERy3g==","signatures":[{"sig":"MEYCIQDTFT2tKcNrFO+N7MAue3fe/kwBev34b3aRrXQ9+D3qUwIhANHewfOOt4j6gOQ54OApunfKAZWssfMz1krEorAFu4gG","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":382133},"type":"module","shasum":"2af7be69d6784d04a2acca9010933635267c36d0","engines":{"bun":">=1.3.0","node":">=24.0.0"},"mcpName":"io.github.cyanheads/open-meteo-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","start":"bun ./dist/index.js","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/open-meteo-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/open-meteo-mcp-server.mcpb","format":"biome check --write .","prepare":"git config core.hooksPath .husky || exit 0","rebuild":"bun run scripts/clean.ts && bun run scripts/build.ts","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","list-skills":"bun run scripts/list-skills.ts","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","format:unsafe":"biome check --write --unsafe .","lint:packaging":"bun run scripts/lint-packaging.ts","release:github":"bun run scripts/release-github.ts","changelog:build":"bun run scripts/build-changelog.ts","changelog:check":"bun run scripts/build-changelog.ts --check"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"_integrity":"sha512-3TqrlQ7ig91WTTnZ5H7wjLgvlRS5+QIpspPNSx7CYrtzc1UlFliV3jTXRWzJ/g6odoyuVFEuZ/SNA+BVMERy3g==","repository":{"url":"git+https://github.com/cyanheads/open-meteo-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Geocode places, fetch global weather forecasts, ERA5 historical climate, marine conditions, air quality, and terrain elevation via MCP. STDIO or Streamable HTTP.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"^4.4.3","pino-pretty":"^13.1.3","@duckdb/node-api":"^1.5.4-r.1","@cyanheads/mcp-ts-core":"^0.10.14"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.14","devDependencies":{"ignore":"^7.0.5","vitest":"^4.1.10","depcheck":"^1.4.7","tsc-alias":"^1.9.0","typescript":"^6.0.3","@types/node":"^26.1.1","@biomejs/biome":"^2.5.3","@socketsecurity/bun-security-scanner":"^1.1.2"},"trustedDependencies":["@socketsecurity/bun-security-scanner"],"_npmOperationalInternal":{"tmp":"tmp/open-meteo-mcp-server_0.2.3_1783801505433_0.9228418529888489","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"@cyanheads/open-meteo-mcp-server","version":"0.2.4","keywords":["mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","weather","open-meteo","forecast","climate","era5","marine","air-quality","geocoding","elevation"],"author":"Casey Hand <casey@caseyjhand.com> (https://caseyjhand.com)","license":"Apache-2.0","_id":"@cyanheads/open-meteo-mcp-server@0.2.4","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/open-meteo-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/open-meteo-mcp-server/issues"},"bin":{"open-meteo-mcp-server":"dist/index.js"},"dist":{"shasum":"6e942ae34e017916f83463b94213c5d9ee8de5da","tarball":"https://registry.npmjs.org/@cyanheads/open-meteo-mcp-server/-/open-meteo-mcp-server-0.2.4.tgz","fileCount":102,"integrity":"sha512-aL5vp2fL5RURnINtlpZrT7xuodGA8UdiR+z0WA78QPaLhnFnTr4T6IpUx6w1+QtxNWrHWZjRjSN3oOfrJtD/iw==","signatures":[{"sig":"MEUCIQCFljBGhu4BmGhad4HbZjtSX/l6LhrljbqYD4gnFYBVqAIgYI7DjoxSU5bdqWhJMxD1QVyomwuXpxWBTJRrTuOJnWk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":394076},"type":"module","shasum":"6e942ae34e017916f83463b94213c5d9ee8de5da","engines":{"bun":">=1.3.0","node":">=24.0.0"},"mcpName":"io.github.cyanheads/open-meteo-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","start":"bun ./dist/index.js","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/open-meteo-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/open-meteo-mcp-server.mcpb","format":"biome check --write .","prepare":"git config core.hooksPath .husky || exit 0","rebuild":"bun run scripts/clean.ts && bun run scripts/build.ts","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","list-skills":"bun run scripts/list-skills.ts","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","format:unsafe":"biome check --write --unsafe .","lint:packaging":"bun run scripts/lint-packaging.ts","release:github":"bun run scripts/release-github.ts","changelog:build":"bun run scripts/build-changelog.ts","changelog:check":"bun run scripts/build-changelog.ts --check"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"_integrity":"sha512-aL5vp2fL5RURnINtlpZrT7xuodGA8UdiR+z0WA78QPaLhnFnTr4T6IpUx6w1+QtxNWrHWZjRjSN3oOfrJtD/iw==","repository":{"url":"git+https://github.com/cyanheads/open-meteo-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Geocode places, fetch global weather forecasts, ERA5 historical climate, marine conditions, air quality, and terrain elevation via MCP. STDIO or Streamable HTTP.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"^4.4.3","pino-pretty":"^13.1.3","@duckdb/node-api":"^1.5.4-r.1","@cyanheads/mcp-ts-core":"^0.10.14"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.14","devDependencies":{"ignore":"^7.0.6","vitest":"^4.1.10","depcheck":"^1.4.7","tsc-alias":"^1.9.0","typescript":"^6.0.3","@types/node":"^26.1.1","@biomejs/biome":"^2.5.3","@socketsecurity/bun-security-scanner":"^1.1.2"},"trustedDependencies":["@socketsecurity/bun-security-scanner"],"_npmOperationalInternal":{"tmp":"tmp/open-meteo-mcp-server_0.2.4_1784180868270_0.4445316889177866","host":"s3://npm-registry-packages-npm-production"}},"0.2.5":{"name":"@cyanheads/open-meteo-mcp-server","version":"0.2.5","keywords":["mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","weather","open-meteo","forecast","climate","era5","marine","air-quality","geocoding","elevation"],"author":"Casey Hand <casey@caseyjhand.com> (https://caseyjhand.com)","license":"Apache-2.0","_id":"@cyanheads/open-meteo-mcp-server@0.2.5","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/open-meteo-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/open-meteo-mcp-server/issues"},"bin":{"open-meteo-mcp-server":"dist/index.js"},"dist":{"shasum":"b07a6d09eb673acb57ac3c25e0abce13a6ad980d","tarball":"https://registry.npmjs.org/@cyanheads/open-meteo-mcp-server/-/open-meteo-mcp-server-0.2.5.tgz","fileCount":103,"integrity":"sha512-aQ2L9G+SNBNBBavHsCA5sjWgEN7AakRgw11zRa+LFIhvEVvEES21sA3B+TQQGaIqYngEZ04Uney8m51lJIzMPA==","signatures":[{"sig":"MEQCIEJx23q6u4GqmkL1D5uQB7czLpny8uCTiW2hn3O2LU1cAiBRi1KsnmEaa0f8cuuAf5Nq4QTbmC+NtumofTX0vNZk9g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":410484},"type":"module","shasum":"b07a6d09eb673acb57ac3c25e0abce13a6ad980d","engines":{"bun":">=1.3.0","node":">=24.0.0"},"mcpName":"io.github.cyanheads/open-meteo-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","start":"bun ./dist/index.js","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/open-meteo-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/open-meteo-mcp-server.mcpb","format":"biome check --write .","prepare":"git config core.hooksPath .husky || exit 0","rebuild":"bun run scripts/clean.ts && bun run scripts/build.ts","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","list-skills":"bun run scripts/list-skills.ts","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","format:unsafe":"biome check --write --unsafe .","lint:packaging":"bun run scripts/lint-packaging.ts","release:github":"bun run scripts/release-github.ts","changelog:build":"bun run scripts/build-changelog.ts","changelog:check":"bun run scripts/build-changelog.ts --check"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"_integrity":"sha512-aQ2L9G+SNBNBBavHsCA5sjWgEN7AakRgw11zRa+LFIhvEVvEES21sA3B+TQQGaIqYngEZ04Uney8m51lJIzMPA==","repository":{"url":"git+https://github.com/cyanheads/open-meteo-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Geocode places, fetch global weather forecasts, ERA5 historical climate, marine conditions, air quality, and terrain elevation via MCP. STDIO or Streamable HTTP.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"^4.4.3","pino-pretty":"^13.1.3","@duckdb/node-api":"^1.5.4-r.1","@cyanheads/mcp-ts-core":"^0.10.14"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.14","devDependencies":{"ignore":"^7.0.6","vitest":"^4.1.10","depcheck":"^1.4.7","tsc-alias":"^1.9.0","typescript":"^6.0.3","@types/node":"^26.1.1","@biomejs/biome":"^2.5.3","@socketsecurity/bun-security-scanner":"^1.1.2"},"trustedDependencies":["@socketsecurity/bun-security-scanner"],"_npmOperationalInternal":{"tmp":"tmp/open-meteo-mcp-server_0.2.5_1784193151599_0.6418931695536991","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@cyanheads/open-meteo-mcp-server","version":"0.3.0","keywords":["mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","weather","open-meteo","forecast","climate","era5","marine","air-quality","geocoding","elevation"],"author":"Casey Hand <casey@caseyjhand.com> (https://caseyjhand.com)","license":"Apache-2.0","_id":"@cyanheads/open-meteo-mcp-server@0.3.0","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/open-meteo-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/open-meteo-mcp-server/issues"},"bin":{"open-meteo-mcp-server":"dist/index.js"},"dist":{"shasum":"5f1e01b19f0a6c54d631d442fc3e353dcb0c0b70","tarball":"https://registry.npmjs.org/@cyanheads/open-meteo-mcp-server/-/open-meteo-mcp-server-0.3.0.tgz","fileCount":104,"integrity":"sha512-vn5ck58GWTlnYzoNAsuGPaqV8pDTQZufiuuC3K+kGHZ/Q/ZUf9NDEMjh008jJP6B+O8QM9aqLFIgg/PIAu0eYg==","signatures":[{"sig":"MEYCIQDcaILo0DxiRYyYx7TPSJ2D+fb2mD9Hda8iOi9mk+8IUQIhAPZ5e/leVHxnIvRAObf2tD3HXD6cixI1IUWobBBS9tRw","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":419192},"type":"module","shasum":"5f1e01b19f0a6c54d631d442fc3e353dcb0c0b70","engines":{"bun":">=1.3.0","node":">=24.0.0"},"mcpName":"io.github.cyanheads/open-meteo-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","start":"bun ./dist/index.js","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/open-meteo-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/open-meteo-mcp-server.mcpb","format":"biome check --write .","prepare":"git config core.hooksPath .husky || exit 0","rebuild":"bun run scripts/clean.ts && bun run scripts/build.ts","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","list-skills":"bun run scripts/list-skills.ts","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","format:unsafe":"biome check --write --unsafe .","lint:packaging":"bun run scripts/lint-packaging.ts","release:github":"bun run scripts/release-github.ts","changelog:build":"bun run scripts/build-changelog.ts","changelog:check":"bun run scripts/build-changelog.ts --check"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"_integrity":"sha512-vn5ck58GWTlnYzoNAsuGPaqV8pDTQZufiuuC3K+kGHZ/Q/ZUf9NDEMjh008jJP6B+O8QM9aqLFIgg/PIAu0eYg==","repository":{"url":"git+https://github.com/cyanheads/open-meteo-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Geocode places, fetch global weather forecasts, ERA5 historical climate, marine conditions, air quality, and terrain elevation via MCP. STDIO or Streamable HTTP.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"^4.4.3","pino-pretty":"^13.1.3","@duckdb/node-api":"^1.5.5-r.1","@cyanheads/mcp-ts-core":"^0.11.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.14","devDependencies":{"ignore":"^7.0.6","vitest":"^4.1.10","depcheck":"^1.4.7","tsc-alias":"^1.9.1","typescript":"^6.0.3","@types/node":"^26.1.2","@biomejs/biome":"^2.5.5","@socketsecurity/bun-security-scanner":"^1.1.2"},"trustedDependencies":["@socketsecurity/bun-security-scanner"],"_npmOperationalInternal":{"tmp":"tmp/open-meteo-mcp-server_0.3.0_1785451334405_0.7136342144871699","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@cyanheads/open-meteo-mcp-server","version":"0.3.1","keywords":["mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","weather","open-meteo","forecast","climate","era5","marine","air-quality","geocoding","elevation"],"author":"Casey Hand <casey@caseyjhand.com> (https://caseyjhand.com)","license":"Apache-2.0","_id":"@cyanheads/open-meteo-mcp-server@0.3.1","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/open-meteo-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/open-meteo-mcp-server/issues"},"bin":{"open-meteo-mcp-server":"dist/index.js"},"dist":{"shasum":"fd8443bc9888fc8361549a4e443b3b848b5fdf1a","tarball":"https://registry.npmjs.org/@cyanheads/open-meteo-mcp-server/-/open-meteo-mcp-server-0.3.1.tgz","fileCount":105,"integrity":"sha512-iAkY1IZGcfdkNACeKVF50fbPw00HGPQT1gKR78SE94Mf3BGLH0YVIcjRZ+X0Trp/w0NSpbU5YkNZvR9GVnaUbg==","signatures":[{"sig":"MEQCIElEZoLLt9MoQiX8/eDBsz08/LKlkWCJAInrobjl5XgCAiAlueMt24a5waU6PE0PNYDm+ptqKH2TTs8W6+7DVrC0hQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":452128},"type":"module","shasum":"fd8443bc9888fc8361549a4e443b3b848b5fdf1a","engines":{"bun":">=1.3.0","node":">=24.0.0"},"mcpName":"io.github.cyanheads/open-meteo-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","start":"bun ./dist/index.js","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/open-meteo-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/open-meteo-mcp-server.mcpb","format":"biome check --write .","prepare":"git config core.hooksPath .husky || exit 0","rebuild":"bun run scripts/clean.ts && bun run scripts/build.ts","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","list-skills":"bun run scripts/list-skills.ts","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","format:unsafe":"biome check --write --unsafe .","lint:packaging":"bun run scripts/lint-packaging.ts","release:github":"bun run scripts/release-github.ts","changelog:build":"bun run scripts/build-changelog.ts","changelog:check":"bun run scripts/build-changelog.ts --check"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"_integrity":"sha512-iAkY1IZGcfdkNACeKVF50fbPw00HGPQT1gKR78SE94Mf3BGLH0YVIcjRZ+X0Trp/w0NSpbU5YkNZvR9GVnaUbg==","repository":{"url":"git+https://github.com/cyanheads/open-meteo-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Geocode places, fetch global weather forecasts, ERA5 historical climate, marine conditions, air quality, and terrain elevation via MCP. STDIO or Streamable HTTP.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"^4.4.3","pino-pretty":"^13.1.3","@duckdb/node-api":"^1.5.5-r.1","@cyanheads/mcp-ts-core":"^0.11.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.14","devDependencies":{"ignore":"^7.0.6","vitest":"^4.1.10","depcheck":"^1.4.7","tsc-alias":"^1.9.1","typescript":"^6.0.3","@types/node":"^26.1.2","@biomejs/biome":"^2.5.5","@socketsecurity/bun-security-scanner":"^1.1.2"},"trustedDependencies":["@socketsecurity/bun-security-scanner"],"_npmOperationalInternal":{"tmp":"tmp/open-meteo-mcp-server_0.3.1_1785454255768_0.8047208445315261","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"@cyanheads/open-meteo-mcp-server","version":"0.3.2","keywords":["mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","weather","open-meteo","forecast","climate","era5","marine","air-quality","geocoding","elevation"],"author":"Casey Hand <casey@caseyjhand.com> (https://caseyjhand.com)","license":"Apache-2.0","_id":"@cyanheads/open-meteo-mcp-server@0.3.2","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/open-meteo-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/open-meteo-mcp-server/issues"},"bin":{"open-meteo-mcp-server":"dist/index.js"},"dist":{"shasum":"9545f40d2931720a14785bcbb0954335b5665cc7","tarball":"https://registry.npmjs.org/@cyanheads/open-meteo-mcp-server/-/open-meteo-mcp-server-0.3.2.tgz","fileCount":110,"integrity":"sha512-XI+AA6BcIhHXWLQoS3UWws16V4ofii+6XR/WWOtVdksrGScbcI80Xoa4FffLPzNVuj+e7bsrbGiBxP+cpMldmA==","signatures":[{"sig":"MEYCIQDFVSZ5Fs9bwzVTTT/0slmsLxi2li3ogzDxQrJR5AatxwIhAJxLu9of8SBOLnzxUAEjJLjQ/2RON1FX3HM40L0dBHOK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":550317},"type":"module","shasum":"9545f40d2931720a14785bcbb0954335b5665cc7","engines":{"bun":">=1.3.0","node":">=24.0.0"},"mcpName":"io.github.cyanheads/open-meteo-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","start":"bun ./dist/index.js","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/open-meteo-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/open-meteo-mcp-server.mcpb","format":"biome check --write .","prepare":"git config core.hooksPath .husky || exit 0","rebuild":"bun run scripts/clean.ts && bun run scripts/build.ts","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","list-skills":"bun run scripts/list-skills.ts","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","format:unsafe":"biome check --write --unsafe .","lint:packaging":"bun run scripts/lint-packaging.ts","release:github":"bun run scripts/release-github.ts","changelog:build":"bun run scripts/build-changelog.ts","changelog:check":"bun run scripts/build-changelog.ts --check"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"_integrity":"sha512-XI+AA6BcIhHXWLQoS3UWws16V4ofii+6XR/WWOtVdksrGScbcI80Xoa4FffLPzNVuj+e7bsrbGiBxP+cpMldmA==","repository":{"url":"git+https://github.com/cyanheads/open-meteo-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Geocode places, fetch global weather forecasts, ERA5 historical climate, marine conditions, air quality, and terrain elevation via MCP. STDIO or Streamable HTTP.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"^4.4.3","pino-pretty":"^13.1.3","@duckdb/node-api":"^1.5.5-r.1","@cyanheads/mcp-ts-core":"^0.11.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.14","devDependencies":{"ignore":"^7.0.6","vitest":"^4.1.10","depcheck":"^1.4.7","tsc-alias":"^1.9.1","typescript":"^6.0.3","@types/node":"^26.1.2","@biomejs/biome":"^2.5.5","@socketsecurity/bun-security-scanner":"^1.1.2"},"trustedDependencies":["@socketsecurity/bun-security-scanner"],"_npmOperationalInternal":{"tmp":"tmp/open-meteo-mcp-server_0.3.2_1785459100540_0.41662596029242605","host":"s3://npm-registry-packages-npm-production"}},"0.3.3":{"name":"@cyanheads/open-meteo-mcp-server","version":"0.3.3","keywords":["mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","weather","open-meteo","forecast","climate","era5","marine","air-quality","geocoding","elevation"],"author":"Casey Hand <casey@caseyjhand.com> (https://caseyjhand.com)","license":"Apache-2.0","_id":"@cyanheads/open-meteo-mcp-server@0.3.3","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/open-meteo-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/open-meteo-mcp-server/issues"},"bin":{"open-meteo-mcp-server":"dist/index.js"},"dist":{"shasum":"991408dcb3c6d62df33c0e39032cafdf57fddc0c","tarball":"https://registry.npmjs.org/@cyanheads/open-meteo-mcp-server/-/open-meteo-mcp-server-0.3.3.tgz","fileCount":115,"integrity":"sha512-VA9f0CrmjD0YpBEKxOkkIrgagT7kPURZiRW6ktERiVR9qm02SsMcnzM6rlu5Y6TQs9Xq+3K9y+aRqJwFx9aMTA==","signatures":[{"sig":"MEUCICi7k5vHAcaYWbIyD7ttBvMvxePAMPfjTh/q4c0VjcI3AiEA8y+7MwcMHLf9sI5u/q1Ri7caais8vrjuUQL447yVQqg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":578127},"type":"module","shasum":"991408dcb3c6d62df33c0e39032cafdf57fddc0c","engines":{"bun":">=1.3.0","node":">=24.0.0"},"mcpName":"io.github.cyanheads/open-meteo-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","start":"bun ./dist/index.js","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/open-meteo-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/open-meteo-mcp-server.mcpb","format":"biome check --write .","prepare":"git config core.hooksPath .husky || exit 0","rebuild":"bun run scripts/clean.ts && bun run scripts/build.ts","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","list-skills":"bun run scripts/list-skills.ts","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","format:unsafe":"biome check --write --unsafe .","lint:packaging":"bun run scripts/lint-packaging.ts","release:github":"bun run scripts/release-github.ts","changelog:build":"bun run scripts/build-changelog.ts","changelog:check":"bun run scripts/build-changelog.ts --check"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"_integrity":"sha512-VA9f0CrmjD0YpBEKxOkkIrgagT7kPURZiRW6ktERiVR9qm02SsMcnzM6rlu5Y6TQs9Xq+3K9y+aRqJwFx9aMTA==","repository":{"url":"git+https://github.com/cyanheads/open-meteo-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Geocode places, fetch global weather forecasts, ERA5 historical climate, marine conditions, air quality, and terrain elevation via MCP. STDIO or Streamable HTTP.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"^4.4.3","pino-pretty":"^13.1.3","@duckdb/node-api":"^1.5.5-r.1","@cyanheads/mcp-ts-core":"^0.11.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.14","devDependencies":{"ignore":"^7.0.6","vitest":"^4.1.10","depcheck":"^1.4.7","tsc-alias":"^1.9.1","typescript":"^6.0.3","@types/node":"^26.1.2","@biomejs/biome":"^2.5.5","@socketsecurity/bun-security-scanner":"^1.1.2"},"trustedDependencies":["@socketsecurity/bun-security-scanner"],"_npmOperationalInternal":{"tmp":"tmp/open-meteo-mcp-server_0.3.3_1785462526817_0.5734947451025936","host":"s3://npm-registry-packages-npm-production"}},"0.3.4":{"name":"@cyanheads/open-meteo-mcp-server","version":"0.3.4","keywords":["mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","weather","open-meteo","forecast","climate","era5","marine","air-quality","geocoding","elevation"],"author":"Casey Hand <casey@caseyjhand.com> (https://caseyjhand.com)","license":"Apache-2.0","_id":"@cyanheads/open-meteo-mcp-server@0.3.4","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/open-meteo-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/open-meteo-mcp-server/issues"},"bin":{"open-meteo-mcp-server":"dist/index.js"},"dist":{"shasum":"6d3496df9804d7e00bc0b6d0a3d9ee09c9024831","tarball":"https://registry.npmjs.org/@cyanheads/open-meteo-mcp-server/-/open-meteo-mcp-server-0.3.4.tgz","fileCount":116,"integrity":"sha512-RvyPoAgwYr/R34ZmYIF7/hkCEz15MeXraz6pU/1/EJGdfzKGgzzNIP0kUI2l4ZGBW6Yp6TBD1wi4vHwjCodTSw==","signatures":[{"sig":"MEUCIQDyRoLtOrrXkJUFD8oUL87Y+0v4gLixF8yVah+Qt01WIwIgZ/idLLTLa6GRjLS+o0bhyjLFMwDpBfLXCLYj3ywdbjc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":579618},"type":"module","shasum":"6d3496df9804d7e00bc0b6d0a3d9ee09c9024831","engines":{"bun":">=1.3.0","node":">=24.0.0"},"mcpName":"io.github.cyanheads/open-meteo-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","start":"bun ./dist/index.js","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/open-meteo-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/open-meteo-mcp-server.mcpb","format":"biome check --write .","prepare":"git config core.hooksPath .husky || exit 0","rebuild":"bun run scripts/clean.ts && bun run scripts/build.ts","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","list-skills":"bun run scripts/list-skills.ts","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","format:unsafe":"biome check --write --unsafe .","lint:packaging":"bun run scripts/lint-packaging.ts","release:github":"bun run scripts/release-github.ts","changelog:build":"bun run scripts/build-changelog.ts","changelog:check":"bun run scripts/build-changelog.ts --check"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"_integrity":"sha512-RvyPoAgwYr/R34ZmYIF7/hkCEz15MeXraz6pU/1/EJGdfzKGgzzNIP0kUI2l4ZGBW6Yp6TBD1wi4vHwjCodTSw==","repository":{"url":"git+https://github.com/cyanheads/open-meteo-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Geocode places, fetch global weather forecasts, ERA5 historical climate, marine conditions, air quality, and terrain elevation via MCP. STDIO or Streamable HTTP.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"^4.4.3","pino-pretty":"^13.1.3","@duckdb/node-api":"^1.5.5-r.1","@cyanheads/mcp-ts-core":"^0.11.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.14","devDependencies":{"ignore":"^7.0.6","vitest":"^4.1.10","depcheck":"^1.4.7","tsc-alias":"^1.9.1","typescript":"^6.0.3","@types/node":"^26.1.2","@biomejs/biome":"^2.5.5","@socketsecurity/bun-security-scanner":"^1.1.2"},"trustedDependencies":["@socketsecurity/bun-security-scanner"],"_npmOperationalInternal":{"tmp":"tmp/open-meteo-mcp-server_0.3.4_1785465993368_0.7366309004501836","host":"s3://npm-registry-packages-npm-production"}},"0.3.5":{"name":"@cyanheads/open-meteo-mcp-server","version":"0.3.5","keywords":["mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","weather","open-meteo","forecast","climate","era5","marine","air-quality","geocoding","elevation"],"author":"Casey Hand <casey@caseyjhand.com> (https://caseyjhand.com)","license":"Apache-2.0","_id":"@cyanheads/open-meteo-mcp-server@0.3.5","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/open-meteo-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/open-meteo-mcp-server/issues"},"bin":{"open-meteo-mcp-server":"dist/index.js"},"dist":{"shasum":"7a005570089b67c3c68aaddc3755b00b1b99d6ca","tarball":"https://registry.npmjs.org/@cyanheads/open-meteo-mcp-server/-/open-meteo-mcp-server-0.3.5.tgz","fileCount":117,"integrity":"sha512-Ub1fK9d+f5d84Z3dna4LxINB229ziI+JWuTcFWsNllI/XL8zv7v25Z15p9kiv36BTTT8WgPgdC6orwios7FIxw==","signatures":[{"sig":"MEQCICCgOeJqyq7lm9d8GRWedVqkt8GQ7yv20YaJMKZCkfhZAiBEU1ZOsF3VGhJbHnNgpozVPCgzSPtV5iXoLiv8S/da1g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":584361},"type":"module","shasum":"7a005570089b67c3c68aaddc3755b00b1b99d6ca","engines":{"bun":">=1.3.0","node":">=24.0.0"},"mcpName":"io.github.cyanheads/open-meteo-mcp-server","scripts":{"test":"vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","start":"bun ./dist/index.js","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/open-meteo-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/open-meteo-mcp-server.mcpb","format":"biome check --write .","rebuild":"bun run scripts/clean.ts && bun run scripts/build.ts","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","list-skills":"bun run scripts/list-skills.ts","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","format:unsafe":"biome check --write --unsafe .","test:coverage":"vitest run --coverage","lint:packaging":"bun run scripts/lint-packaging.ts","release:github":"bun run scripts/release-github.ts","changelog:build":"bun run scripts/build-changelog.ts","changelog:check":"bun run scripts/build-changelog.ts --check"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"_integrity":"sha512-Ub1fK9d+f5d84Z3dna4LxINB229ziI+JWuTcFWsNllI/XL8zv7v25Z15p9kiv36BTTT8WgPgdC6orwios7FIxw==","repository":{"url":"git+https://github.com/cyanheads/open-meteo-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Geocode places, fetch global weather forecasts, ERA5 historical climate, marine conditions, air quality, and terrain elevation via MCP. STDIO or Streamable HTTP.","directories":{},"_nodeVersion":"26.3.0","dependencies":{"zod":"^4.4.3","pino-pretty":"^13.1.3","@duckdb/node-api":"^1.5.5-r.4","@cyanheads/mcp-ts-core":"^0.12.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.4.0","devDependencies":{"ignore":"^7.0.6","vitest":"^4.1.11","depcheck":"^1.4.7","tsc-alias":"^1.9.2","fast-check":"^4.9.0","typescript":"^7.0.2","@types/node":"^26.2.0","@biomejs/biome":"^2.5.9","@vitest/coverage-istanbul":"^4.1.11","@socketsecurity/bun-security-scanner":"^1.1.2"},"trustedDependencies":["@socketsecurity/bun-security-scanner"],"_npmOperationalInternal":{"tmp":"tmp/open-meteo-mcp-server_0.3.5_1787407005746_0.16037088845745107","host":"s3://npm-registry-packages-npm-production"}},"0.3.6":{"name":"@cyanheads/open-meteo-mcp-server","version":"0.3.6","keywords":["mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","weather","open-meteo","forecast","climate","era5","marine","air-quality","geocoding","elevation"],"author":"Casey Hand <casey@caseyjhand.com> (https://caseyjhand.com)","license":"Apache-2.0","_id":"@cyanheads/open-meteo-mcp-server@0.3.6","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/open-meteo-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/open-meteo-mcp-server/issues"},"bin":{"open-meteo-mcp-server":"dist/index.js"},"dist":{"shasum":"5287af282f58cf75a04345d7f91af6bc188a4c5c","tarball":"https://registry.npmjs.org/@cyanheads/open-meteo-mcp-server/-/open-meteo-mcp-server-0.3.6.tgz","fileCount":122,"integrity":"sha512-EQWBQoWfotzAaYouTHNJJ4VtVHaAmtbO4EfVQWLKtIrp9Egmv2hPLAM3azIcMnZGay3KqpwpaUFCVv4TjVFnNg==","signatures":[{"sig":"MEYCIQDOgWEETG76Trdz88Hu8/znipCgXlHDxVXsnlSod+TNjQIhAO36+WwS+eXTj+K2+WrxlwnGXlAJ6ekEQet0sF3wpCz5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":614671},"type":"module","shasum":"5287af282f58cf75a04345d7f91af6bc188a4c5c","engines":{"bun":">=1.3.0","node":">=24.0.0"},"mcpName":"io.github.cyanheads/open-meteo-mcp-server","scripts":{"test":"vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","start":"bun ./dist/index.js","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/open-meteo-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/open-meteo-mcp-server.mcpb","format":"biome check --write .","rebuild":"bun run scripts/clean.ts && bun run scripts/build.ts","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","list-skills":"bun run scripts/list-skills.ts","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","format:unsafe":"biome check --write --unsafe .","test:coverage":"vitest run --coverage","lint:packaging":"bun run scripts/lint-packaging.ts","release:github":"bun run scripts/release-github.ts","changelog:build":"bun run scripts/build-changelog.ts","changelog:check":"bun run scripts/build-changelog.ts --check"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"_integrity":"sha512-EQWBQoWfotzAaYouTHNJJ4VtVHaAmtbO4EfVQWLKtIrp9Egmv2hPLAM3azIcMnZGay3KqpwpaUFCVv4TjVFnNg==","repository":{"url":"git+https://github.com/cyanheads/open-meteo-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Geocode places, fetch global weather forecasts, ERA5 historical climate, marine conditions, air quality, and terrain elevation via MCP. STDIO or Streamable HTTP.","directories":{},"_nodeVersion":"26.3.0","dependencies":{"zod":"^4.5.4","pino-pretty":"^13.1.3","@duckdb/node-api":"^1.5.5-r.4","@cyanheads/mcp-ts-core":"^0.12.8"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.4.0","devDependencies":{"ignore":"^7.0.8","vitest":"^4.1.11","depcheck":"^1.4.7","tsc-alias":"^1.9.4","fast-check":"^4.9.0","typescript":"^7.0.2","@types/node":"^26.2.0","@biomejs/biome":"^2.5.12","@vitest/coverage-istanbul":"^4.1.11","@socketsecurity/bun-security-scanner":"^1.1.2"},"trustedDependencies":["@socketsecurity/bun-security-scanner"],"_npmOperationalInternal":{"tmp":"tmp/open-meteo-mcp-server_0.3.6_1788993854459_0.8851345549392757","host":"s3://npm-registry-packages-npm-production"}},"0.3.7":{"name":"@cyanheads/open-meteo-mcp-server","version":"0.3.7","keywords":["mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","weather","open-meteo","forecast","climate","era5","marine","air-quality","geocoding","elevation"],"author":"Casey Hand <casey@caseyjhand.com> (https://caseyjhand.com)","license":"Apache-2.0","_id":"@cyanheads/open-meteo-mcp-server@0.3.7","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/open-meteo-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/open-meteo-mcp-server/issues"},"bin":{"open-meteo-mcp-server":"dist/index.js"},"dist":{"shasum":"3ec416d0da435d8ed24fabd9cd0c074715f5af1a","tarball":"https://registry.npmjs.org/@cyanheads/open-meteo-mcp-server/-/open-meteo-mcp-server-0.3.7.tgz","fileCount":127,"integrity":"sha512-nKaP6N2AhJSXI+ehxBOCx3Aj+26RAI9HwIFP0m1pewoE1Qc7UiychXGiScc9KQKFUc75O2rGsIfS8H1mOoWQbA==","signatures":[{"sig":"MEQCIDlWfoUNjFZ7DH3SfbAF8wJHhZuA+ao0CLEGgTCSf4YlAiBxkeC6cCyRyxujT45WEQmD3+HudfAsY41VjJauTznuyg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":661674},"type":"module","shasum":"3ec416d0da435d8ed24fabd9cd0c074715f5af1a","engines":{"bun":">=1.3.0","node":">=24.0.0"},"mcpName":"io.github.cyanheads/open-meteo-mcp-server","scripts":{"test":"vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","start":"bun ./dist/index.js","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/open-meteo-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/open-meteo-mcp-server.mcpb","format":"biome check --write .","rebuild":"bun run scripts/clean.ts && bun run scripts/build.ts","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","list-skills":"bun run scripts/list-skills.ts","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","format:unsafe":"biome check --write --unsafe .","test:coverage":"vitest run --coverage","lint:packaging":"bun run scripts/lint-packaging.ts","release:github":"bun run scripts/release-github.ts","changelog:build":"bun run scripts/build-changelog.ts","changelog:check":"bun run scripts/build-changelog.ts --check"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"_integrity":"sha512-nKaP6N2AhJSXI+ehxBOCx3Aj+26RAI9HwIFP0m1pewoE1Qc7UiychXGiScc9KQKFUc75O2rGsIfS8H1mOoWQbA==","repository":{"url":"git+https://github.com/cyanheads/open-meteo-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Geocode places, fetch global weather forecasts, ERA5 historical climate, marine conditions, air quality, and terrain elevation via MCP. STDIO or Streamable HTTP.","directories":{},"_nodeVersion":"26.3.0","dependencies":{"zod":"^4.5.4","pino-pretty":"^13.1.3","@duckdb/node-api":"^1.5.5-r.4","@cyanheads/mcp-ts-core":"^0.12.8"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.4.0","devDependencies":{"ignore":"^7.0.8","vitest":"^4.1.11","depcheck":"^1.4.7","tsc-alias":"^1.9.4","fast-check":"^4.9.0","typescript":"^7.0.2","@types/node":"^26.2.0","@biomejs/biome":"^2.5.12","@vitest/coverage-istanbul":"^4.1.11","@socketsecurity/bun-security-scanner":"^1.1.2"},"trustedDependencies":["@socketsecurity/bun-security-scanner"],"_npmOperationalInternal":{"tmp":"tmp/open-meteo-mcp-server_0.3.7_1789003069246_0.239174550789786","host":"s3://npm-registry-packages-npm-production"}},"0.3.8":{"name":"@cyanheads/open-meteo-mcp-server","version":"0.3.8","keywords":["mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","weather","open-meteo","forecast","climate","era5","marine","air-quality","geocoding","elevation"],"author":"Casey Hand <casey@caseyjhand.com> (https://caseyjhand.com)","license":"Apache-2.0","_id":"@cyanheads/open-meteo-mcp-server@0.3.8","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/open-meteo-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/open-meteo-mcp-server/issues"},"bin":{"open-meteo-mcp-server":"dist/index.js"},"dist":{"shasum":"e084a637b1f3707c1a6fd2a09a039578008f3638","tarball":"https://registry.npmjs.org/@cyanheads/open-meteo-mcp-server/-/open-meteo-mcp-server-0.3.8.tgz","fileCount":128,"integrity":"sha512-NYgdgysDpuyarNntwY2nfreq2U/E1BLsIswKr1j06BxXg1m2khxpOVKzF3n3Ar5vaMN8NUPM+Fh8FTPMLVi+TQ==","signatures":[{"sig":"MEUCIQDf0VfDgNE5brdBnfeIHQsdCGOVYVoDF5/JeDSTgR6aywIgIL0oDbYt2jJWIenq+0naPB0tlXhHoQ/kUwdbIk036lI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":692703},"type":"module","shasum":"e084a637b1f3707c1a6fd2a09a039578008f3638","engines":{"bun":">=1.3.0","node":">=24.0.0"},"mcpName":"io.github.cyanheads/open-meteo-mcp-server","scripts":{"test":"vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","start":"bun ./dist/index.js","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/open-meteo-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/open-meteo-mcp-server.mcpb","format":"biome check --write .","rebuild":"bun run scripts/clean.ts && bun run scripts/build.ts","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","list-skills":"bun run scripts/list-skills.ts","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","format:unsafe":"biome check --write --unsafe .","test:coverage":"vitest run --coverage","lint:packaging":"bun run scripts/lint-packaging.ts","release:github":"bun run scripts/release-github.ts","changelog:build":"bun run scripts/build-changelog.ts","changelog:check":"bun run scripts/build-changelog.ts --check"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"_integrity":"sha512-NYgdgysDpuyarNntwY2nfreq2U/E1BLsIswKr1j06BxXg1m2khxpOVKzF3n3Ar5vaMN8NUPM+Fh8FTPMLVi+TQ==","repository":{"url":"git+https://github.com/cyanheads/open-meteo-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Geocode places, fetch global weather forecasts, ERA5 historical climate, marine conditions, air quality, and terrain elevation via MCP. STDIO or Streamable HTTP.","directories":{},"_nodeVersion":"26.3.0","dependencies":{"zod":"^4.5.4","pino-pretty":"^13.1.3","@duckdb/node-api":"^1.5.5-r.4","@cyanheads/mcp-ts-core":"^0.12.8"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.4.0","devDependencies":{"ignore":"^7.0.8","vitest":"^4.1.11","depcheck":"^1.4.7","tsc-alias":"^1.9.4","fast-check":"^4.9.0","typescript":"^7.0.2","@types/node":"^26.2.0","@biomejs/biome":"^2.5.12","@vitest/coverage-istanbul":"^4.1.11","@socketsecurity/bun-security-scanner":"^1.1.2"},"trustedDependencies":["@socketsecurity/bun-security-scanner"],"_npmOperationalInternal":{"tmp":"tmp/open-meteo-mcp-server_0.3.8_1789007316293_0.12531921677571756","host":"s3://npm-registry-packages-npm-production"}},"0.3.9":{"name":"@cyanheads/open-meteo-mcp-server","version":"0.3.9","keywords":["mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","weather","open-meteo","forecast","climate","era5","marine","air-quality","geocoding","elevation"],"author":"Casey Hand <casey@caseyjhand.com> (https://caseyjhand.com)","license":"Apache-2.0","_id":"@cyanheads/open-meteo-mcp-server@0.3.9","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/open-meteo-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/open-meteo-mcp-server/issues"},"bin":{"open-meteo-mcp-server":"dist/index.js"},"dist":{"shasum":"598f1110cd95b1dc939ae16737a233bce9f6d383","tarball":"https://registry.npmjs.org/@cyanheads/open-meteo-mcp-server/-/open-meteo-mcp-server-0.3.9.tgz","fileCount":129,"integrity":"sha512-p7HRcqQ1MkO0kXuypbJXN2F7nA/MXYlBSk9IjIcNLBT5jMXC5u1Rp0982SIhO/qSA6oXk2c6HjiN0OvyqkpRQA==","signatures":[{"sig":"MEYCIQDqCo4FrEDSoE62Pw5oqusnQBjEOvYOP5c0g/uSIm+4bQIhAPudAAB4TecveZUvyXK77m4gvwyr5vKRFDaGnKgWZvn4","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":725470},"type":"module","shasum":"598f1110cd95b1dc939ae16737a233bce9f6d383","engines":{"bun":">=1.3.0","node":">=24.0.0"},"mcpName":"io.github.cyanheads/open-meteo-mcp-server","scripts":{"test":"vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","start":"bun ./dist/index.js","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/open-meteo-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/open-meteo-mcp-server.mcpb","format":"biome check --write .","rebuild":"bun run scripts/clean.ts && bun run scripts/build.ts","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","list-skills":"bun run scripts/list-skills.ts","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","format:unsafe":"biome check --write --unsafe .","test:coverage":"vitest run --coverage","lint:packaging":"bun run scripts/lint-packaging.ts","release:github":"bun run scripts/release-github.ts","changelog:build":"bun run scripts/build-changelog.ts","changelog:check":"bun run scripts/build-changelog.ts --check"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"_integrity":"sha512-p7HRcqQ1MkO0kXuypbJXN2F7nA/MXYlBSk9IjIcNLBT5jMXC5u1Rp0982SIhO/qSA6oXk2c6HjiN0OvyqkpRQA==","repository":{"url":"git+https://github.com/cyanheads/open-meteo-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Geocode places, fetch global weather forecasts, ERA5 historical climate, marine conditions, air quality, and terrain elevation via MCP. STDIO or Streamable HTTP.","directories":{},"_nodeVersion":"26.3.0","dependencies":{"zod":"^4.5.4","pino-pretty":"^13.1.3","@duckdb/node-api":"^1.5.5-r.4","@cyanheads/mcp-ts-core":"^0.12.8"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.4.0","devDependencies":{"ignore":"^7.0.8","vitest":"^4.1.11","depcheck":"^1.4.7","tsc-alias":"^1.9.4","fast-check":"^4.9.0","typescript":"^7.0.2","@types/node":"^26.2.0","@biomejs/biome":"^2.5.12","@vitest/coverage-istanbul":"^4.1.11","@socketsecurity/bun-security-scanner":"^1.1.2"},"trustedDependencies":["@socketsecurity/bun-security-scanner"],"_npmOperationalInternal":{"tmp":"tmp/open-meteo-mcp-server_0.3.9_1789011592188_0.17282713565240604","host":"s3://npm-registry-packages-npm-production"}},"0.3.10":{"name":"@cyanheads/open-meteo-mcp-server","version":"0.3.10","keywords":["mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","weather","open-meteo","forecast","climate","era5","marine","air-quality","geocoding","elevation"],"author":"Casey Hand <casey@caseyjhand.com> (https://caseyjhand.com)","license":"Apache-2.0","_id":"@cyanheads/open-meteo-mcp-server@0.3.10","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/open-meteo-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/open-meteo-mcp-server/issues"},"bin":{"open-meteo-mcp-server":"dist/index.js"},"dist":{"shasum":"9a2cacca9c0a3c460c87815d24a316766c4eb53d","tarball":"https://registry.npmjs.org/@cyanheads/open-meteo-mcp-server/-/open-meteo-mcp-server-0.3.10.tgz","fileCount":130,"integrity":"sha512-b7/BTk1ercixlWrzkEwOPa903irIHPSPtatn3s+/QMHQLSFX6HMYvm1AQ++IDhWC6SbGyNtU0XObdEuTlj+N+A==","signatures":[{"sig":"MEQCIBydw7PukDGhBeIaxZNnp2si+VWfqILd1NaORg1Mw3xGAiAQ+SdLR6ZajJGkBYqhYx8cZ7pDPZ7BI/1ydyZ8fsaSwQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDAkCAoTglnsfDEW3OE6iNBUi61o7KhpTgRzEOVEGw4UQIhAJ1XbATlRernu+DzwenKhlBnuYZxayCjyYF3OgL3Z2Z7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":727873},"type":"module","shasum":"9a2cacca9c0a3c460c87815d24a316766c4eb53d","engines":{"bun":">=1.4.0","node":">=24.0.0"},"funding":[{"url":"https://github.com/sponsors/cyanheads","type":"github"},{"url":"https://www.buymeacoffee.com/cyanheads","type":"buy_me_a_coffee"}],"mcpName":"io.github.cyanheads/open-meteo-mcp-server","scripts":{"test":"vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","start":"bun ./dist/index.js","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/open-meteo-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/open-meteo-mcp-server.mcpb","format":"biome check --write .","rebuild":"bun run scripts/clean.ts && bun run scripts/build.ts","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","audit:fix":"bun audit fix","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","list-skills":"bun run scripts/list-skills.ts","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","format:unsafe":"biome check --write --unsafe .","test:coverage":"vitest run --coverage","lint:packaging":"bun run scripts/lint-packaging.ts","release:github":"bun run scripts/release-github.ts","changelog:build":"bun run scripts/build-changelog.ts","changelog:check":"bun run scripts/build-changelog.ts --check"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"_integrity":"sha512-b7/BTk1ercixlWrzkEwOPa903irIHPSPtatn3s+/QMHQLSFX6HMYvm1AQ++IDhWC6SbGyNtU0XObdEuTlj+N+A==","repository":{"url":"git+https://github.com/cyanheads/open-meteo-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Geocode places, fetch global weather forecasts, historical climate, marine conditions, air quality, and terrain elevation via MCP. STDIO or Streamable HTTP.","directories":{},"_nodeVersion":"26.3.0","dependencies":{"zod":"^4.6.4","pino-pretty":"^13.1.3","@duckdb/node-api":"^1.5.5-r.4","@cyanheads/mcp-ts-core":"^0.13.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.4.0","devDependencies":{"ignore":"^7.0.9","vitest":"^5.0.0","depcheck":"^1.4.7","tsc-alias":"^1.9.5","fast-check":"^4.10.0","typescript":"^7.0.2","@types/node":"^26.4.1","@biomejs/biome":"^2.5.13","@vitest/coverage-istanbul":"^5.0.0","@socketsecurity/bun-security-scanner":"^1.1.2"},"trustedDependencies":["@socketsecurity/bun-security-scanner"],"_npmOperationalInternal":{"tmp":"tmp/open-meteo-mcp-server_0.3.10_1789551414942_0.029117342740019536","host":"s3://npm-registry-packages-npm-production"}},"0.3.11":{"name":"@cyanheads/open-meteo-mcp-server","version":"0.3.11","keywords":["mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","weather","open-meteo","forecast","climate","era5","marine","air-quality","geocoding","elevation"],"author":"Casey Hand <casey@caseyjhand.com> (https://caseyjhand.com)","license":"Apache-2.0","_id":"@cyanheads/open-meteo-mcp-server@0.3.11","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/open-meteo-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/open-meteo-mcp-server/issues"},"bin":{"open-meteo-mcp-server":"dist/index.js"},"dist":{"shasum":"c62169b553bec59bded4526728e5cfef025829c6","tarball":"https://registry.npmjs.org/@cyanheads/open-meteo-mcp-server/-/open-meteo-mcp-server-0.3.11.tgz","fileCount":131,"integrity":"sha512-L+lS7Rpbt91jGJTKfSbNaG9PQehoK6/WTOhNF0BU2eAy7Gk2PVjHynWKKRqYa5ZlrhWqUVPUfrHsVdgAmCqYbQ==","signatures":[{"sig":"MEUCIQDvOup28lN75sj3F5eGpK3PUDWCV5dV2Y9BLLl+azvIDgIgDG2/8cg3I5R4LfzixHmrfwAHCGAx9JLtWV+/r2n89S0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDnKJp33C+O0aViVA4X9yufPMz8RNf9ZGH9tV/JUvupHAIgH7ixVdtm4fidxl8G7tG/lnqXRceiIn6uPqf7W+TS4Hk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":736395},"type":"module","shasum":"c62169b553bec59bded4526728e5cfef025829c6","engines":{"bun":">=1.4.0","node":">=24.0.0"},"funding":[{"url":"https://github.com/sponsors/cyanheads","type":"github"},{"url":"https://www.buymeacoffee.com/cyanheads","type":"buy_me_a_coffee"}],"mcpName":"io.github.cyanheads/open-meteo-mcp-server","scripts":{"test":"vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","start":"bun ./dist/index.js","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/open-meteo-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/open-meteo-mcp-server.mcpb","format":"biome check --write .","rebuild":"bun run scripts/clean.ts && bun run scripts/build.ts","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","audit:fix":"bun audit fix","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","list-skills":"bun run scripts/list-skills.ts","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","format:unsafe":"biome check --write --unsafe .","test:coverage":"vitest run --coverage","lint:packaging":"bun run scripts/lint-packaging.ts","release:github":"bun run scripts/release-github.ts","changelog:build":"bun run scripts/build-changelog.ts","changelog:check":"bun run scripts/build-changelog.ts --check"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"_integrity":"sha512-L+lS7Rpbt91jGJTKfSbNaG9PQehoK6/WTOhNF0BU2eAy7Gk2PVjHynWKKRqYa5ZlrhWqUVPUfrHsVdgAmCqYbQ==","repository":{"url":"git+https://github.com/cyanheads/open-meteo-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Geocode places, fetch global weather forecasts, historical climate, marine conditions, air quality, and terrain elevation via MCP. STDIO or Streamable HTTP.","directories":{},"_nodeVersion":"26.3.0","dependencies":{"zod":"^4.6.5","pino-pretty":"^13.1.3","@duckdb/node-api":"^1.5.5-r.5","@cyanheads/mcp-ts-core":"^0.13.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.4.0","devDependencies":{"ignore":"^7.0.9","vitest":"^5.0.1","depcheck":"^1.4.7","tsc-alias":"^1.9.5","fast-check":"^4.10.1","typescript":"^7.0.2","@types/node":"^26.6.2","@biomejs/biome":"^2.5.14","@vitest/coverage-istanbul":"^5.0.1","@socketsecurity/bun-security-scanner":"^1.1.2"},"trustedDependencies":["@socketsecurity/bun-security-scanner"],"_npmOperationalInternal":{"tmp":"tmp/open-meteo-mcp-server_0.3.11_1790055288657_0.7570222472910606","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"_id":"@cyanheads/open-meteo-mcp-server@0.4.0","bin":{"open-meteo-mcp-server":"dist/index.js"},"bugs":{"url":"https://github.com/cyanheads/open-meteo-mcp-server/issues"},"dist":{"shasum":"5af9126ac30cb25fbd9429bc7801ef2d2311ffdc","tarball":"https://registry.npmjs.org/@cyanheads/open-meteo-mcp-server/-/open-meteo-mcp-server-0.4.0.tgz","fileCount":136,"integrity":"sha512-Gw7XHLuwjHZQTbZ1au2ZjpLssNnDR6DqKgWYQpOwt7sx0OUIaUpyX3QSJf1iUyh6XDlewvnacCkX4+wypzuQrw==","signatures":[{"sig":"MEUCICvm1ushwRefdchshzVtQAgCaNfEFwlznKLl+T4mmqZ0AiEA2o9qFtJ+9mP7V7MvS84aQQZFw4gwqmgS3/uUtCuPOQM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCWmB4pS8JoF9x9sLGA7YFRJ0AFTaX+MldkwDQgLl84VwIhAOiQyAUV3sOIpFadyMaV4Kchsldr18wC/ikPFKS8lSSf"}],"unpackedSize":751662},"name":"@cyanheads/open-meteo-mcp-server","type":"module","author":"Casey Hand <casey@caseyjhand.com> (https://caseyjhand.com)","shasum":"5af9126ac30cb25fbd9429bc7801ef2d2311ffdc","engines":{"bun":">=1.4.0","node":">=24.0.0"},"funding":[{"url":"https://github.com/sponsors/cyanheads","type":"github"},{"url":"https://www.buymeacoffee.com/cyanheads","type":"buy_me_a_coffee"}],"license":"Apache-2.0","mcpName":"io.github.cyanheads/open-meteo-mcp-server","scripts":{"test":"vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","start":"bun ./dist/index.js","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/open-meteo-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/open-meteo-mcp-server.mcpb","format":"biome check --write .","rebuild":"bun run scripts/clean.ts && bun run scripts/build.ts","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","audit:fix":"bun audit fix","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","list-skills":"bun run scripts/list-skills.ts","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","format:unsafe":"biome check --write --unsafe .","test:coverage":"vitest run --coverage","lint:packaging":"bun run scripts/lint-packaging.ts","release:github":"bun run scripts/release-github.ts","changelog:build":"bun run scripts/build-changelog.ts","changelog:check":"bun run scripts/build-changelog.ts --check"},"version":"0.4.0","_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"homepage":"https://github.com/cyanheads/open-meteo-mcp-server#readme","keywords":["mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","weather","open-meteo","forecast","climate","era5","marine","air-quality","geocoding","elevation"],"_integrity":"sha512-Gw7XHLuwjHZQTbZ1au2ZjpLssNnDR6DqKgWYQpOwt7sx0OUIaUpyX3QSJf1iUyh6XDlewvnacCkX4+wypzuQrw==","repository":{"url":"git+https://github.com/cyanheads/open-meteo-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Geocode places, fetch global weather forecasts, historical climate, marine conditions, air quality, and terrain elevation via MCP. STDIO or Streamable HTTP.","directories":{},"maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"_nodeVersion":"26.3.0","dependencies":{"zod":"^4.6.5","pino-pretty":"^13.1.3","@duckdb/node-api":"^1.5.6-r.1","@cyanheads/mcp-ts-core":"^0.13.11"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.4.2","devDependencies":{"ignore":"^7.0.11","vitest":"^5.0.3","depcheck":"^1.4.7","tsc-alias":"^1.9.7","fast-check":"^4.10.2","typescript":"^7.0.2","@types/node":"^26.6.3","@biomejs/biome":"^2.5.15","@vitest/coverage-istanbul":"^5.0.3","@socketsecurity/bun-security-scanner":"^1.1.3"},"trustedDependencies":["@socketsecurity/bun-security-scanner"],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/open-meteo-mcp-server_0.4.0_1791094729268_0.6668019932981839"}}},"time":{"created":"2026-05-30T14:07:08.918Z","modified":"2026-10-04T06:18:49.519Z","0.1.0":"2026-05-30T14:07:09.262Z","0.1.1":"2026-05-31T02:16:46.438Z","0.1.2":"2026-06-01T03:25:21.374Z","0.1.3":"2026-06-02T14:30:58.248Z","0.1.4":"2026-06-04T09:13:44.097Z","0.1.5":"2026-06-13T03:46:41.664Z","0.1.6":"2026-06-20T17:29:05.456Z","0.1.7":"2026-07-02T07:49:06.090Z","0.1.8":"2026-07-02T08:28:49.244Z","0.2.0":"2026-07-02T09:01:58.303Z","0.2.1":"2026-07-06T23:23:13.153Z","0.2.2":"2026-07-06T23:53:32.228Z","0.2.3":"2026-07-11T20:25:05.590Z","0.2.4":"2026-07-16T05:47:48.415Z","0.2.5":"2026-07-16T09:12:31.770Z","0.3.0":"2026-07-30T22:42:14.547Z","0.3.1":"2026-07-30T23:30:55.939Z","0.3.2":"2026-07-31T00:51:40.691Z","0.3.3":"2026-07-31T01:48:47.030Z","0.3.4":"2026-07-31T02:46:33.509Z","0.3.5":"2026-08-22T13:56:45.921Z","0.3.6":"2026-09-09T22:44:14.616Z","0.3.7":"2026-09-10T01:17:49.404Z","0.3.8":"2026-09-10T02:28:36.465Z","0.3.9":"2026-09-10T03:39:52.333Z","0.3.10":"2026-09-16T09:36:55.044Z","0.3.11":"2026-09-22T05:34:48.838Z","0.4.0":"2026-10-04T06:18:49.383Z"},"bugs":{"url":"https://github.com/cyanheads/open-meteo-mcp-server/issues"},"author":"Casey Hand <casey@caseyjhand.com> (https://caseyjhand.com)","license":"Apache-2.0","homepage":"https://github.com/cyanheads/open-meteo-mcp-server#readme","keywords":["mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","weather","open-meteo","forecast","climate","era5","marine","air-quality","geocoding","elevation"],"repository":{"url":"git+https://github.com/cyanheads/open-meteo-mcp-server.git","type":"git"},"description":"Geocode places, fetch global weather forecasts, historical climate, marine conditions, air quality, and terrain elevation via MCP. STDIO or Streamable HTTP.","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"readme":"<div align=\"center\">\n  <h1>@cyanheads/open-meteo-mcp-server</h1>\n  <p><b>Geocode places, fetch global weather forecasts, historical climate, marine conditions, air quality, and terrain elevation via MCP. STDIO or Streamable HTTP.</b>\n  <div>12 Tools</div>\n  </p>\n</div>\n\n<div align=\"center\">\n\n[![Version](https://img.shields.io/badge/Version-0.4.0-blue.svg?style=flat-square)](./CHANGELOG.md) [![License](https://img.shields.io/badge/License-Apache%202.0-orange.svg?style=flat-square)](./LICENSE) [![Docker](https://img.shields.io/badge/Docker-ghcr.io-2496ED?style=flat-square&logo=docker&logoColor=white)](https://github.com/users/cyanheads/packages/container/package/open-meteo-mcp-server) [![MCP SDK](https://img.shields.io/badge/MCP%20SDK-^2.2.0-green.svg?style=flat-square)](https://modelcontextprotocol.io/) [![npm](https://img.shields.io/npm/v/@cyanheads/open-meteo-mcp-server?style=flat-square&logo=npm&logoColor=white)](https://www.npmjs.com/package/@cyanheads/open-meteo-mcp-server) [![TypeScript](https://img.shields.io/badge/TypeScript-^7.0.2-3178C6.svg?style=flat-square)](https://www.typescriptlang.org/) [![Bun](https://img.shields.io/badge/Bun-v1.4.2-blueviolet.svg?style=flat-square)](https://bun.sh/)\n\n</div>\n\n<div align=\"center\">\n\n[![Install in Claude Desktop](https://img.shields.io/badge/Install_in-Claude_Desktop-D97757?style=for-the-badge&logo=anthropic&logoColor=white)](https://github.com/cyanheads/open-meteo-mcp-server/releases/latest/download/open-meteo-mcp-server.mcpb) [![Install in Cursor](https://cursor.com/deeplink/mcp-install-dark.svg)](https://cursor.com/en/install-mcp?name=open-meteo-mcp-server&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsIkBjeWFuaGVhZHMvb3Blbi1tZXRlby1tY3Atc2VydmVyIl19) [![Install in VS Code](https://img.shields.io/badge/VS_Code-Install_Server-0098FF?style=for-the-badge&logo=visualstudiocode&logoColor=white)](https://vscode.dev/redirect?url=vscode:mcp/install?%7B%22name%22%3A%22open-meteo-mcp-server%22%2C%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%40cyanheads%2Fopen-meteo-mcp-server%22%5D%7D)\n\n[![Framework](https://img.shields.io/badge/Built%20on-@cyanheads/mcp--ts--core-67E8F9?style=flat-square)](https://www.npmjs.com/package/@cyanheads/mcp-ts-core)\n\n</div>\n\n<div align=\"center\">\n\n**Public Hosted Server:** [https://open-meteo.caseyjhand.com/mcp](https://open-meteo.caseyjhand.com/mcp)\n\n</div>\n\n---\n\n## Overview\n\nGlobal weather from Open-Meteo: forecasts, the historical archive, marine conditions, air quality, probabilistic ensembles, river discharge, and CMIP6 climate projections. Geocode a place name, pull hourly and daily variables for its coordinates, and run SQL over large results staged to DataCanvas. Runs as a stdio process, a local Streamable HTTP server, or the public hosted endpoint above.\n\n### Tools\n\n| Tool | Description |\n|:---|:---|\n| `openmeteo_search_locations` | Resolve a place name to ranked coordinates with country, region, timezone, and population |\n| `openmeteo_get_forecast` | Current conditions and hourly/daily forecast up to 16 days, with up to 92 past days |\n| `openmeteo_get_historical` | Hourly/daily history from the reanalysis archive, 1940 to present |\n| `openmeteo_get_marine` | Wave, swell, and sea-surface conditions: up to 8 forecast days or an archive range |\n| `openmeteo_get_air_quality` | Modeled CAMS pollutants, pollen, and AQI: current, up to 7 forecast days, or an archive range |\n| `openmeteo_get_elevation` | Copernicus DEM terrain elevation for up to 100 coordinate pairs |\n| `openmeteo_get_ensemble` | Per-member ensemble forecast (up to 64 members, 16 days) for exceedance and uncertainty |\n| `openmeteo_get_flood` | GloFAS river discharge forecast (up to 210 days) or reanalysis from 1984 |\n| `openmeteo_get_climate` | Bias-corrected daily CMIP6 projections, 1950–2050, across up to 7 models |\n| `openmeteo_dataframe_describe` | List the tables and columns staged on a DataCanvas |\n| `openmeteo_dataframe_query` | Run a read-only SQL `SELECT` against staged tables |\n| `openmeteo_dataframe_drop` | Remove one staged table or view from a DataCanvas (opt-in) |\n\n## Capability reference\n\n### `openmeteo_search_locations` <sub>tool</sub>\n\n- A bare place `name` (\"Paris\", not \"Paris, France\"), with optional `country` (ISO 3166-1 alpha-2) and `language` (default `en`); `count` 1–10, default 5\n- Each result carries coordinates, an IANA `timezone`, `country` / `country_code`, `admin1` / `admin2`, `population`, and `feature_code`; no match fails as `no_results`\n- A `notice` flags a top match with null or sub-100,000 population, which is what a historic exonym (\"Bangalore\", \"Calcutta\") often resolves to\n\n---\n\n### `openmeteo_get_forecast` <sub>tool</sub>\n\n- At least one of `current_variables`, `hourly_variables`, or `daily_variables` (up to 50 each); `forecast_days` 1–16 (default 7), `past_days` 0–92 (default 0)\n- Per-timestamp `hourly` / `daily` records with `hourly_units` / `daily_units`; `current_variables` adds a `current` object from 15-minute data (`interval` 900) plus `current_units`\n- Prefer `past_days` over `openmeteo_get_historical` for the last ~5 days, where the archive's ERA5 components lag\n\n---\n\n### `openmeteo_get_historical` <sub>tool</sub>\n\n- `start_date` and `end_date` required (YYYY-MM-DD, from 1940-01-01), plus at least one of `hourly_variables` / `daily_variables`, named as on the forecast tool\n- Omitting `models` reads Best Match (IFS HRES + ERA5 + ERA5-Land, source varies by date); up to 8 `models` pin a source. The ERA5 family runs ~5 days behind, `ecmwf_ifs` has no delay, and `cerra` covers Europe only\n- Output echoes `models` and the returned `date_range`; with 2+ models each column carries a model-name suffix\n\n---\n\n### `openmeteo_get_marine` <sub>tool</sub>\n\n- One window per call: `forecast_days` 1–8 (upstream default 7) with `past_days` 0–92, or a `start_date` / `end_date` archive range back to at least 2022. Mixing them fails as `forecast_window_conflict`, a lone date as `date_range_incomplete`\n- At least one of `hourly_variables` / `daily_variables` (wave height, period, and direction, swell, sea-surface temperature); sheltered or inland points return near-zero waves, and `ocean_current_velocity` is null off the open ocean\n\n---\n\n### `openmeteo_get_air_quality` <sub>tool</sub>\n\n- One window per call: `forecast_days` 1–7 (upstream default 5) with `past_days` 0–92, or a `start_date` / `end_date` archive range from August 2022 (`us_aqi` starts a day later). Same `forecast_window_conflict` and `date_range_incomplete` rejections as the marine tool\n- At least one of `current_variables` (a `current` object, `interval` 3600) or `hourly_variables`: PM2.5, PM10, NO2, SO2, O3, CO, dust, pollen, European and US AQI\n- `data_source: \"CAMS\"` marks every response as modeled grid data, not station measurements\n\n---\n\n### `openmeteo_get_elevation` <sub>tool</sub>\n\n- Parallel `latitudes[]` / `longitudes[]` arrays of up to 100 pairs; unequal lengths fail as `coordinate_count_mismatch`\n- `elevations[]` in input order, each `{ latitude, longitude, elevation_m }` from the Copernicus DEM (~90 m)\n\n---\n\n### `openmeteo_get_ensemble` <sub>tool</sub>\n\n- At least one of `hourly_variables` / `daily_variables`; `forecast_days` 1–16 (default 7), `past_days` 0–92. `models` takes one ensemble name (e.g. `ecmwf_ifs025_ensemble`, 51 members; `gem_global_ensemble`, 21), or is omitted for the API default blend\n- Each variable returns as per-member columns (`temperature_2m_member01`, …) across up to 64 members; `member_count` counts the perturbed members, not the control run\n- A regional model queried outside its coverage fails as a non-retryable input error naming the gap; switch to a global model\n\n---\n\n### `openmeteo_get_flood` <sub>tool</sub>\n\n- `daily_variables` required (up to 20): `river_discharge` (ensemble mean), `river_discharge_mean` / `_min` / `_max` / `_median` / `_p25` / `_p75`, all in m³/s\n- One mode per call: `forecast_days` 1–210, or a `start_date` / `end_date` reanalysis range from 1984-01-01. Mixing them fails as `forecast_days_conflict`, a lone date as `date_range_incomplete`\n- Discharge comes from the largest modeled river within 5 km, not always the closest; vary the coordinate by ~0.1° when a value looks off. Null outside GloFAS coverage\n\n---\n\n### `openmeteo_get_climate` <sub>tool</sub>\n\n- `start_date` / `end_date` within 1950-01-01 to 2050-12-31 and `daily_variables` required (the API is daily-only); up to 7 CMIP6 `models`, e.g. `CMCC_CM2_VHR4`, `MRI_AGCM3_2_S`\n- With 2+ models each variable is suffixed with the model name; a single or omitted model returns plain names. A variable a model doesn't carry comes back null\n\n---\n\n### `openmeteo_dataframe_describe` <sub>tool</sub>\n\n- Takes the `canvas_id` a spilled weather tool returned; lists each table's `name`, `kind`, `row_count`, and columns (name, type, nullability), plus the canvas `expires_at`\n- Fails as `canvas_not_enabled` when canvas is off, or `canvas_not_found` when the ID is unknown or past its 24-hour sliding TTL\n\n---\n\n### `openmeteo_dataframe_query` <sub>tool</sub>\n\n- `canvas_id` plus a read-only `SELECT` against the staged `table_name`; `rows` is capped at 100 inline and `row_count` gives the full total, so page with `LIMIT` / `OFFSET`\n- Fails as `canvas_not_enabled`, `canvas_not_found`, `missing_table`, or `system_catalog_access` (system catalogs are blocked)\n\n---\n\n### `openmeteo_dataframe_drop` <sub>tool</sub>\n\n- Off by default: listed as disabled until `OPENMETEO_DATAFRAME_DROP_ENABLED=true`\n- `canvas_id` plus the exact `table_name` from `openmeteo_dataframe_describe`; removes that one table or view and returns `dropped` and the `remaining_tables`. A name that is not staged returns `dropped: false`, so a repeated drop is safe\n- Fails as `canvas_not_enabled`, `canvas_not_found`, or `invalid_table_name` (not a plain SQL identifier, or a reserved keyword)\n\n## Features\n\nBuilt on [`@cyanheads/mcp-ts-core`](https://github.com/cyanheads/mcp-ts-core): stdio and Streamable HTTP transports, pluggable auth (`none` / `jwt` / `oauth`), swappable storage (`in-memory`, `filesystem`, `Supabase`, `Cloudflare KV/R2/D1`), structured logging with optional OpenTelemetry tracing.\n\nOpen-Meteo-specific:\n\n- No API key for non-commercial use; commercial use requires Open-Meteo's paid API tier\n- Columnar API responses reshaped into per-timestamp records with `*_units` maps, on the same variable names across forecast and archive\n- DataCanvas spillover on the seven weather tools (forecast, historical, marine, air quality, ensemble, flood, climate): with `CANVAS_PROVIDER_TYPE=duckdb` an over-budget result is staged as a DuckDB table and the response carries `canvas_id`, `table_name`, and `truncated: true`; with the default `none` it returns a bounded preview and `truncated: true`\n- `models` on the historical, ensemble, and climate tools is not an allowlist, so a model Open-Meteo adds later works without a server update\n\nAgent-friendly output:\n\n- Location-first workflow: `openmeteo_search_locations` returns the IANA `timezone` alongside coordinates, ready for any weather tool's `timezone` input (default `auto`)\n- Typed rejections: a variable passed under the wrong cadence fails as `variable_wrong_cadence` before the upstream call, naming the field it belongs in; an over-wide request fails as `request_too_large`, naming the inputs to narrow; rate-limit rejections are not retried\n- One `notice` per response for what the data alone won't show: variable names the endpoint doesn't serve, requested windows outside a dataset's coverage, and where spilled rows went\n\n## Getting started\n\n### Public Hosted Instance\n\nA public instance is available at `https://open-meteo.caseyjhand.com/mcp` — no installation required. Point any MCP client at it via Streamable HTTP:\n\n```json\n{\n  \"mcpServers\": {\n    \"open-meteo-mcp-server\": {\n      \"type\": \"streamable-http\",\n      \"url\": \"https://open-meteo.caseyjhand.com/mcp\"\n    }\n  }\n}\n```\n\n### Self-Hosted / Local\n\nAdd the following to your MCP client configuration file.\n\n```json\n{\n  \"mcpServers\": {\n    \"open-meteo-mcp-server\": {\n      \"type\": \"stdio\",\n      \"command\": \"bunx\",\n      \"args\": [\"@cyanheads/open-meteo-mcp-server@latest\"],\n      \"env\": {\n        \"MCP_TRANSPORT_TYPE\": \"stdio\",\n        \"MCP_LOG_LEVEL\": \"info\"\n      }\n    }\n  }\n}\n```\n\nOr with npx (no Bun required):\n\n```json\n{\n  \"mcpServers\": {\n    \"open-meteo-mcp-server\": {\n      \"type\": \"stdio\",\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@cyanheads/open-meteo-mcp-server@latest\"],\n      \"env\": {\n        \"MCP_TRANSPORT_TYPE\": \"stdio\",\n        \"MCP_LOG_LEVEL\": \"info\"\n      }\n    }\n  }\n}\n```\n\nOr with Docker:\n\n```json\n{\n  \"mcpServers\": {\n    \"open-meteo-mcp-server\": {\n      \"type\": \"stdio\",\n      \"command\": \"docker\",\n      \"args\": [\"run\", \"-i\", \"--rm\", \"-e\", \"MCP_TRANSPORT_TYPE=stdio\", \"ghcr.io/cyanheads/open-meteo-mcp-server:latest\"]\n    }\n  }\n}\n```\n\nFor Streamable HTTP, set the transport and start the server:\n\n```sh\nMCP_TRANSPORT_TYPE=http MCP_HTTP_PORT=3010 bun run start:http\n# Server listens at http://localhost:3010/mcp\n```\n\n### Prerequisites\n\n- [Bun v1.4.0](https://bun.sh/) or higher (or Node.js v24+).\n- No API key required. Non-commercial use is free and keyless.\n- Commercial use requires [Open-Meteo's paid API tier](https://open-meteo.com/en/pricing).\n\n### Installation\n\n1. **Clone the repository:**\n\n```sh\ngit clone https://github.com/cyanheads/open-meteo-mcp-server.git\n```\n\n2. **Navigate into the directory:**\n\n```sh\ncd open-meteo-mcp-server\n```\n\n3. **Install dependencies:**\n\n```sh\nbun install\n```\n\n## Configuration\n\nEvery variable is optional.\n\n| Variable | Description | Default |\n|:---|:---|:---|\n| `OPEN_METEO_API_BASE_URL` | Forecast and elevation API base URL. | `https://api.open-meteo.com` |\n| `OPEN_METEO_ARCHIVE_BASE_URL` | Historical archive API base URL. | `https://archive-api.open-meteo.com` |\n| `OPEN_METEO_MARINE_BASE_URL` | Marine API base URL. | `https://marine-api.open-meteo.com` |\n| `OPEN_METEO_AIR_QUALITY_BASE_URL` | CAMS air quality API base URL. | `https://air-quality-api.open-meteo.com` |\n| `OPEN_METEO_GEOCODING_BASE_URL` | Geocoding API base URL. | `https://geocoding-api.open-meteo.com` |\n| `OPEN_METEO_ENSEMBLE_BASE_URL` | Ensemble API base URL. | `https://ensemble-api.open-meteo.com` |\n| `OPEN_METEO_FLOOD_BASE_URL` | GloFAS flood API base URL. | `https://flood-api.open-meteo.com` |\n| `OPEN_METEO_CLIMATE_BASE_URL` | CMIP6 climate API base URL. | `https://climate-api.open-meteo.com` |\n| `CANVAS_PROVIDER_TYPE` | `duckdb` stages over-budget weather results on a DataCanvas and enables the dataframe tools; `none` returns a bounded preview. | `none` |\n| `OPENMETEO_DATAFRAME_DROP_ENABLED` | `true` makes `openmeteo_dataframe_drop` callable; otherwise it is listed as disabled. | `false` |\n| `MCP_TRANSPORT_TYPE` | Transport: `stdio` or `http`. | `stdio` |\n| `MCP_HTTP_PORT` | HTTP server port. | `3010` |\n| `MCP_SESSION_MODE` | HTTP session mode: `stateless`, `stateful`, or `auto`. | `stateless` |\n| `MCP_AUTH_MODE` | Authentication: `none`, `jwt`, or `oauth`. | `none` |\n| `MCP_LOG_LEVEL` | Log level (`debug`, `info`, `notice`, `warning`, `error`). | `info` |\n| `LOGS_DIR` | Directory for log files (Node.js only). | `<project-root>/logs` |\n| `STORAGE_PROVIDER_TYPE` | Storage backend: `in-memory`, `filesystem`, `supabase`, `cloudflare-kv/r2/d1`. | `in-memory` |\n| `OTEL_ENABLED` | Enable [OpenTelemetry](https://github.com/cyanheads/mcp-ts-core/tree/main/docs/telemetry). | `false` |\n\nSee [`.env.example`](./.env.example) for the full list of optional overrides.\n\n## Running the server\n\n### Local development\n\n- **Build and run the production version:**\n\n  ```sh\n  # One-time build\n  bun run rebuild\n\n  # Run the built server\n  bun run start:http\n  # or\n  bun run start:stdio\n  ```\n\n- **Run checks and tests:**\n\n  ```sh\n  bun run devcheck  # Lint, format, typecheck, security\n  bun run test      # Vitest test suite\n  ```\n\n### Docker\n\n```sh\ndocker build -t open-meteo-mcp-server .\ndocker run --rm -p 3010:3010 open-meteo-mcp-server\n```\n\nThe Dockerfile defaults to HTTP transport, stateless session mode, and logs to `/var/log/open-meteo-mcp-server`. OpenTelemetry peer dependencies are installed by default — build with `--build-arg OTEL_ENABLED=false` to omit them.\n\n## Project structure\n\n| Directory | Purpose |\n|:---|:---|\n| `src/index.ts` | `createApp()` entry point — registers tools, initializes the Open-Meteo service and DataCanvas. |\n| `src/config` | Server-specific environment variable parsing and validation with Zod. |\n| `src/mcp-server/tools/definitions` | Tool definitions (`*.tool.ts`), one file per tool. |\n| `src/mcp-server/tools` | Shared tool helpers — model catalog, cadence validation, columnar reshape, spillover, response notices. |\n| `src/services/open-meteo` | HTTP client for the Open-Meteo APIs — retry, error classification, coverage-gap rejection. |\n| `src/services/canvas-accessor.ts` | DataCanvas accessor shared by the spill-capable tools. |\n| `tests/` | Unit, integration, fuzz, and smoke tests. |\n\n## Development guide\n\nSee [`CLAUDE.md`](./CLAUDE.md) for development guidelines and architectural rules. The short version:\n\n- Handlers throw, framework catches — no `try/catch` in tool logic\n- Use `ctx.log` for request-scoped logging, `ctx.state` for tenant-scoped storage\n- Register new tools in the `tools[]` array in `src/index.ts`\n- Wrap external API calls: validate raw → normalize to domain type → return output schema; never fabricate missing fields\n\n## Attribution\n\nWeather data by [Open-Meteo.com](https://open-meteo.com/), licensed [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/).\n\n## Contributing\n\nIssues are welcome. Run checks and tests before submitting:\n\n```sh\nbun run devcheck\nbun run test\n```\n\n## License\n\nApache-2.0 — see [LICENSE](LICENSE) for details.\n","readmeFilename":"README.md"}