npm aemet-mcpstdioMITupdated 1mo ago
Tools for working with AEMET OpenData, the public API of Spain's State Meteorological Agency.
What can you do with aemet mcp?
aemet-client monorepo
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. |
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 AEMET_API_KEY is set. CI runs it behind a
repository secret.
Release
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.
License
MIT © Jorge Carrera
Install
Add aemet mcp to your client. Pick the one you use.
claude mcp add aemet-mcp -- npx -y aemet-mcpcodex mcp add aemet-mcp -- npx -y aemet-mcpamp mcp add aemet-mcp -- npx -y aemet-mcp{
"mcpServers": {
"aemet-mcp": {
"command": "npx",
"args": [
"-y",
"aemet-mcp"
]
}
}
}Add to `claude_desktop_config.json`, then restart Claude Desktop.
{
"mcpServers": {
"aemet-mcp": {
"command": "npx",
"args": [
"-y",
"aemet-mcp"
]
}
}
}Add to `~/.cursor/mcp.json`, or `.cursor/mcp.json` for a single project.
code --add-mcp '{"name":"aemet-mcp","command":"npx","args":["-y","aemet-mcp"]}'Or add the block manually to `.vscode/mcp.json` under `servers`.
{
"mcpServers": {
"aemet-mcp": {
"command": "npx",
"args": [
"-y",
"aemet-mcp"
]
}
}
}Add to `~/.codeium/windsurf/mcp_config.json`.
{
"mcpServers": {
"aemet-mcp": {
"command": "npx",
"args": [
"-y",
"aemet-mcp"
]
}
}
}Add to `cline_mcp_settings.json` via the MCP Servers panel.
{
"mcpServers": {
"aemet-mcp": {
"command": "npx",
"args": [
"-y",
"aemet-mcp"
]
}
}
}Add to `~/.gemini/settings.json`.
{
"mcpServers": {
"aemet-mcp": {
"type": "local",
"command": "npx",
"args": [
"-y",
"aemet-mcp"
],
"tools": [
"*"
]
}
}
}Add to `~/.copilot/mcp-config.json`, or run `/mcp add` inside the CLI.
{
"context_servers": {
"aemet-mcp": {
"command": {
"path": "npx",
"args": [
"-y",
"aemet-mcp"
]
}
}
}
}Add to your Zed `settings.json`.
npx -y aemet-mcpRun `goose configure`, choose **Add Extension → Command-line Extension**, and paste this command.
Score
39 / 100
Incomplete
- Documentation17/25
- Maintenance19/25
- Trust13/20
- Capability0/15
- Install experience12/15
- Documents what it does and how to connect
- Has a resolvable package or endpoint
- Exposes at least one tool, prompt or resource
- README has substantive content
- Includes a code example
- Documents its configuration
- Mentions credentials or security posture
- Last commit 30 days ago
- Has a release history
- Repository is not archived
- Licensed MIT
- Namespace verified in the official MCP registry
- Claimed by its owner
- Published under an organisation
- 0 tool(s) documented
- Provides prompt templates
- Provides resources
- 12 documented install method(s)
- Published to a package registry
- Offers a hosted endpoint — no local install
Version history
| Versions | Published |
|---|---|
| 0.1.2Latest | May 19, 2026 |