Skip to main content
Glama

Gachi Data API — Japan Station & Accessibility Data

Server Details

Deep, obscure Japanese station, accessibility & hazard data for AI agents. English-first.

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL
Repository
eng213035/gachi-data-api
GitHub Stars
1
Server Listing
gachi-data

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsA

Average 4.6/5 across 10 of 10 tools scored.

Server CoherenceA
Disambiguation3/5

Several tools overlap in function: get_active_alerts and get_station_alerts both return the same JMA alerts but with different input types, and get_municipality_context and get_station_context provide identical municipality data. However, the descriptions clarify the input differences, and other tools like get_toilet_by_city vs get_toilet_by_station are distinct enough.

Naming Consistency4/5

Most tools follow a consistent 'get_<noun>' pattern (get_active_alerts, get_municipality_context), but 'ping' and 'station_search' deviate from this convention. Still, the naming is largely predictable and readable.

Tool Count5/5

With 10 tools, the server is well-scoped for its purpose of station and accessibility data. Each tool serves a distinct function within the domain, and the count is within the ideal 3-15 range.

Completeness4/5

The tool surface covers the core workflows: discovery (station_search), station details (context, hazard, toilet), live alerts, and train status. Minor gaps exist such as the lack of a direct station info tool or the mention of 'search_ramen' which is not actually provided, but these are not critical.

Available Tools

10 tools
get_active_alertsA
Read-onlyIdempotent
Inspect

Live river flood forecasts and landslide alerts for Japan (JMA official). NOT general weather warnings (storm/heavy rain/snow) and NOT earthquakes. Covers JMA 指定河川洪水予報 (river flood forecast, levels 2–5) and 土砂災害警戒情報 (landslide warning), each with level, affected area, official summary and issue time. Optional area filters by 2-digit prefecture code (e.g. 13 = Tokyo) or a JMA forecast-area code. Relay of official facts — not a warning issued by this service, not a life-safety system.

ParametersJSON Schema
NameRequiredDescriptionDefault
areaNoOptional prefecture code (01–47, e.g. 13 = Tokyo) or JMA forecast-area code.

Output Schema

ParametersJSON Schema
NameRequiredDescription
countNoNumber of active alerts.
staleNoTrue if the snapshot is stale.
alertsNoActive JMA river-flood / landslide alerts with level, area, summary, issue time.
sourceNoSource label.
coverageNoWhat this feed covers — string or array of categories.
disclaimerNoRelay disclaimer (not a warning issued by this service).
fetched_atNoWhen the snapshot was fetched.
attributionNoData source(s), license and provenance — an object, or an array of sources.
Behavior4/5

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

Annotations already convey readOnly, openWorld, idempotent, and non-destructive behavior. The description adds valuable context about the data source (JMA official), the specific alert types covered, the fields returned (level, affected area, summary, issue time), and a disclaimer that it is not a life-safety system, going beyond the annotations.

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 concise and front-loaded with the core purpose. It uses four sentences, each adding value: purpose/exclusions, coverage details, parameter explanation, and a disclaimer. It is dense but not overly lengthy, with no redundant fluff.

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

Completeness5/5

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

Given the tool has one optional parameter, strong annotations, and an output schema, the description sufficiently covers the data source, alert types, returned fields, filtering option, and important caveats. This is complete for an AI agent to select and invoke the tool correctly.

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?

Schema description coverage is 100% for the single `area` parameter, so the baseline is 3. The tool description repeats the filter functionality and examples (13 = Tokyo) but adds little beyond the schema's own description, which already explains the parameter is optional and examples are given.

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 'Live river flood forecasts and landslide alerts for Japan (JMA official)' with explicit exclusions ('NOT general weather warnings... and NOT earthquakes'), distinguishing it from sibling tools like get_station_alerts. The verb 'get' plus specific resource and scope makes purpose unambiguous.

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

Usage Guidelines4/5

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

Provides clear context for when to use: it covers JMA river flood and landslide alerts, and explicitly excludes other warning types and earthquakes. It also describes the optional area filter and the service's role as a relay, not a life-safety system. However, it does not name alternative tools or state 'use this when...' beyond exclusions.

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

get_municipality_contextA
Read-onlyIdempotent
Inspect

Official Japanese government data for any municipality, one call — housing vacancy (2003–2023), nearest-station ridership trend, hazard categories, land prices, livability counts. No scores, no judgment — official values only. Accepts a 5-digit municipality code (13104) or an exact name (Shinjuku-ku / 新宿区).

ParametersJSON Schema
NameRequiredDescriptionDefault
fieldsNoOptional comma-separated subset: vacancy,ridership,population,hazard,land_price,livability.
name_or_codeYes5-digit 全国地方公共団体コード (e.g. 13104) or exact municipality name (Shinjuku-ku / 新宿区).

Output Schema

ParametersJSON Schema
NameRequiredDescription
hazardNoHazard categories.
vacancyNoHousing-vacancy counts (2003–2023).
ridershipNoNearest-station ridership trend.
land_priceNoPublished land prices near the centroid.
livabilityNoLivability counts.
populationNoPopulation / future estimate.
attributionNoData source(s), license and provenance — an object, or an array of sources.
municipalityNoResolved municipality + code.
hazard_disclaimerNoHazard usage disclaimer.
Behavior4/5

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

Annotations already cover readOnlyHint, idempotentHint, and destructiveHint. The description adds behavioral context beyond these: it promises 'official values only' with no judgment, indicates a single aggregated call ('one call'), and specifies a data range for vacancy. It does not discuss rate limits or pagination, but the output schema covers return structure.

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?

Three concise sentences, each serving a distinct purpose: scope/data categories, behavioral promise, and input format. No filler or redundancy, with key facts front-loaded.

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

Completeness5/5

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

Given an output schema exists and annotations cover safety, the description fully supports tool selection and invocation. It covers what the tool offers, how to specify the municipality, the optional fields concept, and the raw-data nature, making it complete for correct usage.

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?

Schema coverage is 100% and both parameters are well-described. The description adds useful semantic context by explaining what the data fields mean (e.g., vacancy years 2003–2023, nearest-station ridership trend) and gives input examples, although the examples duplicate the schema description. This enriches parameter understanding beyond the schema.

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 it provides official Japanese government data for municipalities, listing specific data categories (vacancy, ridership, hazard, land price, livability). It distinguishes itself from sibling station/toilet tools by focusing on municipality-level official data, and the 'No scores, no judgment' note clarifies its non-analytical nature.

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

Usage Guidelines4/5

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

The description gives strong context for when to use it: for official municipal data on multiple topics. It does not explicitly mention alternatives or when not to use it (e.g., for station-specific alerts), but the scope is clear enough given the sibling list.

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

get_public_toilet_by_cityA
Read-onlyIdempotent
Inspect

List public toilets in a Japanese municipality, with wheelchair / baby-seat / ostomate flags, address and coordinates. Covers 612 municipalities nationwide (large cities capped at the top 50 results). Municipality names accept Japanese (e.g. 那覇市, 渋谷区); prefixing the prefecture improves accuracy.

ParametersJSON Schema
NameRequiredDescriptionDefault
cityYesMunicipality name in Japanese (e.g. 那覇市, 渋谷区, 上天草市). Prefix the prefecture for accuracy.

Output Schema

ParametersJSON Schema
NameRequiredDescription
cityNoResolved municipality.
noteNoHuman-readable note.
countNoToilets returned.
errorNoSet when nothing was found.
toiletsNoPublic toilets with wheelchair / baby-seat / ostomate flags, address and coordinates.
attributionNoData source(s), license and provenance — an object, or an array of sources.
Behavior5/5

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

The annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint. Beyond that, the description discloses important behavioral details: nationwide coverage of 612 municipalities, a cap of 50 results for large cities, and locale-specific input handling. These add meaningful context and are consistent with annotations.

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 two tight sentences that front-load the primary purpose and then efficiently cover important scope and usage details. Every sentence provides value, with zero filler.

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

Completeness5/5

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

For a single-parameter read-only tool with an output schema and rich annotations, the description is complete. It covers the resource, return fields, geographical scope, result limits, and input-language nuance. No return-format explanation is needed because the output schema exists.

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 for 'city' already covers the meaning, examples, and the prefecture-prefix tip, so the tool description largely repeats this information. It adds no new parameter-level semantic detail beyond what the schema provides, so baseline 3 is appropriate.

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 and resource: 'List public toilets in a Japanese municipality' and enumerates the data returned (wheelchair / baby-seat / ostomate flags, address, coordinates). It distinguishes from sibling get_toilet_by_station by focusing on municipality-level lookup.

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

Usage Guidelines4/5

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

The description gives clear context for when to use the tool (municipality-level query) and practical guidance on input format ('Municipality names accept Japanese... prefixing the prefecture improves accuracy'). It does not explicitly name alternatives such as get_toilet_by_station, but the city versus station distinction is implicit.

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

get_station_alertsA
Read-onlyIdempotent
Inspect

Live JMA river flood forecasts and landslide alerts affecting a station's prefecture — NOT general weather warnings. Ask by station name in Japanese (新宿) or romaji (Shinjuku). Prefecture-level match (station master is Greater Tokyo). Relay of official JMA facts.

ParametersJSON Schema
NameRequiredDescriptionDefault
station_nameYesStation name in Japanese (新宿) or romaji (Shinjuku).

Output Schema

ParametersJSON Schema
NameRequiredDescription
countNoNumber of alerts.
staleNoTrue if stale.
alertsNoJMA alerts affecting the prefecture.
stationNoResolved station.
disclaimerNoRelay disclaimer.
fetched_atNoWhen the snapshot was fetched.
attributionNoData source(s), license and provenance — an object, or an array of sources.
Behavior5/5

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

Annotations already declare readOnlyHint, idempotentHint, and openWorldHint. The description adds valuable context beyond this: the prefecture-level matching (station master is Greater Tokyo), the fact that it's a 'Relay of official JMA facts' (not original analysis), and that it excludes general warnings. These traits meaningfully shape agent expectations.

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?

Three sentences, each earning its place: what it is, how to query, and scope/caveat. The dash for exclusion is efficient. No padding.

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

Completeness5/5

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

For a one-parameter tool with an output schema, the description covers content type, query language, matching scope, and source. It gives the agent enough to decide when to use it and what to expect, without needing to inspect the output schema.

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?

Schema coverage is 100%, and the description reinforces the Japanese/romaji format. It also adds the nuance that the station_name is used for a prefecture-level match, which is extra meaning beyond the schema's simple 'station name' definition. This justifies a score above the baseline 3.

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 tool provides 'Live JMA river flood forecasts and landslide alerts affecting a station's prefecture' and explicitly excludes 'general weather warnings', distinguishing it from likely siblings like get_active_alerts. The verb 'Live' and resource 'JMA alerts' are specific and unambiguous.

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

Usage Guidelines4/5

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

It gives clear usage context: ask by station name in Japanese or romaji, and notes the prefecture-level match. It explicitly says 'NOT general weather warnings', which provides a when-not scenario. However, it does not name alternative tools directly, so it falls short of full 5.

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

get_station_contextA
Read-onlyIdempotent
Inspect

Same official municipality data as get_municipality_context, resolved from a station: pass a station name (Shinjuku / 新宿 / Musashi-Kosugi) or a Japan Station Master station_id (e.g. st_00001), and it returns the context for that station's municipality. Official values only — no scores.

ParametersJSON Schema
NameRequiredDescriptionDefault
fieldsNoOptional comma-separated subset: vacancy,ridership,population,hazard,land_price,livability.
station_idNoJapan Station Master station_id (e.g. st_00001). Alternative to station_name.
station_nameNoStation name in English/romaji (Shinjuku) or Japanese (新宿). Provide this or station_id.

Output Schema

ParametersJSON Schema
NameRequiredDescription
hazardNoHazard categories.
stationNoResolved station.
vacancyNoHousing-vacancy counts.
ridershipNoRidership trend.
land_priceNoLand prices near the centroid.
livabilityNoLivability counts.
populationNoPopulation / future estimate.
attributionNoData source(s), license and provenance — an object, or an array of sources.
municipalityNoMunicipality + code.
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds context by specifying the data source (same official municipality data) and what is excluded ('no scores'), which goes beyond the structured annotations. It does not mention rate limits or error handling, but for a read-only lookup this is sufficient.

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?

Two sentences, front-loaded with the key reference to get_municipality_context. Every sentence adds meaningful information (input options, output type, data policy) without redundancy.

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

Completeness4/5

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

Given an output schema exists and annotations cover safety, the description explains the core use case well. It clearly indicates how to specify input (station name or ID) and what the output represents. It omits hypothetical edge cases, but overall it is complete for a tool of this complexity.

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?

Schema covers 100% of parameters with descriptions, providing a baseline of 3. The tool description adds valuable examples (Shinjuku / 新宿 / Musashi-Kosugi and st_00001) and clarifies the mutual exclusivity implicit between station_name and station_id, enriching the schema's bare parameter descriptions.

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 tool returns official municipality context resolved from a station, with specific input examples (station name or station_id). It also distinguishes from get_municipality_context and clarifies 'no scores', making its purpose unambiguous.

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

Usage Guidelines4/5

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

It explicitly references get_municipality_context and explains the key difference—resolved from a station—which tells when to use this tool. It gives clear input instructions, though it does not explicitly state when not to use it or name alternative tools beyond the municipality counterpart.

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

get_station_hazardA
Read-onlyIdempotent
Inspect

Official disaster-risk categories at a Japanese train station, relayed live from the MLIT 不動産情報ライブラリ (Real Estate Information Library): flood inundation-depth rank, landform / liquefaction classification, and storm-surge inundation-area presence (landslide & tsunami are license-restricted and return available:false with a link to the official maps). Returns the official values/categories as-is — no composite score, no judgment. Accepts a station name in Japanese (新宿, 武蔵小杉) or romaji (Shinjuku, Musashi-Kosugi). For research/analytics; NOT a substitute for official government hazard maps or evacuation decisions.

ParametersJSON Schema
NameRequiredDescriptionDefault
station_nameYesStation name in Japanese (新宿, 武蔵小杉) or romaji (Shinjuku, Musashi-Kosugi).

Output Schema

ParametersJSON Schema
NameRequiredDescription
hazardNoOfficial categories: flood inundation depth, landform/liquefaction, storm-surge.
stationNoResolved station + coordinates.
disclaimerNoUsage disclaimer (not a substitute for official maps).
attributionNoData source(s), license and provenance — an object, or an array of sources.
Behavior5/5

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

Annotations already indicate readOnly, openWorld, idempotent, and non-destructive nature. The description goes further by disclosing that landslide and tsunami data are license-restricted and return available:false with a link to official maps, and that the tool returns official values as-is with no composite score or judgment. This adds valuable behavioral context about data availability and interpretation beyond the annotations.

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 moderately sized and front-loaded with the core purpose. Each sentence provides substantive information (source, categories, licensing, return semantics, input format, usage caveat), though the input format sentence is redundant with the schema and could be trimmed without loss. Overall, the structure is clear and information-dense.

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

Completeness5/5

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

Given the output schema exists, the description doesn't need to explain return values, but it still addresses key contextual elements: data source, specific hazard categories, licensing limitations, output semantics, input format, and appropriate usage. This makes the tool's behavior and limitations clear for an AI agent, especially for a niche Japanese data source.

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 fully documents the single parameter 'station_name' with examples in Japanese and romaji, achieving 100% coverage. The description repeats this input format but adds no semantic detail beyond the schema, so it meets the baseline but does not exceed it.

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 tool's function: returning official disaster-risk categories at a Japanese train station from the MLIT Real Estate Information Library. It specifies the exact categories (flood inundation-depth rank, landform/liquefaction classification, storm-surge presence) and distinguishes itself from siblings like get_station_alerts and get_station_context by focusing on hazard categories rather than alerts or general context.

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

Usage Guidelines4/5

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

The description provides clear context for when to use the tool ('For research/analytics') and explicitly warns against using it as a substitute for official government hazard maps or evacuation decisions. However, it does not explicitly name alternative tools or state when NOT to use this tool in favor of a sibling, though the distinct subject matter implies appropriate use cases.

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

get_toilet_by_stationA
Read-onlyIdempotent
Inspect

Look up wheelchair-accessible / multipurpose toilets inside a train station, including floor, gender, equipment (wheelchair, ostomate, diaper table) and the nearest exit. Covers 526 Tokyo stations (Tokyo Bureau of Social Welfare data). Major stations outside Tokyo (Yokohama, Kawasaki, Omiya, Chiba, Fujisawa, Shin-Yokohama…) return an in-station layer that groups accessible toilets by ticket gate — inside vs outside — per railway operator. Accepts Japanese (新宿, 横浜) or romaji (Shinjuku, Yokohama) for major stations.

ParametersJSON Schema
NameRequiredDescriptionDefault
stationYesStation name in Japanese (新宿, 渋谷) or romaji for major stations (Shinjuku, Shibuya, Kita-Senju).

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNoHuman-readable note.
countNoToilets returned.
errorNoSet when nothing was found.
layerNoData layer (e.g. in_station_gate).
sourceNoData source label.
stationNoResolved station (English).
toiletsNoAccessible toilets with floor, gender, equipment and nearest exit.
station_jaNoStation name in Japanese.
attributionNoData source(s), license and provenance — an object, or an array of sources.
station_name_sourceNoHow the name was resolved.
Behavior4/5

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

Annotations already declare read-only, idempotent, and non-destructive behavior. The description adds valuable context beyond annotations: the data source (Tokyo Bureau of Social Welfare), station coverage, and the special in-station layer grouped by ticket gate and railway operator for major stations. This gives the agent a clear picture of edge-case 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?

Three sentences, each earning its place: the first states the core purpose and output fields; the second defines coverage and special behavior for major stations; the third specifies input formats with examples. No fluff, well front-loaded, and appropriately sized for the tool's complexity.

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

Completeness5/5

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

Given the tool's simplicity (one parameter), the description covers all essential aspects: what it retrieves, the geographic scope, data source, input varieties, and special grouping behavior for major stations. An output schema exists, so return-value details are already structured. The description is complete for safe and correct invocation.

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 covers the single parameter with 100% coverage, providing the baseline of 3. The description enhances this by explaining accepted formats (Japanese and romaji), providing examples, and clarifying that romaji is only for major stations. This adds practical guidance for correctly filling the parameter.

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 uses a specific verb ('look up') and clearly identifies the resource: wheelchair-accessible/multipurpose toilets inside train stations. It enumerates details (floor, gender, equipment, nearest exit) and distinguishes itself from sibling tools like get_public_toilet_by_city, which focuses on city-level public toilets.

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

Usage Guidelines4/5

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

The description provides clear context: it works for 526 Tokyo stations and major stations outside Tokyo with a different grouping behavior. It also specifies acceptable input formats (Japanese/romaji) and hints that romaji is only for major stations. However, it does not explicitly state when NOT to use it or name alternative tools, so it stops short of a full 5.

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

get_train_statusA
Read-onlyIdempotent
Inspect

Live train service status for Tokyo-area lines — delays, suspensions, resumptions. Ask 'is the Yamanote Line running?' by line or station name, English or Japanese. Status enum: normal / delayed / suspended / resumed. Cause text relayed from ODPT (English summary for known patterns, else original text + null). Data via ODPT (CC BY 4.0).

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesLine or station name (English or Japanese), e.g. "Yamanote" or "新宿".

Output Schema

ParametersJSON Schema
NameRequiredDescription
countNoNumber of lines.
linesNoPer-line status: normal / delayed / suspended / resumed, with cause.
queryNoEcho of the query.
staleNoTrue if stale.
fetched_atNoWhen the snapshot was fetched.
attributionNoData source(s), license and provenance — an object, or an array of sources.
Behavior5/5

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

Beyond the annotations (read-only, idempotent), the description discloses the status enum (normal/delayed/suspended/resumed), how cause text is handled (English summary for known patterns, else original text + null), and credits ODPT as the data source with license. This adds real behavioral detail without contradicting annotations.

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?

Four concise sentences packed with relevant information — purpose, usage, enum, data source. No filler words. Front-loaded with the most important part.

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

Completeness5/5

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

The tool has a single query parameter, a read-only action, and an output schema. The description covers purpose, usage, result format (status enum and cause handling), and data provenance. There's no gap that would hinder an agent from using it correctly.

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 input schema already documents query as 'Line or station name (English or Japanese)'. The description repeats this and adds an example query. With 100% schema coverage, the baseline is 3; the description adds minimal extra semantic meaning beyond the schema, so 3 is appropriate.

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 opens with 'Live train service status for Tokyo-area lines' — a specific verb (get status), resource (Tokyo-area train lines), and scope (delays, suspensions, resumptions). It clearly distinguishes from sibling tools like get_station_alerts or station_search by focusing on line-level running status rather than station facilities or alerts. The example phrasing solidifies purpose.

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

Usage Guidelines4/5

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

It gives concrete usage context (ask by line or station name, English or Japanese) and a natural-language example ('is the Yamanote Line running?'). It does not explicitly name alternatives or exclusions, so it earns 4 rather than 5. The context alone makes it clear when to use it.

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

pingA
Read-onlyIdempotent
Inspect

Connection test / health check — call this first to confirm the server is reachable. Returns server identity, deploy version, tool count, station coverage, and the update times of the realtime layers (JMA alerts, train status) so you can confirm freshness, not just liveness. No auth, no arguments, lightweight.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
toolsNoNumber of tools exposed by this server.
serverNoServer name.
statusNoAlways "ok" when the server is reachable.
versionNoDeploy version.
realtime_layersNoUpdate times of the realtime KV snapshots (a field is omitted if that layer is unavailable).
stations_coveredNoStations with accessible-toilet data.
rate_limit_noauthNoNo-auth rate limit.
Behavior5/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds valuable context beyond this: it is lightweight, requires no auth, and returns specific fields (server identity, deploy version, tool count, station coverage, update times) to confirm 'freshness, not just liveness'. This fully discloses behavior and return value scope.

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 two sentences, front-loaded with the key action ('call this first'), and every clause adds useful detail: what it returns, the no-auth/lightweight nature, and the distinction between liveness and freshness. No filler or redundancy.

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

Completeness5/5

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

For a zero-parameter, read-only health check, the description fully covers purpose, usage, and output expectations. It even notes the update times for realtime layers, which is more than necessary given the output schema exists. It is complete for an agent to decide when and how to invoke it.

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 input schema has zero parameters, so there is nothing to describe beyond stating 'no arguments', which the description does. Baseline for 0 params is 4, and the description reinforces the schema. There is no missing parameter information.

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 opens with 'Connection test / health check' and specifies 'call this first to confirm the server is reachable', giving a specific verb and resource. It clearly distinguishes itself from sibling data-retrieval tools by focusing on server health and returning aggregated metadata rather than domain data.

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

Usage Guidelines5/5

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

Explicitly instructs 'call this first' to confirm reachability, establishing it as the initial check before using other tools. It also mentions 'No auth, no arguments, lightweight', implying it is the low-cost entry point. The description makes the usage context clear without needing to name alternatives.

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

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Servers

View all MCP Servers

Try in Browser

Your Connectors

Sign in to create a connector for this server.