Skip to main content
Glama

Server Quality Checklist

58%
Profile completionA complete profile improves this server's visibility in search results.
  • Latest release: v1.0.0

  • Disambiguation5/5

    Each tool has a clearly distinct purpose: get_locations lists available cities, get_seismic_data provides seismic data, get_uv_forecast gives UV forecasts, get_weather_forecast offers weather forecasts, get_weather_stations shows station observations, and get_weather_warnings lists active warnings. There is no overlap or ambiguity in their functions.

    Naming Consistency5/5

    All tools follow a consistent verb_noun pattern with 'get_' as the prefix, followed by a descriptive noun (e.g., get_locations, get_seismic_data). This uniformity makes the tool set predictable and easy to understand.

    Tool Count5/5

    With 6 tools, the server is well-scoped for weather and seismic forecasting in Portugal. Each tool serves a specific, necessary function without redundancy, making the count appropriate for the domain.

    Completeness4/5

    The tool set covers key aspects like forecasts, warnings, seismic data, and station observations, but lacks update or delete operations, which are not essential for this read-only data domain. Minor gaps, such as historical data queries, exist but do not hinder core functionality.

  • Average 3.1/5 across 6 of 6 tools scored.

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

    • No community issues in the last 6 months
    • 0 commits in the last 12 weeks
    • No stable releases found
    • No critical vulnerability alerts
    • No high-severity vulnerability alerts
    • No code scanning findings
    • CI is passing
  • Add a LICENSE file by following GitHub's guide. Once GitHub recognizes the license, the system will automatically detect it within a few hours.

    If the license does not appear after some time, you can manually trigger a new scan using the MCP server admin interface.

    MCP servers without a LICENSE cannot be installed.

  • 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

  • Behavior2/5

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

    With no annotations provided, the description carries full burden for behavioral disclosure. It states the tool retrieves data ('obter') which implies a read operation, but doesn't specify whether this requires authentication, has rate limits, returns real-time vs historical data, or what format/volume the data comes in. The 'recentes' qualifier suggests temporal recency but doesn't define the timeframe. For a data retrieval tool with zero annotation coverage, this leaves significant behavioral questions unanswered.

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

    Conciseness4/5

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

    The description is extremely concise - a single three-word phrase in Portuguese. While appropriately brief, it could benefit from slightly more context about what 'recent' means or what format the data returns. However, it's front-loaded with the essential action and resource, with no wasted words or redundant information.

    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?

    Given the tool's moderate complexity (data retrieval with geographic filtering), no annotations, and no output schema, the description is minimally adequate. It identifies the resource and action but leaves unanswered questions about data format, recency definition, authentication needs, and error conditions. The schema covers the single parameter well, but overall completeness is limited for a tool that presumably returns structured seismic data.

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

    Parameters4/5

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

    The schema has 100% description coverage with a well-documented 'area' parameter including enum-like options and default value. The description doesn't add any parameter information beyond what's in the schema, but with only one parameter and complete schema documentation, this is acceptable. The baseline for 100% coverage with 1 parameter is appropriately high since the schema does all the work.

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

    Purpose3/5

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

    The description 'Obter dados sísmicos recentes' (Get recent seismic data) states a clear verb ('obter' - get) and resource ('dados sísmicos' - seismic data) with a temporal qualifier ('recentes' - recent). However, it doesn't distinguish this tool from potential siblings - while no direct seismic siblings exist, the agent might wonder about differences from geological or environmental data tools. The purpose is understandable but lacks differentiation context.

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

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives. There's no mention of what makes this seismic data tool appropriate compared to weather-related sibling tools (get_weather_forecast, get_weather_warnings) or location tools (get_locations). No prerequisites, constraints, or comparative context is provided to help the agent choose appropriately.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool gets a UV forecast but doesn't describe what that entails—e.g., whether it returns current or future data, if it requires location input (despite having 0 parameters), potential rate limits, or authentication needs. This leaves significant gaps in understanding how the tool behaves beyond its basic purpose.

    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, efficient sentence ('Obter previsão do índice UV') that directly states the tool's purpose without any waste. It's front-loaded and appropriately sized for a simple tool, making it easy to parse quickly. Every word earns its place by conveying the essential action and resource.

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

    Completeness2/5

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

    Given the lack of annotations and output schema, the description is incomplete for a tool that might have behavioral complexities. It doesn't explain what the UV forecast includes (e.g., values, times, locations) or how it differs from sibling tools like 'get_weather_forecast'. For a tool with potential contextual nuances among weather-related siblings, more detail is needed to ensure the agent can use it correctly.

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

    Parameters4/5

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

    The tool has 0 parameters, and schema description coverage is 100%, so there are no parameters to document. The description doesn't need to compensate for any parameter gaps, and it appropriately doesn't mention parameters. A baseline of 4 is applied since no parameter information is required, and the description doesn't add unnecessary details.

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

    Purpose3/5

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

    The description 'Obter previsão do índice UV' clearly states the action (obter/get) and resource (previsão do índice UV/UV index forecast), which is adequate. However, it doesn't differentiate from sibling tools like 'get_weather_forecast' or 'get_weather_warnings', leaving ambiguity about scope boundaries. The purpose is understandable but lacks specificity about what distinguishes this UV forecast from other weather-related tools.

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

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives. With siblings like 'get_weather_forecast' and 'get_weather_warnings', there's no indication of whether this tool is for a specific location, time frame, or detail level. It lacks explicit when/when-not instructions or named alternatives, leaving usage context entirely implicit.

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

  • Behavior2/5

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

    With no annotations provided, the description carries full burden for behavioral disclosure. It mentions the geographic scope ('Portugal') which is useful context, but doesn't describe what the forecast includes (e.g., temperature, precipitation), format of return data, rate limits, authentication needs, or error conditions. For a tool with no annotation coverage, this leaves significant behavioral gaps.

    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, efficient sentence in Portuguese that directly states the tool's purpose. There's no wasted language, repetition, or unnecessary elaboration. It's appropriately sized and front-loaded with the essential information.

    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?

    Given the tool's moderate complexity (2 parameters, no output schema, no annotations), the description is minimally adequate. It covers the basic purpose and geographic scope but lacks information about return values, error handling, and differentiation from sibling tools. With no output schema, the description should ideally explain what the forecast returns, but it doesn't.

    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 coverage is 100%, with both parameters well-documented in the schema. The description adds no parameter-specific information beyond what's in the schema. According to guidelines, when schema coverage is high (>80%), the baseline is 3 even with no param info in the description, which applies here.

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

    Purpose4/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: 'Obter previsão meteorológica para uma cidade específica em Portugal' (Get weather forecast for a specific city in Portugal). It specifies the verb ('Obter' - Get), resource ('previsão meteorológica' - weather forecast), and geographic scope ('Portugal'). However, it doesn't explicitly differentiate from siblings like 'get_weather_warnings' or 'get_uv_forecast' which suggests it's for general forecasts rather than specific warnings or UV data.

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

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'get_weather_warnings' for alerts, 'get_uv_forecast' for UV-specific data, or 'get_weather_stations' for current observations. There's no context about prerequisites, limitations, or typical use cases beyond the basic purpose.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries full burden. It states what the tool does but doesn't disclose behavioral traits such as data freshness (e.g., real-time vs. cached), rate limits, authentication needs, error handling, or output format. For a tool with zero annotation coverage, this leaves significant gaps in understanding how it behaves.

    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, efficient sentence in Portuguese that directly states the tool's function without unnecessary words. It's front-loaded with the core action and resource, making it easy to parse. There's zero waste or redundancy.

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

    Completeness2/5

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

    Given no annotations, no output schema, and a simple input schema, the description is incomplete. It lacks details on what the output contains (e.g., warning types, severity, locations), how data is structured, or any operational constraints. For a tool that likely returns dynamic warning data, more context is needed for effective use.

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

    Parameters4/5

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

    The tool has 0 parameters with 100% schema description coverage, so no parameter documentation is needed. The description appropriately doesn't discuss parameters, focusing instead on the tool's purpose. This meets the baseline for tools with no parameters, though it doesn't add extra semantic value beyond the empty schema.

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

    Purpose4/5

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

    The description clearly states the action ('Obter' meaning 'Get') and resource ('avisos meteorológicos ativos' meaning 'active weather warnings') with geographic scope ('em Portugal' meaning 'in Portugal'). It distinguishes from siblings like get_weather_forecast by focusing on warnings rather than forecasts. However, it doesn't specify if this includes all warning types or severity levels, keeping it from a perfect score.

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

    Usage Guidelines2/5

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

    No explicit guidance on when to use this tool versus alternatives like get_weather_forecast or get_seismic_data. The description implies usage for active warnings in Portugal, but doesn't clarify if this is for real-time alerts, planning purposes, or how it differs from forecast data. No exclusions or prerequisites are mentioned.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries the full burden of behavioral disclosure. While 'Listar todas' implies a read-only operation that returns all available locations, it doesn't specify format, pagination, rate limits, authentication needs, or what 'disponíveis para previsão' means operationally. For a tool with zero annotation coverage, this leaves significant behavioral gaps.

    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, efficient sentence in Portuguese that directly states what the tool does. It's appropriately sized for a simple listing tool with no parameters, with zero wasted words or redundant information. The structure is front-loaded with the core purpose.

    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?

    Given the tool's simplicity (0 parameters, no output schema, no annotations), the description is adequate but has clear gaps. It explains what the tool returns (locations available for forecasting) but doesn't specify format, scope limitations, or how it relates to sibling forecasting tools. For a basic listing tool, it meets minimum requirements but could better contextualize within the server's weather/seismic forecasting ecosystem.

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

    Parameters4/5

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

    The tool has 0 parameters with 100% schema description coverage (empty schema). The description appropriately doesn't discuss parameters since none exist. It earns a 4 because it correctly focuses on the tool's purpose without unnecessary parameter discussion, though it doesn't add value beyond the schema (which is fine for zero parameters).

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

    Purpose4/5

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

    The description clearly states the action ('Listar todas' - list all) and the resource ('cidades/locais disponíveis para previsão' - cities/locations available for forecasting), providing a specific verb+resource combination. However, it doesn't explicitly differentiate from sibling tools like 'get_weather_stations' which might also provide location-related data, so it doesn't reach the highest score.

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

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, context for usage, or how it differs from sibling tools like 'get_weather_stations' which might provide similar location data. The agent must infer usage from the name and description alone.

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

  • Behavior2/5

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

    With no annotations provided, the description carries the full burden of behavioral disclosure. It states it gets observation data but doesn't specify what that entails—e.g., real-time vs. historical data, data format, rate limits, or authentication needs. This leaves significant gaps in understanding the tool's behavior.

    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, efficient sentence that directly states the tool's purpose without any unnecessary words. It is front-loaded and appropriately sized for a simple tool, 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?

    Given the tool's simplicity (0 parameters, no output schema, no annotations), the description is minimally adequate. It states what data is retrieved but lacks details on data scope, format, or behavioral traits. For a basic read operation, this is acceptable but leaves room for improvement in context.

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

    Parameters4/5

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

    The tool has 0 parameters, and schema description coverage is 100%, so there are no parameters to document. The description doesn't need to add parameter semantics, but it implies fetching data without specifying any input constraints, which is appropriate for a parameterless tool, warranting a baseline score of 4.

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

    Purpose4/5

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

    The description clearly states the verb ('Obter' meaning 'Get') and resource ('dados de observação das estações meteorológicas' meaning 'observation data from weather stations'), making the purpose specific and understandable. However, it doesn't explicitly differentiate from sibling tools like 'get_weather_forecast' or 'get_weather_warnings', which is why it doesn't achieve a perfect score.

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

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives. It doesn't mention context, prerequisites, or exclusions, leaving the agent to infer usage based on the tool name alone without any explicit instructions.

    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

ipma-mcp-server MCP server

Copy to your README.md:

Score Badge

ipma-mcp-server 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/DiogoAzevedo03/ipma-mcp-server'

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