Skip to main content
Glama
rldona

aemet-mcp

by rldona

Server Quality Checklist

67%
Profile completionA complete profile improves this server's visibility in search results.
  • Latest release: v0.2.1

  • Disambiguation5/5

    Each tool targets a distinct weather data type: municipality lookup, daily forecast, hourly forecast, station observation, and weather warnings. There is no meaningful overlap between them, and the descriptions clarify the differences between daily and hourly forecasts.

    Naming Consistency4/5

    All tool names use Spanish snake_case, but the patterns vary: verb_noun (buscar_municipio), noun_adjective (prediccion_diaria, prediccion_horaria), noun_noun (observacion_estacion), and a single noun (avisos). Despite the mix, the naming is readable and consistently in Spanish.

    Tool Count5/5

    Five tools is well-scoped for a weather server covering search, forecasts (daily and hourly), current observations, and warnings. Each tool serves a distinct purpose without bloat.

    Completeness4/5

    The core AEMET API surface is covered: municipality search, both forecast granularities, station observations, and active warnings. Minor gap: no direct current-weather tool for a municipality (only station observations), but this is easily worked around using the search and observation tools.

  • Average 4/5 across 5 of 5 tools scored.

    See the Tool Scores section below for per-tool breakdowns.

    • No community issues in the last 6 months
    • 20 commits in the last 12 weeks
    • Last stable release on
    • No critical vulnerability alerts
    • No high-severity vulnerability alerts
    • No code scanning findings
    • CI is passing
  • This repository is licensed under MIT License.

  • This repository includes a README.md file.

  • No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.

    Tip: use the "Try in Browser" feature on the server page to seed initial usage.

  • Add a glama.json file to provide metadata about your server.

  • If you are the author, simply .

    If the server belongs to an organization, first add glama.json to the root of your repository:

    {
      "$schema": "https://glama.ai/mcp/schemas/server.json",
      "maintainers": [
        "your-github-username"
      ]
    }

    Then . Browse examples.

  • Add related servers to improve discoverability.

How to sync the server with GitHub?

Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.

To manually sync the server, click the "Sync Server" button in the MCP server admin interface.

How is the quality score calculated?

The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).

Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.

Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).

Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.

Tool Scores

  • Behavior3/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    No annotations are provided, so the description carries the burden. It discloses the delivered information (temperature, sky, precipitation, wind per hour) and the temporal scope (current and following days), but does not mention potential errors, data source, or limitations (e.g., limited to Spain, max 2 days). It is neither misleading nor overly opaque, but lacks deeper behavioral detail.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is a single, concise phrase that front-loads the core purpose ('Predicción meteorológica hora a hora') and includes the key variables. Every word adds value, and there is no redundancy or fluff.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness4/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    For a simple tool with 2 parameters and no output schema, the description covers the essential information: what it does, the geographical scope (Spanish municipality), and the forecast variables. It could be enhanced with a brief note on how it differs from 'prediccion_diaria' or that it covers up to 2 days (though that is in the schema). Overall, it is sufficiently complete for an agent to select and invoke the tool correctly.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The input schema provides descriptions for both parameters ('municipio' and 'dias') with 100% coverage. The tool description adds no extra parameter semantics beyond what the schema already offers. Since coverage is high, the baseline score of 3 is appropriate; the description does not compensate or add value.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states it provides hourly (hora a hora) meteorological forecasts for a Spanish municipality, listing the specific variables (temperature, sky, precipitation, wind). This distinguishes it from sibling tools like 'prediccion_diaria', which would be daily, and 'observacion_estacion', which is observational. The resource and granularity are explicit.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines3/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description implies usage for hourly forecasts, but does not explicitly state when to use it over siblings such as 'prediccion_diaria' or 'observacion_estacion'. It provides no exclusions or alternative recommendations. The schema does hint at using 'buscar_municipio' for ambiguous municipality names, but this is not in the tool description itself.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior3/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    No annotations are provided, so the description carries the disclosure burden. It explains input options (station name or idema) and the default to Madrid-Retiro, which is useful. However, it does not disclose error behavior, data availability, or the response format.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    Two sentences that are both informative and efficiently worded; no filler words.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness4/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    For a single-optional-parameter read tool, the description covers what the tool returns and how to specify input. The lack of an output schema is partly mitigated by listing the data fields returned, though error/edge-case behavior is not mentioned.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The schema description fully covers the 'estacion' parameter (100% coverage), including examples and default. The tool description repeats the same information without adding new meaning, so baseline 3 is appropriate.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    States clearly that it returns the latest conventional meteorological observation from an AEMET station, listing measured variables (temperature, humidity, wind, precipitation, pressure). This distinguishes it from sibling forecast and warning tools.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines4/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    Provides clear context: use for the latest observation. It does not explicitly mention alternatives like prediccion_diaria or prediccion_horaria, but the distinction is evident from the description.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior3/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    With no annotations provided, the description carries the disclosure burden. It discloses the type of data returned (temperature, sky, precipitation, wind) and the scope (Spanish municipality, up to 7 days). It does not disclose error handling, data source, or update frequency, but for a read-only forecast tool this is acceptable, though not rich.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is a single, concise sentence that front-loads the core purpose and key output variables. It is appropriately sized and contains no waste.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness4/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    The description covers the main return values and the scope, while the schema provides detailed parameter semantics. Although there is no output schema, the description's enumeration of output variables (temperatura, estado del cielo, precipitación, viento) gives a clear picture of what to expect. It lacks explicit mention of response structure, but this is not critical for a straightforward forecast tool.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The input schema covers 100% of parameters with detailed descriptions, including examples and guidance for 'municipio' and the 1-7 range for 'dias'. The description's mention of 'hasta 7 días' and 'municipio español' adds no additional meaning beyond what the schema already provides.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the tool provides a daily weather forecast for a Spanish municipality, including specific variables (max/min temperature, sky condition, precipitation probability, and wind). The word 'diaria' (daily) and the listed variables distinguish it from siblings like prediccion_horaria and observacion_estacion.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines4/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description implies usage for daily forecasts up to 7 days, and the 'diaria' label makes the temporal scope clear. The parameter schema explicitly advises using buscar_municipio for ambiguous municipality names, which is a useful guideline. However, the description itself does not directly mention when to choose this tool over prediccion_horaria or other alternatives.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior3/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    No annotations are provided, so the description must carry behavioral transparency. It discloses that the match 'tolera acentos y mayúsculas' and that the return is a 5-digit code. However, it does not specify behavior for ambiguous names (multiple municipios with the same name) or no-match cases, which are realistic with Spanish municipalities. This is a partial disclosure, not fully transparent.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is three sentences, each with a distinct and essential piece of information: what it does, when to use it, and its matching tolerance. It is front-loaded with the core action and contains no filler or repetition. Every sentence earns its place, making it highly concise and well-structured.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness3/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    The tool is simple (one parameter, no output schema), so the description needs to cover purpose, usage, and return value. It does cover these, along with matching tolerance. However, it omits details about return format (e.g., plain string vs. structured object) and edge cases (duplicate names, not found). These gaps mean the description is not fully complete for an agent that may need to handle such situations.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The schema already covers the only parameter 'nombre' with a clear description and example, achieving 100% schema description coverage. The tool description adds the note about tolerance for accents/case, which is more about matching behavior than parameter format. Since the schema does the heavy lifting, a baseline score of 3 is appropriate.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the tool's purpose: 'Busca municipios españoles por nombre y devuelve su código INE de 5 dígitos.' It uses a specific verb ('busca'), a resource ('municipios españoles'), and the expected output ('código INE de 5 dígitos'). This distinguishes it from the sibling weather tools (prediccion_diaria, observacion_estacion, etc.) as a lookup/geocoding utility.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines5/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description provides explicit usage guidance: 'Úsala PRIMERO cuando el usuario dé un nombre de pueblo/ciudad, porque las predicciones necesitan el código INE.' This tells the agent when to invoke it (before any prediction tool) and why (the predictions depend on the INE code). It effectively implies the alternative tools but doesn't exclude when not to use it, which is acceptable given the clear priority context.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior4/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    With no annotations, the description carries the transparency burden. It discloses the data source (AEMET CAP), the types of warnings covered, and the return components, giving users a good sense of what to expect. It does not detail output shape or error behavior, but that is reasonable for a read-only query tool.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is a single, information-dense sentence that elegantly conveys the purpose, scope, output fields, and data source without redundancy.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness4/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Given the tool's simplicity (one parameter, no output schema), the description is quite complete: it specifies what is returned and the geographic scope. It falls just short of explicitly stating the exact return format, but the mentioned attributes sufficiently convey the expected data structure.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters3/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema description coverage is 100%, with the `area` parameter fully documented including examples and valid values. The tool description only adds that area refers to a Spanish autonomous community, which provides marginal additional context. Baseline 3 is appropriate.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly identifies the tool as providing current meteorological warnings for a Spanish autonomous community, including specific attributes like level, affected area, and period. This distinguishes it from sibling tools involving forecasts and observations.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines4/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description implies the tool is used to retrieve active warnings for an autonomous community, making the usage context clear. However, it does not explicitly mention alternatives or when not to use this tool, but the distinction from siblings is apparent.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

GitHub Badge

Glama performs regular codebase and documentation scans to:

  • Confirm that the MCP server is working as expected.
  • Confirm that there are no obvious security issues.
  • Evaluate tool definition quality.

Our badge communicates server capabilities, safety, and installation instructions.

Card Badge

aemet-mcp MCP server

Copy to your README.md:

Score Badge

aemet-mcp MCP server

Copy to your README.md:

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/rldona/aemet-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server