Single tool 'search_route' with comprehensive parameter schema and detailed descriptions. Schema is well-structured with proper Zod types and enums. However, output schema is not documented, the tool returns raw HTML-extracted text without specifying expected fields or structure. Description is very long (900+ chars) and includes extensive conversion tables that should be in a prompt or documentation, not the tool description itself. Tool name is clear (verb_noun pattern). Error handling is minimal, only catches and logs raw errors without recovery guidance.
Search train routes between stations in Japan using Yahoo! Transit. IMPORTANT: Station names MUST be in Japanese kanji/kana. Convert before calling: English → Japanese: - Tokyo → 東京, Shinjuku → 新宿, Shibuya → 渋谷, Ikebukuro → 池袋 - Ueno → 上野, Akihabara → 秋葉原, Ginza → 銀座, Roppongi → 六本木 - Yokohama → 横浜, Osaka → 大阪, Kyoto → 京都 - Narita Airport → 成田空港, Haneda Airport → 羽田空港 Chinese (Simplified/Traditional) → Japanese kanji: - 东京/東京 → 東京, 新宿 → 新宿, 涩谷/澀谷 → 渋谷 - 秋叶原/秋葉原 → 秋葉原, 横滨/橫濱 → 横浜 Note: Japanese kanji may differ from Chinese hanzi (e.g., 渋 vs 涩/澀, 横 vs 横/橫) Examples: - "Tokyo to Shinjuku" → from: "東京", to: "新宿" - "从东京到新宿" → from: "東京", to: "新宿" - "Shibuya to Ikebukuro via Harajuku" → from: "渋谷", to: "池袋", via: ["原宿"] Options summary: - timeType: departure(出発), arrival(到着), first_train(始発), last_train(終電), unspecified(指定なし) - ticket: ic(ICカード), cash(きっぷ) - seatPreference: non_reserved(自由席), reserved(指定席), green(グリーン車) - walkSpeed: fast(急いで), slightly_fast(少し急いで), slightly_slow(少しゆっくり), slow(ゆっくり) - sortBy: time(到着が早い順), transfer(乗換回数順), fare(料金安い順) - useAirline, useShinkansen, useExpress, useHighwayBus, useLocalBus, useFerry: true/false
Output schema not documented. Tool returns text content extracted from HTML but does not specify what fields or structure the LLM should expect in responses.
Tool description exceeds 400 characters and embeds conversion tables and examples that should be in a dedicated prompt or help documentation, not the tool definition. This wastes tokens and obscures the core tool purpose.
Error handling is generic. Tool catches errors with `${error}` and returns `isError: true` without categorizing the failure (retryable, user-fixable, or fatal) or providing recovery guidance.
No result limits or pagination. The tool extracts and returns raw HTML content which could be extremely long for complex route searches with many alternatives. No indication of max results or how to handle pagination.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 54 | 2026-07-28+ | v2 |
| 2026-03-09 | D | 57 | - | v1 |