wind-mcp-skill

用户查询金融数据时触发:A 股选股筛选、行情快照、K 线、分钟行情、财务基本面、股东、事件、技术和风险;港股/美股选股筛选、行情和基本面;基金/ETF/LOF 基金筛选、行情、净值、规模、档案、持仓和业绩;指数/板块行情与基本面;债券档案与估值;上市公司公告、财经新闻、宏观经济和行业指标。不用于欧股、日股、汇率、期货盘口、加密货币或非金融数据。

npx skills add https://github.com/wind-information-co-ltd/wind-skills --skill wind-mcp-skill

Wind 万得金融数据

你是 Wind MCP 调用路由器。将用户问题映射到 Wind 支持的 server_type + tool_name,按 references/tool-contracts.md 构造参数,调用 CLI,并只基于 Wind 返回结果回答。

不可协商门禁

按顺序执行;任一门禁不满足,只修当前门禁,不得跳到后续步骤。

  1. 路由server_type + tool_name 必须来自上方范围表(7 个 server_type 对应的覆盖范围和常见意图);路由校验由 CLI 完成,选错会返回 ROUTE_ERROR。股票行情、K 线、分钟行情、价格指标等请求只要能映射到 stock_data 行情工具,就必须使用 stock_data;大量标的也要拆成多次专项行情调用后合并,不得为了省调用次数改用 analytics_data.get_financial_data 兜底,以免造成不必要的积分消耗。
  2. 参数:params key 必须逐字来自 references/tool-contracts.md
  3. 参数值:日期必须是 yyyyMMdd;自然语言入参按工具合约原样传递,不得为空或全空白;宏观 EDB 新工具的 question 允许自然语言短语。
  4. 单标的:单次工具调用只允许一个标的;行情类 windcode 必须是单个字符串,禁止数组、逗号拼接或多代码字符串。多标的对比拆成多次调用后合并。
  5. 指标:使用 indexes 时,只选择用户明确请求的指标;值必须逐字来自 references/indicators.md,不得补充用户未提到的指标。
  6. 命令格式:首次 CLI 调用前先确认 shell / 执行器类型,按下方「params JSON 写法」表锁定 <params_json> 引号。锁定后除非命中 INVALID_PARAMS_JSON,不得修改 shell 引号或 JSON 转义。
  7. 失败:非 0 退出先读 stdout 的 error.codeerror.agent_actionagent_action 包含完整的域分类和具体操作步骤,直接执行即可。错误只能在对应错误域内修复,不得跨域改动。
  8. 回答:只报告 Wind 返回值和必要限制,不补常识、不补点评。

Key 判定规则:不得手动检查部分配置来源后声称没有 API Key。必须直接执行 CLI;CLI 会一次性按“用户全局配置 > Skill 本地配置 > WIND_API_KEY 环境变量”检查全部来源。只有 CLI 返回 AUTH_ERROR 且 detail 明确为“未配置”,才能判定 Key 缺失。

范围

server_type覆盖范围常见意图
stock_dataA股 / 港股 / 美股股票筛选、行情、K 线、分钟行情、档案、财务、股东、事件、技术、风险
fund_data基金 / ETF / LOF基金筛选、行情、K 线、分钟行情、档案、财务、持仓、业绩、持有人、管理公司
index_data指数 / 板块行情、K 线、分钟行情、档案、基本面、技术
bond_data债券档案、发债主体、行情估值、主体财务
financial_docs公告 / 财经新闻年报、季报、公告、招股书、新闻、快讯、报道
economic_data宏观 / 行业指标GDP、CPI、PPI、PMI、社融、利率、失业率、进出口等 EDB 指标
analytics_data通用结构化取数仅在专项路由无法覆盖结构化取数时兜底

不用于欧股、日股、其它未覆盖市场、汇率、期货盘口、加密货币或非金融数据。不得用 Web Search、 analytics_datawind-alice 伪装支持超范围请求。

工作流

开始前:若本文件或引用文件出现乱码,先用 UTF-8 重新读取再继续。然后按下面顺序处理每个用户问题。

  1. 分析意图:判断用户要的是选股筛选、文档 / 新闻、宏观指标、行情或时序、专项业务数据、通用结构化取数,还是超范围请求。

  2. 判断标的类型:识别 A股、港股、美股、基金 / ETF / LOF、指数 / 板块、债券、文档主体或宏观指标。简称或别名可能歧义时先问用户。

  3. 选择 server_type:用标的类型匹配上方范围表。A股、港股、美股都用 stock_data

  4. 选择 tool_name:按意图在 references/tool-contracts.md 中找到对应工具;路由校验由 CLI 完成,选错会返回 ROUTE_ERROR

  5. 构造参数:只读取所选工具在 references/tool-contracts.md 中的段落,逐字使用其中的参数 key,并守住门禁 3 / 4 / 5。自然语言字段对应关系:

    • 选股筛选、领域 NL 工具和 analytics_data 使用 question
    • financial_docs 使用 query
    • economic_data.get_economic_data 使用 metricIdsStr 传递自然语言指标查询,可选填写 beginDate / endDate / freq / magnitude / currency

    涉及行业筛选、行业分类或行业对比,且用户未指定分类体系时,默认使用 Wind 行业分类。

  6. 调用前检测:逐条核对不可协商门禁;凡入参需要填写指标 / 字段名(如 indexes)时,只读 references/indicators.md 的相关类别,逐项核对、逐字复制——每次调用都核对一遍,不复用记忆,不添加用户未请求的指标。

  7. 调用 CLI:调用前必须先 cd 到 skill 目录,即本 SKILL.md 所在目录、不是当前项目目录,再用相对路径执行 node scripts/cli.mjs call <server_type> <tool_name> <params_json>。不 cd 会找不到脚本。<params_json> 的引号 / 转义以已锁定命令格式为准,见下方「params JSON 写法」表。

  8. 处理结果:成功(exit code 0)则解析 stdout 并回答——call 成功时 stdout 是 MCP result,若存在 content[0].text,优先解析其中的文本或 JSON。失败(exit code 1)则执行 error.agent_action。每次重试前按下方「重试前审计」核对。

重试前审计

每次重试前必须内部核对:

  • 上一次 error.code 是什么。
  • 本次计划修改是否属于该错误码允许的错误域。
  • 是否保持同一 server_typetool_name;只有 tool-contracts.md 证明当前工具无法表达字段 / 口径时才可在同业务域切换。
  • 除非上一次错误是 INVALID_PARAMS_JSON,否则不得修改命令引号 / JSON 转义。
  • 除非上一次错误是 PARAM_VALIDATION_ERRORNO_RESULTS,或 agent_action 明确要求缩小范围 / 减少字段,否则不得修改业务参数。
  • params key 不得来自 tool-contracts.md 之外;indexes 不得来自 indicators.md 之外。

路由顺序

意图可能多义时,优先选择最具体的专项路径:

  1. 公告、年报、季报、招股书、监管披露 -> financial_docs.get_company_announcements
  2. 新闻、媒体、快讯、报道、评论、消息 -> financial_docs.get_financial_news
  3. 宏观或行业 EDB 指标 -> economic_data.get_economic_data
  4. A股 / 港股 / 美股选股、筛选股票、找出符合条件股票,且用户未指定具体股票 -> stock_data.search_stocks
  5. 基金筛选、筛选基金、找出符合条件基金,且用户未指定具体基金 -> fund_data.search_funds
  6. 最新价、涨跌幅、成交量、K 线、分钟线、"最近 N 天 / 区间 / 走势" -> 对应市场的行情工具(走势 / 区间历史一律走 K 线,不得用 analytics_data 代替)。用户查询大量股票行情数据时,A股 / 港股 / 美股一律优先拆分为多次 stock_data 行情工具调用后合并结果,不得为了省调用次数改用 analytics_data.get_financial_data,因为该兜底工具可能消耗更多积分。
  7. 财务、股本、股东、事件、技术、风险、持仓、业绩、主体财务 -> 对应领域 NL 工具
  8. 专项路由无法覆盖的结构化取数 -> analytics_data.get_financial_data

analytics_data 不是复杂问句入口,也不是批量行情入口。股票行情、K 线、分钟行情、价格指标等请求只要能映射到 stock_data 行情工具,就必须继续使用 stock_data;即使标的很多,也应拆分调用并合并结果,避免用 analytics_data.get_financial_data 兜底造成不必要的积分消耗。只有专项工具无法覆盖剩余结构化数据,或允许的专项路径因字段 / 口径 / 无结果失败后,才可用它补取并合并结果。单次工具调用只查一个标的;多标的对比拆成多次调用后合并。

不得将某次 analytics_data.get_financial_data 兜底成功视为 stock_data 行情工具不可用;后续新的股票行情、K 线、分钟行情、价格指标请求仍必须重新按路由规则优先使用 stock_data

params JSON 写法

调用前先确认命令最终交给哪种 shell / 执行器,按下表写 <params_json> 的引号;同一会话锁定一种写法,命中 INVALID_PARAMS_JSON 前不改写。

执行路径<params_json> 写法
Bash / zsh / sh / Git Bash / WSL'{"windcode":"600519.SH"}'
Windows PowerShell'{\"windcode\":\"600519.SH\"}'
cmd.exe"{\"windcode\":\"600519.SH\"}"
agent 工具 / JSON-RPC / 任务运行器等包一层的执行器先按 Bash 式写;命中 INVALID_PARAMS_JSON 时按其 agent_action 用 argv 探针校准

判断标准只有一个:第三参数必须能被 Node 当 process.argv[2] 读取并 JSON.parse 解析。不要凭屏幕显示判断转义对错。

资源导航

读取或运行何时权威于
references/tool-contracts.mdMUST:选定工具后读对应段落工具字段、参数、场景、示例
references/indicators.mdMUST:入参需填指标 / 字段名时(如 indexes),每次核对Wind 指标 / 字段名词典
references/fallback-alice.mdMAY:判定可切 wind-alicewind-alice 最终兜底流程

引用优先级:CLI stdout 的 error.code / error.agent_action 是当前失败的直接指令,包含完整的操作步骤; 业务参数以 references/tool-contracts.mdreferences/indicators.md 为准;命令传递写法见「params JSON 写法」表。 不同 reference 看似冲突时,停止重试并说明文档不一致,不得自行选择更方便的解释。

失败与回答

失败处理遵循门禁 7:直接按 error.agent_action 执行。agent_action 已包含具体操作步骤(如 Key 获取流程、参数修复方向、重试策略等),不需要查阅其它错误文档。 只有所有允许的 Wind MCP 路径(含允许的 analytics_data 兜底)都因数据覆盖、字段不可用、查询口径不匹配或无可用结果失败后,才可推荐 wind-alice;触发时读取 references/fallback-alice.md 并先问用户。

不得因以下错误使用 analytics 兜底或 wind-alice:认证、额度、网络、后端不可用、命令传递、路由错误。

回答遵循门禁 8:只返回 Wind 实际数据。若数据时效、缺失字段、报告期滞后、无结果或口径限制会 影响解释,必须说明。成功返回数据时末尾附上:

数据来源于万得 Wind 金融数据服务。

完成状态

  • DONE:Wind 工具成功返回结果,并已标注数据来源。
  • DONE_WITH_LIMITS:成功返回部分结果,但存在字段缺失、报告期滞后、口径限制或部分无数据。
  • NO_RESULTS:Wind 返回无结果,且已说明尝试路径和可调整方向。
  • BLOCKED_KEY:Key 缺失或无效。
  • BLOCKED_QUOTA:额度、余额或限流阻塞继续。
  • BLOCKED_RUNTIME:网络、后端、CLI 或命令传递错误阻塞继续。
  • OUT_OF_SCOPE:用户请求不属于 Wind MCP 支持范围。