Skip to main content
Glama

Weather MCP

Un servidor FastMCP que proporciona datos meteorológicos de Open-Meteo y muestra un panel meteorológico interactivo a través de MCP Apps.

Panel de Weather MCP

Características

  • Buscar ubicaciones por ciudad o nombre de lugar

  • Obtener condiciones actuales y hasta 16 días de pronóstico

  • Cambiar entre Celsius y Fahrenheit

  • Mostrar descripciones meteorológicas y símbolos de condiciones

  • Almacenar en caché las respuestas de ubicación y pronóstico durante cinco minutos

  • Renderizar el panel directamente dentro de hosts MCP compatibles

Related MCP server: bridgemcp-server-weather

Requisitos

  • Python 3.14+

  • uv

  • Un host MCP con soporte para MCP Apps para el panel interactivo

Configuración

Instala las dependencias del proyecto:

uv sync

No se requiere clave de API meteorológica para el uso normal no comercial de Open-Meteo.

Ejecutar el servidor

Ejecuta el servidor a través del transporte stdio predeterminado:

uv run python main.py

Inspecciona las herramientas registradas:

uv run fastmcp list main.py

Vista previa del panel

FastMCP incluye una vista previa local en el navegador para las herramientas de la aplicación:

uv run fastmcp dev apps main.py

Abre la URL local mostrada y selecciona weather_dashboard. El panel admite buscar otra ubicación y cambiar las unidades de temperatura.

Herramientas MCP

search_locations

Encuentra ubicaciones coincidentes y devuelve sus coordenadas, país, región y zona horaria.

get_weather

Obtén el clima actual y un pronóstico diario para una ubicación.

Argumentos:

  • location: Ciudad o nombre de lugar

  • forecast_days: Número de días de pronóstico de 1 a 16

  • temperature_unit: celsius o fahrenheit

weather_dashboard

Abre el panel meteorológico interactivo con los mismos argumentos meteorológicos.

Estructura del proyecto

main.py                         MCP server entry point
src/tools.py                    MCP tool registration and response shaping
src/services/weather_service.py Open-Meteo client and response cache
src/formatting.py               UI-friendly forecast formatting
src/dashboard.py                Prefab MCP App UI

Fuente de datos

Los datos meteorológicos los proporciona Open-Meteo, que combina pronósticos de múltiples servicios meteorológicos nacionales. Revisa los términos y licencias de Open-Meteo antes del despliegue comercial.

Available Tools

3 tools
get_weatherC

Get current conditions and a daily forecast.

ParametersJSON Schema
NameRequiredDescriptionDefault
locationYes
forecast_daysNo
temperature_unitNocelsius

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.4/5.0
Behavior2/5

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

无注释,描述未提及任何副作用、依赖或限制(如API密钥、数据来源)。描述仅概括功能,未披露行为细节。

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?

描述简短,无冗余信息,结构清晰。

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?

无输出schema,描述未说明返回数据格式(如JSON结构),也未提及可能的错误情况。整体信息量不足。

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

Parameters2/5

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

参数列表简单,但描述未解释每个参数的含义、格式或默认值的影响。例如,temperature_unit的可能值未说明。

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?

描述明确说明了工具的功能(获取当前天气和预报),但未指定返回值格式或用途。与兄弟工具(如搜索位置、天气仪表盘)的区分度一般。

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?

未说明何时使用此工具与何时使用其他工具(如天气仪表盘),也未提供任何使用前提或限制。

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

search_locationsC

Find weather locations matching a place name.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior1/5

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

No annotations are provided, and the description does not disclose any behavioral traits such as read-only nature, side effects, authentication requirements, or quota limits. The description is purely functional and lacks transparency about what the tool does beyond its immediate action.

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 with no unnecessary words or redundant information. It efficiently conveys the core purpose and the key input condition, making it highly focused and easy to parse.

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 simplicity of the tool (one parameter, no complex behavior), the description is fairly complete. However, it does not mention the return format or the nature of matched locations (e.g., list vs. single), though an output schema exists which could compensate. The lack of any behavioral or edge-case details keeps it at an average level.

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

Parameters2/5

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

The schema provides only the parameter name and type (query: string) with no description. The description adds minimal meaning by indicating that the query is a 'place name', but it does not clarify constraints, formatting, or expected input patterns. Since schema coverage is 0%, this is insufficient.

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 action ('Find') and the resource ('weather locations') with a specific criterion ('matching a place name'), which distinguishes it from sibling tools like get_weather that likely retrieve weather for a given location.

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 such as get_weather or weather_dashboard. It does not mention any conditions, prerequisites, or typical use cases, leaving the agent to infer usage solely from the purpose.

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

weather_dashboardC

Show an interactive weather dashboard with location and unit controls.

ParametersJSON Schema
NameRequiredDescriptionDefault
locationYes
forecast_daysNo
temperature_unitNocelsius

TDQS

C2.9/5.0
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. The description does not mention any side effects, data persistence, or interactive behavior details. It does not state whether the dashboard is read-only, whether it requires network access, or what happens with the controls. For a tool that likely involves UI rendering, more transparency about its behavior would be expected.

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 a single sentence, concise and front-loaded with the main purpose. It is appropriately sized for a simple tool, though it could benefit from a bit more detail without becoming verbose. The structure is clear and easy to parse.

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 tool's complexity (3 parameters, no output schema, no annotations), the description is incomplete. It does not explain the return value or the interactive nature of the dashboard, nor does it provide enough context for the agent to know what to expect. The sibling tools suggest a weather-related context, but the description alone is insufficient for a complete understanding.

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

Parameters2/5

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

Schema description coverage is 0%, meaning the description must compensate for the lack of parameter documentation. The description mentions 'location and unit controls' which maps to 'location' and 'temperature_unit', but it does not explain 'forecast_days' or provide any additional meaning beyond the schema. The description adds minimal value over the schema, and with 0% coverage, it fails to adequately explain the 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 tool's purpose: to show an interactive weather dashboard with location and unit controls. It uses a specific verb ('show') and resource ('interactive weather dashboard'), and it distinguishes itself from siblings like 'get_weather' by emphasizing the interactive dashboard aspect. However, it could be more explicit about how it differs from 'get_weather'.

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 by mentioning location and unit controls, but it does not explicitly state when to use this tool versus alternatives like 'get_weather' or 'search_locations'. There is no guidance on prerequisites or scenarios where this tool is preferred. The context is clear but lacks explicit exclusions or alternative recommendations.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 3 tool updatesv0.1.0
    • First observedget_weather
    • First observedsearch_locations
    • First observedweather_dashboard

TDQS

B3.1/5.0

Scored across 3 tools

Disambiguation5/5

Each tool has a distinct purpose: location search, weather data retrieval, and an interactive dashboard. No overlap or ambiguity in their functions.

Naming Consistency4/5

Two tools follow the verb_noun pattern (search_locations, get_weather), but weather_dashboard breaks the pattern by leading with a noun. This is a minor deviation that doesn't cause confusion.

Tool Count4/5

Three tools is lean but appropriately scoped for a weather server. It covers the essential workflows without unnecessary bloat.

Completeness4/5

The core workflow of searching locations and getting weather is covered. Missing advanced features like alerts or historical data, but these are not critical for a basic weather service.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Provides real-time weather updates and city geocoding by integrating the Nominatim and Open-Meteo APIs. It enables users to retrieve current weather conditions for any location through natural language queries in MCP-compatible clients.
    19 npm
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    Provides weather data including current conditions, forecasts, and summaries via Open-Meteo with no API key required, enabling natural language queries through an MCP interface.
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    MCP server for worldwide weather data, using high-resolution GeoSphere Austria data for the Alpine region and Open-Meteo elsewhere. Provides current conditions, hourly forecasts, and daily outlooks with compact emoji-markdown output.
    4
    76 PyPI
    1
    MIT