JMA Data MCP
The JMA Data MCP server provides access to Japan Meteorological Agency (JMA) AMeDAS weather data via a Model Context Protocol server or CLI interface.
Station Management
Get details for a specific AMeDAS station by code
Search stations by name (Japanese, Kana, or English)
Find stations within a specified radius of given coordinates
Filter stations by type (A: Staffed, B: Special Regional, C: AMeDAS, D: Rain Gauge, E: Snow Depth, F: Regional Rain)
List all 1,286 AMeDAS stations with pagination support
Current Weather
Retrieve real-time observations (temperature, humidity, pressure, wind, precipitation, sunshine, snow depth) for a specific station or all stations
Get current weather from the nearest station to any latitude/longitude coordinates
Forecasts
Fetch 7-day weather forecasts for any Japanese prefecture (e.g., 'tokyo', 'osaka')
List all available prefecture codes supported for forecasting
Historical & Time Series Data
Access historical weather data for a specific past date/time (available for approximately the past 1–2 weeks)
Retrieve time series data over up to 168 hours (~1 week) at configurable intervals (10, 30, or 60 minutes) for trend analysis
It can be integrated as an MCP server with Claude Desktop, Cursor, or Cline, or used as a standalone CLI tool.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@JMA Data MCPwhat's the current temperature in Tokyo?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
JMA Data MCP
気象庁のAMeDAS観測・過去データと天気予報を検索するMCPサーバーです。全国1,286観測所のスナップショットを同梱し、地点名・座標から観測所を検索できます。
実行
Python 3.10+ と uv が必要です。
uvx --from git+https://github.com/koizumikento/jma-data-mcp.git@master jma-data-mcpMCPクライアント設定例:
{
"mcpServers": {
"jma-data": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/koizumikento/jma-data-mcp.git@master",
"jma-data-mcp"
]
}
}
}引数なし、または serve でMCPサーバーを起動します。station、weather、forecast、history サブコマンドからCLIとしても利用できます。
Related MCP server: Weatherapi Com MCP Server
MCP tools
観測所:
get_station_info、search_stations、search_nearby_stations、get_stations_of_type、list_stations観測・予報:
get_current_weather、get_weather_by_location、get_forecast、list_prefectures過去・時系列:
get_historical_weather、get_weather_time_series
過去データは気象庁側で提供される直近約1〜2週間、時系列は最大168時間を対象とします。
データ出典・利用条件
出典: 気象庁ホームページ
同梱する観測所表は気象庁公開データを本ソフトウェア用に加工しています。取得データを利用・再配布する際は、気象庁の利用規約と気象業務法上の制約を確認してください。本ソフトウェアは独自の予報を生成しません。
開発
uv sync --frozen
uv run ruff check .
uv run mypy jma_data_mcp
uv run pytest -m "not integration"
uv run python scripts/check_amedas_snapshot.py
uv build観測所スナップショットの差分チェックは週次でも実行されます。
License
Available Tools
11 toolsget_current_weatherB
Get current weather observation data from AMeDAS stations.
| Name | Required | Description | Default |
|---|---|---|---|
| station_code | No | Station code (e.g., '44132' for Tokyo). If not specified, returns data for all stations. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavior. It only states it returns 'current weather observation data' but does not mention update frequency, caching, authentication requirements, or if the data is real-time. This lacks necessary behavioral context.
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, front-loaded sentence that conveys the core purpose efficiently with no wasted words.
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 optional parameter and an output schema exists, the description could be more complete by explaining when to use this over similar tools or what data fields are returned. It is adequate but has clear gaps.
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 coverage is 100% as the only parameter (station_code) has a description in the schema. The description adds no additional meaning beyond what is already in the schema, so baseline score of 3 applies.
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 verb 'Get' and the specific resource 'current weather observation data from AMeDAS stations.' It distinguishes itself from siblings like get_forecast (which provides forecasts) and get_historical_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?
No guidance is provided on when to use this tool versus alternatives such as get_forecast or get_weather_by_location. The description does not mention specific contexts or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_forecastC
Get weather forecast for a prefecture.
| Name | Required | Description | Default |
|---|---|---|---|
| prefecture | Yes | Prefecture name in English (e.g., 'tokyo', 'osaka', 'hokkaido_sapporo') |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
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. It only states the basic operation without mentioning any side effects, authentication needs, or data freshness. The output schema exists but is not described, leaving agent uncertain about what is returned.
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, front-loaded sentence with no wasted words. However, it could be slightly more informative while remaining concise, so it scores 4 rather than 5.
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 annotations, and an output schema (not shown), the description is minimally adequate. It lacks detail about the forecast's contents or response format, but the presence of an output schema reduces the need for full explanation in the description.
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 coverage is 100% and the input schema already describes the 'prefecture' parameter with examples. The description adds no additional meaning beyond the schema, so it meets the baseline for high coverage.
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 verb 'Get', the resource 'weather forecast', and the scope 'for a prefecture'. It is specific enough to convey the tool's purpose, but it does not explicitly differentiate from sibling tools like 'get_current_weather' or 'get_historical_weather' which also deal with weather data.
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 any context, prerequisites, or exclusions, leaving the agent to infer usage without clear direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_historical_weatherB
Get historical weather data for a specific date and time.
Data is available for approximately the past 1-2 weeks.
| Name | Required | Description | Default |
|---|---|---|---|
| station_code | Yes | Station code (e.g., '44132' for Tokyo) | |
| target_datetime | Yes | Target datetime in ISO format (e.g., '2025-12-01T12:00:00') or 'YYYY-MM-DD HH:MM' format. Time is in JST. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
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 only states data range (past 1-2 weeks) but does not disclose whether the operation is read-only, if it requires special permissions, or any side effects. The description is insufficient for a tool with no annotations.
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 extremely concise with two short sentences. The first sentence immediately states the core purpose, and the second sentence adds a critical limitation. No wasted words.
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?
The tool has an output schema, so return value documentation is not required. However, the description lacks any mention of error conditions, rate limits, or additional behavioral context. Given the absence of annotations, the description should provide more completeness for a weather data retrieval tool.
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 coverage is 100%, with both parameters already described in the input schema. The description does not add any new information about parameter meaning or format beyond what the schema provides, so 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves historical weather data for a specific date and time, with a specific verb and resource. It mentions data availability (past 1-2 weeks), which distinguishes it from siblings like get_current_weather and get_forecast.
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 explicit guidance on when to use this tool versus alternatives or when not to use it. The data range hint is implicit but not actionable as a usage rule.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_station_infoA
Get AMeDAS station information by station code.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | Station code (e.g., '44132' for Tokyo) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Only states 'get information' without disclosing what fields or behaviors to expect. Minimal additional context.
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?
Single sentence, front-loaded with verb, no redundant words. Efficiently communicates purpose.
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 output schema exists and only one required parameter, description is sufficient for a simple lookup tool. No missing critical information.
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 coverage is 100%, but description adds an example code ('44132' for Tokyo), providing practical context beyond the schema definition.
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?
Clear verb ('Get'), specific resource ('AMeDAS station information'), and method ('by station code'). Distinct from sibling tools like get_current_weather or list_stations.
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 on when to use this tool versus alternatives like search_stations or get_stations_of_type. Usage is implied by parameter but lacks explicit context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_stations_of_typeB
Get all AMeDAS stations of a specific type.
| Name | Required | Description | Default |
|---|---|---|---|
| station_type | Yes | Station type - A (Staffed), B (Special Regional), C (AMeDAS), D (Rain Gauge), E (Snow Depth), F (Regional Rain) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It only states 'Get all' with no details on behavior like error handling, data freshness, or what happens with invalid types.
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?
Single sentence with no wasted words. Could be slightly expanded without losing conciseness.
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?
With an output schema present, description is minimally viable but lacks context on AMeDAS and usage hints relative to siblings.
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 coverage is 100% and parameter description is detailed. The tool description adds 'AMeDAS stations' context but doesn't significantly extend beyond schema.
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?
Description clearly states the action (get all stations) and the filter (specific type), and names the data source (AMeDAS). It differentiates from sibling tools like list_stations and search_nearby_stations.
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?
Implies usage context (filtering by type) but provides no explicit when-to-use or when-not-to-use guidance, nor mentions alternative tools like list_stations for unfiltered lists.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_weather_by_locationA
Get current weather from the nearest AMeDAS station to given coordinates.
| Name | Required | Description | Default |
|---|---|---|---|
| lat | Yes | Latitude in decimal degrees | |
| lon | Yes | Longitude in decimal degrees |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits such as what happens if no station is nearby, potential caching, rate limits, or side effects. The description only states the basic 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 a single, clear sentence that conveys the essential information without clutter. Every word is meaningful and earns its place.
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 presence of an output schema and well-defined parameters, the description provides the core purpose. However, it lacks usage guidelines and behavioral context for edge cases, leaving some gaps for an agent to fully understand when and how to invoke this tool.
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 already describes lat and lon with 100% coverage, but the description adds context that the tool uses these coordinates to find the nearest AMeDAS station, which explains the parameter purpose beyond the schema. This adds useful meaning.
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 verb 'Get', the resource 'current weather', and the method 'from the nearest AMeDAS station to given coordinates'. It effectively distinguishes from sibling tools like get_forecast or get_historical_weather by specifying 'current' and location-based retrieval via coordinates.
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 indicates when to use this tool (i.e., to get current weather from coordinates), but it does not provide guidance on when not to use it versus siblings like get_current_weather or search_nearby_stations. No alternatives or exclusion criteria are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_weather_time_seriesB
Get time series weather data for a station.
Useful for analyzing weather trends over hours or days.
| Name | Required | Description | Default |
|---|---|---|---|
| hours | No | Number of hours to fetch (default: 24, max: 168 for ~1 week) | |
| station_code | Yes | Station code (e.g., '44132' for Tokyo) | |
| interval_minutes | No | Interval between data points in minutes (10, 30, or 60) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It does not mention whether the operation is read-only, any authentication needs, or rate limits. It only restates information already in the schema.
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, with two short sentences that are front-loaded and contain no unnecessary information.
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 presence of an output schema, the description does not need to explain return values. However, it lacks usage guidance and behavioral transparency, making it minimally adequate.
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 100%, so the baseline is 3. The description adds no additional meaning beyond what the schema already provides for the three 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 it retrieves time series weather data for a station, using a specific verb and resource. It is distinguishable from siblings like get_current_weather and get_forecast, though it does not explicitly differentiate.
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 says it is 'useful for analyzing weather trends over hours or days,' which implies when to use it, but it does not provide explicit when-not or alternative tool references.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_prefecturesA
List all available prefecture codes for weather forecast.
Returns: Dictionary of prefecture names and their codes
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries full burden. It only states the return type (dictionary of names and codes) but does not disclose behavior such as whether it requires authentication, if the list is static or dynamic, or any side effects. More detail on the return structure or scope would improve transparency.
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?
Two sentences, no fluff. The purpose is stated upfront, and the return format is clearly described in the second sentence. Every word is essential.
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 tool with no parameters and a simple list output, the description is mostly complete. It specifies the output type. However, it could mention whether the list covers all regions or a specific country (implied by 'prefecture', likely Japan). The existence of an output schema helps, so this is not critical.
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 tool has zero parameters, so the schema fully covers input. The description adds value by specifying the output format (dictionary of names and codes), which is helpful for understanding what the tool returns. Based on guidelines, baseline is 4 for zero 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 verb 'list' and the resource 'all available prefecture codes for weather forecast'. It is specific and distinguishes from sibling tools which are weather data retrieval and station search.
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 on when to use this tool versus alternatives like getting weather by location or station info. The description does not mention prerequisites, typical workflow, or scenarios where this tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_stationsA
List all AMeDAS stations (1286 stations) with pagination.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of stations to return (default: 100) | |
| offset | No | Number of stations to skip (default: 0) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It mentions 'with pagination' and the total count, but lacks details on ordering (e.g., sorted by ID or name) or pagination behavior beyond what the schema provides (limit/offset). It does not describe side effects or performance traits.
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, well-structured sentence that conveys the essential purpose without any extraneous words. It is front-loaded with the key action and resource.
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 simple tool and presence of an output schema, the description adequately covers listing with pagination and total count. It could mention default ordering to be fully complete, but overall it covers the core functionality.
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 100%, so baseline is 3. The description adds no extra meaning beyond the schema, which already defines 'limit' and 'offset' with defaults. No new context about parameter usage or constraints is provided.
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 verb 'list', the resource 'all AMeDAS stations', and specifies the total count (1286) and pagination feature. It distinguishes from siblings like 'get_station_info' (single station) and 'search_stations' (search).
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 for listing all stations with pagination but provides no explicit guidance on when to use this tool versus siblings like 'search_stations' or 'get_stations_of_type'. No usage exclusions or alternatives are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_nearby_stationsA
Search AMeDAS stations within a radius from given coordinates.
| Name | Required | Description | Default |
|---|---|---|---|
| lat | Yes | Latitude in decimal degrees | |
| lon | Yes | Longitude in decimal degrees | |
| radius_km | No | Search radius in kilometers (default: 50) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description lacks information on edge cases like no results, data freshness, or result limitations, leaving agent unaware of behavioral traits.
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?
Single, front-loaded sentence with no extraneous words; highly concise and efficient.
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?
Description is adequate for a simple search tool with output schema present, but does not clarify return format or result details, relying on schema for completeness.
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 coverage is 100% with clear parameter descriptions; description adds no additional semantics beyond what schema already provides.
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?
Clearly specifies verb 'Search', resource 'AMeDAS stations', and scope 'within a radius from given coordinates', effectively distinguishing from sibling tools like list_stations.
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?
Usage is implied by the description, but no explicit guidance on when to use this tool versus alternatives such as search_stations or list_stations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_stationsB
Search AMeDAS stations by name (Japanese, Kana, or English).
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Station name to search |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must disclose behavioral traits. It does not mention case sensitivity, wildcard support, substring vs exact match, result limits, pagination, or error responses. The minimal description is insufficient for a tool that interacts with a data source.
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 one short sentence, highly concise. However, it may be too brief given the need for behavioral transparency. Still, it is well-structured and front-loaded.
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 simple single-parameter schema and presence of an output schema, the description provides the core functionality. However, missing usage guidelines and behavioral traits limit completeness, especially with multiple sibling tools that have overlapping purposes.
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 only parameter 'name' has a schema description 'Station name to search'. The tool description adds value by specifying the acceptable languages (Japanese, Kana, English), which is not captured in the schema. This provides meaningful guidance beyond the schema.
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 AMeDAS stations by name and specifies accepted languages (Japanese, Kana, or English). This distinguishes it from sibling tools like list_stations or search_nearby_stations.
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 given on when to use this tool versus alternatives such as list_stations, get_station_info, or search_nearby_stations. The description only states what it does, not when it should be preferred.
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. Dates show when Glama detected each change.
11 tool updates
v0.2.1- Changed
get_current_weather2 fields changed- added
Input schema / additionalPropertiesAdded value: +false - added
Input schema / properties / station_code / descriptionAdded value: +"Station code (e.g., '44132' for Tokyo).\n If not specified, returns data for all stations."
- Changed
get_forecast2 fields changed- added
Input schema / additionalPropertiesAdded value: +false - added
Input schema / properties / prefecture / descriptionAdded value: +"Prefecture name in English (e.g., 'tokyo', 'osaka', 'hokkaido_sapporo')"
- Changed
get_historical_weather3 fields changed- added
Input schema / additionalPropertiesAdded value: +false - added
Input schema / properties / station_code / descriptionAdded value: +"Station code (e.g., '44132' for Tokyo)" - added
Input schema / properties / target_datetime / descriptionAdded value: +"Target datetime in ISO format (e.g., '2025-12-01T12:00:00')\n or 'YYYY-MM-DD HH:MM' format. Time is in JST."
- Changed
get_station_info2 fields changed- added
Input schema / additionalPropertiesAdded value: +false - added
Input schema / properties / code / descriptionAdded value: +"Station code (e.g., '44132' for Tokyo)"
- Changed
get_stations_of_type2 fields changed- added
Input schema / additionalPropertiesAdded value: +false - added
Input schema / properties / station_type / descriptionAdded value: +"Station type - A (Staffed), B (Special Regional),\n C (AMeDAS), D (Rain Gauge), E (Snow Depth), F (Regional Rain)"
- Changed
get_weather_by_location3 fields changed- added
Input schema / additionalPropertiesAdded value: +false - added
Input schema / properties / lat / descriptionAdded value: +"Latitude in decimal degrees" - added
Input schema / properties / lon / descriptionAdded value: +"Longitude in decimal degrees"
- Changed
get_weather_time_series4 fields changed- added
Input schema / additionalPropertiesAdded value: +false - added
Input schema / properties / hours / descriptionAdded value: +"Number of hours to fetch (default: 24, max: 168 for ~1 week)" - added
Input schema / properties / interval_minutes / descriptionAdded value: +"Interval between data points in minutes (10, 30, or 60)" - added
Input schema / properties / station_code / descriptionAdded value: +"Station code (e.g., '44132' for Tokyo)"
- Changed
list_prefectures1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
list_stations3 fields changed- added
Input schema / additionalPropertiesAdded value: +false - added
Input schema / properties / limit / descriptionAdded value: +"Maximum number of stations to return (default: 100)" - added
Input schema / properties / offset / descriptionAdded value: +"Number of stations to skip (default: 0)"
- Changed
search_nearby_stations4 fields changed- added
Input schema / additionalPropertiesAdded value: +false - added
Input schema / properties / lat / descriptionAdded value: +"Latitude in decimal degrees" - added
Input schema / properties / lon / descriptionAdded value: +"Longitude in decimal degrees" - added
Input schema / properties / radius_km / descriptionAdded value: +"Search radius in kilometers (default: 50)"
- Changed
search_stations2 fields changed- added
Input schema / additionalPropertiesAdded value: +false - added
Input schema / properties / name / descriptionAdded value: +"Station name to search"
11 tool updates
- First observed
get_current_weather - First observed
get_forecast - First observed
get_historical_weather - First observed
get_station_info - First observed
get_stations_of_type - First observed
get_weather_by_location - First observed
get_weather_time_series - First observed
list_prefectures - First observed
list_stations - First observed
search_nearby_stations - First observed
search_stations
TDQS
Most tools have distinct purposes, but get_current_weather and get_weather_by_location both return current observations, differing only in how the station is specified, which could cause confusion. Similarly, get_historical_weather and get_weather_time_series overlap slightly. Descriptions help clarify, but some ambiguity remains.
All tool names follow a consistent verb_noun pattern with underscores (e.g., get_current_weather, list_prefectures, search_stations). Verbs are appropriate (get, list, search), and there is no mixing of naming conventions.
With 11 tools, the server covers station information, current weather, forecasts, historical data, and search capabilities. This is well-scoped for a weather data server, neither too many nor too few.
The tool surface covers station queries, current weather, forecasts by prefecture, historical data, and time series. Minor gaps include lack of forecast for specific coordinates (only prefecture) and absence of weather alerts/warnings, but core workflows are supported.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Global weather via Open-Meteo: forecast, ERA5 archive, marine, air quality, geocoding, elevation.
Weather data, forecast API, climate data, historical weather, alerts, agricultural & travel weather.
Meteostat MCP — historical weather from 11k+ stations (no auth)
17+ Japan MCP tools (weather/calendar v2/local-pack/enrich). x402 on Base, wallet-free trial.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceProvides comprehensive access to real-time weather data, forecasts, historical data, and weather alerts from the WeatherXM decentralized weather network worldwide.-
- AlicenseAqualityDmaintenanceProvides access to comprehensive weather data including real-time conditions, forecasts, historical weather, marine data, astronomy information, and weather alerts through the Weatherapi.com API.11MIT
- FlicenseAqualityDmaintenanceProvides access to Tokyo's WBGT (Wet Bulb Globe Temperature) heat index forecast and real-time data from multiple observation points using Japan's Ministry of the Environment official data for heat stroke prevention.3-
- AlicenseNot gradedqualityDmaintenanceProvides weather information for 110 cities across Japan with natural language support for location names in kanji, hiragana, and katakana. Retrieves current weather conditions and forecasts using OpenMeteo API through MCP-compliant tools.1MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/koizumikento/jma-data-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server