资讯动态

FinQ4Cn 实战:用 MCP 协议搭建中国 A 股量化分析工作流

发布时间:2026/10/17 15:06:38 来源:尧图企业网站定制
1. 为什么要把 FinQ4Cn 和 MCP 协议绑在一起做 A 股量化如果你写过 A 股量化脚本大概率经历过这种循环今天用 akshare 拉一遍行情明天换成 tushare 再写一套字段映射后天想让大模型帮你读财报摘要又得把数据格式重新拼一遍。数据源、字段名、复权方式、报告期口径每换一个环节就要重写胶水代码。FinQ4Cn 这个项目想解决的就是这件事——它把 akshare 的 A 股数据能力封装成 MCPModel Context Protocol工具让任何兼容 MCP 的客户端都能用统一方式发现和调用行情、财务、融资融券、分红、新闻、技术指标、回测全走一套协议。MCP 在这里的价值不是噱头。传统做法是你写 Python 函数然后手动把结果塞进 promptMCP 的做法是服务端声明「我有 get_stock_code、get_stock_financial_abstract、strategy_buy_with_stop_loss 这些工具」客户端Cherry Studio、MCP Inspector、Claude Code 等自动读取工具清单模型按需调用。对量化分析来说这意味着你可以把「查代码 → 拉历史行情 → 算 RSI/双均线 → 跑回测」串成一条链中间不用人肉搬数据。这篇文章面向的是需要把行情获取、因子计算与回测串成闭环的开发者。我会给出可复制的 MCP 服务端配置片段、一次完整的回测验证动作以及如何通过 TaoToken 统一 Key/API 通道接入模型能力。FinQ4Cn 负责数据与回测TaoToken 负责模型通道两者配合才能跑通从数据到信号的完整链路。适合谁写过一点 Python、想用 AI 辅助做 A 股策略研究、但不想在数据接入上反复造轮子的人。2. TaoToken 前置准备统一 Key 与 API 通道在把 FinQ4Cn 接进 MCP 客户端之前先解决模型通道的问题。FinQ4Cn 本身是数据网关它不提供 LLM当你想让模型根据财务摘要生成分析、或者让 Agent 自动决定调用哪个工具时需要一个稳定的模型 API 入口。TaoToken 在这里扮演统一通道的角色一个 Key 走多家模型Base URL 固定省去每个客户端单独配一遍的麻烦。你需要先拿到 API Key。访问官网 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 注册后进入控制台创建 Key地址是 https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_contentconsoleutm_campaignrewrite 。Key 只在创建时完整显示一次复制后存到本地环境变量别直接写进会提交到 git 的配置文件。API 通道的基础地址是 https://taotoken.net/api 注意这个地址不带 UTM 参数配置时原样填入即可。模型 ID 按你实际要用的填比如做代码和工具调用类任务时选对应模型。如果你打算长期跑编码和 Agent 工作流可以看下 Coding Plan 的说明https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding-planutm_campaignrewrite 。只是想先验证模型能不能正常对话用模型对话页更快https://taotoken.net/models?utm_sourcetaotoken_aicg_blog_endutm_contentmodelsutm_campaignrewrite 。这里有个容易踩的坑MCP 客户端配置里通常要填三件套——Base URL、API Key、Model ID。少填一个就会出现 401 或者模型列表拉不出来。我建议先在模型对话页发一条测试消息确认 Key 有效、通道通再去配 MCP 客户端。这样能把「模型通道问题」和「MCP 服务端问题」分开排查不然两个都报错你会不知道先修哪个。环境变量建议这样设Linux/macOS 用 exportWindows 用 set 或写进系统环境变量export TAOTOKEN_API_KEYsk-你的Key export TAOTOKEN_BASE_URLhttps://taotoken.net/api设完可以用echo $TAOTOKEN_API_KEY确认非空。这一步看着简单但后面 MCP 客户端读不到 Key 时八成是环境变量没生效或者写错了 shell 配置文件。3. 可复制的 FinQ4Cn MCP 服务端配置先把 FinQ4Cn 拉下来跑起来。项目结构里 mcp-server 是核心fs_server.py 是启动文件utils 下按功能拆了 modules、stocks_common_metrics、stocks_risk_alert、backtesting、news_report、quant_analysis、tools 等模块。安装步骤按官方来git clone https://github.com/jinhongzou/FinQ4Cn-mcp-server.git cd FinQ4Cn-mcp-server python -m venv venv source venv/bin/activate pip install -r requirements.txt回测包建议单独装走清华源快一些pip install lib-pybroker -i https://pypi.tuna.tsinghua.edu.cn/simple装完先别急着接客户端直接跑一下服务端确认能启动python mcp-server/fs_server.py如果卡住不动或者打印出监听信息说明服务端本身没问题。接下来是 MCP 客户端配置。以 Cherry Studio 为例配置片段长这样注意把路径换成你自己的{ mcpServers: { FinQ4Cn-mcp-server: { name: FinQ4Cn, command: your_path/python.exe, args: [ your_path/FinQ4Cn-mcp-server/mcp-server/fs_server.py ] } } }Windows 下 command 指向 venv 里的 python.exeargs 指向 fs_server.py 的绝对路径。macOS/Linux 把 python.exe 换成 venv/bin/python。路径里不要有中文和空格否则 MCP 客户端解析 args 时容易出问题。如果你用的是支持 MCP 的编码类客户端配置逻辑一样只是配置文件位置不同。有的客户端用 JSON有的用 TOML字段名可能叫 mcpServers 或 mcp_servers但核心三要素不变启动命令、脚本路径、服务名。配好后重启客户端在工具列表里应该能看到 FinQ4Cn 暴露的工具包括 get_stock_code、get_stock_zygc_em、get_stock_financial_abstract、get_stock_margin_detail、get_stock_fhps_detail、financial_news、stock_news以及回测工具 strategy_buy_with_stop_loss。这里要提醒一句MCP 服务端配置和模型通道配置是两套东西。FinQ4Cn 的 JSON 里不需要填 API Key它只负责数据模型 Key 填在客户端的模型设置里Base URL 用 https://taotoken.net/api 。把这两层分开后面排错会清晰很多。如果你在客户端里同时配了多个 MCP 服务注意服务名不要重复否则工具列表会串。4. 验证请求从股票代码到一次完整回测配置完先做最小验证让客户端调用 get_stock_code传入「贵州茅台」看能不能返回 600519。这一步通了说明 MCP 服务端和客户端握手成功。接着调 get_stock_financial_abstract传 600519 和报告期看能不能拿到净利润、营收增长率、ROE、毛利率这些摘要字段。如果这两个都正常数据链路就没问题了。然后是重头戏——回测验证。FinQ4Cn 内置了 pybroker 回测引擎示例策略是带止盈的买入持有当前未持有该股票时按指定持仓比例买入并设置止盈百分比。调用 strategy_buy_with_stop_loss 时你需要传股票代码、回测时间段、持仓比例、止盈百分比这几个参数。一次典型的调用意图是对 600519 在 2023-01-01 到 2023-12-31 区间用 50% 仓位、10% 止盈跑一遍。调用后返回的结果里会包含收益、回撤、交易次数等指标。你要重点看的是交易次数是否合理买入持有策略通常交易次数很少、止盈是否被触发、最大回撤是否在可接受范围。如果返回空结果或者报错先检查时间段内该股票是否有停牌、数据是否拉全。akshare 的数据偶尔会有缺失回测前最好先单独拉一次历史行情确认数据完整。为了让模型能自动串起这条链你可以在客户端里这样描述任务「先查贵州茅台的代码拉它 2023 年的财务摘要然后对 2023 年全年跑一次带 10% 止盈的买入持有回测最后总结收益和回撤。」模型会依次调用 get_stock_code、get_stock_financial_abstract、strategy_buy_with_stop_loss把结果拼成一段分析。这就是 MCP 的价值——工具发现和调用由协议层处理你只描述意图。模型通道这边Base URL 填 https://taotoken.net/api Key 用前面环境变量里的值Model ID 按你选的填。如果客户端支持在 MCP 调用后自动让模型总结确保模型设置里的通道是通的。验证方法先在模型对话页发一条普通消息确认通道正常再回到客户端跑上面的多步任务。两步都通闭环就成了。5. 常见报错排查401、local proxy failed 与工具列表为空配 MCP 最常遇到的几类报错我按实际碰到的顺序说。第一类是 401 Unauthorized。这个基本出在模型通道不是 FinQ4Cn。检查三件事API Key 是否复制完整有没有漏掉前缀或尾部字符、Base URL 是否写成 https://taotoken.net/api 不要多加斜杠或路径、Model ID 是否拼写正确。如果 Key 是从环境变量读的确认客户端启动时能读到该变量——GUI 客户端有时不继承 shell 的环境变量这种情况直接把 Key 填进客户端设置里更稳。第二类是 local proxy failed 或连接被拒绝。这通常发生在 MCP 服务端启动失败时。先手动跑python mcp-server/fs_server.py看有没有报 ModuleNotFoundError。常见的是 pybroker 没装好或者 akshare 版本不兼容。回测包用pip install lib-pybroker单独装别和 requirements 里的混。如果手动能跑、客户端里报 local proxy failed多半是 command 或 args 路径写错了检查 python.exe 和 fs_server.py 的绝对路径。第三类是工具列表为空。MCP 客户端连上了服务端但看不到任何工具。这通常是服务端启动过程中抛了异常但没退出或者客户端缓存了旧的工具清单。先重启客户端再确认 fs_server.py 里工具注册没有报错。如果用了虚拟环境确保 command 指向的是 venv 里的 python而不是系统 python——系统 python 没装依赖服务端起不来。第四类是 reading choices 相关报错。这出现在模型返回结构不符合预期时常见于模型通道返回了非标准格式。检查 Base URL 是否指向 https://taotoken.net/api 以及 Model ID 是否是该通道支持的。换一个模型 ID 再试能快速判断是通道问题还是模型问题。第五类是回测返回空。先确认股票代码正确、时间段内无长期停牌、akshare 能拉到数据。可以单独调一次历史行情工具验证数据源。如果数据源正常但回测仍空检查持仓比例和止盈参数是否传成了字符串而非数字类型不对会导致策略不执行。排查顺序建议先手动跑服务端 → 再确认客户端路径 → 再验证模型通道 → 最后跑回测。一层一层来别同时改多个配置。6. 把数据、模型与回测串成日常量化工作流跑通一次回测只是起点。真正有用的是把这条链变成日常可复用的工作流。我的做法是在客户端里保存几个常用任务模板比如「每日复盘」「财报速读」「策略回测」每个模板描述清楚要调哪些工具、传什么参数。这样每次不用重新描述意图直接触发就行。数据侧FinQ4Cn 覆盖了基础数据、历史行情、财务分析、融资融券、分红送配、新闻资讯基本够做因子挖掘和事件驱动策略的初筛。技术指标里的 RSI 和双均线可以直接用来生成买卖信号配合回测工具快速验证想法。注意回测结果是历史表现不代表未来收益参数调优时别过度拟合。模型侧TaoToken 的统一通道让你在换模型时不用改 MCP 配置只改 Model ID 即可。长期跑编码和 Agent 任务的话Coding Plan 的额度模型更适合只是偶尔验证想法用模型对话页就够。API Key 管理上建议一个用途一个 Key方便出问题时快速定位和吊销。最后说个实际经验MCP 工具调用是有上下文的模型一次调太多工具容易超时或丢结果。把复杂任务拆成几步每步调一两个工具中间让模型总结一次稳定性会好很多。FinQ4Cn 的工具粒度已经比较细按需组合比一次性全调更靠谱。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑