KNMI Weather MCP
KNMI 날씨 MCP
KNMI(네덜란드 왕립 기상청) 기상 관측소의 실시간 날씨 데이터를 제공하는 FastMCP 서버입니다. 이 애플리케이션은 네덜란드 내 어느 위치에서든 가장 가까운 기상 관측소의 최근 10분 측정값을 가져옵니다.
특징
네덜란드의 어느 위치에 대한 날씨 데이터를 받으세요
가장 가까운 KNMI 기상 관측소를 자동으로 찾습니다.
다음을 포함한 실시간 측정을 제공합니다.
온도
습기
풍속 및 풍향
강수량
시계
공기압
날씨 상황에 대한 자연어 해석
위치 검색 기능
자세한 로깅
Related MCP server: mcp-server-weather-cuhksz
필수 조건
Python 3.10 이상
KNMI API 키( KNMI 데이터 플랫폼 에서 하나 받음)
uv패키지 관리자
설치
저장소를 복제합니다.
지엑스피1
프로젝트 루트에
.env파일을 만듭니다.KNMI_API_KEY=your_api_key_here
서버 실행
Claude AI 사용
Claude AI와 함께 이 애플리케이션을 사용하려면 프로젝트 폴더에서 다음 명령을 실행하세요.
uv run fastmcp install src/knmi_weather_mcp/server.py이렇게 하면 Claude 구성 파일(일반적으로 ~/Library/Application Support/Claude/claude_desktop_config.json 에 위치)에 다음 구성이 추가됩니다.
{
"KNMI Weather": {
"command": "uv",
"args": [
"run",
"--with",
"fastmcp",
"--with",
"httpx",
"--with",
"netCDF4",
"--with",
"numpy",
"--with",
"pandas",
"--with",
"pydantic",
"--with",
"python-dotenv",
"--with",
"xarray",
"fastmcp",
"run",
"/Users/<username>/<git location>/knmi-mcp/src/knmi_weather_mcp/server.py"
]
}
}참고: 다음과 같은 오류가 표시되는 경우:
spawn uv ENOENTuv 명령을 uv 명령의 전체 경로로 바꾸세요. *nix 시스템에서는 which uv 명령을 사용하여 찾을 수 있습니다.
수동 실행
개발용 또는 단독 사용용:
uv run fastmcp run src/knmi_weather_mcp/server.py사용 가능한 도구
1. 오늘 날씨는 어때요?
네덜란드 내 모든 지역의 현재 날씨 상황에 대한 자연어 해석을 받아보세요.
예:
await what_is_the_weather_like_in("Amsterdam")2. 위치_날씨 가져오기
특정 지역의 원시 날씨 데이터를 가져옵니다.
예:
await get_location_weather("Rotterdam")3. 검색 위치
네덜란드의 위치를 검색하세요.
예:
await search_location("Utrecht")4. 가장 가까운 역 찾기
주어진 좌표에 가장 가까운 KNMI 기상 관측소를 찾아보세요.
예:
await get_nearest_station(52.3676, 4.9041)벌채 반출
애플리케이션 로그는 logs/knmi_weather.log 파일에 저장되어 다음에 대한 자세한 정보를 제공합니다.
API 요청 및 응답
날씨 데이터 처리
오류 메시지
디버그 정보
데이터 소스
이 애플리케이션은 KNMI 데이터 플랫폼 API를 사용하여 네덜란드의 모든 KNMI 기상 관측소에서 10분 간격 측정값을 제공하는 "Actuele10mindataKNMIstations" 데이터 세트에서 데이터를 가져옵니다.
오류 처리
이 애플리케이션에는 다음에 대한 강력한 오류 처리 기능이 포함되어 있습니다.
잘못된 위치
API 인증 문제
네트워크 문제
데이터 구문 분석 오류
측정 누락
Available Tools
4 toolsget_location_weatherC
Get current weather data for a location
| Name | Required | Description | Default |
|---|---|---|---|
| location | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must convey behavioral traits. It only states it gets weather data, but omits details like side effects (none assumed), rate limits, or data freshness. The lack of any behavioral disclosure beyond the basic operation is a gap.
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, which is concise but severely under-specified. It does not earn its place by providing necessary detail; important information is omitted.
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?
For a simple tool with one parameter and no output schema, the description is still very incomplete. It does not explain what 'current weather data' includes, how the response is structured, or any other details needed for effective use.
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 single required parameter 'location' has no description in the schema (0% coverage), and the tool description does not clarify the expected format (e.g., city name, coordinates). This leaves the agent uncertain about how to provide the location value.
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 'Get current weather data for a location' clearly states the verb and resource. It is specific and straightforward, but does not differentiate from sibling tools like 'what_is_the_weather_like_in' which have similar purpose.
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?
No guidance is provided on when to use this tool versus alternatives. There is no mention of prerequisites, appropriate contexts, or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_nearest_stationB
Find the nearest KNMI weather station to given coordinates
Args:
latitude: Latitude in degrees
longitude: Longitude in degrees
| Name | Required | Description | Default |
|---|---|---|---|
| latitude | Yes | ||
| longitude | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full responsibility for behavioral disclosure. It only states what the tool does with no details on return format, error handling, or constraints (e.g., coordinate ranges, station selection logic).
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 concise and front-loaded with a one-sentence purpose followed by a clear Args section. Every element is necessary with no 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?
For a simple tool with 2 parameters and no output schema, the description covers the basic operation. However, it lacks details about return format or how the station is identified, which an agent would need to use the result.
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?
With 0% schema description coverage, the description adds some meaning by stating 'Latitude in degrees' and 'Longitude in degrees', but this is minimal. The schema already has titles; the description just adds units, which is basic.
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 finds the nearest KNMI weather station to given coordinates, using the verb 'Find' and specifying the resource. It distinguishes from siblings like get_location_weather which retrieves weather data, not station information.
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. It does not mention prerequisites, limitations, or scenarios where a sibling tool would be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_locationC
Search for locations in the Netherlands
Args:
query: Search term for location
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full responsibility. It mentions 'Search' (implying read-only) but offers no details on behavior like pagination, result limits, or response structure. This leaves the agent guessing about side effects or constraints.
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 very short (two sentences) but minimally structured with an Args section. While concise, the brevity comes at the cost of informativeness, and the docstring format is acceptable but not exemplary.
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 single parameter, lack of output schema, and no annotations, the description should cover usage context. It does not explain what the search returns (e.g., locations, coordinates) or any limitations, making it incomplete for effective tool invocation.
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?
With 0% schema description coverage, the description must compensate. It merely paraphrases the parameter as 'search term for location' without adding format, examples, or constraints beyond the schema, which already lists 'query' as a string.
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 searches for locations in the Netherlands, specifying the verb 'Search' and the resource 'locations'. However, it does not differentiate from sibling tools like get_location_weather or what_is_the_weather_like_in, which could also involve location queries.
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?
There is no guidance on when to use this tool versus its siblings, nor any exclusions or prerequisites. The description simply restates the function without context on alternatives or scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
what_is_the_weather_like_inB
Get and interpret weather data for a location in the Netherlands
Args:
location: City or place name in the Netherlands
Returns:
A natural language interpretation of the current weather conditions
| Name | Required | Description | Default |
|---|---|---|---|
| location | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral traits. It states the tool returns a natural language interpretation, which is helpful, but it omits critical details like whether the call is read-only, required permissions, or any side effects. The description is basic and lacks transparency beyond the immediate function.
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 concise, consisting of four short lines that front-load the main purpose. It avoids unnecessary words and is well-structured with an Args section. The brevity is appropriate for a simple tool, though it could be more structured with bullet points.
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 has only one parameter, no output schema, and no annotations, the description covers the essential aspects: what it does, the input (location), and the output (natural language interpretation). It also specifies the geographic scope. While it could mention error handling or rate limits, for a simple weather tool the completeness is sufficient.
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 input schema only provides the parameter name and type (string). The description adds meaningful context: 'location: City or place name in the Netherlands' specifies the format and geographic scope. This compensates for the 0% schema description coverage and helps the agent understand the expected input.
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 gets and interprets weather data for a location in the Netherlands. The verb 'get and interpret' combined with the resource 'weather data' makes the purpose specific. It distinguishes from siblings like 'get_location_weather' by emphasizing interpretation and geographic scope, though the difference is not explicitly clarified.
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 does not provide any guidance on when to use this tool versus alternatives such as 'get_location_weather'. No conditions for use or exclusions are mentioned. The phrase 'for a location in the Netherlands' implies geographic limitation but does not address when to choose this over sibling tools.
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.
4 tool updates
v1.0.0- First observed
get_location_weather - First observed
get_nearest_station - First observed
search_location - First observed
what_is_the_weather_like_in
TDQS
Scored across 4 tools
Tools are mostly distinct: search_location and get_nearest_station are clearly supporting, but get_location_weather and what_is_the_weather_like_in both provide current weather, albeit in different formats (data vs. natural language). This overlap could cause misselection.
Three tools follow verb_noun pattern (get_location_weather, get_nearest_station, search_location), but what_is_the_weather_like_in deviates entirely into a conversational question, breaking consistency.
With 4 tools, the server is well-scoped for a focused weather service covering location search, station lookup, and current conditions. Each tool serves a clear purpose without being excessive.
The tool set covers location search and current weather but lacks forecast, historical data, or station metadata. The domain of weather for the Netherlands has notable gaps that could hinder some agent tasks.
Maintenance
Related MCP Connectors
MCP server for weather with reasoning — umbrella advice, outdoor checks, city comparisons.
Hosted MCP server for Xweather weather data: conditions, forecasts, alerts, and more.
An MCP server for weather information by @kulybaba
An MCP server for weather information by @kulybaba
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceAn MCP server that provides real-time weather data, hourly forecasts, and daily summaries using the free Open-Meteo API with no API key required. It enables users to search for weather conditions by specific coordinates or city names across multiple measurement units.2MIT
- AlicenseNot gradedqualityDmaintenanceA FastMCP server that provides weather-related tools using the QWeather API, enabling language models to query real-time weather, forecasts, warnings, and indices.MIT
- AlicenseNot gradedqualityDmaintenanceMCP Server for global weather, forecasts, air quality, and climate data using Open-Meteo, no API key required.17 PyPIMIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server providing AI-powered weather tools via Google Generative AI, enabling real-time weather data retrieval through natural language queries.MIT