ETF MCP服务器
此存储库包含一个简单的 模型上下文协议(MCP) 服务器已构建 和 快速API 这暴露了一些用于处理的工具 通过以下方式在中国A股市场上市的交易所交易基金(ETF) TuShare 数据接口。服务器说话 可流式传输HTTP 交通支持 史密瑟里 和 因此,可以部署为远程MCP,为AI代理或其他 需要结构化财务数据的应用程序。
特性
- 列出ETF –返回可用ETF基金的完整列表
TuShare。您可以通过查询参数按市场进行筛选。回应 流由JSON对象组成,每行一个。
- 历史导航 –获取历史资产净值(NAV)报价
给定两个日期之间的ETF。
- 间隔性能 –计算NAV的百分比变化
*全部* 用户提供的区间内的ETF。服务器流式传输结果 逐步进行,这样您就可以立即开始使用数据,而不是 等待整个计算完成。
- 控股/组成部分 –检索最新报告的持股情况(成分
股票)。
- 按时期划分的顶级ETF –获得按损益排名前N位的A股ETF
特定时间段(周/月)。只返回包含A股成分的ETF, 不包括香港和海外交易所买卖基金。预期响应时间:15-40秒。
在本地运行
- 安装依赖项。至少你需要Python 3.9+。
pip install -r requirements.txt- 从获取TuShare API令牌 tushare.pro
(基本使用免费注册)并将其设置为环境 变量:
export TUSHARE_TOKEN="your‑token‑string"- 启动服务器:
uvicorn main:app --host 0.0.0.0 --port 8000- 打开浏览器
http://localhost:8000查看可用
端点。API通过FastAPI的OpenAPI用户界面进行自我记录。
Smithery部署
该服务器基于FastAPI构建,并使用 StreamingResponse 对于所有 方法。Smithery的流式HTTP传输理解标准HTTP 流式传输——不依赖于WebSockets——因此您可以部署它 存储库作为Smithery支持的平台上的远程MCP(例如Apify, Vercel或您自己的基础设施)。
要在Smithery上部署,请在您的Smithery帐户中创建一个新服务器,然后 提供正在运行的服务的URL。您可能需要创建一个 反向代理或设置环境变量(包括 TUSHARE_TOKEN) 这取决于您的托管环境。一旦部署,Smithery将 自动发现可用的工具并将其公开给您的代理。
API概述
| 端点 | 方法 | 查询参数 | 说明 |
|---|---|---|---|
/etfs | 得到 | market (可选,默认 E) | 流式传输ETF基金列表。 |
/etf/{ts_code}/history | 得到 | start_date, end_date (YYYYMMDD) | 流式传输ETF的历史资产净值数据。 |
/etf_performance | 得到 | start_date, end_date, market (可选) | 流式传输所有ETF的区间百分比变化。 |
/etf/{ts_code}/holdings | 得到 | start_date, end_date (可选) | 流式传输ETF的组成部分持股。 |
所有日期参数都应在 YYYYMMDD 格式(例如。 20250101).如果 start_date 如果省略,将使用数据集的开头;如果 end_date 如果省略,则假定当前日期。
TuShare数据说明
TuShare的ETF端点受API限制,可能会返回不同的 字段取决于您的订阅级别。此服务器假定 存在以下字段:
- 对于 基金基础:
ts_code和name在其他中。看
pro.fund_basic 文档 为了 细节。
- 对于 fund_nav:要么
unit_nav或nav计算价格变化。 - 对于 基金组合:组成部分名称(
name),股票代码
(stk_code)和重量(weight).
如果TuShare在您的环境中返回不同的字段名,您可能需要 相应地修改代码。
