This server has critical definition quality gaps across all dimensions. Tool descriptions exist but lack sufficient context for LLM decision-making. Input schemas are present with basic type information but lack descriptions for most parameters. Parameter descriptions are either missing entirely or generic (e.g., 'Stock code in format sh.XXXXXX or sz.XXXXXX' repeated across 6+ tools). Output schemas are undocumented, no indication of what fields the response contains or how to chain tools. Error handling is absent, no guidance on recovery strategies. Tool names follow verb_noun convention well (get_*), but the server lacks composition clarity and strategic parameter descriptions that would enable confident LLM use. The baostock_api.py stub is incomplete, preventing full validation of implementation.
Get current time
Get dividend information, including code, year, yearType, endDate, dividend
Get growth information, including code, year, quarter, report_type, net_profit, eps, roe, roa, gross_margin, net_margin, net_profit_margin, net_profit_margin_yoy, net_profit_margin_mom, net_profit_margin_qoq, net_profit_margin_qoq_yoy, net_profit_margin_qoq_mom
Get index kdata, including date, code, open, high, low, close, volume, amount, adjustflag, turn, tradestatus, pctChg, peTTM, pbMRQ, psTTM, pcfNcfTTM
Get industry information, including code, name, parent_code, parent_name, level, order
Get operation information, including code, year, quarter, report_type, net_profit, eps, roe, roa, gross_margin, net_margin, net_profit_margin, net_profit_margin_yoy, net_profit_margin_mom, net_profit_margin_qoq, net_profit_margin_qoq_yoy, net_profit_margin_qoq_mom
Output schemas entirely undocumented. No tool specifies what fields are in the response dict. LLMs cannot plan downstream tool calls or extract specific fields.
Input parameter descriptions are missing or generic across 9 of 10 tools. E.g., 'frequency' in get_stock_kdata lacks explanation of what values are valid ('d', 'w', 'm', '5', '15', '30', '60'); LLM must guess or enumerate. 'adjustflag' in get_stock_kdata has values '1', '2', '3' but no explanation of what each means.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 56 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 33 | - | v1 |
Get profit information, including code, year, quarter, report_type, net_profit, eps, roe, roa, gross_margin, net_margin, net_profit_margin, net_profit_margin_yoy, net_profit_margin_mom, net_profit_margin_qoq, net_profit_margin_qoq_yoy, net_profit_margin_qoq_mom
Get stock basic information, including code, name, industry, market, ipodate etc.
Get stock kdata, including date, open, high, low, close, volume, amount, adjustflag, turn, tradestatus, pctChg, peTTM, pbMRQ, psTTM, pcfNcfTTM
Get valuation information, including date, code, close, peTTM, pbMRQ, psTTM, pcfNcfTTM
Tool descriptions are generic and lack actionable context. E.g., 'Get stock basic information, including code, name, industry, market, ipodate etc.' does not explain WHEN to call this vs other stock tools (get_stock_kdata, get_valuation_info) or what the LLM should do next with the result. No discovery guidance.
No error handling guidance. Tools return dicts with no specification of error fields or how LLM should respond to failures. Baostock API error codes ('error_code != 0') are silently swallowed or may crash; LLM has no recovery path.
Ambiguous parameter names across similar tools. 'get_profit_info', 'get_operation_info', 'get_growth_info' all accept identical parameters (code, year, quarter) but descriptions claim they return different metrics. LLM cannot distinguish which to call for a given financial query without extensive reasoning.
No pagination or result limits documented. Tools like 'get_stock_kdata' and 'get_valuation_info' fetch time-series data but no indication of max rows returned, pagination support, or how LLM should handle large datasets. Risk of context overflow.
Parameter 'frequency' in get_stock_kdata and get_valuation_info accepts both abbreviated codes ('d', 'w', 'm') and numeric minute values ('5', '15', '30', '60'). No enum constraint or format validation visible. LLM likely to guess wrong values.
Three nearly identical tools (get_profit_info, get_operation_info, get_growth_info) with overlapping descriptions that all mention identical output fields (net_profit, eps, roe, etc.). The distinction between 'profit', 'operation', and 'growth' is unclear without domain expertise. Violates single-responsibility principle.