行情这条赛道,这几年最不缺的就是各种 SDK:有券商交易类的,有免费行情数据类的,也有商业数据商专门给的量化接口。但真正落到“AI 帮我查票、帮我复盘”这种场景时,SDK 再多也不够用——大模型不做函数调用培训,你得把 SDK 能力翻译成它能理解、能调用的工具。最近我在本地折腾了一个叫 stock-sdk-mcp 的项目,核心就是把一套行情 SDK 通过 MCP 协议暴露给 AI 客户端。今天这篇不写虚的,把我实践过程中踩过的坑、验证过的链路、值得直接照抄的代码和配置全部整理出来。准备上车的朋友,读完这篇至少能少走三天的弯路。
这个项目适合谁?一句话总结:你手头已经有能用的行情 SDK,现在想让 Claude Desktop、自研 Agent 或其他支持 MCP 的客户端直接说出“帮我查一下某只票的实时价和最近 5 日走势”,然后真的跑出数据。如果你是纯零基础,没碰过 Python、没配过 MCP,我也会在关键步骤里把原理讲透,跟着抄作业也能跑通。但我的建议是,先别急着复制粘贴,把前两节读完,明白那层壳到底替我们干了什么,后面操作起来会顺手很多。
1. 先搞清楚 stock-sdk-mcp 是什么:行情能力接入 AI 的最小路径
1.1 为什么手里有 SDK,还要多此一举包一层 MCP
很多写脚本的老手会觉得,直接用 SDK 查个行情多简单?几行代码拉个接口不就行了,搞什么 MCP?这种质疑我一开始也有。但你换个角度想:你想让 AI 助手也能做这件事,问题就来了。原来我们写一个爬虫或脚本,是人来控制流程,而现在是大模型来控制流程。大模型压根不认识你 SDK 里那个 get_quote(symbol) 函数,除非你提前告诉它“系统里有个叫 get_quote 的工具,参数是什么,什么时候用”。
我们自己搭这一套工具调用的框架,最朴素的办法是给大模型写一大段函数描述,然后把用户问题、聊天历史、函数定义全部拼进 prompt 里,再自己去解析模型输出里到底是调哪个函数、传什么参数。在小 demo 里还能忍,真到做多个工具的时候,prompt 会越来越长,参数漏传、格式不规范、报错没地方兜底,维护成本直线上升。MCP 解决的就是这部分问题:它把工具注册、参数声明、调用请求、返回结果、错误处理全部标准化了。
把 stock-sdk-mcp 拆开看,它本质不是在创造新的行情获取能力,而是做了一层“适配”——底层还是你熟悉的行情 SDK,负责真正去交易所、数据商那边拉数据;MCP 那侧负责把实时报价、K 线、股票列表这些能力,变成一台台 AI 能看得懂的“插头”。协议层标准化了,客户端就不用天天改。
1.2 MCP 的底层机制,用大白话讲清楚
我习惯把 MCP 理解成 AI 世界的 USB-C 接口。过去你要让 AI 接一个数据库,数据库厂商要专门做一个对接方案;接一个行情软件,又得重新做一套。今天大家统一用 MCP 协议:客户端只要实现了这个协议,就能像电脑识别 U 盘一样,自动识别插上来的行情服务,看到这个服务提供了哪些工具、可以处理哪些指令、参数长什么样。
在技术细节上,MCP 底层走的是 JSON-RPC 2.0 消息格式。不过在实际开发时,我们基本不会手动拼这些 JSON 包,而是直接用官方 SDK。以 Python 为例,FastMCP 这个类帮我们完成了绝大多数脏活:你用装饰器定义一个函数,它自动帮你注册成一个可被 AI 调用的工具;你在 docstring 里写清楚这个工具是干什么的、参数是什么格式,客户端在初始化时就能通过 tools/list 接口拿到这份声明。
1.3 模块划分:这个项目到底是哪几个部分拼起来的
我建议把 stock-sdk-mcp 的整体链路拆成四层,排查问题、设计扩展时思路会清爽很多:
- 数据源接入层:你原本在用的行情 SDK,负责鉴权、选网络节点、维护连接。
- MCP 服务适配层:把 SDK 方法转换成 MCP 的 tool,标明工具名、入参、返回值。
- 传输层:本地调试用 stdio,远程部署用 SSE 或 HTTP,解决 AI 客户端与服务进程之间的消息通道问题。
- 客户端配置层:在 MCP Host(比如一个支持 MCP 的 AI 桌面端)里,用 JSON 配置文件声明“我要启动哪个服务、服务路径是什么”。
这四层里最容易写崩的是第二层和第三层,后面我会专门用章节讲工具函数的边界怎么划、返回字段怎么裁剪,以及 stdio 模式下最常见的进程通信坑。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 本地跑通:从一行命令到 AI 能查到行情的完整链路
2.1 最小环境准备,代码依赖尽量少
先说清楚,我这里讲的版本是我个人实践下来比较稳的组合:Python 3.10 及以上,安装 MCP 官方 Python SDK,底层那套
