FinQ4Cn 实战:用 MCP 协议搭建中国 A 股量化分析工作流
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 的工具粒度已经比较细按需组合比一次性全调更靠谱。

相关新闻

Deepseek新架构Engram全面解析:从MoE到N-gram的论文代码详解与TaoToken实践

Deepseek新架构Engram全面解析:从MoE到N-gram的论文代码详解与TaoToken实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 15:06:43 阅读更多 →
3分钟看懂 Agent、Skills、MCP:把 MCP endpoint 改到 TaoToken 的实操拆解

3分钟看懂 Agent、Skills、MCP:把 MCP endpoint 改到 TaoToken 的实操拆解

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 16:25:15 阅读更多 →
从图灵测试到GPT-3:大模型演进与下一个词预测技术解析

从图灵测试到GPT-3:大模型演进与下一个词预测技术解析

简介:这份PPT由清华大学人工智能研究院常务副院长孙茂松教授主讲,面向希望系统了解人工智能与大模型技术脉络的高校学生、研究人员及技术从业者,帮助建立从基础理论到前沿应用的完整认知框架。内容围绕“迈向通用智能的大模型技术”展开&…

2026/10/18 18:46:47 阅读更多 →

最新新闻

AI越用越傻?从上下文窗口到提示词漂移的排查与修复指南

AI越用越傻?从上下文窗口到提示词漂移的排查与修复指南

上个月,一位做运营的朋友把我拉进他们的工作群,指着一屏对话记录问我:“你们这AI怎么越用越傻?”他列了一堆罪状:同一个需求,上周回答得头头是道,这周再问就含糊其辞;对话里明明已经…

2026/10/18 21:41:09 阅读更多 →
发那科机器人GSD文件合集:R2000iB到R30iB的PROFIBUS组态与避坑指南

发那科机器人GSD文件合集:R2000iB到R30iB的PROFIBUS组态与避坑指南

简介:这份资源面向从事工业机器人集成、PLC组态与现场调试的工程师,以及需要为发那科机器人接入PROFIBUS-DP网络的学习者。包内提供覆盖R2000iB-165F、R30iB、CP1604等主流控制器型号的GSD设备描述文件,均符合GSDML标准,版本从V2.…

2026/10/18 21:41:09 阅读更多 →
Nacos 2.4.3 部署实战:从解压到集群的配置与避坑指南

Nacos 2.4.3 部署实战:从解压到集群的配置与避坑指南

简介:nacos-server-2.4.3.zip 是面向微服务开发者与运维人员的 Nacos 服务端发行包,对应 2.4.3 版本,可用于搭建服务注册与发现、动态配置管理及服务元数据管理平台,兼容 Spring Cloud、Dubbo、Kubernetes 等主流生态,…

2026/10/18 21:41:09 阅读更多 →
机动车合格证二维码解码:从乱码到结构化字段的Python实战

机动车合格证二维码解码:从乱码到结构化字段的Python实战

简介:这份资源面向机动车管理、保险车贷录单及车辆库存管理等场景的开发者,提供一套基于Python的机动车合格证二维码解码实现方案,可快速提取车架号、发动机号、品牌车型等关键信息,并支持合格证真伪验证。压缩包共8个文件&#x…

2026/10/18 21:41:09 阅读更多 →
边缘AI在工业自动化落地:从GPU大会到车间部署

边缘AI在工业自动化落地:从GPU大会到车间部署

2026年全球GPU技术大会的展馆里,最让我走不动道的不是那些参数惊人的大模型卡,而是一台摆在工业展台上的边缘AI控制器。说实话,在工业圈混久了的人都有个共识:那种只能跑Demo、没法在车间里扛灰扛热的AI设备,基本没有落…

2026/10/18 21:41:09 阅读更多 →
项目管理系统ROI怎么算?拆解六大关键变量与三年落地模型

项目管理系统ROI怎么算?拆解六大关键变量与三年落地模型

1. 为什么大多数项目管理系统ROI,从一开始就算错了1.1 ROI算不清,多半是把它当成了纯财务题老板在季度会上突然问我:“项目管理系统上了快两年,ROI到底是多少?”当时后台工时数据、任务完成率、甘特图、人员负载表都是…

2026/10/18 21:40:08 阅读更多 →

日新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 0:55:02 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 12:16:16 阅读更多 →