Tools for working with AEMET OpenData, the public API of Spain's State Meteorological Agency.
| Package | Description | npm |
|---|---|---|
aemet-client |
Typed TypeScript SDK + CLI for AEMET OpenData. Used in production at snowy.es. | |
aemet-mcp |
Model Context Protocol server: plug AEMET into Claude Desktop, Cursor, Windsurf or any MCP client. Runs locally over stdio. |
- Just want to use AEMET from code? →
packages/aemet-client/README.md - Want your LLM to answer Spanish weather questions? →
packages/aemet-mcp/README.md - Spanish docs →
packages/aemet-client/README.es.md
Requires Node.js ≥ 20.18 and pnpm ≥ 10.
pnpm install
pnpm -r build
pnpm -r test
pnpm -r typecheck
pnpm lintTo work on a single package:
pnpm --filter aemet-client test
pnpm --filter aemet-mcp devThe E2E suite (pnpm --filter aemet-client test:e2e) hits the real AEMET
API and is skipped unless AEMET_API_KEY is set. CI runs it behind a
repository secret.
aemet-clientis released by pushing a tagv<x.y.z>oraemet-client-v<x.y.z>. The release workflow checks the tag matchespackages/aemet-client/package.jsonbefore publishing to npm via Trusted Publishing (OIDC, no token).aemet-mcpis released by pushing a tagaemet-mcp-v<x.y.z>using the same Trusted Publishing setup.pnpm publishrewrites theworkspace:^dependency onaemet-clientto a real semver range.
See CONTRIBUTING.md for development guidelines.
MIT © Jorge Carrera