Avanza-MCP
Avanza-MCP
Avanzaポートフォリオ監視、通常売買注文、ストップロス管理、MCP統合、およびペーパートレードのためのシングルスクリプトCLI + Textual TUI。
認証情報は実行時にプロンプトが表示されます:
username:
--usernameで渡されない限り、プロンプトが表示されますpassword: マスクされます
current TOTP code: マスクされます
または、--onepassword-item ITEM(およびオプションで --onepassword-vault VAULT)を渡すことで、1Password CLI (op) を介してAvanzaのユーザー名、パスワード、現在のTOTPコードを読み取ることができます。TUIには対応する Login with 1Password パスがあります。このツールはこれらの秘密情報を保存しません。op がローカルの1Passwordアプリを通じてアクセス許可を求めてきます。
現在のTOTPコードは totpToken として avanza-api に渡されます。これはインストールされているライブラリのバージョンで期待されるフィールド名です。
セットアップ
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 .githooksいつでもフル品質ゲートを実行できます:
scripts/verify.shコマンド
コンソールコマンドは、生のAPIペイロードではなく、人間が読めるRichテーブルと要約を出力します。
アカウントの概要を表示:
python avanza_cli.py accountsポートフォリオの要約を表示:
python avanza_cli.py portfolio summary詳細なポートフォリオポジションを表示:
python avanza_cli.py portfolio positions株式/オーダーブックを検索:
python avanza_cli.py search-stock "VOLV B"アクティブなストップロス注文を一覧表示:
python avanza_cli.py stoploss listトレーリング/グライディング・セル・ストップロスのドライラン(テスト実行):
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 10ドライランの出力を確認した後、--confirm を追加して実際に注文を発注します。
--valid-until が省略された場合、avanza_cli は現在許可されている最長の日付(今日 + 90日)を自動的に使用します。
--order-valid-days が省略された場合、avanza_cli は現在のAvanzaの安全なデフォルト値 (8) を使用します。
ストップロス注文の削除をドライラン:
python avanza_cli.py stoploss delete \
--account-id ACCOUNT_ID \
--stop-loss-id STOP_LOSS_ID--confirm を追加して実際に削除します。
未決済の通常注文を一覧表示:
python avanza_cli.py orders list通常売買注文のドライラン:
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 normal注文削除のドライラン:
python avanza_cli.py orders delete \
--account-id ACCOUNT_ID \
--order-id ORDER_IDTextual TUI
同じスクリプトからターミナルUIを実行します:
python avanza_cli.py tuiTUIはパスワードとTOTPの入力をマスクし、ログイン成功後にそれらのフィールドをクリアし、ログイン画面を非表示にします。1Passwordのアイテム名/IDとオプションのボルトを入力し、Login with 1Password を使用して、1Passwordの承認後にローカルの op CLIにユーザー名、パスワード、TOTPを取得させることもできます。ペーパー注文やライブ注文を作成せずに注文リクエストを検証および記録するには、まず Review Only を使用してください。
ログイン後、デフォルトで合計価値が最大のアカウントが選択されます。トップパネルはアカウントの指標を色分けされたカードにグループ化し、アクションボタンをまとめ、ライブ時計と平日のOMXS開場/閉場までのカウントダウンを表示します。P/L(損益)指標は 1D P/L、1W P/L、1M P/L、1Y P/L、Total P/L の間で切り替わり、SEKと%の値は個別に色分けされます。メインテーブルには、選択したアカウントの株式、日次変動、利益状態、明確なヘッダー行、およびリアルタイムの相場インジケーターが表示されます(リアルタイムは緑色のドット、遅延または未解決のステータスは黄色のドット)。注文チケットは、株式名、ティッカー、またはISINを入力すると検索されるため、現在の保有銘柄の取引だけでなく、新規ポジションの開設もサポートしています。下のテーブルには、選択したアカウントのストップロスと未決済注文が表示され、トリガー値と価格値には SEK または % のラベルが付けられます。キャンセル列からは、保護されたキャンセルチケットが開きます。売買サイドのセルは緑/赤で色分けされています。テーブルの列ヘッダーをクリックするとその列でソートされ、同じヘッダーをもう一度クリックすると順序が反転します。テーブル間の水平分割線、アクティブトレード横の垂直分割線、または注文/ストップロスチケットの左端をドラッグしてペインのサイズを変更できます。ポジションと注文の状態は5秒ごとにライブ更新されます。
MCPサーバーの登録と実行
このプロジェクトは python avanza_cli.py mcp (stdioトランスポート) を通じてMCPを公開します。
1) TUIの起動と認証
python avanza_cli.py tuiログイン後、TUIの MCP チェックボックスを有効にします。これによりローカルホストブリッジが起動し、.avanza_mcp_session.json が書き込まれます。
2) Codex/Codex CLIへのMCPサーバーの登録
~/.codex/config.toml に以下を追加します:
[mcp_servers.avanza-mcp]
command = "python"
args = ["/ABSOLUTE/PATH/TO/avanza_cli.py", "mcp"]ローカルの avanza_cli.py への絶対パスを使用してください。
3) MCPクライアントからの実行
登録後、CodexまたはCodex CLIを起動/リロードします。以下が起動します:
python avanza_cli.py mcpMCPプロキシは、ローカルホストブリッジを通じて認証済みTUIセッションにツール呼び出しを転送します。MCPは読み取り専用で開始されます。ライブ変更を行うにはTUIで Live R/W を有効にしてください。ライブのストップロス/注文発注、編集、置換、または削除には、MCP引数に confirm: true を含める必要があります。MCPのアクティビティは右下のログコンソールに表示されます。
4) ChatGPTデスクトップに関する注意
ChatGPTの開発者モードは現在、SSEまたはストリーミングHTTP経由のリモートMCPアプリ/コネクタを想定しているため、このローカルstdioプロキシを直接登録することはできません。
自動取引の実験には、ポーリングツールとして avanza_live_snapshot を使用してください。これは意思決定可能なアカウントスナップショットを返し、5秒ごとに呼び出しても安全です。ペーパートレードは、avanza_paper_stoploss_set、avanza_paper_order_set、avanza_paper_orders、avanza_paper_cancel を通じて読み取り専用MCPモードで利用可能です。ペーパー状態は .avanza_paper_session.json に保存され、Avanzaの注文は一切行われません。TUIの Paper チェックボックスはデフォルトでオンになっています。オンの間、注文およびストップロスのフォーム送信ボタンはローカルのペーパー注文を作成します。ライブのAvanza発注を行う意図がある場合のみ Paper をオフにしてください(その場合でも PLACE と入力する必要があります)。通常のライブ売買注文も avanza_order_set および avanza_order_delete を通じて公開されており、MCP R/Wモードと confirm: true によって制限されています。
TUIセッションは avanza-cli/logs/ 配下に構造化されたJSONLログを書き込みます。タイムスタンプ付きのセッションログに加え、永続的な app.jsonl、mcp.jsonl、trading.jsonl が含まれます。
安全性
これは非公式の avanza-api パッケージを使用しています。stoploss list とドライランから始めてください。意味のある注文に信頼を置く前に、非常に小さなサイズで % とグライディング・ストップロス・フィールドに対するAvanzaのライブ解釈を検証してください。
クレジット
作成者: Hamid Kashfi および Codex (OpenAI)。
このプロジェクトは、fama93によるPythonライブラリ avanza-api を基盤としています:
PyPI: avanza-api
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