Skip to main content
Glama
RicalLiu

a-share-mcp

by RicalLiu

a-share-mcp

本地 A 股交易 MCP Server,让 AI Agent(Crush / Claude Code / Codex)安全调用同花顺交易能力。 当前为模拟交易模式,已预留真实券商通道接口,可平滑升级。


⚠️ 安装前必读:许可证

本项目采用 GPL v2+ 与 LGPL v2.1+ 双许可证任选其一

  • GPL v2+:适用于整体衍生作品,你的作品必须以 GPL 开源

  • LGPL v2.1+:适用于作为库链接进你的程序,仅库本身的修改需开源

IMPORTANT

两种许可证都具有copyleft 传染性:你对本项目的任何修改,一旦分发(发给别人 / 公开发布 / 部署给第三方),必须同步开源并提供完整源代码。不允许闭源分发本项目或其衍生作品。

详细说明与选择指引见 LICENSE,协议全文见 LICENSE.GPLv2LICENSE.LGPLv2.1


Related MCP server: xcsc-tushare-mcp

简介

一个运行在本地电脑上的 A 股交易 MCP Server。通过标准 MCP 协议暴露账户查询、持仓查询、买卖下单、撤单能力,内置交易风控与强制用户确认机制,防止 AI Agent 绕过人工确认直接下单。

        AI Agent(Crush / Codex)
                 │
            MCP Protocol
                 │
         a-share-mcp(本服务)
         ┌───────┼───────┐
      Account  Risk  Trade
         │       │       │
      查询账户 交易检查 下单执行
                 │
        券商通道(模拟 / 待接入)

功能特性

  • 标准 MCP 协议:基于 FastMCP,即插即用,兼容主流 AI Agent

  • 5 个交易工具get_account / get_position / buy_stock / sell_stock / cancel_order

  • 强制确认机制:任何买卖必须先返回确认预览(股票 / 代码 / 数量 / 价格 / 金额 / 账户占比 / 风险),用户明确确认后才执行;一键清仓需二次确认

  • 内置风控引擎:单票占比上限、当日亏损熔断、大额交易重点确认、禁止一键清仓,规则可配置

  • 完整交易日志:每次成交记录到 logs/trade.log,格式固定、可审计

  • 双模式:模拟模式开箱即用;真实券商通道接口已预留,升级不改 MCP 层

目录结构

.
├── server.py              MCP Server 入口
├── config.yaml            模式与风控配置
├── mcp.json               标准 MCP 客户端配置示例
├── requirements.txt       依赖清单
├── LICENSE                双许可证说明(GPL v2+ / LGPL v2.1+)
├── LICENSE.GPLv2          GPL v2 全文
├── LICENSE.LGPLv2.1       LGPL v2.1 全文
├── tools/
│   ├── account.py         账户查询
│   ├── position.py        持仓查询
│   ├── order.py           下单 / 撤单 / 交易日志
│   └── risk.py            风控引擎
├── drivers/
│   └── tonghuashun.py     券商驱动(预留接口)
├── data/portfolio.json    模拟账户状态(示例数据,请自行替换)
├── tests/test_smoke.py    冒烟自检
└── logs/                  交易日志(运行时生成,不入库)

系统要求

  • Windows(真实交易自动化目标平台;模拟模式任意平台可运行)

  • Python 3.11+

  • 模拟模式仅需 fastmcp

安装

git clone git@github.com:RicalLiu/a-share-mcp.git
cd a-share-mcp
pip install -r requirements.txt

安装即视为已阅读并接受 LICENSE 中 GPL v2+ 与 LGPL v2.1+ 双许可证的任选其一约定。

快速开始

# 1. 启动 MCP Server(stdio 模式,供 AI Agent 调用)
python server.py

# 2. 冒烟自检(不启动服务,直接验证交易全流程)
python tests/test_smoke.py

预期输出 SMOKE OK

录入你的持仓

模拟账户状态保存在 data/portfolio.json,直接编辑即可:

{
  "cash": 500000.0,
  "positions": {
    "600519": {"name": "贵州茅台", "cost": 1500.0, "amount": 100}
  },
  "day": "2026-08-07",
  "day_pnl": 0.0
}

字段

含义

cash

可用现金,参与风控计算(总资产 = 现金 + Σ 成本 × 股数)

positions

持仓:代码 → 名称 / 成本价(每股)/ 股数

day / day_pnl

当日已实现盈亏,跨日自动清零,可留默认值

MCP 工具

工具

参数

说明

get_account()

-

现金 / 总资产 / 可用资金 / 当日盈亏

get_position()

-

持仓列表(代码 / 名称 / 数量 / 成本)

buy_stock(code, amount, price, name?, confirm=false)

买入股票;confirm=false 返回确认预览

sell_stock(code, amount, price?, confirm=false, force=false)

卖出股票;一键清仓需 force=true 二次确认

cancel_order()

-

撤单(模拟模式订单即时成交,无待撤订单)

返回示例

get_account()

{"cash": 500000.0, "total_asset": 650000.0, "available": 500000.0,
 "positions_value": 150000.0, "day_pnl": 0.0}

buy_stock() 未确认时(confirm=false):

{
  "status": "need_confirm",
  "preview": "交易确认:\n股票:贵州茅台\n代码:600519\n数量:100股\n价格:1500\n预计金额:150000元\n账户占比:23.1%\n风险:需重点确认",
  "confirm": "确认交易"
}

交易确认流程(强制,不可跳过)

任何买卖必须两步调用:

  1. 先以 confirm=false 调用 → 返回 need_confirm 预览(含股票 / 代码 / 数量 / 价格 / 预计金额 / 账户占比 / 风险)

  2. 向用户完整展示预览,等待用户明确确认后,以 confirm=true 调用执行

一键清仓(卖出全部持仓)返回 need_force_confirm,需向用户二次确认后以 force=true 调用。

未确认的交易一律不成交,不会写日志、不会改动账户状态。

风控规则

config.yamlrisk 段配置,服务端强制,Agent 不可绕过:

规则

默认值

行为

max_single_stock_ratio

0.2

单票市值超过总资产 20% 拒绝买入

max_daily_loss_ratio

0.03

当日已实现亏损达总资产 3% 禁止买入(卖出止损不受限)

require_confirm_ratio

0.05

单笔金额 ≥ 总资产 5% 标记「需重点确认」

forbid_all_sell

true

禁止一键清仓,需 force=true 二次确认

mode: simulation  # simulation(模拟)| real(真实,待接入)
risk:
  max_single_stock_ratio: 0.2
  max_daily_loss_ratio: 0.03
  require_confirm_ratio: 0.05
  forbid_all_sell: true

交易日志

每次成交写入 logs/trade.log

2026-08-07 10:30
BUY
300750
100股
价格220
用户确认
SUCCESS

接入 AI Agent

Crush

mcp add stock-trader --type stdio --command python --args "/path/to/a-share-mcp/server.py"

标准 MCP 客户端

mcp.jsonserver.py 路径替换为实际路径后,放入客户端配置。

Agent System Prompt(建议粘贴给你的 Agent)

你是我的A股交易助手。你可以调用stock-trader MCP。规则:
1. 任何交易必须经过risk检查。
2. 任何真实交易必须获得用户明确确认。
3. 交易前必须展示:股票、代码、数量、价格、金额、风险。
4. 禁止自行扩大交易数量。
5. 禁止连续交易。
6. 所有交易必须记录日志。

预留接口

drivers/tonghuashun.py 已定义券商驱动接口(Step 3 待实现),MCP 层、风控层、确认流程均不依赖具体实现:

class Tonghuashun:
    def login(self)                                  # 登录
    def get_account(self)                            # 查询账户
    def get_position(self)                           # 查询持仓
    def buy(self, code, amount, price=None)          # 买入
    def sell(self, code, amount, price=None)         # 卖出
    def cancel(self, order_id=None)                  # 撤单

实现任一券商通道只需:新建驱动类实现上述接口,并在 order.py 中按 config.yamlmode 分流到真实驱动即可,MCP 工具签名与调用方不变。

后续开发方案(路线图)

1. 同花顺客户端自动化驱动(近期)

  • pyautogui + pywin32 + opencv-python + pytesseract 操作同花顺客户端(川财 / 华安证券版)

  • 流程:打开客户端 → 登录 → 进入交易页 → 输入代码 / 数量 → 点击买入 / 卖出 → OCR 读取成交结果

  • 前置条件:本机安装同花顺客户端、已登录券商账户

  • 依赖已注释在 requirements.txt,取消注释即可安装

2. 券商量化通道(推荐长期方案)

  • 华安证券:官网正式提供「华安证券 QMT 极速策略交易平台」,支持 Python 策略编程;优先确认是否可开通 miniQMT(外部 Python API xtquant),可脱离界面纯脚本下单。门槛约 50 万,以客户经理答复为准

  • 川财证券:官网未公开提供 QMT / Ptrade,需联系客户经理确认量化通道

  • 实现方式:新增 drivers/qmt.py(基于 xtquant),接口与预留驱动一致,MCP 层零改动

  • 合规:程序化交易需遵守券商协议与《程序化交易管理规定》,首次开展需向券商报告;高频(>300 笔/秒)需额外报备

3. 行情接入

  • 模拟模式目前按成本价估值;接入行情源(如本地行情数据接口 / 实时行情库)后支持真实市值与盈亏计算

4. 高级交易能力

  • 条件单 / 止损单 / 网格策略:在 tools/order.py 之上扩展,风控与确认流程复用

  • 多账户支持:将 data/portfolio.json 扩展为按账户分目录

合规与免责声明

  • 本项目仅提供技术框架,不构成投资建议;使用本项目进行真实交易的风险由使用者自行承担

  • 程序化交易 A 股须遵守券商协议与《程序化交易管理规定》,高频交易需向券商报备

  • 真实交易前请确认你的券商是否允许程序化交易

License

GPL v2+ 或 LGPL v2.1+,任选其一(见 LICENSE)。

  • 修改后分发必须开源(copyleft)

  • 全文:LICENSE.GPLv2(GPL v2+)、LICENSE.LGPLv2.1(LGPL v2.1+)

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    F
    maintenance
    Production-grade MCP server for Chinese A-share market data, offering 30 tools including real-time quotes, K-lines, fund flows, and financial reports, with stdio and HTTP transport support.
    7
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Toss Securities (토스증권) Open API MCP server for the Korean stock market. Supports real-time quotes, orderbook, candles, account holdings, buying power, and order management (create/modify/cancel) with a built-in safety gate requiring explicit confirmation before any real order is placed.
    17
    15 npm
    4
    MIT
  • A
    license
    C
    quality
    A
    maintenance
    Local paper-trading and market simulation MCP server for multi-account portfolios, advanced orders, options/futures, backtesting, alerts, and automation.
    60
    MIT