SuperAPI AI Directory

wind-mcp-skill

Data & analytics

View repository

Updated 10-15 18:28

About this skill

Wind Financial Data Query

Invoke Wind MCP through this Skill's built-in CLI. Financial facts are based on the data and source materials returned by tools; distinguish raw data, source opinions, and inferences based on data, and do not disguise model memory, Web Search, or common-sense completion as verified data.

Progressive loading on demand:Clarify the requirement → locate the business domain → read the relevant reference and confirm tool coverage → organize calls as needed → verify results. The endpoint, request headers, authentication, and transport are handled by the CLI; the model does not construct these implementation details.

1. Determine routing

Locate server_typeaccording to the financial object and business intent, then confirm per the contract whether the tool supports the required data, time range, granularity, definition, and number of instruments. If the available information is sufficient, query directly; if necessary information affecting the result is missing and the contract has no applicable default value, then clarify with the user.

server_type Research object Load on demand
stock_research Stocks and listed companies references/stock/
fund_research Funds, ETFs, REITs references/fund/
options_data Options references/options/
futures_data Futures references/futures/futures.md
company_data Business-registered enterprises references/company/
edb_data Macro, industry, and regional economy references/economic/economic.md
index_data Indices, sectors references/index/index.md
bond_data Bonds references/bond/bond.md
financial_docs Announcements and financial news references/financial-docs/financial-docs.md
analytics_data Financial models and calculators references/analytics/analytics.md
general_data General-purpose data extraction tools for quotes, indicators, reports, and documents of various securities types references/general/general.md

Routing rules

Prioritize selecting the corresponding specialized tool based on the research object: use stock_research for stocks and listed companies, fund_research for funds/ETFs/REITs, options_data for options, futures_data for futures, index_data for indices/sectors, bond_data for bonds, edb_data for macro, industry, and regional economy, and company_data for business-registered enterprises; when summaries, excerpts, evidence, or event explanations need to be obtained from financial documents such as announcements, news, and research reports, use financial_docs.

When a task requires real-time quotes, historical quotes, K-lines, minute-level quotes, or cross-asset quotes, use the quote tools in general_data.

When a task requires precisely obtaining a specific financial document or attachment, for example locating a single research report, announcement, news article, full original text, or related attachment content based on document ID, title, publication date, source, document type, attachment name, or attachment link, use the document tools in general_data.

When the results returned by specialized tools do not meet the task requirements, such as missing required fields, time range, granularity, definition, filtering conditions, or batch capabilities, then use the corresponding tools in general_data to supplement.

If a single tool can meet the complete requirement, call it directly; split calls only when different data sources, different tool capabilities, or limits exceeding a single query are needed. For tasks with dependencies, obtain the prerequisite results first and reuse them.

File navigation

The following file names are relative to the corresponding directories in the routing table; read only the files relevant to the current requirement:

  • stock/: Market overview and hotspot reading market-overview.md; Industry research and intraday sector analysis read industry-sector-research.md; company profile, financials, expectations, valuation and dynamics read company-research.md; capital flow, technicals and intraday single-stock analysis read trading-analysis.md; conditional stock screening read screener.md。
  • fund/: profile and similar funds read discovery-profile.md; performance, risk, style and attribution read performance-attribution.md; allocation, holdings and ETF creation/redemption basket read allocation-holdings.md; net asset value, trading and subscription/redemption status read nav-trading.md; size and financials read size-financials.md; conditional screening read screener.md。
  • options/: terms, option chain, contracts and instrument market statistics read contract-market.md; volatility surface, cone and term structure read volatility.md; pricing read pricing.md; market sentiment read sentiment.md。
  • company/: entity search and business registration read discovery-registration.md; equity, personnel and control relationships read ownership-governance.md; customers, suppliers and bidding read business-relations.md; intellectual property and qualifications read intellectual-property-qualifications.md; judicial records read judicial-enforcement.md; penalties, dishonesty and tax read compliance-tax.md; operational, financing and public opinion risk read operating-financing-risk.md; read only when the tool requires a risk classification enumeration risk-enums.md。
  • When the index quote specifies indexes fields, read references/index/index-indicators.md; when not specified, use the tool's default fields.

2. Read contract

reference is used to select tools and construct parameters; the MCP Server is responsible for final validation. When parameter rejection, missing tools or a suspected outdated contract is found, run node scripts/cli.mjs list-tools <server_type> to check the complete online definition and locate the relevant tool; there is no need to fetch it repeatedly before every call. If the contract and the actual return still conflict, retain the discrepancy and explain the limitation; do not guess parameters or conceal compatibility issues.

Tool names and server names must be used verbatim: only the list-tools and server_type that actually exist in the current reference contract or in the tool_namereturn may be called; tool names must not be fabricated or rewritten from memory, inference or similar naming (including case, singular/plural, and prefix/suffix variants). If the target tool cannot be found in the contract, treat it as not covered by the current specialization, switch to general_data according to the routing rules or run list-tools to check, and do not attempt similar names.

Parameter names, types, enumerations and required fields are subject to the current tool contract;windcode、windCode、windCodes cannot be interchanged, and arrays and comma-separated strings must also be filled in according to the field type. The CLI handles compatibility processing for implemented codes and parameters; the Agent does not guess exchange suffixes on its own.

When the tool supports natural names and the target is clear, query directly; there is no fixed need to call a screening tool first. When identification, search or conditional screening is needed, select tools with the corresponding capabilities according to the contract; perform prior discovery only when the entity, metric, report or document identifier is not yet clear and the tool requires it. If returned candidates are ambiguous or cannot be identified, ask the user to confirm the exact full name or Wind standard code; do not choose silently.

When the user has not specified a caliber such as industry classification, retain the applicable default value of the tool contract; do not uniformly force-fill the Wind industry classification. When comparing multiple results, check whether the classification, date and statistical caliber are consistent.

3. Issue command

First switch to the directory where this SKILL.md is located, then execute:

node scripts/cli.mjs call <server_type> <tool_name> '<params_json>'

<server_type> and <tool_name> are taken directly from the confirmed contract entries and replaced verbatim, without any spelling adjustment.

Example:

node scripts/cli.mjs call stock_research stock_get_company_profile '{"windCode":"600519.SH"}'
node scripts/cli.mjs call fund_research fund_get_basic_info '{"windCodes":["005827.OF"]}'
node scripts/cli.mjs call company_data company_search_entity '{"searchKey":"贵州茅台"}'
node scripts/cli.mjs call edb_data economic_search_indicator '{"question":"中国GDP相关指标"}'

When wrapped a second time by PowerShell, cmd or the executor, prefer passing UTF-8 JSON via stdin and write the last parameter as -, to avoid command-line escaping corrupting the JSON, and no temporary file needs to be written to the Skill installation directory:

$requestJson='{"windCodes":["600519.SH"],"indexes":"\u6700\u65b0\u6210\u4ea4\u4ef7,\u4ea4\u6613\u65f6\u95f4"}'
$requestJson | node scripts/cli.mjs call general_data quote_get_realtime_indicators -

When passing through a Windows executor that may rewrite the command text, use \uXXXX escaping for non-ASCII JSON values in the command. If a UTF-8 JSON file already exists, you can also use @<文件路径> to pass it in; the temporary file must be located in a temporary directory or workspace where the client is allowed to write, must not be written to the Skill installation directory, and must not reuse a shared request file.

Authentication is handled by the CLI. Report authentication issues only when an actual call explicitly returns an authentication failure or missing credentials; do not speculate in advance; do not write the Key into output, logs, or deliverable files.

Batch and Concurrency

Prefer batch parameters supported by the tool, and observe the per-call limit. When item-by-item calls are truly necessary, default to serial execution: first verify the result and conventions of the first item before continuing. Stop the affected batch when authentication, rate limiting, or service failures occur; for parameter issues, correct them according to the rules below before continuing. When the user explicitly requests concurrency, the limit is 10; steps with prerequisite dependencies are still executed in order.

4. Verify the Receipt

On a normal return, stdout is the MCP result object, and the body is usually located in content[0].text, with the CLI additionally attaching cli_meta. Check the relevant content items: if parseable as JSON, read them structurally; otherwise read them as raw text or a table; also check cli_meta.warnings. An exit code of 0 or isError: false does not mean business success; parameter rejection, authentication, or execution failure information in the body must still be handled.

Verify that codes, names, and entity types match the user's goal; for example, a fund management company cannot be answered as a fund product. Check the actual date, frequency, unit, magnitude, currency, and statistical conventions; when metadata is missing, mutually contradictory, or not applicable to a certain asset, retain the original values and explain the limitations, without guessing or forcibly converting. When calculation or unit conversion is needed, there must be explicit input conventions and a explainable basis for the calculation.

Check the coverage against the requested instruments, fields, and intervals; do not rely solely on the returned total count or success summary. Report NO_RESULTSonly when the entire target has no valid data and no execution errors; when partially valid, return the valid portion and explain the missing, failed, or inapplicable items, marked as DONE_WITH_LIMITS. Missing values must not be treated as 0, and a partial empty table must not be regarded as no results for the entire request.

Errors and Recovery

CLI failures usually return { "ok": false, "code": "...", "message": "..." }, and failure explanations may also appear in the MCP body.backend_error may contain correctable parameter errors; do not determine a service failure based on that code alone. Handle based on the error content:

  • Missing field, type, enum, or parameter combination errors: correct according to the explicit error and the current contract, preserving the user's filter conditions, dates, and conventions; when necessary values cannot be determined, clarify, and do not fill in values on your own.
  • Identity ambiguity or entity type mismatch: do not use the mismatched result to answer; confirm the target before querying again.
  • Authentication, quota, or rate limiting: stop the affected calls and explain according to the actual cause; rate limiting is not the same as quota exhaustion.
  • Clear backend execution failure: retain the original error, mark it as BLOCKED_BACKEND, no need to reproduce it through other services; mark local execution or network transmission blockage as BLOCKED_RUNTIME, and explain the specific stage.

Reuse valid results of the same request while they are still applicable at the time. Retry parameter errors only when there is a basis for correction; for explicitly retryable temporary failures, retry once as-is only after the returned recovery conditions are met, and if it still fails, stop rather than switching tools to conceal the failure. Adjust business routing only when the contract indicates that the original tool does not support the requirement. Do not blindly retry or relax conditions for legitimate empty results.

When data is returned successfully, append a source statement at the end of the reply that is consistent with the user's language:

The data comes from Wind Alice Wind Financial Data Service.

Data sourced from Wind Alice Financial Data Service.