ths-stock-trading-mcp
Servicio MCP de trading simulado web de Tonghuashun
Encapsula el sistema de trading de Tonghuashun como un servicio MCP universal (stdio), para que distintos Agentes de IA puedan invocarlo.
Caso práctico: dos MCP trabajando juntos para operar en bolsa totalmente automatizado
El servicio MCP de este proyecto se encarga de «posiciones de cuenta» y «realizar órdenes»
Servicio de datos financieros de IA iFinD de Tonghuashun se encarga de «consultar datos para seleccionar acciones» y «consultar indicadores de mercado» (Tonghuashun ofrece cuota de prueba gratuita).
Una vez que ambos servicios se conectan al mismo Agente de IA (como hermes, codex, claude desktop, workbuddy, trae work y deepseek harness, entre otros), solo tienes que decirle a la IA «opera en bolsa automáticamente según la estrategia XX», y ella misma usará iFinD para consultar el mercado y seleccionar acciones, y luego usará el servicio de trading para enviar órdenes, cancelar órdenes y consultar ejecuciones automáticamente, sin necesidad de operar la cuenta manualmente en todo el proceso.
Aviso importante
Primero inicia el navegador e inicia sesión en el sistema de trading de Tonghuashun (consulta «Requisitos previos»), para que el servicio de trading pueda enviar órdenes.
Las órdenes solo admiten precio de mercado, y la cantidad debe ser múltiplo entero de 100; antes de comprar, la IA consultará primero los fondos, y antes de vender, consultará primero las posiciones.
La IA opera en bolsa, cada una con su propio método, ¡los beneficios y pérdidas son responsabilidad propia! No abuses de esta herramienta, y mucho menos la uses con fines comerciales.
Este proyecto solo permite trading simulado. ¿Qué hacer si la estrategia de trading se valida y quieres ponerla en producción con una cuenta real? ¡Contacta con el autor y habrá una solución!
Related MCP server: QMT MCP Server
Requisitos previos
Iniciar el navegador manualmente (consulta
启动浏览器.bat): Chrome abre el puerto de depuración 9222, usando el directorio de usuario independientechrome_profile.Iniciar sesión manualmente en el sistema de trading de Tonghuashun y entrar en la página de trading.
Una vez cumplidas las condiciones anteriores, el servicio MCP puede funcionar correctamente; de lo contrario, cada herramienta devolverá un mensaje de error claro en chino.
Entorno
Versión de Python recomendada: 3.11 (la dependencia
mcprequiere>=3.10; 3.10–3.12 funcionan correctamente)Entorno de Python:
.venvdentro del proyecto (entorno virtual, ver la sección siguiente para crearlo)Dependencias:
.venv/Scripts/python.exe -m pip install -r requirements.txtNota: Playwright se conecta al navegador ya abierto mediante CDP, no necesita descargar el núcleo del navegador; tampoco almacena ninguna credencial de cuenta, depende completamente de la sesión iniciada manualmente.
Crear el entorno virtual de Python
En el primer uso, hay que crear .venv en el directorio raíz del proyecto (elige una de las dos opciones):
# 方式一:标准库 venv(需本机已安装 Python 3.11,可用 py -3.11 指定版本)
py -3.11 -m venv .venv
# 方式二:uv(更快,未装对应版本时自动下载,推荐)
uv venv --python 3.11 .venvUna vez creado, instala las dependencias:
.venv/Scripts/python.exe -m pip install -r requirements.txtEn Windows, la ruta del intérprete es
.venv/Scripts/python.exe(en Linux/macOS es.venv/bin/python). Todos los comandos posteriores usan.venv/Scripts/python.execomo referencia.
Tutorial de configuración de MCP
Este servicio se ejecuta mediante transporte stdio, y cualquier cliente compatible con MCP puede conectarse. La configuración principal es solo una línea:
usar el intérprete de Python del .venv del proyecto para iniciar server.py.
Configuración general (común para todos los Agentes de IA)
{
"mcpServers": {
"ths-stock-trading-mcp": {
"command": "D:/workspace_github/ai_ths_moni_trading_mcp/.venv/Scripts/python.exe",
"args": ["D:/workspace_github/ai_ths_moni_trading_mcp/server.py"]
}
}
}En Windows, las rutas pueden usar barras normales
D:/...; si la ruta real de tu.venves diferente, modificacommandsegún sea necesario.
Verificar la conexión
Tras conectarte, deberías ver 5 herramientas: query_account_and_positions / query_deals / query_orders /
place_order / cancel_order. Puedes usar query_account_and_positions para verificar la conectividad (requiere que el navegador haya iniciado sesión).
Herramientas
Herramienta | Descripción |
| Consultar fondos y posiciones de la cuenta (saldo disponible, saldo de fondos, activos totales, valor de valores, etc., y detalle de posiciones) |
| Consultar ejecuciones del día |
| Consultar órdenes del día |
| Orden de compra/venta a precio de mercado ( |
| Cancelar una orden no ejecutada ( |
Pruebas
.venv/Scripts/python.exe -m pytest -v # 单元测试
PYTHONPATH=. .venv/Scripts/python.exe scripts/e2e.py # 真实浏览器端到端(需已登录浏览器)
PYTHONPATH=. .venv/Scripts/python.exe scripts/mcp_smoke.py # MCP stdio 协议冒烟Configuración del servicio
config.yaml en el directorio raíz del proyecto:
cdp_endpoint: dirección de depuración remota de Chrome, por defectohttp://127.0.0.1:9222. Si cambias el puerto de depuración en启动浏览器.bat, debes sincronizar este valor.slow_ms: retardo del modo de observación lenta (ver sección siguiente).refresh_before_tool: si se debe refrescar la página de trading para detectar el tiempo de sesión agotado antes de cada ejecución de una herramienta MCP.true(por defecto) = en cada llamada se recarga la página de trading para comprobar la sesión; si ha expirado, cierra automáticamente la pestaña inválida y vuelve a entrar en la zona de trading;false= usa la ruta rápida original (solo hace detección con refresco cuando el número de cuenta en la esquina superior derecha es anómalo). Si vuelve a ocurrir el problema de fallo de órdenes del 8/18 (la carga de cotizaciones falla tras el refresco), puedes ponerfalsepara volver atrás con un solo clic.delays: retardos (en milisegundos) para cada paso de envío/cancelación de órdenes; se pueden aumentar según las condiciones de red/plataforma para mejorar la tasa de éxito. Entre ellos, siquote_timeoutexpira, no se hace clic en el botón de enviar orden y se devuelve directamente «Fallo al enviar la orden: datos de cotización no cargados… orden no enviada»;js_settlees el retardo para esperar a que el JS de la página se inicialice tras refrescar la página de trading (por defecto 3000). Las claves no configuradas usan automáticamente los valores por defecto (menú 300 / panel 800 / tiempo de espera de cotización y ventana emergente 8000 / cancelación efectiva 1000 / JS listo 3000).
Modo de observación lenta
Las herramientas MCP operan el navegador muy rápido por defecto (terminan en 1-2 segundos), lo que dificulta la observación y verificación manual paso a paso. Activa el modo lento mediante
slow_ms en config.yaml del directorio raíz del proyecto: añade ese retardo en milisegundos entre cada operación del navegador, e imprime en el registro stderr del servicio
los pasos en chino (como «rellenar el código de valor 600000 y pulsar Enter para cargar la cotización» o «hacer clic en comprar, enviar la orden»).
En config.yaml, cambia slow_ms a 1200 (pausa de 1,2 segundos entre cada operación) y reinicia la sesión del servicio MCP para que surta efecto:
# config.yaml
slow_ms: 1200Poner 0 es la velocidad original. Se usa un archivo en lugar de variables de entorno para ser compatible con los distintos clientes de Agentes de IA que no inyectan variables de entorno.
Limitaciones conocidas
El envío de órdenes depende del servicio de cotizaciones del backend de la plataforma; ocasionalmente devuelve «por el momento no se ofrece el servicio de [consulta de cotizaciones de valores del mostrador (B)]/consulta de códigos de valores del backend (B)» — es una avería temporal del lado de la plataforma de trading; basta con reintentar o esperar un poco.
La cancelación de órdenes solo se puede ejecutar cuando la orden está «no ejecutada»; las órdenes ya ejecutadas/canceladas no aparecen en la lista de cancelables, y
cancel_orderdevolverá un aviso claro.
Estructura de directorios
server.py— punto de entrada del servicio MCP (FastMCP, stdio)config.yaml— configuración del servicio (modo de observación lenta, etc.).mcp.json— configuración de conexión MCP para Claude Codeths/— lógica de negocio (control del navegador, selectores, analizadores, operaciones de página, errores)scripts/— scripts de inspección/pruebas de extremo a extremo/smoke test del protocolotests/— pruebas unitarias y fixtures de páginas reales
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
- FlicenseNot gradedqualityBmaintenanceProvides AI clients access to TdxQuant/通达信 financial data and trading capabilities through MCP. Enables retrieval of market data, financial reports, sector information, and trading operations via stdio or HTTP/SSE connections.25
- FlicenseNot gradedqualityBmaintenanceWraps the miniQMT interface to enable AI assistants to query A-share market data, account information, and place/cancel orders.
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to perform A-share quantitative backtesting by calling TickTest API through MCP protocol.MIT

EasyQuote MCP Serverofficial
AlicenseNot gradedqualityAmaintenanceEnables AI agents to access real-time and historical stock market data for A-shares, Hong Kong, US, and global markets, including quotes, K-lines, fund flows, fundamentals, and board data, via a Python SDK and MCP protocol.1MIT
Related MCP Connectors
Read-only China A-share data for AI agents: market, limit-up, capital flow and disclosures.
MCP server exposing the Backtest360 engine API as tools for AI agents.
Provide access to Chinese stock market data including historical prices, real-time data, news, and…
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/trading-a/ai_ths_moni_trading_mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server