Mmcp.market

Aemet MCP server

by jocarrd·io.github.jocarrd/aemet-mcp·v0.3.0

MCP server for AEMET: Spain's official forecasts, warnings, observations and climate data.

B83/100grade B
What users say
No reviews yet
Be the first
Safety scan
B83/100

full report

Adoption
Growing

1 stars227 downloads/wk

Reviews

Write one

Nobody has reviewed Aemet yet.

If you have run it, two minutes of your experience saves the next person an afternoon.

Aemet tools (8)

write = sends, deletes, buys or posts

Read from the package source without running it. The installed server may list more.

  • get_air_quality

    Returns the latest reading of AEMET's background pollution network (EMEP/VAG/CAMP): 13 rural reference stations that measure the regional baseline of O3, NO, NO2, SO2 and PM10, plus temperature, humidity, pressure, wind, radiation and precipitation. This is BACKGROUND pollution, measured far from towns and roads on purpose. It does NOT answer 'how is the air in Madrid/Barcelona today': urban air q

  • get_beach_forecast

    Returns the AEMET beach forecast for the next three days: sky, wind and waves for morning and afternoon, plus maximum temperature, water temperature, thermal sensation and maximum UV index. Covers the 591 beaches AEMET forecasts during the bathing season. Accepts a beach name (accents optional), optionally narrowed by municipality, or the 7-digit AEMET beach code.

  • get_climate_history

    Finds the AEMET climatological station closest to the requested location and returns its measured history. mode='range' returns daily records (temperature, precipitation, wind, humidity, sunshine) between two dates; AEMET serves at most 6 months (186 days) per call, so longer histories need several calls. Ranges longer than 31 days are condensed into one line per month (mean max/min, total precipi

  • get_forecast

    Returns the AEMET forecast for any of Spain's 8000+ municipalities. Accepts a name (with or without accents) or INE code. Daily granularity returns temperature min/max, sky state, precipitation probability and wind for each day. Hourly returns the next ~40h.

  • get_maritime_forecast

    Returns the AEMET maritime bulletin for a sea area: sea state, wind, visibility, warnings and the validity period. Two products are covered: coastal waters (8 bulletins, one per stretch of the Spanish coast, each split into per-province zones and carrying the marine warnings) and high seas (3 bulletins covering the Atlantic north of 30N, the Atlantic south of 35N and the Mediterranean). Areas can

  • get_mountain_forecast
  • get_nearest_observation

    Finds the AEMET weather station closest to the requested location and returns its most recent reading (temperature, humidity, wind, precipitation, pressure). Useful for 'what's the weather right now' style questions.

  • get_warnings

    Returns the most recent CAP (Common Alerting Protocol) weather warnings issued by AEMET for the given autonomous community, or for the whole country ('esp'). Severity follows the CAP standard: Minor, Moderate, Severe, Extreme.

Public scan report

scanner v0.1.5 · 2026-09-19 · same rubric, same numbers if you re-run it

no findings
  • Code scan5 source files scanned25/25
  • Live reliabilityno gateway calls yet and no remote to proben/a
  • Tool poisoningtools not inspected (local package is not executed); not countedn/a
  • Auth qualitystatic API keys via environment variables6/15
  • Maintenancelast push 3 days ago15/15
  • Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10
Overall 83/100. Components that don't apply are left out of the denominator. Any critical finding is an F.RubricAppeal a findingJSON

What the publisher says

From the Aemet repository's README, as published. We do not edit it. Read it on GitHub

aemet-client monorepo

Tools for working with AEMET OpenData, the public API of Spain's State Meteorological Agency.

Quick links

  • 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

Develop

Requires Node.js ≥ 20.18 and pnpm ≥ 10.

pnpm install
pnpm -r build
pnpm -r test
pnpm -r typecheck
pnpm lint

To work on a single package:

pnpm --filter aemet-client test
pnpm --filter aemet-mcp dev

The E2E suite (pnpm --filter aemet-client test:e2e) hits the real AEMET API and is skipped unless AEMETAPIKEY is set. CI runs it behind a repository secret.

Release

aemet-client-v. The release workflow checks the tag matches packages/aemet-client/package.json before publishing to npm via Trusted Publishing (OIDC, no token).

  • aemet-client is released by pushing a tag v or

using the same Trusted Publishing setup. pnpm publish rewrites the workspace:^ dependency on aemet-client to a real semver range.

  • aemet-mcp is released by pushing a tag aemet-mcp-v

See CONTRIBUTING.md for development guidelines.

License

MIT © Jorge Carrera

Nothing above is checked by us. What we check is on the safety report.

Install directly

Runs npx -y aemet-mcp on your machine. Read the scan report first; the gateway never runs local packages.

claude mcp add aemet-mcp -- npx -y aemet-mcp
Add to Cursor

Aemet: common questions

Is Aemet MCP server safe?
Mostly: it is graded B (83/100). Read the Aemet safety report
How do I install Aemet?
It runs on your machine. Copy the Claude Code, Claude Desktop or Cursor config from the install section.
Does Aemet need an API key?
Yes. The registry entry asks for AEMET_API_KEY.
Is Aemet maintained?
The last commit was 5 days ago (2026-09-16). The latest release is v0.3.0.

More from jocarrd