Longbridge
officielMarchés US/HK — 110 outils : cotations en temps réel, options, ordres, fondamentaux, alertes, DCA et portefeuille
Que pouvez-vous faire avec Longbridge MCP ?
- Cours en temps réel — Demandez des cours en direct et historiques, des chandeliers, la profondeur du marché et des données sur les options pour les marchés américain et hongkongais.
- Portefeuille et trading — Consultez vos positions, votre solde et vos exécutions, ou soumettez, annulez et remplacez des ordres, y compris des combinaisons d’options à plusieurs jambes.
- Données fondamentales et recherche — Récupérez les états financiers, les dividendes, les avis des analystes, les valorisations et les dirigeants d’une entreprise pour une action.
- Sélection et calendriers — Lancez des recherches avec le filtreur d’actions ou consultez le calendrier financier pour les résultats, les dividendes, les introductions en bourse et les données macroéconomiques.
- Alertes et plans récurrents — Créez des alertes de prix, gérez des plans d’investissement périodique et configurez des stratégies de trading sur grille.
- Réponses filtrées — Transmettez une expression
_jqà n’importe quel outil pour réduire les réponses volumineuses aux seuls champs dont vous avez besoin.
Serveur MCP hébergé
npx add-mcp 'https://mcp.longbridge.com'S’installe dans Claude Code, Codex, Cursor et plus
Documentation
Serveur MCP Longbridge
Serveur MCP officiel pour le courtier Longbridge. 164 outils couvrant les cotations en temps réel, les options, le routage des ordres, les données fondamentales, les évaluations des analystes, les calendriers, les introductions en bourse, les alertes de prix, les plans d’investissement programmé, le trading sur grille, l’analyse de portefeuille et les listes de partage communautaires — pour les marchés américain et hongkongais. Développé en Rust avec rmcp et axum.
Désormais disponible dans ChatGPT et Claude
Longbridge figure officiellement dans l’annuaire des applications ChatGPT et l’annuaire des connecteurs Claude.
Échangez avec les marchés en langage courant — cotations, options, données fondamentales et votre propre portefeuille —
sans fichiers de configuration à modifier ni jetons à coller.
| Ajoutez-le à un seul endroit | Puis posez simplement votre question | |
|---|---|---|
| ChatGPT | Paramètres → Applications et connecteurs → ajouter Longbridge | « Comment évolue NVDA aujourd’hui ? » · « Affiche mes positions HK » |
| Claude | Paramètres → Connecteurs → ajouter Longbridge (web · ordinateur · mobile) | « Compare les valorisations d’AAPL et de MSFT » · « Y a-t-il des introductions en bourse cette semaine ? » |
Connectez-vous une fois avec votre compte Longbridge. Chaque requête passe par le même point de terminaison hébergé et sécurisé par OAuth 2.1, documenté ci-dessous — données de marché en lecture seule, ainsi que tous les outils de compte, de portefeuille et de trading, protégés par vos propres identifiants.
Points forts
- 164 outils, un seul point de terminaison — cotations, options, routage des ordres, données fondamentales, recherche d’analystes, filtres, introductions en bourse, alertes, investissements programmés, trading sur grille et analyse de portefeuille pour les marchés américain et hongkongais.
- Conçu sans état — chaque requête transmet directement son jeton Bearer au SDK Longbridge. Aucune session, aucune base de données, aucune donnée stockée côté serveur.
- OAuth 2.1, découverte automatique — métadonnées de ressource protégée RFC 9728 et de serveur d’autorisation RFC 8414 ; les clients effectuent le flux sans avoir à coller de jeton.
- Réponses structurées et typées — champs en snake_case, horodatages RFC 3339, symboles lisibles et schémas de réponse typés disponibles en tant que ressources MCP.
Développé en Rust avec rmcp et axum.
Filtrer les réponses des outils avec jq
Chaque outil accepte une chaîne _jq facultative dans ses arguments. L’expression est appliquée
à l’intégralité du JSON renvoyé, après la sérialisation normale de la réponse. Le nom _jq
est réservé au filtrage des réponses afin d’éviter les conflits avec les paramètres métier.
Les instructions d’utilisation sont envoyées une seule fois dans le champ instructions
de la réponse MCP initialize ; chaque schéma d’outil déclare uniquement le nom et le type du paramètre facultatif.
Par exemple :
{
"name": "quote",
"arguments": {
"symbols": ["AAPL.US", "MSFT.US"],
"_jq": "map({symbol, last_done})"
}
}
Utilisez .data[:5] pour prendre les cinq premières entrées d’un tableau data,
.data | map(select(.price > 10)) pour sélectionner des lignes, ou {total: .total} pour
projeter des champs. Les expressions utilisent la syntaxe compatible avec jq du moteur jaq intégré ; aucun exécutable jq distinct n’est nécessaire.
- Omettez
_jq(ou transmetteznull) pour conserver la réponse d’origine. - Une valeur de sortie est renvoyée directement, plusieurs valeurs sous forme de tableau, et aucune valeur sous forme de
[]. Les scalaires et les tableaux sont du texte JSON ; les objets apparaissent également dansstructuredContent, qui ne contient que les champs filtrés. - Les réponses en texte brut sont disponibles sous forme de chaînes JSON. Plusieurs blocs de contenu sans contenu structuré sont disponibles sous forme de tableau.
- Les erreurs d’outil et les explications relatives aux autorisations ou à l’absence de données ne sont pas filtrées.
- Les expressions vides, non valides ou qui ne sont pas des chaînes sont rejetées avant l’exécution de l’outil. En cas d’échec du filtrage à l’exécution, la réponse indique explicitement que l’outil a déjà été exécuté. Ne relancez pas automatiquement les opérations d’écriture, comme le placement d’un ordre.
- L’accès à l’environnement, les importations depuis le système de fichiers et les filtres de journalisation ne sont pas disponibles. La sortie est limitée à 10 000 valeurs et 8 Mio ; le dépassement d’une limite renvoie une erreur plutôt qu’un résultat partiel.
Comme les filtres peuvent modifier la forme de la réponse, les outils n’annoncent pas de outputSchema fixe.
Les schémas typés d’origine restent disponibles via resources/list
et resources/read à lb://tools/{tool-name}/output-schema pour les outils disposant de schémas.
Connecter votre propre client
Longbridge héberge un point de terminaison à https://mcp.longbridge.com — configurez n’importe quel client MCP pour l’utiliser et effectuez l’authentification OAuth lorsque vous y êtes invité. L’autorisation est découverte automatiquement via RFC 9728 ; aucun jeton n’est à coller.
Claude Code
claude mcp add --transport http longbridge https://mcp.longbridge.com
Claude Desktop — ajoutez-le à claude_desktop_config.json, puis redémarrez :
{ "mcpServers": { "longbridge": { "url": "https://mcp.longbridge.com" } } }
Codex — ajoutez le serveur, puis effectuez l’authentification OAuth dans le navigateur :
codex mcp add longbridge --url https://mcp.longbridge.com
codex mcp login longbridge
Cursor · Cline · Windsurf · Zed · autres clients — configurez-les pour utiliser https://mcp.longbridge.com avec le transport streamable-http.
Autres commandes 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
Lors de la première utilisation, le client lit le défi WWW-Authenticate, récupère /.well-known/oauth-protected-resource (RFC 9728) et ouvre votre navigateur pour le flux OAuth Longbridge. Les jetons sont mis en cache par session et actualisés automatiquement.
Les 164 outils
Vingt catégories couvrant les données de marché, le trading, la recherche et la gestion de compte.
| Catégorie | Nombre | Couverture |
|---|---|---|
| Quote | 32 | Cotations en temps réel et historiques, chandeliers, profondeur de marché, courtiers, options, warrants, listes de suivi, flux de capitaux, température du marché, positions courtes, volume des options |
| Fundamental | 33 | États et rapports financiers, segments d’activité, avis des institutions, pairs et valorisation sectoriels, dividendes, prévisions de BPA, valorisations et comparaison des valorisations, informations sur les entreprises et leurs dirigeants, actionnaires, opérations sur titres, indicateurs opérationnels |
| Trade | 15 | Soumission, annulation et remplacement d’ordres, ordres combinés d’options à plusieurs jambes, positions, solde, exécutions, flux de trésorerie, marge |
| Market | 15 | État du marché, classement des secteurs et des plus fortes variations, positions des courtiers, prime A/H, statistiques de trading, anomalies, transactions et marge sur positions courtes, composants d’indices |
| DCA | 9 | Création, mise à jour, mise en pause, reprise et arrêt de plans d’investissement programmé, historique d’exécution, statistiques, vérification de la prise en charge |
| Grid | 11 | Soumission, remplacement, annulation, suspension et redémarrage d’ordres de trading sur grille, consultation des listes, détails et historique des déclenchements, informations de configuration par symbole, consentement ponctuel à la stratégie |
| Sharelist | 8 | Opérations CRUD sur les listes de partage communautaires, ajout, suppression et tri des membres, listes populaires |
| IPO | 7 | Souscriptions aux introductions en bourse, calendrier, actions cotées, détails des ordres, analyse des profits et pertes |
| Content | 7 | Liste et détails des actualités, opérations CRUD sur les sujets de discussion et leurs réponses |
| Alert | 5 | Opérations CRUD sur les alertes de prix (ajout, suppression, activation, désactivation, liste) |
| Screener | 5 | Recherche dans le filtre d’actions, indicateurs, recommandation et gestion de stratégies |
| Portfolio | 4 | Taux de change, analyse des profits et pertes (résumé, détails, réalisés) |
| ATM | 3 | Cartes bancaires, historiques de retraits, historiques de dépôts |
| Macrodata | 2 | Liste et détails des indicateurs macroéconomiques |
| Search | 2 | Recherche d’actualités, recherche de sujets communautaires |
| Statement | 2 | Liste et exportation des relevés de compte |
| Calendar | 1 | Calendrier financier (résultats, dividendes, introductions en bourse, données macroéconomiques, fermetures) |
| Quant | 1 | Exécution d’un script d’indicateur quantitatif sur des données historiques en K-line |
| Authenticate | 1 | Échange de code OAuth pour les clients qui ne peuvent pas effectuer une redirection vers le navigateur |
| Utility | 1 | Heure UTC actuelle |
Hébergement autonome
Vous préférez votre propre instance ? Exécutez l’image publiée :
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
Définissez
--base-urlsur votre URL accessible de l’extérieur pour tout déploiement public — elle est publiée dans les métadonnées OAuth que les clients utilisent pour découvrir le serveur d’autorisation. La valeur par défaut esthttp://localhost:{port}, inutilisable par les clients distants.
Ou compilez à partir des sources : cargo build --release && ./target/release/longbridge-mcp.
Configuration et variables d’environnement
La configuration se trouve dans ~/.longbridge/mcp/config.json (remplacez le répertoire avec LONGBRIDGE_MCP_CONFIG_DIR). Les options de ligne de commande sont prioritaires. Lorsque tls_cert et tls_key sont tous deux définis, le serveur utilise HTTPS ; sinon, il utilise HTTP. base_url prend par défaut la valeur https://localhost:{port} avec TLS ou http://localhost:{port} sans TLS.
| Option | Clé de configuration | Option CLI | Valeur par défaut | Description |
|---|---|---|---|---|
| Adresse d’écoute | bind | --bind | 127.0.0.1:8000 | Adresse d’écoute du serveur HTTP |
| URL de base | base_url | --base-url | auto | URL de base publique pour les métadonnées de ressource |
| Répertoire des journaux | log_dir | --log-dir | (stderr) | Répertoire des fichiers journaux rotatifs |
| Certificat TLS | tls_cert | --tls-cert | (aucun) | Fichier de certificat PEM pour HTTPS |
| Clé privée TLS | tls_key | --tls-key | (aucune) | Fichier de clé privée PEM |
| Serveur amont Canary | canary | --canary | false | Se connecter à l’environnement Canary de Longbridge (*.longbridge.xyz). --canary=false force l’utilisation de la production même si le fichier de configuration l’active |
L’environnement de Chine continentale (*.longbridge.cn) n’est pas une option : il est sélectionné automatiquement lorsque LONGBRIDGE_REGION=cn est défini (la même variable que celle utilisée par le SDK). Un cluster de Chine continentale ne nécessite donc aucun paramètre dédié.
Les points de terminaison amont sont déterminés par l’environnement sélectionné :
| Production (par défaut) | Canary (--canary) | Chine continentale (LONGBRIDGE_REGION=cn) | |
|---|---|---|---|
| OpenAPI | https://openapi.longbridge.com | https://openapi-global.longbridge.xyz | https://openapi.longbridge.cn |
| WebSocket de cotation | 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 / page de connexion | openapi.longbridge.com / open.longbridge.com | openapi-global.longbridge.xyz / open.longbridge.xyz | openapi.longbridge.cn / open.longbridge.cn |
Canary utilise la passerelle -global, et non openapi.longbridge.xyz : seule la première est placée derrière CloudFront et effectue le routage des centres de données x-dc-region, dont ce serveur dépend pour prendre en charge les identifiants préfixés par us_ et ap_ depuis un seul processus.
Canary et la Chine continentale épinglent toutes les URL ci-dessus au démarrage ; en production, la résolution est déléguée au SDK, sauf si un identifiant us_ sans remplacement amont est épinglé à la passerelle globale .com. Consultez src/endpoints.rs pour connaître les règles exactes de sélection.
Variables d’environnement avancées — la plupart des déploiements n’y touchent jamais ; elles servent au débogage du SDK et aux déploiements en périphérie ou avec entrée globale.
| Variable | Valeur par défaut | Description |
|---|---|---|
LONGBRIDGE_MCP_CONFIG_DIR | ~/.longbridge/mcp | Répertoire du fichier de configuration |
LONGBRIDGE_PUBLIC_HOSTS | (aucune) | Noms d’hôte séparés par des virgules, acceptés depuis l’en-tête X-Host injecté en périphérie ; les requêtes correspondantes renvoient cet hôte dans le défi 401 / les métadonnées RFC 9728. Non défini = X-Host ignoré |
LONGBRIDGE_GLOBAL_OAUTH_URL | (aucune) | URL du serveur d’autorisation annoncée aux requêtes arrivant via un X-Host autorisé (entrée globale à domaine unique). Non définie = utilisation de l’URL de base OpenAPI du mode |
LONGBRIDGE_MCP_QUOTE_WS_IDLE_TTL_SECS | 600 | Nombre de secondes d’inactivité avant l’éviction d’un contexte WebSocket de cotation mis en cache |
LONGBRIDGE_MCP_QUOTE_WS_MAX_CONTEXTS | 1024 | Nombre maximal de contextes WebSocket de cotation mis en cache par processus serveur |
LONGBRIDGE_MCP_LOG_PAYLOADS | (non défini) | 1 supprime les limites de journalisation des charges utiles (voir ci-dessous). Ne jamais définir en production |
LONGBRIDGE_LOG_PATH | (aucune) | Chemin du journal interne du SDK. Laissez cette variable non définie en production — le SDK y écrit les corps des requêtes et des réponses sans filtrage |
Journalisation et données client
Les requêtes et les réponses MCP transportent des données client — soldes de trésorerie, positions, historique des ordres — et les trames du SDK en amont transportent des jetons d’accès. Rien de tout cela ne doit se retrouver dans un fichier journal ; le serveur limite donc les cibles de journalisation susceptibles de les afficher, indépendamment de `RUST_LOG` :| Cible | Limite | Ce qui serait autrement affiché |
|---|---|---|
longbridge_httpcli | warn | Requêtes OpenAPI et corps complets des réponses (INFO) |
longbridge_wscli | warn | Chaque trame WebSocket, jeton d’authentification inclus (INFO) |
longbridge::trade | warn | Événements de notification des ordres (INFO) |
rmcp | info | Requêtes MCP décodées et résultats complets des outils (DEBUG), trames JSON-RPC brutes (TRACE) |
Vous pouvez donc augmenter le niveau de verbosité sans risque : RUST_LOG=debug (ou trace) affiche les journaux propres au serveur sans divulguer de données client. Deux options désactivées par défaut permettent de contourner cette protection : LONGBRIDGE_MCP_LOG_PAYLOADS=1 (supprime les limites ; à utiliser uniquement en local avec un compte de test) et LONGBRIDGE_LOG_PATH (demande au SDK d’écrire les corps non filtrés dans ce répertoire ; le serveur émet un avertissement au démarrage si cette option est définie).
Points de terminaison HTTP, authentification et métriques
Le serveur attend un jeton d’accès OAuth Longbridge dans Authorization: Bearer <token>. En l’absence d’authentification ou si celle-ci est invalide, il renvoie 401 avec un en-tête WWW-Authenticate pointant vers les métadonnées de la ressource protégée, qui orientent les clients vers le serveur d’autorisation OAuth Longbridge.
Envoyez x-papertrading: true (ou 1) dans une requête pour l’exécuter dans l’environnement de trading simulé. Le serveur en amont rejette une requête de trading simulé effectuée avec un jeton d’argent réel ; cet en-tête est donc une mesure de sécurité, et non un commutateur de routage : il ne peut que restreindre les opérations autorisées par un jeton. LONGBRIDGE_PAPERTRADING=true l’active pour l’ensemble du déploiement.
| Méthode | Chemin | Description |
|---|---|---|
| GET | /.well-known/oauth-protected-resource | Métadonnées de la ressource protégée (RFC 9728) |
| GET | /.well-known/oauth-authorization-server | Métadonnées du serveur d’autorisation (RFC 8414) ; annonce les points de terminaison directs Longbridge authorize/register et les points de terminaison token/revoke via proxy |
| POST | /oauth2/token | Proxy de jeton OAuth ; déduit x-dc-region du code/jeton d’actualisation, avec AP comme valeur par défaut |
| POST | /oauth2/revoke | Proxy de révocation OAuth ; déduit x-dc-region du jeton, avec AP comme valeur par défaut |
| GET | /metrics | Métriques Prometheus |
| POST/GET/DELETE | /mcp | Point de terminaison MCP Streamable HTTP (jeton Bearer requis) |
Métriques Prometheus : mcp_tool_calls_total (compteur), mcp_tool_call_duration_seconds (histogramme) et mcp_tool_call_errors_total (compteur) — chacune étiquetée par tool_name.
Développement
cargo +nightly fmt # format
cargo clippy # lint
cargo test # test
Licence
Publié sous la licence MIT.