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 ?
- Cotations en temps réel — Demandez des cotations en direct ou historiques, des chandeliers, des profondeurs de marché et des données sur les options pour les symboles US et HK via l’outil
quote. - Opérations de trading — Passez, annulez ou remplacez des ordres, y compris des combinaisons d’options multi-jambes, et consultez les positions, les soldes et les exécutions.
- Recherche fondamentale — Récupérez les états financiers, les dividendes, les prévisions de BPA, les valorisations et les notations des analystes pour les entreprises.
- Analyse de portefeuille — Obtenez des résumés de profits et pertes, des gains réalisés et des taux de change pour votre compte Longbridge.
- Alertes de prix — Créez, listez, activez ou supprimez des alertes de prix pour suivre les mouvements du marché.
- Trading DCA et en grille — Configurez, mettez en pause ou arrêtez des plans d’achat périodique (DCA) et des stratégies de trading en grille.
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 fondamentaux, les notations des analystes, les calendriers, les introductions en bourse (IPO), les alertes de prix, les plans DCA, le trading en grille, l'analyse de portefeuille et les listes de partage communautaires — pour les marchés américains et hongkongais. Conçu en Rust avec rmcp et axum.
Disponible dès maintenant dans ChatGPT et Claude
Longbridge est officiellement répertorié dans le répertoire des applications ChatGPT et le répertoire des connecteurs Claude.
Parlez aux marchés en langage naturel — cotations, options, fondamentaux et votre propre portefeuille —
sans fichiers de configuration à modifier ni jetons à coller.
| Ajoutez-le en un seul endroit | Puis demandez simplement | |
|---|---|---|
| ChatGPT | Paramètres → Applications et connecteurs → ajoutez Longbridge | « Comment se négocie NVDA aujourd'hui ? » · « Affichez mes positions HK » |
| Claude | Paramètres → Connecteurs → ajoutez Longbridge (web · bureau · mobile) | « Comparez les valorisations d'AAPL et MSFT » · « Y a-t-il des IPO cette semaine ? » |
Connectez-vous une seule fois avec votre compte Longbridge. Chaque requête passe par le même endpoint hébergé et sécurisé OAuth 2.1 décrit ci-dessous — données de marché en lecture seule ainsi que tous les outils de compte, de portefeuille et de trading, tous contrôlés par vos propres identifiants.
Points forts
- 164 outils, un seul endpoint — cotations, options, routage des ordres, fondamentaux, recherche analystes, screeneurs, IPO, alertes, DCA, trading en grille et analyse de portefeuille pour les marchés américains et hongkongais.
- Sans état par conception — chaque requête transmet son jeton Bearer directement au SDK Longbridge. Aucune session, aucune base de données, rien n'est stocké 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 complètent le flux sans jeton à coller.
- Réponses propres 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.
Conçu en Rust avec rmcp et axum.
Filtrer les réponses des outils avec jq
Chaque outil accepte une chaîne _jq optionnelle dans ses arguments. L'expression s'exécute
sur le JSON complet renvoyé, après la sérialisation normale de la réponse. Le nom _jq
est réservé au filtrage des réponses pour éviter les conflits avec les paramètres métier.
Les instructions d'utilisation sont envoyées une fois dans le instructions de la réponse MCP initialize ;
chaque schéma d'outil ne déclare que le nom et le type du paramètre optionnel.
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 jq du moteur
jaq intégré ; aucun exécutable jq séparé n'est nécessaire.
- Omettez
_jq(ou passeznull) 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, contenant uniquement 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 de permission/absence de données restent non filtrées.
- Les expressions vides, invalides ou non-chaînes sont rejetées avant l'exécution de l'outil. Si le filtrage échoue à l'exécution, la réponse indique explicitement que l'outil a déjà été exécuté. Ne réessayez pas automatiquement les écritures telles que le passage d'un ordre.
- L'accès à l'environnement, les importations de fichiers système et les filtres de journalisation sont indisponibles. La sortie est limitée à 10 000 valeurs et 8 Mio ; dépasser une limite renvoie une erreur plutôt qu'un résultat partiel.
Parce que 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 basés sur des schémas.
Connecter votre propre client
Longbridge exécute un endpoint hébergé à https://mcp.longbridge.com — pointez n'importe quel client MCP dessus et complétez OAuth lorsque vous y êtes invité. L'autorisation est découverte automatiquement via RFC 9728 ; il n'y a aucun jeton à coller.
Claude Code
claude mcp add --transport http longbridge https://mcp.longbridge.com
Claude Desktop — ajoutez à claude_desktop_config.json, puis redémarrez :
{ "mcpServers": { "longbridge": { "url": "https://mcp.longbridge.com" } } }
Cursor · Cline · Windsurf · Zed · autres clients — pointez-les vers https://mcp.longbridge.com avec le transport streamable-http.
Plus de 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 |
|---|---|---|
| Cotation | 32 | Cotations en temps réel et historiques, chandeliers, profondeur, courtiers, options, warrants, listes de suivi, flux de capitaux, température du marché, positions courtes, volume d'options |
| Fondamental | 33 | États financiers/rapports, segments d'activité, vues institutionnelles, pairs du secteur/valorisation, dividendes, prévisions BPA, valorisations et comparaison de valorisations, informations société/dirigeants, actionnaires, opérations sur titres, indicateurs opérationnels |
| Négociation | 15 | Soumission/annulation/remplacement d'ordres, ordres combinés multi-jambes d'options, positions, solde, exécutions, flux de trésorerie, marge |
| Marché | 15 | Statut du marché, classement secteur/plus fortes variations, avoirs des courtiers, prime A/H, statistiques de négociation, anomalies, opérations courtes/marge, constituants d'indices |
| DCA | 9 | Création/mise à jour/pause/reprise/arrêt de plan d'achat périodique, historique d'exécution, statistiques, vérification de prise en charge |
| Grille | 11 | Soumission/remplacement/annulation/suspension/redémarrage d'ordres de trading en grille, lectures de liste/détail/historique de déclenchement, informations de configuration par symbole, consentement de stratégie unique |
| Liste de partage | 8 | CRUD de listes de partage communautaires, ajout/suppression/tri de membres, listes populaires |
| IPO | 7 | Souscriptions IPO, calendrier, actions cotées, détail d'ordre, analyse des profits/pertes |
| Contenu | 7 | Liste/détail d'actualités, CRUD de sujets de discussion et réponses |
| Alerte | 5 | CRUD d'alertes de prix (ajout, suppression, activation, désactivation, liste) |
| Screener | 5 | Recherche de screener d'actions, indicateurs, recommandation/gestion de stratégie |
| Portefeuille | 4 | Taux de change, analyse des profits/pertes (résumé, détail, réalisé) |
| ATM | 3 | Cartes bancaires, relevés de retraits, relevés de dépôts |
| Macrodata | 2 | Liste et détail d'indicateurs macroéconomiques |
| Recherche | 2 | Recherche d'actualités, recherche de sujets communautaires |
| Relevé | 2 | Liste et exportation de relevés de compte |
| Calendrier | 1 | Calendrier financier (résultats, dividendes, IPO, données macro, fermetures) |
| Quant | 1 | Exécuter un script d'indicateur quantitatif sur des données historiques de chandeliers |
| Authentification | 1 | Échange de code OAuth pour les clients qui ne peuvent pas compléter une redirection de navigateur |
| Utilitaire | 1 | Heure UTC actuelle |
Auto-hébergement
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 sur 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. Elle est par défauthttp://localhost:{port}, que les clients distants ne peuvent pas utiliser.
Ou construisez à partir des sources : cargo build --release && ./target/release/longbridge-mcp.
Configuration et variables d'environnement
La configuration se trouve à ~/.longbridge/mcp/config.json (remplacez le répertoire avec LONGBRIDGE_MCP_CONFIG_DIR). Les drapeaux CLI ont priorité. Lorsque tls_cert et tls_key sont tous deux définis, le serveur exécute HTTPS, sinon HTTP ; base_url est par défaut https://localhost:{port} avec TLS ou http://localhost:{port} sans.
| Option | Clé de configuration | Drapeau CLI | Défaut | Description |
|---|---|---|---|---|
| Adresse de liaison | bind | --bind | 127.0.0.1:8000 | Adresse d'écoute du serveur HTTP |
| URL de base | base_url | --base-url | auto | URL publique de base pour les métadonnées de ressources |
| Répertoire de journaux | log_dir | --log-dir | (stderr) | Répertoire pour les fichiers journaux rotatifs |
| Certificat TLS | tls_cert | --tls-cert | (aucun) | Fichier de certificat PEM pour HTTPS |
| Clé privée TLS | tls_key | --tls-key | (aucun) | Fichier de clé privée PEM pour HTTPS |
| Amont canari | canary | --canary | false | Communiquer avec l'environnement canari Longbridge (*.longbridge.xyz). --canary=false force la production même lorsque le fichier de configuration l'active |
L'environnement Chine continentale (*.longbridge.cn) n'est pas un drapeau : il est sélectionné automatiquement lorsque LONGBRIDGE_REGION=cn est défini (la même variable utilisée par le SDK), donc un cluster continental n'a besoin d'aucun réglage dédié.
Les endpoints amont sont fixés par l'environnement sélectionné :
| Production (défaut) | Canari (--canary) | Continent (LONGBRIDGE_REGION=cn) | |
|---|---|---|---|
| OpenAPI | https://openapi.longbridge.com | https://openapi-global.longbridge.xyz | https://openapi.longbridge.cn |
| WebSocket de cotations | wss://openapi-quote.longbridge.com/v2 | wss://openapi-global-quote.longbridge.xyz/v2 | wss://openapi-quote.longbridge.cn/v2 |
| WebSocket de négociation | wss://openapi-trade.longbridge.com/v2 | wss://openapi-global-trade.longbridge.xyz/v2 | wss://openapi-trade.longbridge.cn/v2 |
| Page OAuth / connexion | openapi.longbridge.com / open.longbridge.com | openapi-global.longbridge.xyz / open.longbridge.xyz | openapi.longbridge.cn / open.longbridge.cn |
Le canari utilise la passerelle -global, pas openapi.longbridge.xyz : seule la première est derrière CloudFront et effectue le routage de centre de données x-dc-region, dont ce serveur dépend pour servir les identifiants préfixés us_ et ap_ depuis un seul processus.
Le canari et le continent épinglent chaque URL ci-dessus au démarrage ; la production s'en remet à la résolution du SDK, sauf qu'un identifiant us_ sans remplacement amont est épinglé à la passerelle globale .com. Voir src/endpoints.rs pour les règles de sélection exactes.
Variables d'environnement avancées — la plupart des déploiements n'y touchent jamais ; elles existent pour le débogage du SDK et les déploiements edge/entrée globale.
| Variable | Défaut | Description |
|---|---|---|
LONGBRIDGE_MCP_CONFIG_DIR | ~/.longbridge/mcp | Répertoire du fichier de configuration |
LONGBRIDGE_PUBLIC_HOSTS | (aucun) | Noms d'hôtes 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 | (aucun) | URL du serveur d'autorisation annoncée aux requêtes arrivant via un X-Host sur liste blanche (entrée globale à domaine unique). Non défini = repli sur l'URL de base OpenAPI du mode |
LONGBRIDGE_MCP_QUOTE_WS_IDLE_TTL_SECS | 600 | Secondes d'inactivité avant l'éviction d'un contexte WebSocket de cotations en cache |
LONGBRIDGE_MCP_QUOTE_WS_MAX_CONTEXTS | 1024 | Nombre maximal de contextes WebSocket de cotations en cache par processus serveur |
LONGBRIDGE_MCP_LOG_PAYLOADS | (non défini) | 1 lève les plafonds de journalisation des charges utiles (voir ci-dessous). Ne définissez jamais cela en production |
LONGBRIDGE_LOG_PATH | (aucun) | Chemin de journal interne du SDK. Laissez non défini en production — le SDK écrit des corps de requête/réponse non filtrés à cet endroit |
Journalisation et données clients
Les requêtes et réponses MCP transportent des données clients — soldes de trésorerie, positions, historique des ordres — et les trames SDK en amont transportent des jetons d'accès. Rien de tout cela ne doit se retrouver dans un fichier journal, c'est pourquoi le serveur plafonne les cibles de journalisation qui pourraient les afficher, indépendamment de `RUST_LOG` :| Cible | Plafond | Ce qu'elle afficherait autrement |
|---|---|---|
longbridge_httpcli | warn | Requête OpenAPI et corps de réponse complets (INFO) |
longbridge_wscli | warn | Chaque trame WebSocket, jeton d'authentification inclus (INFO) |
longbridge::trade | warn | Événements de poussée d'ordres (INFO) |
rmcp | info | Requêtes MCP décodées et résultats d'outils complets (DEBUG), trames JSON-RPC brutes (TRACE) |
Ainsi, augmenter la verbosité est sans danger : RUST_LOG=debug (ou trace) vous donne les journaux du serveur lui-même sans fuite de données clients. Deux commutateurs contrecarrent cela, tous deux désactivés par défaut — LONGBRIDGE_MCP_LOG_PAYLOADS=1 (supprime les plafonds ; à utiliser uniquement contre un compte de test en local) et LONGBRIDGE_LOG_PATH (fait écrire au SDK des corps non filtrés dans ce répertoire ; le serveur émet un avertissement au démarrage lorsqu'il est défini).
Points de terminaison HTTP, authentification & métriques
Le serveur attend un jeton d'accès OAuth Longbridge dans Authorization: Bearer <token>. En cas d'authentification manquante ou invalide, il renvoie 401 avec un en-tête WWW-Authenticate pointant vers les métadonnées de la ressource protégée, qui dirigent les clients vers le serveur d'autorisation OAuth Longbridge.
Envoyez x-papertrading: true (ou 1) sur une requête pour l'exécuter contre l'environnement de trading simulé. L'amont rejette une requête de trading simulé faite avec un jeton d'argent réel, donc l'en-tête est une garde de sécurité plutôt qu'un commutateur de routage : il ne peut que restreindre ce qu'un jeton peut faire. LONGBRIDGE_PAPERTRADING=true l'active pour tout le déploiement à la place.
| Méthode | Chemin | Description |
|---|---|---|
| GET | /.well-known/oauth-protected-resource | Métadonnées de 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 d'autorisation/enregistrement Longbridge et les points de terminaison proxy de jeton/révocation |
| POST | /oauth2/token | Proxy de jeton OAuth ; dérive x-dc-region du code/jeton d'actualisation, par défaut AP |
| POST | /oauth2/revoke | Proxy de révocation OAuth ; dérive x-dc-region du jeton, par défaut AP |
| GET | /metrics | Métriques Prometheus |
| POST/GET/DELETE | /mcp | Point de terminaison MCP Streamable HTTP (nécessite un jeton Bearer) |
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.