Longbridge
oficialMercados de EE. UU. y Hong Kong — 110 herramientas: cotizaciones en tiempo real, opciones, órdenes, fundamentos, alertas, DCA y cartera
¿Qué puedes hacer con Longbridge MCP?
- Cotizaciones en tiempo real — Consulta cotizaciones en vivo e históricas, velas, profundidad de mercado y datos de opciones en los mercados de EE. UU. y Hong Kong.
- Cartera y operaciones — Revisa posiciones, saldo y ejecuciones, o envía, cancela y reemplaza órdenes, incluidas combinaciones de opciones de varias patas.
- Fundamentales e investigación — Obtén estados financieros, dividendos, opiniones de analistas, valoraciones y datos de los directivos de una empresa para una acción.
- Filtros y calendarios — Realiza búsquedas con el filtro de acciones o consulta el calendario financiero para ver resultados, dividendos, salidas a bolsa y datos macroeconómicos.
- Alertas y planes recurrentes — Crea alertas de precios, gestiona planes de inversión periódica y configura estrategias de trading en cuadrícula.
- Respuestas filtradas — Pasa una expresión
_jqa cualquier herramienta para reducir respuestas extensas a los campos que necesitas.
Servidor MCP alojado
npx add-mcp 'https://mcp.longbridge.com'Se instala en Claude Code, Codex, Cursor y más
Documentación
Servidor MCP de Longbridge
Servidor MCP oficial para la correduría Longbridge. 164 herramientas para cotizaciones en tiempo real, opciones, enrutamiento de órdenes, datos fundamentales, calificaciones de analistas, calendarios, IPO, alertas de precios, planes DCA, trading con grid, análisis de cartera y listas de acciones de la comunidad: cobertura de los mercados de EE. UU. y Hong Kong. Desarrollado con Rust mediante rmcp y axum.
Ya disponible en ChatGPT y Claude
Longbridge aparece oficialmente en el directorio de aplicaciones de ChatGPT y en el directorio de conectores de Claude.
Consulta los mercados en lenguaje natural: cotizaciones, opciones, datos fundamentales y tu propia cartera,
sin editar archivos de configuración ni pegar tokens.
| Añádelo en un solo lugar | Después, solo tienes que preguntar | |
|---|---|---|
| ChatGPT | Settings → Apps & Connectors → añade Longbridge | «¿Cómo cotiza NVDA hoy?» · «Muéstrame mis posiciones de Hong Kong» |
| Claude | Settings → Connectors → añade Longbridge (web · escritorio · móvil) | «Compara las valoraciones de AAPL y MSFT» · «¿Hay IPO esta semana?» |
Inicia sesión una vez con tu cuenta de Longbridge. Todas las solicitudes se procesan mediante el mismo endpoint alojado y protegido con OAuth 2.1 que se documenta a continuación: datos de mercado de solo lectura, además de herramientas completas para cuentas, carteras y trading, todo protegido por tus propias credenciales.
Características principales
- 164 herramientas, un endpoint — cotizaciones, opciones, enrutamiento de órdenes, datos fundamentales, análisis de analistas, filtros, IPO, alertas, DCA, trading con grid y análisis de cartera en los mercados de EE. UU. y Hong Kong.
- Sin estado por diseño — cada solicitud reenvía directamente su token Bearer al SDK de Longbridge. Sin sesiones, sin base de datos, sin datos almacenados en el servidor.
- OAuth 2.1, detección automática — metadatos de recursos protegidos RFC 9728 y de servidor de autorización RFC 8414; los clientes completan el flujo sin tener que pegar ningún token.
- Respuestas claras y tipadas — campos en snake_case, marcas de tiempo RFC 3339, símbolos legibles y esquemas de respuesta tipados disponibles como recursos MCP.
Desarrollado con Rust mediante rmcp y axum.
Filtrar respuestas de herramientas con jq
Cada herramienta acepta una cadena opcional _jq en sus argumentos. La expresión se ejecuta
sobre el JSON completo devuelto, después de la serialización normal de la respuesta. El nombre
_jq está reservado para filtrar respuestas y evitar conflictos con los parámetros de negocio.
Las instrucciones de uso se envían una sola vez en el campo instructions de la respuesta MCP
initialize; cada esquema de herramienta declara únicamente el nombre y el tipo del parámetro opcional.
Por ejemplo:
{
"name": "quote",
"arguments": {
"symbols": ["AAPL.US", "MSFT.US"],
"_jq": "map({symbol, last_done})"
}
}
Usa .data[:5] para obtener las primeras cinco entradas de un array data,
.data | map(select(.price > 10)) para seleccionar filas o {total: .total} para
proyectar campos. Las expresiones usan la sintaxis compatible con jq del motor integrado jaq;
no se necesita ningún ejecutable jq independiente.
- Omite
_jq(o pasanull) para conservar la respuesta original. - Si se devuelve un valor, se devuelve directamente; si hay varios, se devuelven como un array, y si no hay
ninguno, se devuelve
[]. Los escalares y arrays son texto JSON; los objetos también aparecen enstructuredContent, que contiene únicamente los campos filtrados. - Las respuestas de texto sin formato están disponibles como cadenas JSON. Los bloques de contenido múltiples sin contenido estructurado están disponibles como un array.
- Los errores de herramientas y las explicaciones sobre permisos o ausencia de datos no se filtran.
- Las expresiones vacías, no válidas o que no sean cadenas se rechazan antes de ejecutar la herramienta. Si el filtrado falla durante la ejecución, la respuesta indica explícitamente que la herramienta ya se ejecutó. No vuelvas a intentar automáticamente operaciones de escritura, como enviar una orden.
- No están disponibles el acceso al entorno, las importaciones del sistema de archivos ni los filtros de registro. La salida está limitada a 10.000 valores y 8 MiB; si se supera un límite, se devuelve un error en lugar de un resultado parcial.
Como los filtros pueden cambiar la forma de la respuesta, las herramientas no anuncian un
outputSchema fijo. Los esquemas tipados originales siguen disponibles mediante
resources/list y resources/read en lb://tools/{tool-name}/output-schema para las herramientas con esquemas.
Conecta tu propio cliente
Longbridge ofrece un endpoint alojado en https://mcp.longbridge.com: conéctale cualquier cliente MCP y completa OAuth cuando se te solicite. La autorización se detecta automáticamente mediante RFC 9728; no hay ningún token que pegar.
Claude Code
claude mcp add --transport http longbridge https://mcp.longbridge.com
Claude Desktop — añádelo a claude_desktop_config.json y reinicia:
{ "mcpServers": { "longbridge": { "url": "https://mcp.longbridge.com" } } }
Codex — añade el servidor y completa OAuth en el navegador:
codex mcp add longbridge --url https://mcp.longbridge.com
codex mcp login longbridge
Cursor · Cline · Windsurf · Zed · otros clientes — conéctalos a https://mcp.longbridge.com con el transporte streamable-http.
Más comandos de Claude Code
# Local self-hosted instance (see Self-hosting below)
claude mcp add --transport http longbridge-local http://localhost:8000/mcp
claude mcp list # registered servers
claude mcp get longbridge # config + auth status
claude mcp remove longbridge # unregister
claude mcp logout longbridge # re-trigger OAuth after revocation
En el primer uso, el cliente lee el desafío WWW-Authenticate, obtiene /.well-known/oauth-protected-resource (RFC 9728) y abre el navegador para iniciar el flujo OAuth de Longbridge. Los tokens se almacenan en caché por sesión y se actualizan automáticamente.
Las 164 herramientas
Veinte categorías que abarcan datos de mercado, trading, análisis y gestión de cuentas.
| Categoría | Cantidad | Cobertura |
|---|---|---|
| Quote | 32 | Cotizaciones en tiempo real e históricas, gráficos de velas, profundidad, brókeres, opciones, warrants, listas de seguimiento, flujo de capital, temperatura del mercado, posiciones cortas, volumen de opciones |
| Fundamental | 33 | Estados e informes financieros, segmentos de negocio, opiniones institucionales, pares y valoración del sector, dividendos, previsiones de EPS, valoraciones y comparación de valoraciones, información y directivos de empresas, accionistas, acciones corporativas, métricas operativas |
| Trade | 15 | Envío, cancelación y reemplazo de órdenes, órdenes de opciones combinadas de varias patas, posiciones, saldo, ejecuciones, flujo de efectivo, margen |
| Market | 15 | Estado del mercado, clasificación por sector y principales movimientos, posiciones de brókeres, prima A/H, estadísticas de trading, anomalías, operaciones y margen en corto, componentes de índices |
| DCA | 9 | Crear, actualizar, pausar, reanudar y detener planes de inversión periódica; historial de ejecuciones, estadísticas y comprobación de compatibilidad |
| Grid | 11 | Envío, reemplazo, cancelación, suspensión y reinicio de órdenes de trading con grid; consultas de listas, detalles e historial de activaciones; información de configuración por símbolo; consentimiento único para la estrategia |
| Sharelist | 8 | Operaciones CRUD de listas de acciones de la comunidad, añadir, eliminar y ordenar miembros, listas populares |
| IPO | 7 | Suscripciones a IPO, calendario, acciones cotizadas, detalles de órdenes, análisis de ganancias y pérdidas |
| Content | 7 | Lista y detalles de noticias, operaciones CRUD de temas de debate y respuestas |
| Alert | 5 | Operaciones CRUD de alertas de precios (añadir, eliminar, activar, desactivar, listar) |
| Screener | 5 | Búsqueda en el filtro de acciones, indicadores, recomendación y gestión de estrategias |
| Portfolio | 4 | Tipos de cambio, análisis de ganancias y pérdidas (resumen, detalles, realizadas) |
| ATM | 3 | Tarjetas bancarias, registros de retiros, registros de depósitos |
| Macrodata | 2 | Lista y detalles de indicadores macroeconómicos |
| Search | 2 | Búsqueda de noticias, búsqueda de temas de la comunidad |
| Statement | 2 | Listado y exportación de extractos de cuenta |
| Calendar | 1 | Calendario financiero (resultados, dividendos, IPO, datos macroeconómicos, cierres) |
| Quant | 1 | Ejecutar un script de indicadores cuantitativos sobre datos históricos de velas K |
| Authenticate | 1 | Intercambio de código OAuth para clientes que no pueden completar una redirección del navegador |
| Utility | 1 | Hora UTC actual |
Autoalojamiento
¿Prefieres tu propia instancia? Ejecuta la imagen publicada:
docker run -p 8443:8443 \
-v /path/to/certs:/certs:ro \
ghcr.io/longbridge/longbridge-mcp \
--bind 0.0.0.0:8443 \
--base-url https://mcp.example.com \
--tls-cert /certs/cert.pem \
--tls-key /certs/key.pem
Configura
--base-urlcon una URL accesible externamente en cualquier despliegue público: se publica en los metadatos OAuth que usan los clientes para descubrir el servidor de autorización. El valor predeterminado eshttp://localhost:{port}, que los clientes remotos no pueden usar.
O compila desde el código fuente: cargo build --release && ./target/release/longbridge-mcp.
Configuración y variables de entorno
La configuración se encuentra en ~/.longbridge/mcp/config.json (puedes cambiar el directorio con LONGBRIDGE_MCP_CONFIG_DIR). Las opciones de CLI tienen prioridad. Cuando tls_cert y tls_key están configurados, el servidor usa HTTPS; de lo contrario, usa HTTP. base_url tiene como valor predeterminado https://localhost:{port} con TLS o http://localhost:{port} sin TLS.
| Opción | Clave de configuración | Opción de CLI | Valor predeterminado | Descripción |
|---|---|---|---|---|
| Dirección de enlace | bind | --bind | 127.0.0.1:8000 | Dirección de escucha del servidor HTTP |
| URL base | base_url | --base-url | auto | URL base pública para los metadatos del recurso |
| Directorio de registros | log_dir | --log-dir | (stderr) | Directorio para archivos de registro rotativos |
| Certificado TLS | tls_cert | --tls-cert | (ninguno) | Archivo de certificado PEM para HTTPS |
| Clave privada TLS | tls_key | --tls-key | (ninguno) | Archivo de clave privada PEM para HTTPS |
| Entorno canary ascendente | canary | --canary | false | Conectarse al entorno canary de Longbridge (*.longbridge.xyz). --canary=false fuerza el uso de producción incluso si el archivo de configuración lo habilita |
El entorno de China continental (*.longbridge.cn) no es una opción: se selecciona automáticamente cuando se configura LONGBRIDGE_REGION=cn (la misma variable que usa el SDK), por lo que un clúster de China continental no necesita una configuración específica.
Los endpoints ascendentes están determinados por el entorno seleccionado:
| Producción (predeterminado) | Canary (--canary) | China continental (LONGBRIDGE_REGION=cn) | |
|---|---|---|---|
| OpenAPI | https://openapi.longbridge.com | https://openapi-global.longbridge.xyz | https://openapi.longbridge.cn |
| WebSocket de cotizaciones | wss://openapi-quote.longbridge.com/v2 | wss://openapi-global-quote.longbridge.xyz/v2 | wss://openapi-quote.longbridge.cn/v2 |
| WebSocket de trading | wss://openapi-trade.longbridge.com/v2 | wss://openapi-global-trade.longbridge.xyz/v2 | wss://openapi-trade.longbridge.cn/v2 |
| OAuth / página de conexión | openapi.longbridge.com / open.longbridge.com | openapi-global.longbridge.xyz / open.longbridge.xyz | openapi.longbridge.cn / open.longbridge.cn |
Canary usa la puerta de enlace -global, no openapi.longbridge.xyz: solo la primera está detrás de CloudFront y realiza el enrutamiento de centros de datos x-dc-region, que este servidor necesita para atender credenciales con prefijos us_ y ap_ desde un único proceso.
Canary y China continental fijan todas las URL anteriores al iniciar. En producción, la resolución se delega al SDK, salvo que una credencial us_ sin una anulación del endpoint ascendente se fija a la puerta de enlace global .com. Consulta src/endpoints.rs para conocer las reglas exactas de selección.
Variables de entorno avanzadas: la mayoría de los despliegues nunca las necesitan; existen para depurar el SDK y para despliegues en el borde o con entrada global.
| Variable | Valor predeterminado | Descripción |
|---|---|---|
LONGBRIDGE_MCP_CONFIG_DIR | ~/.longbridge/mcp | Directorio del archivo de configuración |
LONGBRIDGE_PUBLIC_HOSTS | (ninguno) | Nombres de host separados por comas que se aceptan del encabezado X-Host inyectado por el borde; las solicitudes coincidentes devuelven ese host en el desafío 401 y en los metadatos RFC 9728. Sin configurar = se ignora X-Host |
LONGBRIDGE_GLOBAL_OAUTH_URL | (ninguno) | URL del servidor de autorización anunciada a las solicitudes que llegan mediante un X-Host permitido (entrada global de un solo dominio). Sin configurar = se usa la URL base de OpenAPI del modo |
LONGBRIDGE_MCP_QUOTE_WS_IDLE_TTL_SECS | 600 | Segundos de inactividad antes de desalojar un contexto de WebSocket de cotizaciones almacenado en caché |
LONGBRIDGE_MCP_QUOTE_WS_MAX_CONTEXTS | 1024 | Número máximo de contextos de WebSocket de cotizaciones almacenados en caché por proceso del servidor |
LONGBRIDGE_MCP_LOG_PAYLOADS | (sin configurar) | 1 elimina los límites de los registros de carga útil (consulta más abajo). No lo configures nunca en producción |
LONGBRIDGE_LOG_PATH | (ninguno) | Ruta del registro interno del SDK. Déjala sin configurar en producción: el SDK escribe allí cuerpos de solicitudes y respuestas sin filtrar |
Registros y datos de clientes
Las solicitudes y respuestas de MCP contienen datos de clientes — saldos de efectivo, posiciones, historial de órdenes — y las tramas del SDK ascendente contienen tokens de acceso. Nada de esto debe aparecer en un archivo de registro, por lo que el servidor limita los destinos de registro que podrían imprimirlo, independientemente de `RUST_LOG`:| Destino | Límite | Qué imprimiría de otro modo |
|---|---|---|
longbridge_httpcli | warn | Solicitudes de OpenAPI y cuerpos completos de las respuestas (INFO) |
longbridge_wscli | warn | Cada trama de WebSocket, incluido el token de autenticación (INFO) |
longbridge::trade | warn | Eventos de inserción de órdenes (INFO) |
rmcp | info | Solicitudes MCP decodificadas y resultados completos de las herramientas (DEBUG), tramas JSON-RPC sin procesar (TRACE) |
Por tanto, aumentar la verbosidad es seguro: RUST_LOG=debug (o trace) muestra los registros propios del servidor sin filtrar datos de clientes. Hay dos opciones que anulan esta protección, ambas desactivadas de forma predeterminada: LONGBRIDGE_MCP_LOG_PAYLOADS=1 (elimina los límites; úsala solo localmente con una cuenta de prueba) y LONGBRIDGE_LOG_PATH (hace que el SDK escriba cuerpos sin filtrar en ese directorio; el servidor muestra una advertencia al iniciarse si está configurada).
Endpoints HTTP, autenticación y métricas
El servidor espera un token de acceso OAuth de Longbridge en Authorization: Bearer <token>. Si falta la autenticación o no es válida, devuelve 401 con un encabezado WWW-Authenticate que apunta a los metadatos del recurso protegido, los cuales dirigen a los clientes al servidor de autorización OAuth de Longbridge.
Envía x-papertrading: true (o 1) en una solicitud para ejecutarla en el entorno de operaciones simuladas. El servidor ascendente rechaza las solicitudes de operaciones simuladas realizadas con un token de dinero real, por lo que el encabezado actúa como protección de seguridad, no como selector de enrutamiento: solo puede restringir lo que un token puede hacer. LONGBRIDGE_PAPERTRADING=true lo activa para toda la implementación.
| Método | Ruta | Descripción |
|---|---|---|
| GET | /.well-known/oauth-protected-resource | Metadatos del recurso protegido (RFC 9728) |
| GET | /.well-known/oauth-authorization-server | Metadatos del servidor de autorización (RFC 8414); anuncia los endpoints directos de autorización/registro de Longbridge y los endpoints de token/revocación con proxy |
| POST | /oauth2/token | Proxy de token OAuth; obtiene x-dc-region del código/token de actualización y, de forma predeterminada, usa AP |
| POST | /oauth2/revoke | Proxy de revocación OAuth; obtiene x-dc-region del token y, de forma predeterminada, usa AP |
| GET | /metrics | Métricas de Prometheus |
| POST/GET/DELETE | /mcp | Endpoint HTTP de MCP Streamable (requiere un token Bearer) |
Métricas de Prometheus: mcp_tool_calls_total (contador), mcp_tool_call_duration_seconds (histograma) y mcp_tool_call_errors_total (contador), cada una etiquetada por tool_name.
Desarrollo
cargo +nightly fmt # format
cargo clippy # lint
cargo test # test
Licencia
Publicado bajo la Licencia MIT.