Weather MCP
Weather MCP
Open-Meteo에서 날씨 데이터를 제공하고 MCP Apps를 통해 대화형 날씨 대시보드를 렌더링하는 FastMCP 서버입니다.

기능
도시 또는 장소 이름으로 위치 검색
현재 기상 상태 및 최대 16일 예보 확인
섭씨와 화씨 간 전환
날씨 설명 및 상태 기호 표시
위치 및 예보 응답을 5분간 캐시
호환되는 MCP 호스트 내에서 대시보드를 직접 렌더링
Related MCP server: bridgemcp-server-weather
요구 사항
Python 3.14+
대화형 대시보드를 위한 MCP Apps 지원 MCP 호스트
설정
프로젝트 종속성을 설치합니다:
uv sync일반적인 비상업적 Open-Meteo 사용에는 날씨 API 키가 필요하지 않습니다.
서버 실행
기본 stdio 전송으로 서버를 실행합니다:
uv run python main.py등록된 도구를 확인합니다:
uv run fastmcp list main.py대시보드 미리보기
FastMCP에는 앱 도구용 로컬 브라우저 미리보기가 포함되어 있습니다:
uv run fastmcp dev apps main.py표시된 로컬 URL을 열고 weather_dashboard를 선택합니다. 대시보드는 다른 위치 검색 및 온도 단위 전환을 지원합니다.
MCP 도구
search_locations
일치하는 위치를 찾아 좌표, 국가, 지역 및 시간대를 반환합니다.
get_weather
위치의 현재 날씨와 일일 예보를 가져옵니다.
인수:
location: 도시 또는 장소 이름forecast_days: 1~16일의 예보 일수temperature_unit:celsius또는fahrenheit
weather_dashboard
동일한 날씨 인수로 대화형 날씨 대시보드를 엽니다.
프로젝트 구조
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데이터 소스
날씨 데이터는 여러 국가 기상 서비스의 예보를 결합하는 Open-Meteo에서 제공됩니다. 상업적 배포 전에 Open-Meteo 이용 약관 및 라이선스를 검토하세요.
Available Tools
3 toolsget_weatherC
Get current conditions and a daily forecast.
| Name | Required | Description | Default |
|---|---|---|---|
| location | Yes | ||
| forecast_days | No | ||
| temperature_unit | No | celsius |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| location | Yes | ||
| forecast_days | No | ||
| temperature_unit | No | celsius |
TDQS
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.
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.
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.
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.
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.
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.
3 tool updates
v0.1.0- First observed
get_weather - First observed
search_locations - First observed
weather_dashboard
TDQS
Scored across 3 tools
Each tool has a distinct purpose: location search, weather data retrieval, and an interactive dashboard. No overlap or ambiguity in their functions.
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.
Three tools is lean but appropriately scoped for a weather server. It covers the essential workflows without unnecessary bloat.
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
Related MCP Connectors
Weather MCP — wraps Open-Meteo API (free, no auth)
Hosted MCP server for Xweather weather data: conditions, forecasts, alerts, and more.
OpenWeather MCP — wraps the OpenWeatherMap API (openweathermap.org)
Global weather via Open-Meteo: forecast, historical, marine, air quality, geocoding, elevation.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceProvides 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-
- AlicenseNot gradedqualityCmaintenanceProvides 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
- AlicenseAqualityCmaintenanceMCP server for weather forecasts via Open-Meteo (no API key needed), providing current weather, hourly, and daily forecasts with geocoding support.3MIT
- AlicenseAqualityAmaintenanceMCP 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.476 PyPI1MIT