MCP server for Korea ETS (K-ETS) carbon market data — KAU/KCU/KOC dashboard, query, and export tools
Four tools with basic schemas and descriptions, but significant gaps in parameter documentation and output schema clarity. Tool names follow verb_noun convention (query_, get_, download_, generate_). Descriptions exist but are generic (avg ~100 chars, below 194-char baseline). Parameters lack type constraints and validation guidance. No error handling documentation. Output schemas are inferred (JSON strings returned) rather than formally documented. Security: path validation present in download_data and generate_dashboard, but no permission gates or audit logging.
Export K-ETS trading data as CSV or XLSX file. Args: market: 'daily', 'ohlcv', 'monthly', or 'auction' (default: 'daily') format: 'csv' or 'xlsx' (default: 'csv') start_date: Optional start date filter (YYYY-MM-DD) end_date: Optional end date filter (YYYY-MM-DD)
Generate interactive Plotly HTML dashboard with all K-ETS market data. Includes: KAU/KCU/KOC price trends, OHLCV candlestick, monthly volume heatmap, auction results. Supports EN/JA/KO/CN languages. Args: output_path: Optional custom output path (default: data/dashboard.html)
Get K-ETS market summary: latest prices, trading days, price range, permit types, and data coverage.
Query K-ETS historical trading data. Args: market: 'daily' (closing prices), 'ohlcv' (candlestick), 'monthly' (summary), or 'auction' start_date: Start date (YYYY-MM-DD). For monthly, use year only (e.g., '2020'). end_date: End date (YYYY-MM-DD). For monthly, use year only. permit_type: Filter by permit type (KAU, KCU, KOC, or specific like KAU23). Optional.
Output schemas not formally documented. All tools return JSON strings without declaring field structure, types, or required fields. LLMs cannot plan downstream calls or extract data reliably.
Parameter 'market' lacks enum constraint. Accepts free-form string; description lists valid values ('daily', 'ohlcv', 'monthly', 'auction') but no formal enum. LLMs may hallucinate invalid values.
Date parameters (start_date, end_date) lack format specification. Description mentions 'YYYY-MM-DD' but no regex pattern or formal constraint. LLMs frequently misformat dates.
No error handling documentation. Tools validate inputs (market, output_path) but return generic ValueError messages. No guidance on recovery steps or retryability.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 56 | 2026-07-28+ | v2 |
get_market_summary has no parameters but description is vague (50 chars). Does not explain what 'latest prices', 'trading days', 'price range' mean or what structure is returned.