Avanza-MCP
Avanza-MCP
Einzel-Skript CLI + Textual TUI für Avanza-Portfolioüberwachung, reguläre Kauf-/Verkaufsaufträge, Stop-Loss-Verwaltung, MCP-Integration und Paper-Trading.
Anmeldedaten werden zur Laufzeit abgefragt:
Benutzername: sichtbare Eingabeaufforderung, sofern nicht mit
--usernameübergebenPasswort: maskiert
aktueller TOTP-Code: maskiert
Alternativ können --onepassword-item ITEM und optional --onepassword-vault VAULT übergeben werden, um den Avanza-Benutzernamen, das Passwort und den aktuellen TOTP-Code über die 1Password-CLI (op) zu lesen. Die TUI verfügt über einen entsprechenden Pfad Login with 1Password. Das Tool speichert diese Geheimnisse nicht; op wird Sie auffordern, den Zugriff über die lokale 1Password-App zu autorisieren.
Der aktuelle TOTP-Code wird als totpToken an avanza-api übergeben, was dem Feldnamen entspricht, den die installierte Bibliotheksversion erwartet.
Einrichtung
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
chmod +x scripts/verify.sh .githooks/pre-commit .githooks/pre-push
git config core.hooksPath .githooksFühren Sie das vollständige Quality Gate jederzeit aus:
scripts/verify.shBefehle
Konsolenbefehle geben menschenlesbare Rich-Tabellen und Zusammenfassungen aus, keine rohen API-Payloads.
Kontenübersicht anzeigen:
python avanza_cli.py accountsPortfolio-Zusammenfassung anzeigen:
python avanza_cli.py portfolio summaryDetaillierte Portfolio-Positionen anzeigen:
python avanza_cli.py portfolio positionsNach einer Aktie/einem Orderbuch suchen:
python avanza_cli.py search-stock "VOLV B"Aktive Stop-Loss-Aufträge auflisten:
python avanza_cli.py stoploss listEinen Trailing/Gliding Sell Stop-Loss als Trockenübung testen:
python avanza_cli.py stoploss set \
--account-id ACCOUNT_ID \
--order-book-id ORDER_BOOK_ID \
--trigger-type follow-upwards \
--trigger-value 5 \
--trigger-value-type % \
--order-type sell \
--order-price 1 \
--order-price-type % \
--volume 10Führen Sie den Auftrag real aus, indem Sie nach Überprüfung der Trockenübungsausgabe --confirm hinzufügen.
Wenn --valid-until weggelassen wird, verwendet avanza_cli automatisch das längste derzeit zulässige Datum (heute + 90 Tage).
Wenn --order-valid-days weggelassen wird, verwendet avanza_cli den aktuellen Avanza-sicheren Standardwert (8).
Einen Stop-Loss-Auftrag als Trockenübung löschen:
python avanza_cli.py stoploss delete \
--account-id ACCOUNT_ID \
--stop-loss-id STOP_LOSS_IDLöschen Sie den Auftrag real durch Hinzufügen von --confirm.
Offene reguläre Aufträge auflisten:
python avanza_cli.py orders listEinen regulären Kauf-/Verkaufsauftrag als Trockenübung testen:
python avanza_cli.py orders set \
--account-id ACCOUNT_ID \
--order-book-id ORDER_BOOK_ID \
--order-type buy \
--price 100 \
--valid-until 2026-05-28 \
--volume 10 \
--condition normalEinen Auftrag als Trockenübung löschen:
python avanza_cli.py orders delete \
--account-id ACCOUNT_ID \
--order-id ORDER_IDTextual TUI
Führen Sie die Terminal-UI über dasselbe Skript aus:
python avanza_cli.py tuiDie TUI maskiert Passwort- und TOTP-Eingaben, leert diese Felder nach einer erfolgreichen Anmeldung und blendet den Anmeldebildschirm aus. Sie können auch einen 1Password-Elementnamen/-ID und einen optionalen Tresor eingeben und dann Login with 1Password verwenden, damit die lokale op-CLI nach Ihrer 1Password-Freigabe Benutzername, Passwort und TOTP abruft. Verwenden Sie zuerst Review Only, um eine Auftragsanfrage zu validieren und zu protokollieren, ohne einen Paper- oder Live-Auftrag zu erstellen.
Nach der Anmeldung ist standardmäßig das Konto mit dem höchsten Gesamtwert ausgewählt. Das obere Bedienfeld gruppiert Kontokennzahlen in farbigen Karten, hält Aktionsschaltflächen zusammen und zeigt eine Live-Uhr sowie einen Countdown für die Öffnungs-/Schlusszeiten der OMXS an. Die GuV-Kennzahl wechselt zwischen 1D P/L, 1W P/L, 1M P/L, 1Y P/L und Total P/L, wobei SEK- und %-Werte separat eingefärbt sind. Die Haupttabelle zeigt die Aktien des ausgewählten Kontos mit Tagesbewegung, Gewinnstatus, einer eigenen Kopfzeile und einer Echtzeit-Kursanzeige: grüner Punkt für Echtzeit, gelber Punkt für verzögerten oder ungeklärten Status. Das Order-Ticket sucht während der Eingabe nach Aktienname, Ticker oder ISIN, sodass es sowohl das Eröffnen neuer Positionen als auch den Handel bestehender Bestände unterstützt. Die untere Tabelle zeigt Stop-Losses und offene Aufträge für das ausgewählte Konto, wobei Trigger- und Preiswerte als SEK oder % gekennzeichnet sind; die Spalte zum Stornieren öffnet ein gesichertes Stornierungsticket. Kauf-/Verkaufsseiten-Zellen sind grün/rot farbcodiert. Klicken Sie auf eine beliebige Tabellenspaltenüberschrift, um nach dieser Spalte zu sortieren; klicken Sie erneut auf dieselbe Überschrift, um die Reihenfolge umzukehren. Ziehen Sie die horizontale Trennlinie zwischen den Tabellen, die vertikale Trennlinie neben den aktiven Trades oder den linken Rand des Order-/Stop-Loss-Tickets, um die Bereiche in der Größe anzupassen. Positions- und Auftragsstatus werden alle 5 Sekunden live aktualisiert.
MCP-Server-Registrierung & Ausführung
Dieses Projekt stellt MCP über python avanza_cli.py mcp (stdio-Transport) bereit.
1) TUI starten und authentifizieren
python avanza_cli.py tuiMelden Sie sich an und aktivieren Sie dann das Kontrollkästchen MCP in der TUI. Dies startet die Localhost-Brücke und schreibt .avanza_mcp_session.json.
2) MCP-Server in Codex/Codex CLI registrieren
Fügen Sie dies zu ~/.codex/config.toml hinzu:
[mcp_servers.avanza-mcp]
command = "python"
args = ["/ABSOLUTE/PATH/TO/avanza_cli.py", "mcp"]Verwenden Sie den absoluten Pfad zu Ihrer lokalen avanza_cli.py.
3) Von Ihrem MCP-Client ausführen
Starten/laden Sie nach der Registrierung Codex oder Codex CLI neu. Es wird gestartet:
python avanza_cli.py mcpDer MCP-Proxy leitet Tool-Aufrufe über die Localhost-Brücke an die authentifizierte TUI-Sitzung weiter. MCP startet schreibgeschützt. Aktivieren Sie Live R/W in der TUI für Live-Änderungen; für Live-Stop-Loss/Auftragserteilung, Bearbeitung, Ersetzung oder Löschung müssen MCP-Argumente weiterhin confirm: true enthalten. MCP-Aktivitäten werden in der Protokollkonsole unten rechts angezeigt.
4) Hinweis zu ChatGPT Desktop
Der ChatGPT-Entwicklermodus erwartet derzeit Remote-MCP-Apps/-Connectoren über SSE oder Streaming-HTTP, daher kann dieser lokale stdio-Proxy nicht direkt registriert werden.
Für Auto-Trading-Experimente verwenden Sie avanza_live_snapshot als Abfragetool. Es gibt einen entscheidungsreifen Kontoschnappschuss zurück und kann sicher alle 5 Sekunden aufgerufen werden. Paper-Trading ist im schreibgeschützten MCP-Modus über avanza_paper_stoploss_set, avanza_paper_order_set, avanza_paper_orders und avanza_paper_cancel verfügbar; der Paper-Status wird in .avanza_paper_session.json gespeichert und platziert niemals einen Avanza-Auftrag. Das Kontrollkästchen Paper der TUI ist standardmäßig aktiviert; solange es aktiviert ist, erstellen die Schaltflächen zum Absenden des Order- und Stop-Loss-Formulars lokale Paper-Aufträge. Deaktivieren Sie Paper nur, wenn Sie eine Live-Avanza-Platzierung beabsichtigen, für die weiterhin die Eingabe von PLACE erforderlich ist. Reguläre Live-Kauf-/Verkaufsaufträge werden ebenfalls über avanza_order_set und avanza_order_delete bereitgestellt, geschützt durch den MCP R/W-Modus und confirm: true.
TUI-Sitzungen schreiben strukturierte JSONL-Protokolle unter avanza-cli/logs/: ein zeitgestempeltes Sitzungsprotokoll sowie persistente app.jsonl, mcp.jsonl und trading.jsonl.
Sicherheit
Dies verwendet das inoffizielle avanza-api-Paket. Beginnen Sie mit stoploss list und Trockenübungen. Überprüfen Sie die Live-Interpretation von % und Gliding-Stop-Loss-Feldern durch Avanza mit sehr geringer Größe, bevor Sie ihr für bedeutende Aufträge vertrauen.
Credits
Ersteller: Hamid Kashfi und Codex (OpenAI).
Dieses Projekt baut auf der Python-Bibliothek avanza-api von fama93 auf:
PyPI: avanza-api
Quelle: github.com/fhqvst/avanza
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
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/Hamid-K/avanza-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server