MCP server providing stock market data analysis tools including capital flow analysis, fundamentals, and news retrieval for Chinese A-shares
Server has 5 tools with significant quality gaps. Tool naming is inconsistent (add vs get_*). Descriptions exist but lack actionable detail for LLM selection. Input schemas are present but minimal, most parameters lack type constraints, enums, or validation guidance. No output schemas documented. Error handling is absent. The 'add' tool is trivial; stock analysis tools use Chinese descriptions and return mock data without explaining real-world integration. No tool annotations (readOnlyHint, destructiveHint). Composition is weak: analysis_system.py shows incomplete integration (commented-out lifespan code, hardcoded mock data). Per-tool average: add=28, get_top_inflows=35, get_capital_flow=32, get_fundamentals=32, get_news=32.
Add two numbers
获取指定股票今日的资金流向数据,返回字典包括净流入额、买入额、卖出额等。
获取股票最新基本面数据摘要,如市值、PE、ROE等。
获取指定股票相关的最新新闻标题列表。
获取今日主力资金净流入最多的前N只股票及金额。返回列表,每项为(股票名称, 净流入额)。
No output schemas documented. Tools return lists/dicts but LLMs cannot infer field names, types, or structure. Breaks downstream tool chaining and forces LLM to parse unstructured output.
Input parameters lack type constraints, enums, and validation guidance. E.g., top_n has no min/max bounds; stock_code accepts any string without format validation. Invites hallucinated/invalid values from LLM.
Descriptions are generic and lack LLM-selection context. Chinese descriptions (get_top_inflows, get_capital_flow, etc.) are not actionable for English-speaking LLMs. No guidance on when to call each tool vs alternatives.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 31 | 2026-07-28+ | v2 |
No error handling or recovery guidance. Tools return mock data without indicating success/failure or what to do if real API calls fail. No actionable error messages.
Tool composition is broken. analysis_system.py shows incomplete integration: lifespan context is commented out, MCP client initialization is incomplete (missing __aexit__ handling), and tools are never actually registered with the FastMCP server instance.