Longbridge
offiziellUS/HK Märkte — 110 Tools: Echtzeitkurse, Optionen, Orders, Fundamentaldaten, Alarme, DCA & Portfolio
Was kann man mit Longbridge MCP machen?
- Echtzeitkurse — Fragen Sie nach Live- oder historischen Kursen, Candlesticks, Markttiefe und Optionsdaten für US- und HK-Symbole über das
quote-Tool. - Handelsoperationen — Platzieren, stornieren oder ersetzen Sie Aufträge, einschließlich mehrbeiniger Optionskombinationen, und prüfen Sie Positionen, Salden und Ausführungen.
- Fundamentale Recherche — Rufen Sie Finanzberichte, Dividenden, EPS-Prognosen, Bewertungen und Analystenbewertungen für Unternehmen ab.
- Portfolio-Analysen — Erhalten Sie Gewinn-/Verlustübersichten, realisierte Gewinne und Wechselkurse für Ihr Longbridge-Konto.
- Kursalarme — Erstellen, auflisten, aktivieren oder löschen Sie Kursalarme, um Marktbewegungen zu verfolgen.
- DCA- und Grid-Trading — Richten Sie Sparpläne (Dollar-Cost-Averaging) und Grid-Trading-Strategien ein, pausieren oder beenden Sie diese.
Gehosteter MCP-Server
npx add-mcp 'https://mcp.longbridge.com'Installiert in Claude Code, Codex, Cursor und mehr
Dokumentation
Longbridge MCP Server
Offizieller MCP-Server für den Longbridge-Broker. 164 Tools für Echtzeitkurse, Optionen, Order-Routing, Fundamentaldaten, Analystenbewertungen, Kalender, IPO, Kursalarme, DCA-Pläne, Grid-Trading, Portfolio-Analysen und Community-Sharelists – für die US- und HK-Märkte. Entwickelt in Rust mit rmcp und axum.
Jetzt live in ChatGPT und Claude
Longbridge ist offiziell im ChatGPT-Apps-Verzeichnis und im Claude-Connectors-Verzeichnis gelistet.
Sprich mit den Märkten in einfacher Sprache – Kurse, Optionen, Fundamentaldaten und dein eigenes Portfolio –
ohne Konfigurationsdateien zu bearbeiten und ohne Tokens einzufügen.
| An einer Stelle hinzufügen | Dann einfach fragen | |
|---|---|---|
| ChatGPT | Einstellungen → Apps & Connectors → Longbridge hinzufügen | "Wie handelt sich NVDA heute?" · "Zeig mir meine HK-Positionen" |
| Claude | Einstellungen → Connectors → Longbridge hinzufügen (Web · Desktop · Mobil) | "Vergleiche die Bewertungen von AAPL und MSFT" · "Gibt es diese Woche IPOs?" |
Melde dich einmalig mit deinem Longbridge-Konto an. Jede Anfrage läuft über denselben gehosteten, OAuth-2.1-gesicherten Endpunkt, der unten dokumentiert ist – schreibgeschützte Marktdaten plus vollständige Konto-, Portfolio- und Handels-Tools, alles durch deine eigenen Anmeldedaten geschützt.
Highlights
- 164 Tools, ein Endpunkt – Kurse, Optionen, Order-Routing, Fundamentaldaten, Analysten-Research, Screener, IPO, Alarme, DCA, Grid-Trading und Portfolio-Analysen für die US- und HK-Märkte.
- Zustandslos by Design – jede Anfrage leitet ihr Bearer-Token direkt an das Longbridge-SDK weiter. Keine Sitzungen, keine Datenbank, nichts wird serverseitig gespeichert.
- OAuth 2.1, automatisch erkannt – RFC-9728-geschützte Ressourcen und RFC-8414-Autorisierungsserver-Metadaten; Clients schließen den Ablauf ab, ohne ein Token einzufügen.
- Saubere, typisierte Antworten – snake_case-Felder, RFC-3339-Zeitstempel, lesbare Symbole und typisierte Antwortschemata als MCP-Ressourcen verfügbar.
Entwickelt in Rust mit rmcp und axum.
Tool-Antworten mit jq filtern
Jedes Tool akzeptiert einen optionalen _jq-String in seinen Argumenten. Der Ausdruck wird
auf das vollständige zurückgegebene JSON angewendet, nach der normalen Antwort-Serialisierung. Der _jq-Name
ist für die Antwortfilterung reserviert, um Konflikte mit Geschäftsparametern zu vermeiden.
Nutzungshinweise werden einmalig in der instructions der MCP-initialize-Antwort gesendet;
jedes Tool-Schema deklariert nur den optionalen Parameternamen und -typ.
Zum Beispiel:
{
"name": "quote",
"arguments": {
"symbols": ["AAPL.US", "MSFT.US"],
"_jq": "map({symbol, last_done})"
}
}
Verwende .data[:5], um die ersten fünf Einträge eines data-Arrays zu nehmen,
.data | map(select(.price > 10)), um Zeilen auszuwählen, oder {total: .total}, um
Felder zu projizieren. Ausdrücke verwenden die eingebettete jaq-Engine
mit jq-kompatibler Syntax; kein separates jq-Programm ist erforderlich.
- Lasse
_jqweg (oder übergibnull), um die ursprüngliche Antwort zu erhalten. - Ein Ausgabewert wird direkt zurückgegeben, mehrere Werte als Array und keine
Werte als
[]. Skalare und Arrays sind JSON-Text; Objekte erscheinen auch instructuredContent, das nur die gefilterten Felder enthält. - Klartext-Antworten sind als JSON-Strings verfügbar. Mehrere Inhaltsblöcke ohne strukturierten Inhalt sind als Array verfügbar.
- Tool-Fehler und Berechtigungs-/Keine-Daten-Erklärungen bleiben ungefiltert.
- Leere, ungültige oder Nicht-String-Ausdrücke werden vor der Tool-Ausführung abgelehnt. Wenn die Filterung zur Laufzeit fehlschlägt, sagt die Antwort explizit, dass das Tool bereits ausgeführt wurde. Wiederhole Schreibvorgänge wie das Platzieren einer Order nicht automatisch.
- Umgebungszugriff, Dateisystem-Importe und Protokollfilter sind nicht verfügbar. Die Ausgabe ist auf 10.000 Werte und 8 MiB begrenzt; das Überschreiten eines Limits gibt einen Fehler zurück, kein Teilergebnis.
Da Filter die Antwortform ändern können, bewerben Tools kein festes
outputSchema. Ursprüngliche typisierte Schemata bleiben über resources/list
und resources/read unter lb://tools/{tool-name}/output-schema für schema-basierte Tools verfügbar.
Eigenen Client verbinden
Longbridge betreibt einen gehosteten Endpunkt unter https://mcp.longbridge.com – richte jeden MCP-Client darauf aus und schließe OAuth ab, wenn du dazu aufgefordert wirst. Die Autorisierung wird automatisch über RFC 9728 erkannt; es gibt kein Token zum Einfügen.
Claude Code
claude mcp add --transport http longbridge https://mcp.longbridge.com
Claude Desktop – zu claude_desktop_config.json hinzufügen, dann neu starten:
{ "mcpServers": { "longbridge": { "url": "https://mcp.longbridge.com" } } }
Cursor · Cline · Windsurf · Zed · andere Clients – richte sie auf https://mcp.longbridge.com mit Transport streamable-http aus.
Weitere Claude-Code-Befehle
# 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
Bei der ersten Verwendung liest der Client die WWW-Authenticate-Challenge, ruft /.well-known/oauth-protected-resource ab (RFC 9728) und öffnet deinen Browser für den Longbridge-OAuth-Ablauf. Tokens werden pro Sitzung zwischengespeichert und automatisch aktualisiert.
Die 164 Tools
Zwanzig Kategorien, die Marktdaten, Handel, Research und Kontoverwaltung abdecken.
| Kategorie | Anzahl | Abdeckung |
|---|---|---|
| Kurs | 32 | Echtzeit- und historische Kurse, Candlesticks, Tiefe, Broker, Optionen, Warrants, Watchlists, Kapitalfluss, Markttemperatur, Short-Positionen, Optionsvolumen |
| Fundamental | 33 | Finanzberichte/-ausweise, Geschäftssegmente, institutionelle Ansichten, Branchenkollegen/-bewertung, Dividenden, EPS-Prognosen, Bewertungen & Bewertungsvergleich, Unternehmensinfo/Führungskräfte, Aktionäre, Unternehmensmaßnahmen, Betriebskennzahlen |
| Handel | 15 | Order-Erteilung/-Stornierung/-Ersetzung, mehrbeinige Optionskombinationsaufträge, Positionen, Saldo, Ausführungen, Cashflow, Margin |
| Markt | 15 | Marktstatus, Branchen-/Top-Mover-Rangliste, Broker-Bestände, A/H-Prämie, Handelsstatistiken, Anomalien, Short-Trades/Margin, Indexbestandteile |
| DCA | 9 | Cost-Average-Effekt-Plan erstellen/aktualisieren/pausieren/fortsetzen/stoppen, Ausführungsverlauf, Statistiken, Unterstützungsprüfung |
| Grid | 11 | Grid-Trading-Order einreichen/ersetzen/stornieren/aussetzen/neu starten, Listen-/Detail-/Trigger-Verlauf lesen, Einrichtung pro Symbol, einmalige Strategiezustimmung |
| Sharelist | 8 | Community-Sharelist-CRUD, Mitglieder hinzufügen/entfernen/sortieren, beliebte Listen |
| IPO | 7 | IPO-Zeichnungen, Kalender, gelistete Aktien, Orderdetails, Gewinn-/Verlustanalyse |
| Inhalt | 7 | Nachrichtenliste/-detail, Diskussionsthemen-CRUD und Antworten |
| Alarm | 5 | Kursalarm-CRUD (hinzufügen, löschen, aktivieren, deaktivieren, auflisten) |
| Screener | 5 | Aktien-Screener-Suche, Indikatoren, Strategieempfehlung/-verwaltung |
| Portfolio | 4 | Wechselkurse, Gewinn-/Verlustanalyse (Zusammenfassung, Detail, realisiert) |
| ATM | 3 | Bankkarten, Abhebungsverlauf, Einzahlungsverlauf |
| Makrodaten | 2 | Makroökonomische Indikatorliste und -detail |
| Suche | 2 | Nachrichtensuche, Community-Themensuche |
| Kontoauszug | 2 | Kontoauszugsliste und -export |
| Kalender | 1 | Finanzkalender (Gewinne, Dividenden, IPOs, Makrodaten, Schließungen) |
| Quant | 1 | Quant-Indikator-Skript gegen historische K-Linien-Daten ausführen |
| Authentifizierung | 1 | OAuth-Code-Austausch für Clients, die keine Browser-Weiterleitung abschließen können |
| Dienstprogramm | 1 | Aktuelle UTC-Zeit |
Selbsthosting
Bevorzugst du deine eigene Instanz? Führe das veröffentlichte Image aus:
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
Setze
--base-urlauf deine extern erreichbare URL bei jeder öffentlichen Bereitstellung – sie wird in den OAuth-Metadaten veröffentlicht, die Clients zur Erkennung des Autorisierungsservers verwenden. Standard isthttp://localhost:{port}, das Remote-Clients nicht verwenden können.
Oder aus dem Quellcode bauen: cargo build --release && ./target/release/longbridge-mcp.
Konfiguration & Umgebungsvariablen
Die Konfiguration liegt unter ~/.longbridge/mcp/config.json (Verzeichnis mit LONGBRIDGE_MCP_CONFIG_DIR überschreiben). CLI-Flags haben Vorrang. Wenn tls_cert und tls_key beide gesetzt sind, läuft der Server mit HTTPS, sonst mit HTTP; base_url standardmäßig auf https://localhost:{port} mit TLS oder http://localhost:{port} ohne.
| Option | Konfigurationsschlüssel | CLI-Flag | Standard | Beschreibung |
|---|---|---|---|---|
| Bind-Adresse | bind | --bind | 127.0.0.1:8000 | HTTP-Server-Listenadresse |
| Basis-URL | base_url | --base-url | auto | Öffentliche Basis-URL für Ressourcen-Metadaten |
| Protokollverzeichnis | log_dir | --log-dir | (stderr) | Verzeichnis für rotierende Protokolldateien |
| TLS-Zertifikat | tls_cert | --tls-cert | (keins) | PEM-Zertifikatsdatei für HTTPS |
| TLS-privater Schlüssel | tls_key | --tls-key | (keins) | PEM-Datei des privaten Schlüssels für HTTPS |
| Canary-Upstream | canary | --canary | false | Mit der Longbridge-Canary-Umgebung sprechen (*.longbridge.xyz). --canary=false erzwingt Produktion, auch wenn die Konfigurationsdatei sie aktiviert |
Die Festland-China-Umgebung (*.longbridge.cn) ist kein Flag: Sie wird automatisch ausgewählt, wenn LONGBRIDGE_REGION=cn gesetzt ist (dieselbe Variable, die das SDK verwendet), sodass ein Festland-Cluster keine eigene Einstellung benötigt.
Upstream-Endpunkte werden durch die ausgewählte Umgebung festgelegt:
| Produktion (Standard) | Canary (--canary) | Festland (LONGBRIDGE_REGION=cn) | |
|---|---|---|---|
| OpenAPI | https://openapi.longbridge.com | https://openapi-global.longbridge.xyz | https://openapi.longbridge.cn |
| Kurs-WebSocket | wss://openapi-quote.longbridge.com/v2 | wss://openapi-global-quote.longbridge.xyz/v2 | wss://openapi-quote.longbridge.cn/v2 |
| Handels-WebSocket | wss://openapi-trade.longbridge.com/v2 | wss://openapi-global-trade.longbridge.xyz/v2 | wss://openapi-trade.longbridge.cn/v2 |
| OAuth-/Verbindungsseite | openapi.longbridge.com / open.longbridge.com | openapi-global.longbridge.xyz / open.longbridge.xyz | openapi.longbridge.cn / open.longbridge.cn |
Canary verwendet das -global-Gateway, nicht openapi.longbridge.xyz: Nur ersteres ist CloudFront-frontend und führt x-dc-region-Rechenzentrums-Routing durch, auf das dieser Server angewiesen ist, um us_- und ap_-präfixierte Anmeldedaten aus einem Prozess zu bedienen.
Canary und Festland pinnen jede oben genannte URL beim Start; Produktion überlässt die Auflösung dem SDK, außer dass eine us_-Anmeldedaten ohne Upstream-Überschreibung auf das globale .com-Gateway gepinnt wird. Siehe src/endpoints.rs für die genauen Auswahlregeln.
Erweiterte Umgebungsvariablen – die meisten Bereitstellungen berühren diese nie; sie existieren für SDK-Debugging und Edge-/Global-Entry-Bereitstellungen.
| Variable | Standard | Beschreibung |
|---|---|---|
LONGBRIDGE_MCP_CONFIG_DIR | ~/.longbridge/mcp | Konfigurationsdatei-Verzeichnis |
LONGBRIDGE_PUBLIC_HOSTS | (keins) | Kommagetrennte Hostnamen, die vom Edge-injizierten X-Host-Header akzeptiert werden; übereinstimmende Anfragen spiegeln diesen Host in der 401-Challenge / RFC-9728-Metadaten wider. Nicht gesetzt = X-Host ignoriert |
LONGBRIDGE_GLOBAL_OAUTH_URL | (keins) | Autorisierungsserver-URL, die an Anfragen über einen zugelassenen X-Host beworben wird (globaler Single-Domain-Eintrag). Nicht gesetzt = Fallback auf die OpenAPI-Basis-URL des Modus |
LONGBRIDGE_MCP_QUOTE_WS_IDLE_TTL_SECS | 600 | Leerlaufsekunden, bevor ein zwischengespeicherter Kurs-WebSocket-Kontext entfernt wird |
LONGBRIDGE_MCP_QUOTE_WS_MAX_CONTEXTS | 1024 | Maximale zwischengespeicherte Kurs-WebSocket-Kontexte pro Serverprozess |
LONGBRIDGE_MCP_LOG_PAYLOADS | (nicht gesetzt) | 1 hebt die Payload-Protokollgrenzen auf (siehe unten). Setze dies niemals in der Produktion |
LONGBRIDGE_LOG_PATH | (keins) | SDK-interner Protokollpfad. In Produktion nicht gesetzt lassen – das SDK schreibt ungefilterte Anfrage-/Antwortkörper dorthin |
Protokollierung & Kundendaten
MCP-Anfragen und -Antworten enthalten Kundendaten – Barguthaben, Positionen, Orderhistorie – und Upstream-SDK-Frames enthalten Zugriffstokens. Nichts davon gehört in eine Logdatei, daher begrenzt der Server die Log-Ziele, die diese Daten ausgeben würden, unabhängig von RUST_LOG:
| Ziel | Begrenzung | Was es andernfalls ausgeben würde |
|---|---|---|
longbridge_httpcli | warn | OpenAPI-Anfrage und vollständige Antwort-Bodies (INFO) |
longbridge_wscli | warn | Jeder WebSocket-Frame, einschließlich Auth-Token (INFO) |
longbridge::trade | warn | Order-Push-Ereignisse (INFO) |
rmcp | info | Dekodierte MCP-Anfragen und vollständige Tool-Ergebnisse (DEBUG), rohe JSON-RPC-Frames (TRACE) |
Das Erhöhen der Ausführlichkeit ist also sicher: RUST_LOG=debug (oder trace) liefert die eigenen Logs des Servers, ohne Kundendaten preiszugeben. Zwei Schalter heben dies auf, beide standardmäßig deaktiviert – LONGBRIDGE_MCP_LOG_PAYLOADS=1 (entfernt die Begrenzungen; nur gegen ein Testkonto lokal verwenden) und LONGBRIDGE_LOG_PATH (lässt das SDK ungefilterte Bodies in dieses Verzeichnis schreiben; der Server warnt beim Start, wenn dies gesetzt ist).
HTTP-Endpunkte, Authentifizierung & Metriken
Der Server erwartet ein Longbridge-OAuth-Zugriffstoken in Authorization: Bearer <token>. Bei fehlender oder ungültiger Authentifizierung gibt er 401 mit einem WWW-Authenticate-Header zurück, der auf die Metadaten der geschützten Ressource verweist, die Clients zum Longbridge-OAuth-Autorisierungsserver führt.
Senden Sie x-papertrading: true (oder 1) mit einer Anfrage, um sie gegen die Paper-Trading-Umgebung auszuführen. Upstream lehnt eine Paper-Trading-Anfrage ab, die mit einem Echtgeld-Token gestellt wird, daher ist der Header eher eine Sicherheitsvorkehrung als ein Routing-Schalter: Er kann nur einschränken, was ein Token tun darf. LONGBRIDGE_PAPERTRADING=true aktiviert dies stattdessen für die gesamte Bereitstellung.
| Methode | Pfad | Beschreibung |
|---|---|---|
| GET | /.well-known/oauth-protected-resource | Metadaten der geschützten Ressource (RFC 9728) |
| GET | /.well-known/oauth-authorization-server | Metadaten des Autorisierungsservers (RFC 8414); bewirbt direkte Longbridge-Autorisierungs-/Registrierungs- und proxierte Token-/Widerruf-Endpunkte |
| POST | /oauth2/token | OAuth-Token-Proxy; leitet x-dc-region aus dem Code/Refresh-Token ab, standardmäßig AP |
| POST | /oauth2/revoke | OAuth-Widerruf-Proxy; leitet x-dc-region aus dem Token ab, standardmäßig AP |
| GET | /metrics | Prometheus-Metriken |
| POST/GET/DELETE | /mcp | MCP-Streamable-HTTP-Endpunkt (erfordert Bearer-Token) |
Prometheus-Metriken: mcp_tool_calls_total (Zähler), mcp_tool_call_duration_seconds (Histogramm) und mcp_tool_call_errors_total (Zähler) – jeweils beschriftet mit tool_name.
Entwicklung
cargo +nightly fmt # format
cargo clippy # lint
cargo test # test
Lizenz
Veröffentlicht unter der MIT-Lizenz.