A Model Context Protocol server providing comprehensive stock market data, financial information, and analysis tools for Chinese stock markets (A-shares, Hong Kong stocks, US stocks)
mcp-go-stock has 10 tools with inconsistent quality. All tool names follow verb_noun patterns (get_, search_), which is positive. However, critical gaps undermine usability: (1) ALL descriptions are in Chinese, making them inaccessible to English-speaking LLMs and agents, this is a blocker for international deployment. (2) Input schemas are present but most lack required parameter definitions at the JSON Schema level, types are inferred from the description text rather than formally declared in the schema. (3) No output schemas are documented anywhere in the codebase; LLMs have no way to know what structure to expect from responses. (4) Error handling is absent, no error classification, recovery guidance, or validation messages visible. (5) Parameter constraints are described informally (e.g., 'e.g. PE<20,ROE>15') rather than as formal enums or pattern validators. This server would require significant rework to be production-grade.
根据技术指标筛选股票
获取宏观经济数据:GDP、CPI、PPI、PMI
获取上市公司财务报告数据
获取行业研究报告
获取市场资讯、财经电报、重要事件和会议信息
根据股票名称获取完整的股票代码(带市场前缀)
获取股票K线数据,返回日K数据
获取指定股票的相关新闻资讯
ALL tool descriptions are in Chinese ('获取股票实时价格数据', '根据技术指标筛选股票'). English-speaking LLMs and international agents cannot understand when or why to select these tools. This is a critical blocker for non-Chinese deployments.
Input parameter schemas lack proper JSON Schema type declarations. For example, 'days' in get_stock_kline is marked type 'number' but has no minimum/maximum constraints. 'stockCodes' and similar string parameters have no pattern, length, or format constraints. Schema completeness is ~25% across the 10 tools.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 35 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 37 | - | v1 |
获取股票实时价格数据。支持A股(sh/sz)、港股(hk)、美股(us)
根据关键词搜索股票,返回匹配的股票列表
NO output schemas documented in the codebase. LLMs have no way to know what fields, types, or structure to expect from tool responses. This violates the pattern:response-shaper requirement and forces LLMs to guess or hallucinate output structure.
Parameter constraints are documented informally in description strings (e.g., 'days' default 90, 'indicators' example 'PE<20,ROE>15') rather than as formal JSON Schema constraints (minimum, maximum, enum, pattern). This forces LLMs to parse natural language instead of reading structured constraints.
No error handling visible in tool definitions or implementations (cmd/test_tools/main.go shows basic error checks but no recovery guidance, error classification, or actionable messages). LLMs have no guidance on what to do if a tool fails.
Tool name 'choice_stock_by_indicators' uses 'choice' (a noun) instead of a verb. Should be 'filter_stock_by_indicators' or 'search_stock_by_indicators' for consistency with verb_noun naming convention (get_*, search_*, filter_*). LLMs may hesitate to select 'choice' because it is not an action verb.
Parameters with enum-like values are documented as free-form strings. For example, get_economic_data 'type' parameter lists enum values ['all','GDP','CPI','PPI','PMI'] in the schema, which is good, but the description text 'all(全部)' mixes Chinese, translation inconsistency. Other tools like choice_stock_by_indicators expose 'indicators' as a free-form string when it should validate against known technical indicators.