Back to Directory/Developer Tools

io.github.jocarrd/aemet-mcp

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

Developer ToolsTypeScriptv0.3.2

aemet-client monorepo

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

PackageDescriptionnpm
aemet-clientTyped TypeScript SDK + CLI for AEMET OpenData. Used in production at snowy.es.npm version
aemet-mcpModel Context Protocol server: plug AEMET into Claude Desktop, Cursor, Windsurf or any MCP client. Forecasts, warnings, live observations, climate history and beach forecasts. Runs locally over stdio.npm version

Quick links

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 AEMET_API_KEY is set. CI runs it behind a repository secret.

Release

  • aemet-client is released by pushing a tag v<x.y.z> or aemet-client-v<x.y.z>. The release workflow checks the tag matches packages/aemet-client/package.json before publishing to npm via Trusted Publishing (OIDC, no token).
  • aemet-mcp is released by pushing a tag aemet-mcp-v<x.y.z> using the same Trusted Publishing setup. pnpm publish rewrites the workspace:^ dependency on aemet-client to a real semver range.

See CONTRIBUTING.md for development guidelines.

License

MIT © Jorge Carrera

Installation

Source-derived launch command. Check the maintainer’s required arguments and credentials before running:

bash
npx -y aemet-mcp

Set up in your AI client

Merge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.

json
{
  "mcpServers": {
    "io-github-jocarrd-aemet-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "aemet-mcp"
      ]
    }
  }
}

Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.

Claude Desktop setup reference

Package

aemet-mcpnpm

Compatible MCP Clients

io.github.jocarrd/aemet-mcp works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.

  • Claude Desktop~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.
  • Cursor~/.cursor/mcp.jsonRestart Cursor for changes to take effect.
  • VS Code.vscode/mcp.jsonReload VS Code window for changes to take effect.
  • Windsurf~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect.
  • Claude Code.mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.

Learn More