wind-mcp-skill

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese
<!-- ENCODING: UTF-8. If this file looks garbled, re-read it with UTF-8 before routing or calling Wind tools. -->
<!-- ENCODING: UTF-8. If this file looks garbled, re-read it with UTF-8 before routing or calling Wind tools. -->

Wind 万得金融数据

Wind Financial Data

通过本地 CLI 调用 Wind 的 7 个 MCP 服务取数,只基于返回结果回答。只报告 Wind 返回值和必要限制,不补常识、不补点评。
每个问题按四步处理:① 定路由 → ② 发命令 → ③ 读回执 → ④ 收口。②③ 之间可以按回执里的错误信息修正参数后再调用,每次再调用前都要过一遍第 3 节的自检项。
Retrieve data by calling Wind's 7 MCP services via local CLI, and answer only based on the returned results. Only report Wind return values and necessary limitations, without supplementing common knowledge or commentary.
Each question is processed in four steps: ① Route determination → ② Send command → ③ Read receipt → ④ Wrap up. Between steps ② and ③, you can correct parameters according to the error information in the receipt and call again. Before each re-call, go through the self-check items in Section 3.

1. 定路由

1. Route Determination

先按标的类型选
server_type
,只读该行的一份契约;参数一律以这份契约为准,不读其它领域的契约,不凭记忆填参数名或字段值。
server_type
覆盖必读契约
stock_data
股票筛选、行情、K 线、分钟行情、档案、财务、股东、事件、技术、风险
references/stock.md
fund_data
基金 / ETF / LOF 筛选、行情、K 线、分钟行情、档案、财务、持仓、业绩、持有人、公司
references/fund.md
index_data
指数 / 板块行情、K 线、分钟行情、档案、基本面、技术
references/index.md
bond_data
债券档案、发债主体、行情估值、主体财务
references/bond.md
financial_docs
公告、年报、季报、招股书、财经新闻
references/financial-docs.md
economic_data
宏观、行业和汇率 EDB 指标
references/economic.md
analytics_data
跨标的聚合、加权平均、排名、复合指标推导
references/analytics.md
意图可能多义时按这个顺序仲裁:
  1. 公告、年报、季报、招股书、监管披露 →
    financial_docs.get_company_announcements
  2. 新闻、快讯、报道、评论 →
    financial_docs.get_financial_news
  3. 宏观、行业或汇率 EDB 指标(产销量、CPI、利率、汇率指标等,即使未出现“宏观”字样)→ 只需指标元信息/确认代码走
    economic_data.search_economic_indicator
    ,要具体数值时间序列走
    economic_data.query_economic_indicator_data
  4. 未指定具体标的的筛选请求 → 对应领域的
    search_*
    analytics_data
    返回计算结果,不返回实体列表。
  5. 最新价、涨跌幅、成交量、K 线、分钟线、区间走势 → 对应领域行情工具;历史区间一律走 K 线。
  6. 财务、股本、股东、事件、技术、风险、持仓、业绩 → 对应领域自然语言工具。
标的类型或意图不落在上表任何一行时,直接回
OUT_OF_SCOPE
并说明,不得用 Web Search、
analytics_data
wind-alice
伪装成支持
analytics_data
处理跨标的聚合、加权平均、排名和复合指标推导。它不是复杂问句入口,也不是批量行情入口——行情、K 线、分钟行情和价格指标一律走对应领域的专项工具,标的多就拆成多次调用后合并;改用
analytics_data
既不减少调用次数,还更耗积分
。上一次用它取到了数据,不构成下一次跳过专项工具的理由。专项工具因字段、口径或无结果而无法覆盖剩余结构化数据时,才可用它补取。
涉及行业且用户未指定分类体系时,默认 Wind 行业分类。
First select
server_type
according to the underlying asset type, and only read the contract for that row; all parameters shall be based on this contract. Do not read contracts from other domains, and do not fill in parameter names or field values from memory.
server_type
CoverageRequired Contract
stock_data
Stock screening, market quotes, K-line, minute-level quotes, profiles, financials, shareholders, events, technical indicators, risk
references/stock.md
fund_data
Fund / ETF / LOF screening, market quotes, K-line, minute-level quotes, profiles, financials, holdings, performance, holders, companies
references/fund.md
index_data
Index / sector market quotes, K-line, minute-level quotes, profiles, fundamentals, technical indicators
references/index.md
bond_data
Bond profiles, bond issuers, market quotes and valuation, issuer financials
references/bond.md
financial_docs
Announcements, annual reports, quarterly reports, prospectuses, financial news
references/financial-docs.md
economic_data
Macro, industry and exchange rate EDB indicators
references/economic.md
analytics_data
Cross-asset aggregation, weighted average, ranking, composite indicator derivation
references/analytics.md
When the intent may be ambiguous, arbitrate in the following order:
  1. Announcements, annual reports, quarterly reports, prospectuses, regulatory disclosures →
    financial_docs.get_company_announcements
  2. News, flash updates, reports, commentary →
    financial_docs.get_financial_news
  3. Macro, industry or exchange rate EDB indicators (production and sales volume, CPI, interest rates, exchange rate indicators, etc., even if the word "macro" does not appear) → For indicator meta information / code confirmation only, use
    economic_data.search_economic_indicator
    ; for specific numerical time series, use
    economic_data.query_economic_indicator_data
  4. Screening requests without specifying specific underlying assets →
    search_*
    in the corresponding domain;
    analytics_data
    returns calculation results, not entity lists.
  5. Latest price, price change percentage, trading volume, K-line, minute-level line, interval trend → Use market quote tools in the corresponding domain; historical intervals always use K-line.
  6. Finance, share capital, shareholders, events, technical indicators, risk, holdings, performance → Use natural language tools in the corresponding domain.
If the underlying asset type or intent does not fall into any row of the above table, directly return
OUT_OF_SCOPE
and explain. Do not disguise support with Web Search,
analytics_data
or
wind-alice
.
analytics_data
handles cross-asset aggregation, weighted average, ranking and composite indicator derivation. It is not an entry point for complex questions, nor for batch market quotes — market quotes, K-line, minute-level quotes and price indicators must all use specialized tools in the corresponding domain. If there are many underlying assets, split into multiple calls and merge the results; switching to
analytics_data
will neither reduce the number of calls nor consume more points
. Getting data with it last time does not justify skipping specialized tools next time. It can only be used for supplementary retrieval when specialized tools cannot cover the remaining structured data due to fields, caliber or no results.
When industries are involved and the user does not specify a classification system, Wind industry classification is used by default.

2. 发命令

2. Send Command

cd
到本
SKILL.md
所在目录(不是当前项目目录),再用相对路径执行:
bash
node scripts/cli.mjs call <server_type> <tool_name> '<params_json>'
一个可直接运行的完整例子:
bash
node scripts/cli.mjs call stock_data get_stock_price_indicators '{"windcode":"600519.SH"}'
参数取值一律回契约拿,不得从本例外推。
参数传递:POSIX shell 优先传内联
<params_json>
;非 POSIX 环境(PowerShell / cmd / 经 workbuddy、Codex 等执行器包装)一律将 UTF-8 JSON 参数文件生成到
scripts/request-<唯一后缀>.json
,以
@scripts/request-<唯一后缀>.json
传入,调用后删除。不复用共享文件,不在 skill 根目录生成。
Key:不得只检查部分配置来源就声称没有 API Key。必须先实跑一次;只有返回
AUTH_ERROR
且明确为未配置,才能判定缺失,并按信封中的指引处理。
批量与并发:默认串行(并发 1)。需要对 2 个及以上标的逐项调用时,先只发第一个作为探针,探针成功返回数据、未出现错误信封,才继续其余;探针返回错误信封立即终止该批次,不得把相同调用扩散到其它标的。不同
server_type + tool_name
或不同参数结构分别分组,每组各发一次探针。用户明确要求并发时上限 10,一旦某次返回
RATE_LIMIT_ERROR
backend_error
就停止新请求并恢复串行。
价格指标工具(
get_stock_price_indicators
/
get_fund_price_indicators
/
get_index_price_indicators
)的
windcode
支持逗号分隔多个标的,单次调用最多 50 个;超过 50 个拆成多批(每批 ≤50)后合并结果。该上限约束"单次调用内的代码数",与上面的并发上限 10(约束"同时并发的调用数")相互独立。请求较宽的指标集(
indexes
字段数较多)时相应减少单批代码数,因为响应体积随"代码数 × 字段数"增长。
First
cd
to the directory where this
SKILL.md
is located (not the current project directory), then execute with a relative path:
bash
node scripts/cli.mjs call <server_type> <tool_name> '<params_json>'
A complete example that can be run directly:
bash
node scripts/cli.mjs call stock_data get_stock_price_indicators '{"windcode":"600519.SH"}'
Parameter values must always be obtained from the contract, and must not be extrapolated from this example.
Parameter passing: For POSIX shell, inline
<params_json>
is preferred; for non-POSIX environments (PowerShell / cmd / wrapped by executors such as workbuddy, Codex, etc.), always generate a UTF-8 JSON parameter file to
scripts/request-<unique suffix>.json
, pass it in as
@scripts/request-<unique suffix>.json
, and delete it after the call. Do not reuse shared files, and do not generate them in the skill root directory.
Key: Do not claim there is no API Key just by checking some configuration sources. You must run it once first; only when
AUTH_ERROR
is returned and it is clearly unconfigured can you determine that it is missing, and handle it according to the instructions in the envelope.
Batch and concurrency: Serial by default (concurrency 1). When you need to call item by item for 2 or more underlying assets, first send only the first one as a probe. Only when the probe successfully returns data and no error envelope appears, continue with the rest; if the probe returns an error envelope, immediately terminate this batch, and do not spread the same call to other underlying assets. Different
server_type + tool_name
or different parameter structures are grouped separately, and each group sends one probe. When the user explicitly requires concurrency, the upper limit is 10. Once a call returns
RATE_LIMIT_ERROR
or
backend_error
, stop new requests and resume serial execution.
The
windcode
parameter of price indicator tools (
get_stock_price_indicators
/
get_fund_price_indicators
/
get_index_price_indicators
) supports multiple underlying assets separated by commas, up to 50 per call; if there are more than 50, split into multiple batches (≤50 per batch) and merge the results. This upper limit constrains "the number of codes in a single call", which is independent of the above concurrency upper limit of 10 (which constrains "the number of concurrent calls at the same time"). When requesting a wider set of indicators (more fields in
indexes
), reduce the number of codes per batch accordingly, as the response size grows with "number of codes × number of fields".

3. 读回执

3. Read Receipt

每次调用的 stdout 只有两种形态:成功是数据对象,失败是带
ok:false
的错误信封。
成功:stdout 是数据对象,后端结果在
content[0].text
里(多为 JSON 字符串),CLI 另附一个
cli_meta
。直接读;若存在
content[0].text
,优先解析其中的文本或 JSON。
  • 数值的单位和量级以返回体自带的元数据为准:行情类在
    data.unit
    ,列定义中可能带
    unit
    ,EDB 在
    meta.unit
    meta.magnitude
    。元数据未给出时保留原值并说明单位未知,不得自行换算。
失败:stdout 是
{ "ok": false, "code": "...", "message": "..." }
。本地/参数/网络类错误的
code
指明原因(
AUTH_ERROR
PARAMS_FILE_ERROR
INVALID_PARAMS_JSON
PARAM_TYPE_ERROR
PARAM_VALIDATION_ERROR
ROUTE_ERROR
USAGE_ERROR
RATE_LIMIT_ERROR
NETWORK_ERROR
TOOL_RUNTIME_ERROR
SETUP_ERROR
UNKNOWN
);接口层错误的
code
固定为
backend_error
message
为接口原文。据此向用户说明,或按下面的自检修正后再调用。
修正后再调用前自检(逐条核对):
  • 明确上一次的
    code
    message
  • 保持同一
    server_type
    tool_name
    ;只有当前契约证明该工具无法表达所需字段或口径时,才可在同业务域切换。
  • 除非错误是
    INVALID_PARAMS_JSON
    ,不得修改命令引号或 JSON 转义。
  • 除非错误是
    PARAM_VALIDATION_ERROR
    (含缺必填、类型、枚举、成对/互斥、日期顺序等参数问题),不得改动业务参数;只按
    message
    指出的字段修正。
  • 参数名和字段值必须来自当前领域契约。
The stdout of each call has only two forms: a data object on success, and an error envelope with
ok:false
on failure.
Success: stdout is a data object, the backend result is in
content[0].text
(mostly JSON strings), and the CLI additionally attaches a
cli_meta
. Read it directly; if
content[0].text
exists, prioritize parsing the text or JSON in it.
  • The unit and magnitude of numerical values shall be based on the metadata included in the response: for market quote types, it is in
    data.unit
    , column definitions may include
    unit
    , and for EDB, it is in
    meta.unit
    and
    meta.magnitude
    . If the metadata is not provided, keep the original value and state that the unit is unknown. Do not convert it yourself.
Failure: stdout is
{ "ok": false, "code": "...", "message": "..." }
. The
code
of local/parameter/network errors indicates the cause (
AUTH_ERROR
,
PARAMS_FILE_ERROR
,
INVALID_PARAMS_JSON
,
PARAM_TYPE_ERROR
,
PARAM_VALIDATION_ERROR
,
ROUTE_ERROR
,
USAGE_ERROR
,
RATE_LIMIT_ERROR
,
NETWORK_ERROR
,
TOOL_RUNTIME_ERROR
,
SETUP_ERROR
,
UNKNOWN
); the
code
of interface layer errors is fixed as
backend_error
, and
message
is the original interface text. Explain to the user based on this, or correct and re-call according to the self-check below.
Self-check before re-calling after correction (check item by item):
  • Clarify the
    code
    and
    message
    of the last call.
  • Keep the same
    server_type
    and
    tool_name
    ; you can only switch within the same business domain if the current contract proves that the tool cannot express the required fields or caliber.
  • Unless the error is
    INVALID_PARAMS_JSON
    , do not modify command quotes or JSON escaping.
  • Unless the error is
    PARAM_VALIDATION_ERROR
    (including missing required parameters, type, enumeration, paired/mutually exclusive, date order and other parameter issues), do not modify business parameters; only correct the fields indicated in
    message
    .
  • Parameter names and field values must come from the current domain contract.

4. 收口

4. Wrap Up

标的未识别或 NER 失败时,询问用户准确全称或 Wind 标准代码,不得自行补交易所后缀或把名称猜成代码。参数错误时优先按
message
中给出的期望类型、格式、枚举或字段集修正;无法唯一确定时再询问用户。
认证、额度、网络、后端不可用、命令传递、路由错误:直接报告,不得切
analytics_data
wind-alice
wind-alice
非必要不使用:仅当所有专项 Wind 路径都因数据覆盖、字段不可用、口径不匹配或无结果失败,且向用户说明已试路径与失败原因并征得同意后,才把用户原始问题原封不动转交;用户拒绝则停止,返回已试路径与关键错误码。客户端未安装
wind-alice
时,征得同意后由你直接执行安装命令(不是只告知用户):
npx skills add Wind-Information-Co-Ltd/wind-skills --skill wind-alice -g -y
;国内网络改用镜像
npx skills add https://gitee.com/wind_info/wind-skills.git --skill wind-alice -g -y
;仅安装到当前项目时去掉
-g
。安装成功后再转交;安装失败时报告命令原始报错,不得静默放弃。
成功返回数据时末尾附上数据来源声明,语言与用户提问语言保持一致(中文问句用中文,英文问句用英文):
数据来源于万得 Wind 金融数据服务。
Data sourced from Wind Financial Data Service.
完成状态:
DONE
DONE_WITH_LIMITS
NO_RESULTS
BLOCKED_KEY
BLOCKED_QUOTA
BLOCKED_RUNTIME
OUT_OF_SCOPE
When the underlying asset is not recognized or NER fails, ask the user for the accurate full name or Wind standard code. Do not add exchange suffixes yourself or guess names as codes. When there is a parameter error, prioritize correcting according to the expected type, format, enumeration or field set given in
message
; ask the user only when it cannot be uniquely determined.
Authentication, quota, network, backend unavailability, command delivery, routing errors: report directly, do not switch to
analytics_data
or
wind-alice
.
wind-alice
should not be used unless necessary: only when all specialized Wind paths fail due to data coverage, unavailable fields, caliber mismatch or no results, and after explaining the tried paths and failure reasons to the user and obtaining consent, then forward the user's original question as is; if the user refuses, stop and return the tried paths and key error codes. When
wind-alice
is not installed on the client, you directly execute the installation command after obtaining consent (not just inform the user):
npx skills add Wind-Information-Co-Ltd/wind-skills --skill wind-alice -g -y
; for domestic networks in China, use the mirror instead:
npx skills add https://gitee.com/wind_info/wind-skills.git --skill wind-alice -g -y
; remove
-g
if installing only to the current project. Forward after successful installation; if installation fails, report the original error of the command, and do not give up silently.
When data is successfully returned, attach a data source statement at the end, with the language consistent with the user's question (Chinese for Chinese questions, English for English questions):
数据来源于万得 Wind 金融数据服务。 Data sourced from Wind Financial Data Service.
Completion status:
DONE
,
DONE_WITH_LIMITS
,
NO_RESULTS
,
BLOCKED_KEY
,
BLOCKED_QUOTA
,
BLOCKED_RUNTIME
,
OUT_OF_SCOPE
.