a-share-mcp
a-share-mcp
本地 A 股交易 MCP Server,让 AI Agent(Crush / Claude Code / Codex)安全调用同花顺交易能力。 当前为模拟交易模式,已预留真实券商通道接口,可平滑升级。
⚠️ 安装前必读:许可证
本项目采用 GPL v2+ 与 LGPL v2.1+ 双许可证,任选其一:
GPL v2+:适用于整体衍生作品,你的作品必须以 GPL 开源
LGPL v2.1+:适用于作为库链接进你的程序,仅库本身的修改需开源
两种许可证都具有copyleft 传染性:你对本项目的任何修改,一旦分发(发给别人 / 公开发布 / 部署给第三方),必须同步开源并提供完整源代码。不允许闭源分发本项目或其衍生作品。
详细说明与选择指引见 LICENSE,协议全文见 LICENSE.GPLv2 与 LICENSE.LGPLv2.1。
Related MCP server: ashare-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
}字段 | 含义 |
| 可用现金,参与风控计算(总资产 = 现金 + Σ 成本 × 股数) |
| 持仓:代码 → 名称 / 成本价(每股)/ 股数 |
| 当日已实现盈亏,跨日自动清零,可留默认值 |
MCP 工具
工具 | 参数 | 说明 |
| - | 现金 / 总资产 / 可用资金 / 当日盈亏 |
| - | 持仓列表(代码 / 名称 / 数量 / 成本) |
| 买入股票; | |
| 卖出股票;一键清仓需 | |
| - | 撤单(模拟模式订单即时成交,无待撤订单) |
返回示例
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": "确认交易"
}交易确认流程(强制,不可跳过)
任何买卖必须两步调用:
先以
confirm=false调用 → 返回need_confirm预览(含股票 / 代码 / 数量 / 价格 / 预计金额 / 账户占比 / 风险)向用户完整展示预览,等待用户明确确认后,以
confirm=true调用执行
一键清仓(卖出全部持仓)返回 need_force_confirm,需向用户二次确认后以 force=true 调用。
未确认的交易一律不成交,不会写日志、不会改动账户状态。
风控规则
由 config.yaml 的 risk 段配置,服务端强制,Agent 不可绕过:
规则 | 默认值 | 行为 |
| 0.2 | 单票市值超过总资产 20% 拒绝买入 |
| 0.03 | 当日已实现亏损达总资产 3% 禁止买入(卖出止损不受限) |
| 0.05 | 单笔金额 ≥ 总资产 5% 标记「需重点确认」 |
| 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.json 中 server.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.yaml 的 mode 分流到真实驱动即可,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+)
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Alicense-qualityCmaintenance基于Model Context Protocol (MCP) 的A股实时行情查询服务器,支持查询A股实时价格、历史K线数据、财务信息及市场概况。Last updated8MIT
- Alicense-qualityDmaintenanceProduction-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.Last updated6MIT
- Alicense-qualityBmaintenanceA FastMCP-based MCP server that provides AI assistants with access to XCSC Tushare financial data APIs, supporting stdio and HTTP transport for stocks, indices, funds, and more.Last updated1MIT
- Alicense-qualityDmaintenance基于通达信行情服务器的 MCP Server,为 AI 助手提供实时 A 股、期货、港股等行情数据及技术指标。Last updatedMIT
Related MCP Connectors
Open-source MCP server for Zerodha Kite Connect. Portfolio, market data, backtesting, alerts.
Multi-tenant FastMCP server for Charles Schwab brokerage data, monetized via DPYC Tollbooth
MCP server exposing the Backtest360 engine API as tools for AI agents.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/RicalLiu/a-share-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server