This skill focuses on Wind Financial fundamental data + RAG retrieval (corresponding MCP server:vserver_wind_financial_data). Single responsibility, zero redundancy.
When to use
✅ Trigger scenarios:
- Financial report numerical indicators (revenue / profit / assets and liabilities / cash flow / financial ratios / growth rates)
- Valuation multiples (PE / PB / PS / dividend yield), cross-instrument / cross-index comparison
- Macroeconomic indicators, industry indicators (natural language query)
- Listed company announcements / periodic reports / annual reports / prospectuses / regulatory filings
- Financial news summaries, research report excerpts (semantic retrieval)
❌ Non-trigger scenarios:
- Real-time quotes, K-lines, minute-level data, sector constituents → please use
wind-quote-skill - US stocks / European stocks / non-China concept stocks → not supported
- Exchange rates / futures order book / cryptocurrencies → not supported
- Non-financial data → not triggered
Workflow (3 steps)
All commands are prefixed with node ~/.claude/skills/wind-financial-data-skill/scripts/cli.mjs .
Step 1: List available tools
node ~/.claude/skills/wind-financial-data-skill/scripts/cli.mjs list-tools
Returns all tools of this server (search_financial_data / get_financial_documents), including the full inputSchema。
Step 2: Choose a tool + construct parameters
Based on the user's question and the tool descriptions, choose the most suitable tool and construct parameters according to inputSchema :
| User intent | Recommended tool | Main parameters |
|---|---|---|
| Query specificvalues/indicators(financial reports, macro, valuation, growth rates, cross-instrument comparison) | search_financial_data |
question(natural language) |
| Querydocument excerpts(news, research reports, announcements, annual reports, prospectuses) | get_financial_documents |
query(natural language) + optional docType(1=news / 3=announcements, etc.) |
Step 3: Call
node ~/.claude/skills/wind-financial-data-skill/scripts/cli.mjs call <tool_name> '<params_json>'
Typical examples
Use case A: Numerical query — "Kweichow Moutai 2024 revenue"
node ~/.claude/skills/wind-financial-data-skill/scripts/cli.mjs call \
search_financial_data \
'{"question":"贵州茅台 2024 年营业收入"}'
# → 结构化数值(营收金额)
Use case B: Document retrieval — "Kweichow Moutai 2024 annual report discussion on capacity expansion"
node ~/.claude/skills/wind-financial-data-skill/scripts/cli.mjs call \
get_financial_documents \
'{"query":"贵州茅台 2024 年报 产能扩张","docType":"3","top_k":5}'
# → 公告类文档片段
Actual parameters are subject to the
list-toolsreturned byinputSchema(docType: 1=news / 2=research reports / 3=announcements / ...).
API Key configuration
Inquiry-based acquisition process (must be followed when the Key is missing)
When the user's request requires this skill, but cli.mjs reports ❌ WIND_API_KEY 未配置:
- First ask the user, something like: "You haven't configured the Wind API Key yet. Would you like me to open the developer center for you now to get a Key?"
- User agrees → run the
open-portalsubcommand:
The command returns JSON, in which:node ~/.claude/skills/wind-financial-data-skill/scripts/cli.mjs open-portalurlfield is the link to visit (if logged in, it goes directly to overview; if not logged in, the SPA will automatically redirect to/#/login)fallback_messageshow the user a fallback message (especially important when spawn fails in headless / remote environments)
- User refuses → directly tell the user to visit:
https://aimarket.wind.com.cn/#/user/overview, obtain the Key yourself after logging in - After the user gets the Key, guide them to choose one of the following three configuration methods:
# A. 环境变量
export WIND_API_KEY=ak_xxx
# B. 本 skill 目录 config.json(仅本 skill 用)
echo '{"wind_api_key":"ak_xxx"}' > ~/.claude/skills/wind-financial-data-skill/config.json
# C. 全局 config(推荐:所有 wind 系列 skill 共享一份)
mkdir -p ~/.wind-aimarket && echo "WIND_API_KEY=ak_xxx" > ~/.wind-aimarket/config
Three-level fallback priority:
env > skill 目录 config.json > 全局 config
Common errors
| Error | Handling |
|---|---|
WIND_API_KEY 未配置 |
Follow the aboveinquiry-based acquisition process: first ask the user → run open-portal → guide configuration |
MCP 调用失败 HTTP 401 / 403 |
Key invalid → run open-portal to have the user regenerate it in the developer center |
MCP 调用失败 HTTP 5xx |
Server error → retry later or check status.wind.com.cn |
tool not found |
Tool name misspelled, first run list-tools to confirm |
params JSON 解析失败 |
Note JSON escaping (double quotes, Chinese requires UTF-8) |
Data source attribution
When presenting results to the user, you must include: 数据来源于 Wind 万得金融终端。
Self-check (before responding)
- Is the user's question anumeric metric / document retrieval type(not real-time quotes, not US stocks, not exchange rates)? Yes → continue; No → do not trigger this skill
- Has
WIND_API_KEYbeen configured? Not configured → after asking the userrunopen-portal, do not pop up the browser without notice - Is the data source attributed in the results?