{
  "markdown": "# aemet-mcp\n\nMCP server that exposes public weather data from [AEMET](https://www.aemet.es)\n(Agencia Estatal de Meteorología, Spain) to AI agents and MCP-compatible\nclients.\n\nThree tools, well-typed, backed by AEMET's official OpenData API:\n\n- **`get_municipality_forecast`** — daily forecast (up to 7 days) for a\n  Spanish municipality, by INE code.\n- **`get_station_observation`** — last ~12h of hourly observation data\n  (temperature, wind, precipitation…) from a weather station.\n- **`get_weather_warnings`** — active weather warnings (CAP alerts) for a\n  region or all of Spain.\n\n## Prerequisites\n\n- Node.js 20+\n- A free AEMET OpenData API key: request one at\n  https://opendata.aemet.es/centrodedescargas/altaUsuario\n\n## Installation\n\nNo install needed — run it directly with `npx`:\n\n```bash\nnpx -y @mmillan76/aemet-mcp\n```\n\nThe server communicates over stdio, so it's meant to be launched by an MCP\nclient rather than run standalone in a terminal.\n\n## Configuration\n\nThe server reads the API key from the `AEMET_API_KEY` environment variable.\nIt exits with an error at startup if it's missing.\n\n### Claude Desktop / Claude Code\n\nAdd to your MCP client config (e.g. `claude_desktop_config.json`):\n\n```json\n{\n  \"mcpServers\": {\n    \"aemet\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@mmillan76/aemet-mcp\"],\n      \"env\": {\n        \"AEMET_API_KEY\": \"your-api-key-here\"\n      }\n    }\n  }\n}\n```\n\nAny other MCP client that supports stdio servers works the same way — point\nit at `npx -y @mmillan76/aemet-mcp` with `AEMET_API_KEY` set in the environment.\n\n## Local development\n\n```bash\ngit clone https://github.com/mmillan76/aemet-mcp.git\ncd aemet-mcp\nnpm install\ncp .env.example .env   # fill in AEMET_API_KEY\nnpm run build\n```\n\nTest tool calls interactively with the\n[MCP Inspector](https://github.com/modelcontextprotocol/inspector):\n\n```bash\nnpx @modelcontextprotocol/inspector node dist/index.js\n```\n\n(the Inspector reads `AEMET_API_KEY` from your shell environment, so export\nit — or source `.env` — before running the command above)\n\n## Notes on the AEMET API\n\nAEMET OpenData uses a two-step pattern on every endpoint: the first request\nreturns a JSON envelope with a `datos` URL, not the actual data; a second\nrequest to that URL returns the real payload. This server hides that detail\n— tools just return the final data. Rate limits apply per API key; if you\nhit them, the tool returns a clear error instead of retrying silently.\n\n## License\n\nMIT — see [LICENSE](./LICENSE).\n",
  "bytes": 2488,
  "sha": "ddd01b57290996d2b5a23557cb2177d918147b8b2335cff0e99739039a39d32a",
  "repo_slug": "mmillan76/aemet-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_mmillan76_aemet_mcp_4835aadf/readme"
}