Fetch public earthquake catalogs and compute honest forecasting statistics (b-value, Omori-Utsu decay)
quake-lens defines 4 tools with complete input schemas and descriptions. Naming follows verb_noun convention (get_recent, get_catalog, estimate_bvalue, fit_omori). Descriptions are present but brief (20-80 chars), lacking context on WHEN to use each tool or dependencies between them. Parameters have types and descriptions, but lack constraints (enums, ranges, format specs). Output schemas are not documented, LLMs cannot predict return structure. Error handling is minimal; no recovery guidance. The codebase is clean and well-structured, but tool definitions prioritize brevity over LLM-optimized clarity.
USGSカタログを取得し、Gutenberg-Richter b値を Aki MLE で推定する。
USGSカタログを取得し、本震以降の余震系列に修正大森則をフィットする。
USGSカタログを取得する。bbox は 'minlat,minlon,maxlat,maxlon'。
直近の地震イベントを取得する (src: 'p2p' または 'jma')。
Output schemas not documented. LLMs cannot predict return structure (list of dicts vs dict with nested fields). estimate_bvalue and fit_omori return dicts with statistical fields (b, b_std, n, n_events_fetched) but this is not visible in tool definitions.
Descriptions are too brief (20-80 chars) and lack context. 'USGSカタログを取得する' (Get USGS catalog) does not explain WHEN to use get_catalog vs get_recent, or what data sources differ. LLMs cannot disambiguate.
Parameters lack constraints. 'src' accepts 'p2p' or 'jma' but is not declared as an enum. 'bbox' is a free-form string with format 'minlat,minlon,maxlat,maxlon' but no regex or format constraint. LLMs may hallucinate invalid values.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 59 | 2026-07-28+ | v2 |
No error handling or recovery guidance. If 'src' is invalid, or bbox parsing fails, or HTTP fetch times out, the tool will raise an exception. LLMs receive no actionable error message or retry strategy.
Parameter dependencies undocumented. get_recent's min_scale only works with src='p2p'; passing it with src='jma' raises ValueError. This constraint is buried in mcp_tools.py, not visible in tool descriptions.