WT

wolfjkd/tradex-hub

开发工具
68 stars 23 forks 质量 71 趋势 28

A股 AI 金融智能决策中台 · 129 个 MCP 工具 · eltdx 通达信协议 + akshare + 同花顺 + 东财 + 本地数据 · SmartRouter 多源降级路由 · 免费零鉴权

概览

AI金融智能决策中台 AKShare 封装 · eltdx 通达信协议 · astock_signals 信号模块 · 量化计算引擎 · SmartRouter 全量路由 · 本地 MCP Server · 129 个工具 为 AI Agent(WorkBuddy / Claude Code / Cursor)提供 。 (129 个工具): - :通过 SmartRouter 统一获取数据(行情/财务/估值/行业/新闻/宏观/涨停板/龙虎榜/五档盘口/逐笔/分时/题材/短线指标等),其中 eltdx 通达信协议 31 个工具 - (8个工具):技术指标计算6个、绩效指标计算2个 - (16个工具):交易信号生成3个、多因子分析2个、条件选股2个、系统诊断5个、综合分析3个、技术分析引擎1个 : - :78 个数据类型,102 个数据源注册(37 种源),按封禁风险分三梯队 - :L1 工具通过 SmartRouter.route() 统一获取数据,自动健康评分/降级/故障隔离 - :行情类第一主源,31 个工具覆盖五档盘口/集合竞价/逐笔/F10/分时/K线/全景档案/短线指标/题材/分类行情等;新增常驻连接管理器 eltdx_stream.py(游标增量轮询实现准实时五档盘口)。3.x 为 Rust 重写内核(native wheel,cp310-abi3) - :第一梯队(eltdx/腾讯/本地 vipdoc,不封 IP)+ 第二梯队(同花顺/新浪/巨潮/财联社,低风险)+ 第三梯队(东财 push2/push2ex/slist,仅独有数据 + 限流防封) - :python -m tradex.dashboard(端口 8765),可视化查看数据源健康/路由/工具分布;MCP 工具 get_data_source_dashboard 可在 Agent 对话中查询 :全局直连(import 时清代理环境变量,国内数据源不走代理)+ 新增数据源(同花顺 4 接口 / 东财 slist 板块归属 / 东财限流防封 / 实时涨跌家数 / 行业涨幅 / 通达信本地数据)+ 2 个本地数据 MCP 工具,工具数 127→129。

README


项目介绍

tradex-hub 是一个本地运行的金融数据中台,把分散在多个数据源(通达信、腾讯财经、东方财富、同花顺、新浪、巨潮、财联社、AKShare 等)的 A 股数据,统一封装成 168 个 MCP 工具 + 58 个 REST 端点(2026-10-13 tq 本地源接入后基线),供 AI Agent(WorkBuddy / Claude Code / Cursor / Dify / LangChain)和前端看板(TradeX)一站式调用。

核心定位:让 AI Agent 不用关心数据从哪儿来、怎么反爬、怎么降级 —— 只管调一个统一接口,tradex-hub 自动选最优数据源、自动健康检查、自动故障隔离。

核心能力

能力 说明
统一接入 一套接口同时服务 MCP 客户端(AI Agent)和 HTTP 客户端(看板/前端),共享同一业务逻辑层
多源融合 80 个数据类型,103 个数据源实例,按封禁风险分三梯队,自动降级
量化计算 技术指标(MACD/KDJ/RSI/BOLL)、绩效指标、多因子分析、条件选股
决策支持 交易信号生成、综合诊断(个股/市场/技术)、龙虎榜、涨停揭秘
实时盯盘 eltdx 通达信协议常驻连接,五档盘口准实时推送
可观测性 Prometheus 指标、监控看板、数据源健康表、端点 P95 性能、慢查询日志
接入友好 三层令牌桶限流 + 访问日志双写 + TypeScript / Python 双语言 SDK

三层能力模型

┌────────────────────────────────────────────────────────────────┐
│  外部调用方                                                     │
│  ┌────────────────┐  ┌────────────────┐  ┌────────────────┐    │
│  │ MCP 客户端     │  │ REST 客户端    │  │ 浏览器看板     │    │
│  │ (AI Agent)     │  │ (前端/外部)    │  │ (/dashboard)   │    │
│  └────────┬───────┘  └────────┬───────┘  └────────┬───────┘    │
│           │                   │                   │             │
└───────────┼───────────────────┼───────────────────┼─────────────┘
            │                   │                   │
            ▼                   ▼                   ▼
┌────────────────────────────────────────────────────────────────┐
│  协议层(双协议并存)                                            │
│  ┌─────────────────────┐    ┌─────────────────────────────┐    │
│  │  MCP Server         │    │  FastAPI REST               │    │
│  │  168 个工具         │    │  58 个端点(/api/v1/*)      │    │
│  └──────────┬──────────┘    └──────────────┬──────────────┘    │
│             │                              │                    │
│             └──────────┬───────────────────┘                    │
│                        ▼                                        │
└────────────────────────┼────────────────────────────────────────┘
                         │
                         ▼
┌────────────────────────────────────────────────────────────────┐
│  Service 层(共享业务逻辑)                                      │
│  ┌──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┐     │
│  │market│price │fund  │compny│financ│news  │indstr│write │     │
│  └──┬───└──┬───└──┬───└──┬───└──┬───└──┬───└──┬───└──┬───┘     │
│     └──────┴──────┴──────┴──────┴──────┴──────┴──────┘         │
│                        │                                        │
└────────────────────────┼────────────────────────────────────────┘
                         ▼
┌────────────────────────────────────────────────────────────────┐
│  SmartRouter 全量路由层                                          │
│  ┌────────────────────────────────────────────────────────┐    │
│  │  对每个数据类型按梯队选最优源、健康评分、自动降级        │    │
│  └────────────────────────────────────────────────────────┘    │
│                                                                 │
│  数据源梯队                                                     │
│  ┌───────────────┐  ┌───────────────┐  ┌───────────────┐       │
│  │ 第一梯队      │  │ 第二梯队      │  │ 第三梯队      │       │
│  │ (不封 IP)     │  │ (低风险)      │  │ (限流防封)    │       │
│  │ eltdx / 腾讯  │  │ 同花顺 / 新浪 │  │ 东财 push2    │       │
│  │ 本地 vipdoc   │  │ 巨潮 / 财联社 │  │ push2ex       │       │
│  └───────────────┘  └───────────────┘  └───────────────┘       │
└────────────────────────────────────────────────────────────────┘

双协议并存架构

tradex-hub 同时暴露两个协议接口,共享同一套业务逻辑,调用方按需选择:

flowchart LR
    subgraph Caller["调用方"]
        A1["AI Agent(WorkBuddy / Claude)"]
        A2["前端看板(TradeX)"]
        A3["外部系统(Dify / LangChain)"]
    end

    subgraph Gateway["tradex-hub 网关 (端口 8000)"]
        B1["MCP Server168 个工具JSON-RPC over HTTP"]
        B2["FastAPI REST58 个端点统一包裹响应"]
        B3["监控看板/dashboardPrometheus /metrics"]
        B1 -.共享.- B2
        B2 -.共享.- B3
    end

    subgraph Service["Service 层(业务逻辑)"]
        C1["11 个领域模块market / price / fund /company / financial / news /industry / indicator /diagnostic / write / metrics"]
    end

    subgraph Router["SmartRouter"]
        D1["全量路由78 类型 / 102 源三梯队降级"]
    end

    A1 -->|tools/call| B1
    A2 -->|HTTP GET/POST| B2
    A3 -->|HTTP GET/POST| B2
    B1 --> C1
    B2 --> C1
    B3 --> C1
    C1 --> D1
协议 适用场景 接口形态
MCP AI Agent 对话式调用(工具描述可被 LLM 理解) JSON-RPC over HTTP,168 个工具
REST 看板 / 外部系统 / 自定义脚本 标准 HTTP + JSON,58 端点,包裹响应 {code, data, msg}

两个协议返回的数据完全一致(仅序列化差异:MCP 返 JSON 字符串、REST 返包裹 dict),契约严格对齐。


SmartRouter 全量路由原理

SmartRouter 是 tradex-hub 的核心 —— 它让上层无需关心数据从哪个源来:

flowchart TD
    Q["业务层发起数据请求(如 get_realtime_quote)"] --> SR{"SmartRouter.route()"}
    SR --> Sel["按数据类型查路由表取出该类型的候选源列表(按梯队排序)"]
    Sel --> Try["尝试第一梯队源"]
    Try --> Health{"健康检查(近期成功率)"}
    Health -->|健康| Call["调用数据源"]
    Health -->|不健康| Next1["跳过,尝试下一候选"]
    Next1 --> Try2["尝试第二梯队"]
    Call --> Resp{"返回数据是否合法?"}
    Resp -->|合法| OK["✅ 返回数据上报健康 + 延迟"]
    Resp -->|异常/空| Fail["❌ 标记本次失败降级下一源"]
    Fail --> Try2
    Try2 --> Try3["尝试第三梯队(限流防封)"]
    Try3 --> Resp2{"成功?"}
    Resp2 -->|成功| OK
    Resp2 -->|失败| Err["抛出最后错误"]

    style OK fill:#90ee90
    style Err fill:#ffcccc

梯队划分(按封禁风险从低到高):

梯队 数据源 特征
第一梯队 eltdx(通达信协议) / tdx_mcp(通达信官方 MCP,可选) / tq(通达信 TQ 本地源,需客户端运行) / 腾讯财经 HTTP / 本地 vipdoc 不封 IP,可高频调用
第二梯队 同花顺 / 新浪 / 巨潮 / 财联社 低风险,正常调用即可
第三梯队 东财 push2 / push2ex / slist 高封禁风险,仅用于独有数据,自动限流(间隔 ≥1s + 随机抖动)

安装

环境要求

  • Python 3.13+
  • 网络可访问国内 A 股数据源(eltdx 协议、HTTP 接口;代理仅给 GitHub 用,国内数据源必须直连)

快速开始

git clone https://github.com/wolfjkd/tradex-hub.git
cd tradex-hub

# 创建虚拟环境
python -m venv .venv
.venv\Scripts\activate    # Windows
# source .venv/bin/activate  # Linux/macOS

# 安装依赖(可编辑安装,含 http 网关 extras)
pip install -e "tradex[http]"

# 启动网关(HTTP 模式,默认 8000 端口)
python -m tradex --http

启动后访问:

可选:通达信官方 MCP(tdx_mcp)

tdx_mcp 与 eltdx 同属第一梯队、互为备份、互为兜底,提供 eltdx 没有的纯增量能力: 自然语言条件选股(natural_lang_screener)、券商研报(research_report)、 宏观数据增强(query_macro_indicator)。

它可选:不配置 TDX_MCP_TOKEN 也能正常运行——缺 token 时该源自动标记不可用, realtime_quote / historical_kline 无缝回落到 eltdx(健康分互备,用户无感)。

配置(复制 tradex/.env.example 为 .env):

# 在通达信官方 MCP 控制台获取访问 token,填入
TDX_MCP_TOKEN=你的token
# 端点与限流(通常无需改动)
TDX_MCP_ENDPOINT=https://txmcp.tdx.com.cn:3001/txmcp
TDX_MCP_MIN_INTERVAL=0.8

⚠️ 开源分发时请勿提交真实 token。token 冲突、泄漏或失效都只会让该源降级到 eltdx,不会导致服务不可用——这正是"平级互备"的设计意图。

可选:通达信 TQ 本地源(tq)

tq 是通达信客户端本地暴露的 JSON-RPC 通道(http://127.0.0.1:17709/), 与 eltdx / tdx_mcp 同属第一梯队,realtime_quote 互为备份(本地直连 ~11ms,不封 IP), 并提供两个独占增量工具:

  • get_l2_stats(code):当日 L2 统计(逐笔委托数 / 逐笔成交数 / 买撤单额 / 卖撤单额)
  • run_tdx_formula(formula, codes):通达信内置公式批量计算(公式生态桥)

零配置:无需任何 env。通达信客户端(含 Python 插件支持的版本)运行中即自动可用; 未运行时该源自动降级(DEBUG 日志,不影响其他源)。可用 env TQ_ENDPOINT / TQ_TIMEOUT 覆盖默认端点与超时。


MCP 工具清单(168 个)

完整工具清单详见 docs/MCP_TOOLS.md(由 scripts/generate_tool_docs.py 从源码 AST 生成,含每个工具的说明)。按业务领域分组:

领域 工具数 代表工具
公司信息 4 get_company_info / get_company_profile / search_stock / get_competitors
价格行情 5 get_realtime_quote / get_historical_price / get_intraday_data / get_market_capitalization
板块行业 5 get_industry_list / get_industry_stocks / get_concept_list / get_industry_pe
财务数据 8 get_income_statement / get_balance_sheet / get_cash_flow_statement / get_financial_indicators
估值与持仓 4 get_valuation_metrics / get_dividend_data / get_institutional_holdings
新闻公告 14 get_stock_news / get_company_announcements / search_news / get_telegraph_news
市场总览与资金 7 get_market_overview / get_money_flow / get_north_bound_flow / get_dragon_tiger
宏观与两融 10 get_macro_gdp / get_macro_cpi / get_macro_pmi / get_bond_yield_curve_official
信号数据 17 get_limit_up_board / get_limit_up_insight / get_fund_flow_signal / get_cb_realtime_data
eltdx 专有 31 五档盘口 / 集合竞价 / 逐笔 / 分时 / F10 / 短线指标 / 题材 / 分类行情 等
本地数据 2 get_local_kline / get_local_minute(通达信盘后文件)
通达信官方 MCP 3 natural_lang_screener / research_report / query_macro_indicator
通达信 TQ(独占) 2 get_l2_stats / run_tdx_formula(L2 统计 / 公式生态桥,需客户端运行中)
独立备源 4 get_sina_fund_flow / get_baidu_kline / get_baostock_valuation
交易所与巨潮官方 4 get_sse_dragon_tiger / get_szse_dragon_tiger / get_cninfo_announcement_backup
事件驱动 17 get_earnings_forecast / get_institution_survey / get_holder_trades / get_share_buyback
全球资讯 3 get_wallstreetcn_lives / get_cctv_news / get_macro_calendar
产业链资讯 2 get_industry_news / list_industry_tracks(106 源)
申万行业历史 2 get_sw_industry_history / get_sw_industry_as_of
技术指标与绩效 8 calculate_macd / calculate_kdj / calculate_rsi / calculate_boll / calculate_performance
决策支持 11 generate_trading_signal / analyze_stock_comprehensive / screen_stocks / calculate_factor_score
诊断 5 health_check / get_data_source_health / get_data_source_dashboard

REST API

58 个 REST 端点统一挂在 /api/v1/* 路径下,与 MCP 工具共享同一 service 层。

快速上手

# 行情
curl http://127.0.0.1:8000/api/v1/market/overview
curl "http://127.0.0.1:8000/api/v1/price/quote?symbol=600519"

# 技术指标(自动取 K 线)
curl "http://127.0.0.1:8000/api/v1/indicator/macd?symbol=600519"

# 综合诊断
curl "http://127.0.0.1:8000/api/v1/diagnostic/stock?symbol=600519"

# 写操作(策略持久化)
curl -X POST http://127.0.0.1:8000/api/v1/write/strategy \
  -H "Content-Type: application/json" \
  -d '{"name":"双均线策略","content":"MA5 上穿 MA20 买入","tags":["momentum"]}'

# 访问日志查询
curl "http://127.0.0.1:8000/api/v1/access-log?limit=10&path=/api/v1/price"

Python SDK 调用:

from tradex_client import TradexClient

client = TradexClient("http://127.0.0.1:8000")
resp = client.quote(query={"symbol": "600519"})
if resp["code"] == 0:
    print(resp["data"]["name"], resp["data"]["price"])

统一响应包裹

所有 /api/v1/* 端点返回标准包裹格式:

{"code": 0, "data": , "msg": "ok"}

错误码定义:

code HTTP 含义
0 200 成功
40001 400/422 参数错误(含 Pydantic 校验失败)
40401 404 资源不存在
42901 429 限流触发(请求过快,参见 Retry-After header)
50001 502 数据源不可达(所有梯队都失败)
50002 502 数据源返回异常
50003 500 网关内部错误

端点清单

类别 端点
行情 GET /market/overview、/market/global、/market/limit-up-down、/market/dragon-tiger
资金 GET /fund/flow、/fund/northbound
价格 GET /price/quote、/price/kline、/price/intraday
公司 GET /company/search、/company/info、/company/profile、/company/competitors
财务 GET /financial/income、/balance、/cashflow、/line-item、/indicators、/growth、/per-share、/segments
新闻 GET /news/stock、/news/announcements、/news/search
板块 GET /industry/list、/industry/stocks、/industry/concepts、/industry/fund-flow、/industry/pe
指标 GET /indicator/macd、/indicator/kdj、/indicator/rsi、/indicator/boll
诊断 GET /diagnostic/stock、/diagnostic/market、/diagnostic/technical
写操作 POST /write/strategy、GET /write/strategy/list、GET/DELETE /write/strategy/{id}、POST /write/watchlist、GET /write/watchlist/list、DELETE /write/watchlist/{symbol}
监控 GET /metrics(Prometheus 文本)、GET /api/v1/metrics/json(JSON 快照含端点性能)、GET /api/v1/metrics/slow-queries(慢查询日志)、GET /api/v1/access-log(访问日志查询)
看板 GET /dashboard(HTML 监控看板,30 秒自动刷新)

完整的 OpenAPI 交互式文档启动网关后访问 http://127.0.0.1:8000/docs。


监控与可观测性

Prometheus 指标

GET /metrics 输出标准 Prometheus 文本格式,含 10+ 个指标:

指标 类型 说明
tradex_requests_total{method, path, code} Counter REST 请求总数
tradex_request_duration_seconds Histogram 请求耗时分布
tradex_data_source_health{source} Gauge 数据源健康度(1=健康,0=不健康)
tradex_data_source_latency_seconds{source} Gauge 数据源最近响应延迟(秒)
tradex_slow_queries_total Counter 慢查询总数(超过 TRADEX_SLOW_QUERY_MS 默认 800ms)
tradex_gateway_uptime_seconds Gauge 网关运行时长
tradex_tools_registered Gauge 已注册 MCP 工具数(168)
tradex_cache_hits_total / cache_misses_total Counter 缓存命中 / 未命中

Dashboard 监控看板

GET /dashboard 是商务风格暗色看板,30 秒自动刷新,包含五个区域:

区域 内容
网关总览 运行时长 / 工具数 / 缓存命中率 / 慢查询阈值
数据源健康表 每个数据源的健康度 + 延迟(实时)
端点性能表 按端点聚合 QPS / P50 / P95 / P99 / 错误率(按 P95 降序)
慢查询日志 最近 N 条慢查询(按耗时分级 badge)
请求计数 按 method/path/code 维度的请求次数

访问日志(双写)

每个 REST 请求被中间件同时写到两处:

存储 路径 用途
SQLite 表 data/written.db 的 access_log 表(含 2 个索引) 结构化查询、聚合统计
文件 logs/access-YYYY-MM-DD.log(JSON Lines 格式) 审计归档、外部工具消费

GET /api/v1/access-log?limit=50&path=/api/v1/price 查询最近访问记录,支持按路径前缀过滤。

限流(令牌桶三层)

桶 阈值 说明
全局 600 req/min 整个网关总闸
单 IP 60 req/min 按 client_ip 聚合
单端点 120 req/min 按 path 聚合

超阈值返回 HTTP 429 + envelope code=42901 + Retry-After header。本机回环白名单(127.0.0.1 / ::1)不受限流,保证本地 AI Agent 与监控探针不被误伤。


写操作持久化

策略和自选股支持本地持久化 CRUD,底层用 SQLite(WAL 模式):

存储 路径 表
主库 data/written.db strategies(策略)、watchlist(自选股)

首次启动自动迁移:发现旧 JSON 文件(data/written/strategies/*.json、data/written/watchlist.json)时自动导入 SQLite,原文件改名 .migrated 留底,迁移过程写 data/written/migration.log。迁移幂等。

并发安全:写入用 BEGIN IMMEDIATE 立即获取写锁,主键格式 {毫秒时间戳}-{线程ID}-{随机4位} 杜绝并发冲突,WAL 模式保证读写不互斥。


客户端 SDK

为方便第三方快速接入,提供 TypeScript 与 Python 双语言 SDK,由 scripts/generate_sdk.py 从 /openapi.json 自动生成:

sdk/
├── typescript/index.ts        # TypeScript 客户端(基于 fetch)
├── python/tradex_client/      # Python 客户端(基于 requests)
└── README.md                  # 双语言对照、安装、示例

快速示例:

# Python
from tradex_client import TradexClient
client = TradexClient("http://127.0.0.1:8000")
quote = client.quote(query={"symbol": "600519"})
// TypeScript
import { TradexClient } from "./typescript";
const client = new TradexClient("http://127.0.0.1:8000");
const quote = await client.quote({ query: { symbol: "600519" } });

修改端点后重新生成:python scripts/generate_sdk.py


配置到 AI Agent

WorkBuddy / Claude Code / Cursor

编辑 MCP 配置文件(如 ~/.workbuddy/mcp.json):

{
  "mcpServers": {
    "tradex": {
      "command": "python",
      "args": ["-m", "tradex", "--http"],
      "env": {
        "TRADER_HUB_MODE": "http"
      }
    }
  }
}

外部 HTTP 客户端

直接用 HTTP 调用 REST 端点,无需 MCP 客户端:

curl http://your-host:8000/api/v1/market/overview

验证

启动后快速验证:

# 健康检查
curl http://127.0.0.1:8000/health
# 期望: {"status":"ok","service":"tradex-mcp","tools":168}

# REST 端点
curl http://127.0.0.1:8000/api/v1/ping
# 期望: {"code":0,"data":{"pong":true},"msg":"ok"}

# MCP 工具(通过网关 HTTP 模式)
curl http://127.0.0.1:8000/mcp -X POST \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

已知限制

限制 说明
数据源延迟 eltdx 通达信协议约 100ms 延迟;早盘 9:25-9:35 集合竞价期间部分接口可能延迟 5-8 分钟(数据源侧现象,非 tradex-hub 问题)
北向资金停更 2024-08-19 起沪深港通不再公开披露实时北向资金数据,相关接口返回历史数据或停更标记
eltdx 内核 eltdx 3.x 为 Rust 重写内核(native wheel,cp310-abi3),曾出现 pyo3 PanicException 穿透问题,v3.3.18 已加 BaseException 兜底修复
本地部署 默认本地运行,不提供云服务;代理仅给 GitHub 用,国内 A 股数据源必须直连
限流阈值 三层令牌桶阈值适用于通用场景;如需调整可通过环境变量 TRADEX_RATE_LIMIT_GLOBAL / TRADEX_RATE_LIMIT_PER_IP / TRADEX_RATE_LIMIT_PER_ENDPOINT 修改

如何确认当前版本(纯本地,不联网)

只看本地文件夹即可判断版本,无需访问 GitHub:

python scripts/version.py      # 一次输出全部信号并做一致性比对
git describe --tags --dirty    # 最精确:当前代码在哪个 tag 之后第几个提交
cat VERSION                    # 最简:发布版本号单一真源
信号 位置 含义 可靠性
VERSION 仓库根 发布版本号,发版时四处同步的源头 权威
git describe .git/ 形如 v3.6.1-2-gabc1234:v3.6.1 之后还有 2 个未发布提交 权威
tradex/pyproject.toml project.version 打包版本号,应与 VERSION 一致 权威
CHANGELOG.md 顶部条目 最近一次发布记录 展示层
README 徽章 文件头 易滞后,version.py 会指出漂移 展示层
GET /health 运行实例 反映进程版本,可能是旧进程 运行时

两个易错点:

  • 版本号相同不代表代码相同 —— VERSION 只在发版时变更,tag 之后的提交仍属该版本号。要看代码新旧,看 git describe 的提交数。
  • origin/master 是上次 git fetch 的快照,不是实时远端状态。完全不联网时,脚本只能告诉你"相对上次拉取有无差异",远端是否又更新需 git fetch 后才能判断。

版本历史

版本 日期 关键里程碑
v3.6.1 2026-10-18 fetch_sina_fund_flow 增加新浪 MoneyFlow 降级:东财 push2his 的 fflow/daykline 接口已被风控封禁(直连 curl 56、akshare 同源一并失效),主路径失败时改走新浪 MoneyFlow 当日快照(_sina_moneyflow_snapshot,字段口径与主路径同构),保住「资金流向」当日数据。限制:备源仅提供当日单日快照,多日历史仍不可得
v3.6.0 2026-09-29 全项目代码审计(修复 47+ 处「异常吞成空表」、腾讯行情单位错标 P0、限流/代理直连化/健康分锁等 14 项)+ 死源剥离(上游已死的期权/指数/社融/LPR/互动 10 类型全链路移除,工具 176→166、端点 58)+ SDK 2.0.0(修命名碰撞、路径化方法名、59 端点重生成)
v3.5.2 2026-09-28 修复 fetch_market_overview_tencent 腾讯指数成交额错标:字段 37(万元)原样标「成交额(元)」,下游拿到数值差 1 万倍;现 ×1e4 换算为真元,与分类榜 amount_wan*1e4 口径对齐(实证 sh000001 → 8045.4 亿)
v3.5.1 2026-09-22 修复 stdio 模式 MCP 启动崩溃:parse_allowed_hosts 的 http 依赖延迟到 --http 分支加载,无 fastapi 也可正常启动
v3.5.0 2026-09-19 REST API 阶段二:可观测性(数据源健康实时埋点 + 端点 QPS/P95 + 慢查询日志)+ 并发安全(写操作切 SQLite + WAL + 自动迁移)+ 接入友好(三层限流 + 双语言 SDK + 访问日志双写)
v3.4.0 2026-09-19 REST API 上线:双协议并存(44 端点 + 129 MCP 工具),11 个 service 模块抽出共享业务逻辑,Prometheus 指标 + 监控看板,统一响应包裹 {code, data, msg}
v3.3.18 2026-09-18 根因修复 MCP 频繁断连(pyo3 PanicException 穿透杀进程)
v3.3.16 2026-09-15 机构持仓列错位修复 + fund_hold 超时放宽 + 退役失效情绪源
v3.3.15 2026-09-14 静默数据丢失修复 + 降级链伪装修复 + 7 个类型独立备源
v3.3.14 2026-09-14 备源降级链与代理误路由修复 + 4 个单源类型独立备源
v3.3.12 2026-09-08 HTTP 远程模式上线(网关架构),WS_PORT 容错
v3.3.9 2026-08-18 全局直连(清代理环境变量)+ 新增数据源(同花顺/东财 slist/通达信本地)+ 工具数 127→129
v3.3.6 2026-08-14 ETF 行情接口修复 + 数据源健康检查完善
v3.3.0 2026-08-03 astock_signals 信号模块整合,涨停板 / 龙虎榜 / 题材归因上线
v3.2.0 2026-08-03 可转债接口完善 + 估值指标接口
v3.1.0 2026-08-02 eltdx 通达信协议集成(行情第一主源),WebSocket 实时推送
v3.0.0 2026-08-01 架构重构:SmartRouter 全量路由 + 三梯队降级 + 数据源健康评分
v2.5.0 2026-07-26 多因子分析 + 条件选股引擎
v2.4.0 2026-07-23 技术指标计算引擎(MACD/KDJ/RSI/BOLL/ATR)
v2.3.0 2026-06-24 综合诊断模块(个股 / 市场 / 技术 三维度)
v2.2.0 2026-06-23 资金流与游资追踪(moneyflow / hotmoney)
v2.0.0 2026-06-01 MCP 协议支持,从 CLI 工具升级为 AI Agent 接口
v1.0.0 2026-05-01 初版:基础行情查询 CLI

完整变更记录详见 CHANGELOG.md。


许可

Apache License 2.0


作者

郭良勇 · A 股日内交易员 / 量化转型中

本项目的初衷是为 A 股交易员提供可信赖的本地化金融数据中台。所有数据接口均指向公开数据源,不涉及任何违规数据获取。

在 GitHub 查看完整 README

安装

This server does not publish a one-line install command.

Open the repository installation guide 新手?先看 mcpskill.org 教程 →

配置

{ "mcpServers": { "tradex": { "command": "python", "args": ["-m", "tradex", "--http"], "env": { "TRADER_HUB_MODE": "http" } } } }