mcpField
A
alphadesk-terminal

alphadesk-terminal

ローカル
alphadesk-764298799571.us-east4.run.app金融データ201 日前に更新

alphadesk-terminal について

AlphaDeskは、市場調査担当者向けの読み取り専用金融リサーチ端末です。ユーザー自身のデータプロバイダーキーを使い、クラウドまたはセルフホストで利用できます。取引や要約生成は行わず、市場データ、ニュース、SEC記録を提示します。

主な機能

  1. 01株価、チャート、ニュース
  2. 02SEC提出書類と財務諸表
  3. 03保有状況、オプション、暗号資産データ
  4. 04キーワード・意味検索
  5. 05交換可能なデータプロバイダー

活用シーン

  1. 01価格推移と市場ニュースの確認
  2. 02企業提出書類と財務データの調査
  3. 03インサイダー取引と企業カレンダーの追跡

MCP 対応

接続済みデータソースにAIエージェントがアクセスするための、53個の読み取り専用MCPツールを提供します。Agent accessページからクライアントを設定できます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"vigneshv1cky-alphadesk-terminal": {
"command": "uvx",
"args": [
"alphadesk"
]
}
}
}
起動コマンドuvx alphadesk

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypialphadesk0.2.1

ツール

37

掲載時のツール一覧 · 2 週間前に更新

このツールにパラメーターはありません。

詳細

AlphaDesk — 高密度で高速な市場調査ターミナル&MCP 統合プラットフォーム

PyPI License: AGPL v3 Commercial licence available Python 3.11+ React 19 MCP tools: 53

高密度で高速な市場調査ターミナル兼統合プラットフォームです。 利用者は 独自の市場データやニュースのプロバイダーを接続します。AlphaDesk は、それらのプロバイダーと、 SEC EDGAR および米国財務省の公開記録に実際に記載されている内容を接続、確認し、 提示するワークスペースです。質問は利用者自身の AI エージェント(Claude、ChatGPT、Codex、Cursor、opencode)に 尋ねることができ、エージェントは読み取り専用の 53 個のエージェントツール(MCP)を通じて 同じ記録を読み取ります。

AlphaDesk が読み取るのは、相場情報とチャート、ニュース、SEC の提出書類、財務諸表、 所有状況とインサイダー取引、決算および企業カレンダー、オプション、暗号資産です。取引、 注文のルーティング、ポジションの保有、アイデアの評価、要約の作成は行いません。

使い方は 2 通りあります。マネージドクラウド、 または独自サーバーです。コードは GNU AGPL-3.0 の下でオープンソースとして公開されており、条件を満たせない方には 商用ライセンスを用意しています。ライセンスをご覧ください。

AlphaDesk — 「市場を調査する。」接続したデータプロバイダーの相場情報、チャート、ニュース、SEC の提出書類、決算を読むための、高密度で高速なターミナル

マーケットボード:ライブチャート、バスケットレール、株式の概要、株式を基に構成されたファンド

各スクリーンショットの数値には意図的にぼかしを入れています。利用者自身のベンダーキーから取得したデータであり、ベンダーがデータの公開表示を制限しているためです。画面レイアウトは実際のものです。

チャートワークスペース決算発表の週
チャート — 独自の SVG エンジン、セッション帯、描画決算発表の週 — 企業独自の発表日と SEC 提出書類に基づいて日付を表示
ニュースウィンドウオプションチェーン
ニュース — 3 日間のウィンドウにフィードをまとめ、単語または意味で検索オプション — 満期日別のチェーン、価格の両側にあるコールとプット

クイックスタート — 1 人で実行する

Python 3.11+(または Docker)が必要です。以下のコマンドで python と記載されていて、 お使いのシェルで python3 しか使えない場合は、python3 または仮想環境内の python を 使用してください。また、SEC EDGAR と米国財務省のデータ以外を利用するには、 独自の市場データおよびニュースのキーが必要です。アカウントもサインインも、 データベースのセットアップも必要ありません。

pip install alphadesk
python -m alphadesk.main init --email [email protected]
python -m alphadesk.main dashboard

http://127.0.0.1:8000 を開き、Account ページでベンダーを接続し、 Agent access でエージェントを接続します。init は一度だけ実行します。このコマンドは 設定ファイル ~/.alphadesk/.env(所有者のみアクセス可能)を作成し、保存したベンダーキーを 暗号化する保管庫キー、SEC が求める連絡先メールアドレス、および単独利用モードを保存します。 このファイルのコピーを保管してください。保管庫キーがないと、保存したベンダーキーを 開けません。サーバーはこのマシン上でのみ待ち受けます。

クラウドとまったく同じ構成で実行する場合 — SQLite とサインインなしではなく、 Postgres と独自のログインを使用するには、--like-cloud を指定してセットアップします。 パスワードの入力を求められるので、ターミナルに入力してください(画面には表示されません)。 パスワードハッシュを含む設定ファイルが作成され、サーバーが稼働中であれば Postgres データベースも作成されます。

brew install postgresql@16 && brew services start postgresql@16
python -m alphadesk.main init --email [email protected] --like-cloud

次に、上記のように python -m alphadesk.main dashboard を実行し、そのメールアドレスと パスワードでサインインします。別のログイン用メールアドレスには --login、別の Postgres には --database-url を使用します。プロンプトを省略するには、 --password-hash(python -m alphadesk.main hash-password で生成)を使います。たとえばスクリプトから実行するなど、入力を一切行わずにセットアップする場合は、次のようにします。

python -m alphadesk.main init --email [email protected] --like-cloud --password-hash "$HASH" --database-url postgresql://localhost:5432/alphadesk

Postgres を使う場合に知っておくこと:

  • バージョン。 Postgres 16 を対象にビルドされ、実行されます。ドライバーはインストールに含まれる純粋な Python 製なので、コンパイルは不要です。
  • データベース。 サーバーが稼働中で、ユーザーにデータベースの作成権限がある場合、init --like-cloud はデータベースを作成します。作成できない場合でも、設定を書き込み、通常は createdb alphadesk を実行するか(または先に Postgres を起動する)よう案内します。テーブルは初回起動時に作成され、再度起動しても安全です。
  • 単語検索インデックス。 初回起動時には、単語検索を高速化する pg_trgm 拡張機能とインデックスの作成も試みます。データベースユーザーに拡張機能を作成する権限がない場合(一部のマネージドサービスなど)、その旨がログに一度だけ記録されます。インデックスがなくても検索は機能します。サービスに pg_trgm を許可してもらうか、管理者として CREATE EXTENSION pg_trgm を実行してから再起動してください。
  • SQLite からの移行。 2 つのストアは別々です。既存のセットアップを Postgres に切り替えると、空の台帳から始まります。以前のストアに暗号化して保存したベンダーキーは引き継がれないため、設定ファイルを保管し、アカウントページでキーを再度追加するか、python -m alphadesk.main keys import-file でインポートしてください。
  • バックアップ。 台帳は 1 つのデータベースです。pg_dump でバックアップしてください。保存されたベンダーキーを開くには保管庫キーも必要なので、設定ファイルも保管してください。

代わりに Docker を使う場合:

[email protected] docker compose up -d

初回起動時には、データボリューム内で同じセットアップが行われ、そのまま保存されます。また、アプリの隣で Postgres も起動します。これはライブサーバーが実行するものと同じデータベースなので、ローカルでテストしたものがクラウドでも実行されます。単語検索には Postgres のインデックスを使いますが、SQLite では利用できません。

Docker を使う場合に知っておくこと:

  • 初回のビルドは大きく、時間がかかります。 イメージには Python、機械学習ライブラリの CPU 専用ビルド、および意味検索で使う 1.2 GB の埋め込みモデルが含まれています。起動時にコンテナが何もダウンロードしないよう、あらかじめ組み込まれています。数 GB の容量と、初回ビルドに長い時間がかかることを見込んでください。ALPHADESK_SEMANTIC_SEARCH=off を設定すると、アプリ実行時にモデルが読み込まれなくなりますが、イメージのサイズは小さくなりません。
  • すべてのデータは 2 つのボリュームに保存されます。 alphadesk-data には設定ファイル(保管庫キーを含む)が保存され、alphadesk-pg にはデータベースが保存されます。docker compose down では両方とも保持されますが、docker compose down -v を実行すると削除され、履歴と保存済みキーも失われます。
  • 設定ファイルをバックアップしてください。 docker compose cp alphadesk:/data/.env ./alphadesk.env で外部にコピーできます。保管庫キーがないと、保存されたベンダーキーを開けません。
  • 更新。 git pull の後、docker compose up -d --build を実行します。設定とデータは保持されます。docker compose logs -f alphadesk でログを確認できます。
  • コンテナ内ではサインインできません。 上記のとおり、127.0.0.1:8000 で単独ユーザーモードで実行されます。独自のログインを設定するには、ホストで --like-cloud を使ってセットアップするか、以下の説明に従ってアクセストークンを前段に配置してください。
  • エージェント。 通常どおり Agent access ページでトークンを作成します。ツールは http://127.0.0.1:8000/api/agent/tools/mcp で応答します。別のマシンからアクセスするには、ALPHADESK_BASE_URL にそのマシンが使用するアドレスを設定し、別の名前を使用する場合は ALPHADESK_ALLOWED_HOSTS を設定して、アクセストークンを前段に配置してください。 ほかのマシンからアクセスできますか? このモードではサインインが無効なため、ポートにアクセスできる人は誰でも利用でき、接続済みのベンダーを閲覧できます。127.0.0.1 のままにするか、アクセストークンを設定してください。設定すると、ブラウザーでは一度だけトークンを求められ、エージェントは Agent access で作成したトークンを引き続き使用します。
python -c "import secrets; print(secrets.token_urlsafe(24))"

結果を ~/.alphadesk/.env に ALPHADESK_ACCESS_TOKEN=... として設定し(Docker の場合は環境変数として渡し)、再起動してください。インターネット経由で利用する場合は、前段に HTTPS を設定してください。

その他の実行方法、ほかのユーザーへの提供方法、すべての設定については、 2 つの実行方法 と 設定リファレンス をご覧ください。


目次

  1. AlphaDesk とは何か、何ではないか
  2. 2 つの実行方法
  3. 設計原則
  4. 機能
  5. データソース
  6. 検索
  7. エージェントからのアクセス(MCP)
  8. アカウント、セキュリティ、プライバシー
  9. アーキテクチャ
  10. リポジトリの構成
  11. 開発
  12. 設定リファレンス
  13. 本番環境へのデプロイと運用
  14. テストと品質
  15. 既知の制限事項
  16. 履歴
  17. ライセンス

AlphaDesk とは何か、何ではないか

AlphaDesk とはAlphaDesk ではないもの
情報閲覧用ターミナルです。市場情報を取得、確認し、表示します取引システムではありません。注文のルーティング、ポジションの状態、ブローカーとの連携はありません
統合プラットフォームです。ベンダーの各種データは、利用者自身のキーを使って取得しますアグリゲーターではありません。サーバーはベンダーのキーを保持せず、ある利用者のデータを別の利用者と共有することもありません
記録の表示ツールです。提出書類、財務諸表、ニュース記事、価格を、出典とともにそのまま表示します要約ツールではありません。モデルが内容を作成、言い換え、評価することはありません
プラグイン対応です。ニュースフィード、市場データ、文字起こし、ダッシュボードのタイルは、別のプロバイダーに切り替えられますブラックボックスではありません。すべての一覧は、時系列、アルファベット順、または表示対象の数値順に並びます

現在は無料で提供されています(支払い機能は設計されていますが、無効になっています。 アカウントをご覧ください)。


2 つの実行方法

オプション A — マネージドクラウドオプション B — セルフホスト
価格アーリーアクセス期間中は無料です。 予定価格:月額 $19 または年額 $190。開始前に告知します無料
ライセンス商用利用規約。AGPL に基づく義務はありませんGNU AGPL-3.0
実行するもの何もありません。運営者が設定したログイン情報でサインインします1 つのコンテナまたは 1 つの Python プロセスと、データベース
意味による検索利用可能です(埋め込みモデルは当社のサーバーで実行されます)CPU 上で実行するか(モデルは約 1.2 GB、2 vCPU/4 GiB を推奨)、無効にします
ベンダーキーご自身のキーをアカウントページで接続します.env またはアカウントページでご自身のキーを設定します
更新継続的に適用されますgit pull を実行して再起動します
オプション A — マネージドクラウド
  1. ホストされたターミナル を開き、運営者が設定したメールアドレスとパスワードでサインインしてください。サーバーごとにユーザーは 1 人で、サインアップはありません。
  2. アカウントページで、すでに利用している市場データやニュースのプロバイダー(Alpaca、FMP、Finnhub、Polygon など)を接続してください。SEC EDGAR と米国財務省の利用にキーは不要です。
  3. 任意:エージェントアクセスページ(サイドバーの「アカウント」の隣)から、ご自身のエージェントを接続してください。Claude Code、Codex、Cursor、opencode 用のトークンを発行するか、Claude.ai または ChatGPT でコネクターとしてサーバー URL を追加します。
オプション B — セルフホスト(AGPL-3.0)

必要なもの: 実際の連絡先情報を含む SEC User-Agent(SEC はこれがないリクエストをブロックします)、Python 3.11+ または Docker、そして EDGAR と Treasury のデータ以外を使う場合は、ご自身のベンダーキーが必要です。

1. 設定します。 テンプレートをコピーし、必須の値を2つ入力します。

cp alphadesk/deploy/env.example .env
.env の設定必須入力する値
ALPHADESK_VAULT_KEYはいランダムな32バイトを base64 でエンコードした値。保存したベンダーキーを暗号化します。コピーを保管してください。失うとキーを読み取れなくなります
SEC_USER_AGENTはいAlphaDesk ([email protected]) — 名前と実際のメールアドレス
ALPHADESK_AUTH1人で使う場合off:サインインなしの単一ローカルアカウント
ALPHADESK_ACCESS_TOKEN自分のマシンの外部からアクセス可能な場合サインインをオフにすると、ブラウザーで一度だけ入力する共有シークレット(16文字以上)。「クイックスタート」を参照してください
ALPHADESK_DATABASE_URLいいえpostgresql:// URL(推奨:Docker のセットアップと init --like-cloud ではこれを使用し、pg_trgm 拡張機能が必要な単語検索インデックスを有効にします)。未設定の場合は、ALPHADESK_DATA(~/.alphadesk)に SQLite を使用します
ALPACA_API_KEY、ALPACA_SECRET_KEY、FMP_API_KEY、FINNHUB_API_KEY、POLYGON_API_KEY、ALPHAVANTAGE_API_KEYいいえご自身のキー。起動時に見つかったキーはアカウントに暗号化して保存されます。サインインがオフの場合はローカルアカウントに、オンの場合はログインアカウントに保存されます。そのため、設定ファイルが記録元になります。キーの追加や更新は行いますが、削除はしません。また次回起動時には、アカウントページで変更したキーよりも設定ファイルの値が優先されます。アカウントページからキーを接続することもできます
ALPHADESK_SEMANTIC_SEARCHいいえoff にすると、約1.2 GBの埋め込みモデルを省略します。この場合、検索は単語の一致のみになります。search エクストラをインストールしていない場合は、いずれにしてもオフになります
ALPHADESK_LOGIN_EMAIL + ALPHADESK_LOGIN_PASSWORD_HASHいいえサインインをオンにする場合は、ご自身のログイン情報を指定します。このサーバーが受け付けるユーザーは1人だけです。サインインをオンにする場合は必須で、設定されていないとサーバーは起動しません。起動時にアカウントが作成されるか、同じメールアドレスの既存アカウントにパスワードが設定され、データは保持されます。設定されている間、パスワードフォームが唯一のログイン手段になります。ハッシュは python -m alphadesk.main hash-password で作成してください。ALPHADESK_LOGIN_PASSWORD(12文字以上)も使えますが、設定を読める人なら誰でもパスワードを確認できます。識別子にはメールアドレスを使用します

次のコマンドで Vault キーを生成します。

python -c "import os, base64; print(base64.b64encode(os.urandom(32)).decode())"

2a. PyPI からインストール — 最も手軽な方法です。ビルド済みのインターフェースがパッケージに含まれています。

pip install alphadesk
python -m alphadesk.main dashboard

ターミナルは http://127.0.0.1:8000 にあります。このインストールは小さく、すぐに完了し、単語でニュースを検索します。意味による検索も行うには、エクストラ(pip install "alphadesk[search]"。PyTorch が約1 GB)をインストールしてください。その後、初回起動時に1.2 GBのモデルが Hugging Face キャッシュにダウンロードされます。

2b. またはクローンから実行。何かを変更する予定がある場合は、こちらを選んでください。

pip install -r requirements.txt
python -m alphadesk.main keys import-env
python -m alphadesk.main dashboard

2c. または Docker で実行。 イメージには埋め込みモデルが組み込まれているため、コンテナーは起動時に何もダウンロードしません。

docker build -t alphadesk .
docker run -d --name alphadesk -p 8000:8000 --env-file .env -e ALPHADESK_DATA=/data -v alphadesk-data:/data alphadesk

ALPHADESK_AUTH をオンのままにする場合は、.env にログイン情報(メールアドレスと python -m alphadesk.main hash-password で作成したパスワードハッシュ)を設定してください。サインインがオンでログイン情報が設定されていない場合、サーバーは起動しません。

3. 非公開のまま使うか、変更を公開します。 AGPL のもとでは、変更を加えたコピーをネットワーク経由で他の人に使わせる場合、そのバージョンのソースを提供する必要があります。変更せずに自分で使う場合や、自分のマシンで変更を非公開にしておく場合は、そのような義務はありません。


設計原則

これらが本製品の根幹です。不足しているように見える機能の多くは、意図的に構築、測定、削除されています。何をなぜそうしたのかは DECISIONS.md をご覧ください。根拠を添えて、課題を報告してください。

  1. 言い換えは一切しません。 すべてのパネルとエージェントツールは、ベンダーや EDGAR が実際に述べた内容を返します。ページ単位の提出書類、時系列の声明、記事そのものの本文などです。出典とともに表示できない数値は表示しません。
  2. データが裏付けられない指標は非表示にします。 バーの網羅率とギャップの大きさは系列ごとに測定します。基準を下回る場合、RSI と MACD は非表示にし、流動性の高い銘柄のチャートと同じように見えてしまうような、疎な値の上に描画することはありません。
  3. 順位付けはしません。 スクリーナーの表示範囲はアルファベット順です。カレンダーとエージェントツールは、各行の数値だけで並べ替えます。検索結果は新しい順です。モデルが判断できるのは「関連性」であり、何を最初に表示するかではありません。
  4. 端末がアイドル状態なら、費用は発生しません。 バックグラウンドループが取得するのは公開データと各読者自身のニュースのみです。それ以外はすべて、リクエストした読者のキーを使って、リクエスト時に取得します。
  5. 信頼できないテキストは、信頼できないものとして扱います。 見出し、記事、提出書類、トランスクリプトはデータです。ここにある機能がそれらに対して何かを実行することはなく、それらを返すエージェントツールもその旨を明示します。
  6. アグリゲーターではありません。 複数のニュースフィードを統合するのは読者自身の操作であり、読者自身の認証情報を使って、読者自身の表示範囲で行います。
  7. エージェントの機能は読み取り専用で、読者ごとに分離されています。 すべてのエージェント呼び出しは、そのトークンまたは許可情報を持つ読者本人として実行されます。
  8. ベンダーデータは読者のものです。 サーバーにベンダーキーを置きません。商用ベンダーや非公式エンドポイントへの、キー不要の経路もありません。すべてのベンダーキャッシュは読者ごとに分けられ、ベンダーデータは機能が読み取る間だけ保持されます。

機能

ページ
ページ表示内容
ランディング (/)ぼかしを入れたスクリーンショット付きの製品概要、サインイン
マーケット組み合わせ可能なボード:チャート、株式概要、個別株を基にしたファンド、株式/ETF/暗号資産/通貨/オプションの値上がり・値下がり銘柄、米国債利回り、ヒートマップ、ニュース。株式、ETF、暗号資産、オプションの値上がり・値下がり銘柄では、過去の取引セッションにさかのぼれます。株式とETFは、その日の市場全体の銘柄を前のセッションと比較し、コインは各日の終値を前日と比較します(UTC 日付、Alpaca の取引所)。オプションは各日の取引終了後に記録されたリストを表示します。過去日の活発な契約を保存しているベンダーはないため、オプションの履歴はサーバーが最初に記録した日の夕方から始まります。終了した各セッションの終値は、独自のストアに記録されます(キーでアクセスできる Alpaca または Polygon)。起動時に直近 15 セッション分を補完し、市場終了後に新しい終値を追加します。過去の日付はまずストアから読み込みます。終了した各日の確定済みリストも保存されます(大きな値動きの確認、ボラティリティ、流動性、名称をフィルターセットごとに取得し、ステッパーで選択できる 5 日分はバックグラウンドで作成)。そのため、記録済みの日付を開いてもベンダーへの問い合わせは発生しません
チャートフルワークスペース:ローソク足、ライン、エリア、ステップなどのスタイル、1 分から複数年までの時間間隔、インジケーターとテンプレート、描画ツール(デスクトップ、訪問ごと)、マルチチャートレイアウト、時間外、プレマーケット、時間外取引、週末のセッション表示。混み合ったビューではピクセル列ごとにローソク足を 1 本描画するため、スムーズにズームできます。選択した範囲の読み込み中はローディング状態が表示され、パーセント目盛りは 1 本のバー(チャートを開いたときの最初のバー、または右クリックメニューから選んだバー)を基準にします
分析1 銘柄を一貫して確認:チャート、提出書類、株価パフォーマンス、主要統計、決算履歴とコンセンサス、アナリスト、評価変更、財務情報の提出書類、株式分割、配当、機関投資家とインサイダーの保有状況、ニュース。ファンドには保有銘柄と内訳も表示されます
プロフィール企業の概要:EDGAR 登録者情報、最新の 10-K/20-F の事業および施設に関するセクション(原文のまま)、所在地、役員
ニュース各読者の統合フィードを過去 3 日分、新しい順に表示。単語、ソース、ボードでフィルターし、単語と意味で検索できます。フィードに本文が含まれている場合はページ内リーダーで全文を表示し、長い記事でも見出しに戻る方法を上部に保持します
提出書類企業が SEC に提出したばかりの書類を、新しい順にリーダーとして表示します。左側に一覧(時刻、ティッカー、企業名、フォーム、日付ごとにグループ化)、右側に選択した提出書類の全文を表示し、企業が申告した各項目を企業独自の表現のまま掲載します。SEC の番号、ティッカー、EDGAR へのリンクも表示されます。項目で絞り込み、矢印キー(または j と k)で移動できます。重要度によるランク付けや色分けはありません
決算今週決算を発表する企業を、企業独自の発表日で表示し、SEC の決算提出書類と紐付けます。過去の実績からセッションを予測し、予想、実績、サプライズ、時価総額、ボラティリティ、流動性を表示します。その下には近日発表予定として、ベンダーのカレンダーに基づき、今後 1 週間、2 週間、1 か月、2 か月以内に決算を発表する企業を日付ごとにグループ化して表示します。1 週間より先の予定には推定と明記します(エージェントの決算カレンダーと同じ範囲)
カレンダー経済指標の発表、配当、複数の情報源で確認された株式分割と IPO
オプションインプライド・ボラティリティ付きのチェーン。コールは緑、プットは赤で表示し、オプションのフローをリアルタイムで確認できます
セクター保有比率と売買代金別のセクターファンドを、騰落状況とともに表示
バスケット値動きの要因となるニュース(金利、石油、関税、半導体輸出規制、ビットコインなど)ごとに分類された 36 種類の厳選バスケットと、読者独自のバスケット
ポートフォリオ/カスタムビュー読者が保存したボード
アカウント接続したベンダーとフィードのカバレッジマトリクス(プレーンテキストのキーをエクスポートするダウンロードを含む)とセッション
エージェントアクセス専用ページ:アドレスを使って AI アシスタント(Claude.ai、ChatGPT)を接続し、プログラム用のトークンを作成できます。トークンごとに、使用を許可するアドレスを指定することもできます。また、データ API を介して Claude Code、Codex、Cursor、opencode、独自のプログラム向けに、すぐに貼り付けられるセットアップ手順を提供します
利用規約、プライバシー、免責事項法務レビュー待ちの公開草稿
ターミナル全体で
  • シンボルストリップはすべてのページの対象範囲となり、行を選ぶとページを移動せずにシンボルが追加・選択されます。
  • 組み合わせ可能なボード:タイルの表示、非表示、並べ替え、サイズ変更、配置ができます。レイアウトは URL に保存されるため、リンクを開くと同じボードが復元されます。
  • 読者のプランでストリーミングが利用できる場合はライブデータ(Alpaca の株式、暗号資産、ニュースのソケット)を、それ以外ではポーリングを使用します。428 プロンプトには、読者のキーではパネルに表示できないデータを提供するベンダーとプランが示されます。
  • スマートフォン:すべてのページは、デスクトップだけでなく 375 ピクセル幅の画面にも対応しています。
  • ライトテーマとダークテーマ、4 ピクセルグリッドと 6 つの文字スタイルを備えた独自のデザインシステム、すべてのオーバーレイでの完全なキーボードフォーカス処理。

データソース

市場データ — 読者自身のキー
ベンダー提供データ(プランによって異なります)
Alpaca統合(SIP)および IEX のバー、チャートでの時間外(Blue Ocean)セッション、気配値と株式値上がり銘柄、気配値、値上がり銘柄、暗号資産、IV 付きオプションチェーン、オプションフロー、企業アクション
Financial Modeling Prepカレンダー(決算、経済指標、配当、株式分割、IPO)、主要統計、プロフィール、アナリスト、時価総額、通貨、プレスリリース、ファンドデータ
Polygon (Massive)バー、気配値、値上がり銘柄、通貨、オプション
Finnhub企業指標、プロフィール、決算カレンダー、セッション
Alpha Vantage企業概要、バー

各パネルでは、接続済みのベンダーを、文書化された固定順序で確認します。該当するデータを提供する最初のベンダーが応答します。チャートとオプションチェーンは1 つのベンダーに固定され、複数の配信元をつなぎ合わせることはありません。

ニュース — 読者自身のフィード

Alpaca(Benzinga)、Polygon、Finnhub、Benzinga、Alpha Vantage、Marketaux、FMP。複数のフィードを読者ごとに 1 つのウィンドウに統合し、URL で重複を除外します。Alpaca のニュースはライブでストリーミングされ、それ以外は 5 分ごとにポーリングされます。

キー不要のソース — ライセンス不要で閲覧可能

購入するものがないため、キーを必要としないソースが 3 つあります。読者はアカウントページのボタンで各ソースを有効にします。

ソース提供データ
Nasdaq決算、配当、株式分割、上場のカレンダー — さらに、カタログ内のどのベンダーも提供していない本日の取引停止
Yahoo公開チャートエンドポイントから取得したチャート、気配値、日次履歴
ソーシャル公開アカウント 1 件の投稿を、そのアカウントの公開コピーから取得します。提供されるのはテキスト投稿のみです。閲覧した投稿はすべてアーカイブに保存されるため、検索ではコピーに含まれる最新の 100 件より前までさかのぼれます

信頼性を保つため、2 つのルールを設けています。キーが必要なベンダーを必ず先に確認します — すべてのライセンス済みベンダーがスクレイピング元より先に並ぶため、スクレイピング元が応答するのは、他に応答できるソースがない場合だけです。また、応答には常に出所情報が付随します:カタログではソースが非公式と示され、各ペイロードにも出所情報が含まれ、タイルのサブタイトルには「スクレイピング」と表示されます。さらに、data_sources エージェントツールを使うと、ベンダー名がライセンス済みか閲覧専用かを確認できます。このマーカーは読者の推論を守るためのものであり、サイトからの同意を意味するものではありません。

ソーシャル投稿からティッカーを読み取ることはありません。投稿内のティッカーは投稿者の主張であり、それを関連付けると、未検証の主張がそのシンボルのコンテキストに取り込まれるためです。

公開データ — キー不要
  • SEC EDGAR:提出書類とそのテキスト、XBRL 財務諸表、Form 4 インサイダー取引、8-K Item 2.02 および 6-K 決算リリース(リリース当日の情報は提出書類自体から取得)、ティッカーと企業の一覧。
  • US Treasury:日次パーイールドカーブ。

すべてのソースとその収集方法、利用条件は docs/data-sources.md に記載されています。ベンダーの利用条件はコードライセンスとは別です。既知の制限を参照してください。

検索

ニュース検索は、読者が検索するあらゆる場所で、2つの方法を同時に使用します。ニュースのフィルターボックス、「すべてを検索」、エージェントの news_search ツールが対象です。

  • 単語による検索 — サーバーとブラウザーで共通のルールを使用します。単語全体を順番に照合し、複数形は単数形にも一致させ、大文字で始まるティッカーは完全一致させます。また、会社名を指定したクエリでは、その会社のタグが付いた記事も見つかります(「robinhood」なら、HOOD のタグが付いた記事も見つかります)。

  • 意味による検索 — クエリと見出しの意味が近い記事を追加し、関連としてマークします。そのため、「AI データセンターへの支出」で、共通のフレーズがなくても「Equinix、年間50億~70億ドルのデータセンター建設計画」を見つけられます。これは Qwen3-Embedding-0.6B(Apache 2.0)を使用し、サーバー内でセルフホストします。AlphaDesk の外部にテキストが送信されることはなく、モデルキーも不要です。見出しは到着時に一度だけ埋め込み処理されます。しきい値(コサイン類似度0.50)は、関連する話題の記事のみが追加されるよう調整されています。検索結果は引き続き新しい順です。

    埋め込み処理がサイトの動作と競合することはありません。モデルは単一の CPU スレッドで動作し、バックグラウンドワーカーはオペレーティングシステムの優先度を最低に設定しており、リクエストの処理中は埋め込み処理を行いません。検索には約3分の1秒かかります。

コインのニュースパネルには、すべての暗号資産とその価格変動要因が表示されます。対象は、任意のコインの記事、暗号資産関連株、暗号資産に言及した記事、FRBや金利に関する見出しで、それぞれ表示理由が付いています。5分ごとのニュース取得では、すべての記事のうち最新記事に占める暗号資産の割合が少ないため、主要コインの名前がタグ付けされた記事もフィードに問い合わせます。フィードではコインを BTCUSD と表記しますが、取引口座のコインと固定リスト内の主要コインについては、ページとエージェントのニュースツールの両方で、ボードでの表記に合わせて BTC-USD と表示します。


暗号資産

暗号資産のデータは Alpaca のみから取得します。取引に Alpaca を使うため、Alpaca のコインと取引所の数値を基準とします。世界全体の時価総額順や出来高順ではありません。

  • 検索対象は口座に連動します。 接続済みの Alpaca 口座で取引できる暗号資産ペアはすべて検索とチャート表示に対応します。ステーブルコインやビットコイン建てのペア(BAT-USDC、ETH-BTC)も含まれます。口座で取り扱っていないコインは表示されません。SEC のティッカーファイルにないファンド(QQQ、TLT、VOO など多数)は、口座独自の資産リストから追加されます。このリストはバックグラウンドで1時間ごとに読み込まれるため、起動直後の最初の検索にはまだ表示されません。
  • 暗号資産の値上がり・値下がり銘柄には、ドル建てペアのみを表示します(ステーブルコイン建てやビットコイン建てのペアは、同じコインを別の通貨で価格表示したものです)。アクティブ銘柄は、Alpaca の取引所での売買金額(価格×コイン数)で順位付けされます。ステーブルコイン(USDT、USDC、USDG)は「すべて」には表示されますが、「アクティブ」「値上がり」「値下がり」には表示されません。最終取引の価格が古い場合、コインの価格にはリアルタイムの買い気配と売り気配の中間値を使います。24時間前の時点から遡って6時間以内に開始価格がない場合、24時間の変動率はダッシュで表示されます。出来高と流動性は Alpaca の取引所独自の値で、流動性は低いため、列にもその旨が記載されています。
  • 確認方法。 サインイン後、/api/crypto/tradable には口座で取引できるコインとペアが一覧表示され、/api/crypto/check では、すべてのペアについて検索、価格バー、値上がり・値下がり銘柄への掲載可否を確認できます。
  • コインチャートでは、リアルタイム表示の端点に実際の取引価格を使います(買い気配と売り気配の中間値は1秒間に何度も変動し、チャートが揺れるためです)。また、株式では週末分として3日分の価格バーが必要ですが、コインでは予備として1日分のみ取得します。

エージェントアクセス(MCP)

AlphaDesk は、Model Context Protocol を介して /api/agent/tools/mcp で、インターフェースに表示されるものと同じ記録を 読み取り専用ツール53個として公開します。すべての呼び出しは閲覧者としてその閲覧者のキーを使って実行され、トークンごとに1分あたり120リクエストに制限されます。

接続方法

  • Claude.ai, ChatGPT — サーバーアドレスを指定してカスタムコネクターを追加し、求められたらサインインします(PKCE を使用する OAuth 2.1。登録済みアプリごとに有効なグラントは 1 つです)。
  • Claude Code, Codex, Cursor, opencode — サイドバーの Account の横にある Agent access ページでトークンを作成します(作成時に一度だけ表示され、ハッシュ化して保存され、すぐに取り消せます)。このページには各クライアントの正確な設定方法と、以下のデータ API を使用する独自プログラム向けのタブがあります。

ツール

対象ツール
今日market_today、index_board、movers(株式、ETF、指数、暗号資産、通貨、オプション、債券)、sector_performance、sector_breadth
読者の銘柄my_board、quotes、baskets、find_symbol
1 社についてquote(板情報付き)、key_stats、company_profile(株式数とその根拠を含む)、fund_profile、analyst_view、financial_statements、filed_report、earnings_history、symbol_events、ownership、insider_activity、peers、compare_metrics、related_funds
値動きの理由と今後what_moved(大きく動いた日と、それぞれの日に先行したニュースや提出書類)、move_state(値動きが続いたか、弱まったか、反転したか)、priced_in(過去の決算発表への反応、発表前の値動き、アナリスト目標)、candidates(次の取引セッションに値動きが起こる日付付きの理由 — 金曜の夜と週末は月曜分を返します)、movers_in_context(独自のニュース、提出書類、値動きのパターンを伴う上昇銘柄または下落銘柄)、news_scan(銘柄ごとにグループ化したニュースの対象期間)、related_assets(保有するトークンなど、企業自身の提出書類で関連付けられた資産)、entry_facts(ポジションを取る前に確認するスプレッド、流動性、取引可能性、価格水準、リスク — 読み取り専用で、注文は一切発注されません)
価格price_history、price_chart
ニュースsymbol_news、news_search、news_story、news_scan
提出書類と決算説明会list_filings、filing_text、transcripts、transcript_text
カレンダーearnings_calendar(今後の予定と、days_back を指定した報告済みの決算)、economic_calendar、corporate_calendar
オプションoption_expirations、option_chain、options_flow。option_chain(on=…) は過去の日の終値時点のチェーンを読み取ります(ボードに掲載された銘柄について、2026-10-07 から毎回の取引終了後に保存。満期を指定しない場合は、その日に保存された満期を一覧表示します)
直近の出来事catalysts(提出書類、取引停止、政府の措置、ソーシャル投稿をまとめたテープ)、filing_feed、trading_halts、government_actions、social_posts
過去のセッション株式、ETF、暗号資産、オプションについては movers(session=…) を使用し、存在する日付は market_sessions(category=…) で確認します。まず記録済みの終値から読み取ります。企業イベントで説明できる大きな値動きには印が付きます。Alpaca のコーポレートアクションフィードによるスピンオフでは、保有者の値動き(親会社と新たに割り当てられた株式)を反映します。上場イベントはないものの、そのパターンが見られる値動き(出来高が平均の 10 倍で、次の終値が 15 パーセント以内)は possible_corporate_event としてフラグが付けられます
データの出所data_sources — 数値がライセンス提供元のベンダー由来か、スクレイピングしたページ由来かを示します

24 時間の価格情報。 通常の取引時間外の気配値と値上がり・値下がり銘柄の行には、その時点で最新の取引価格が使われます。ニューヨーク時間の午後 8 時までは時間外取引、その後午前 4 時までは夜間取引市場の価格(overnight と表示され、ソースは "overnight venue")、その後はプレマーケットの価格が使われます。変動幅は終了したセッションの終値を基準に計算され、取引時刻は as_of(気配値)または extended_at(値上がり・値下がり銘柄)に記録されます。出来高は終了したセッションのものが使われます。夜間は買い気配と売り気配が通常取引所の夕方の板情報のままなので、その時間帯のスプレッドは信頼できる指標ではありません。

市場価格を示さない気配値。 過去 10 日間に日足バーがない銘柄の気配値(上場廃止になった銘柄や長期の取引停止など)には stale: true が付きます。価格は最後の取引価格で、as_of はその取引の日付となり、変動幅はありません。企業が新しいティッカーで取引されている場合は、find_symbol で見つけられます。 対象となるアドレス。 ツールが応答するのは、サーバーが応答するように設定されている名前だけです。ALPHADESK_BASE_URL の公開アドレスと、ALPHADESK_ALLOWED_HOSTS に指定された名前(カンマ区切りのリスト)が対象です。このリストにないホストからのリクエストは拒否されます。Cloud Run では、1つのサービスを2つのアドレスで提供するため、2つ目のアドレスを ALPHADESK_ALLOWED_HOSTS に指定してください。

判定ではなく、数値を返します。 ツールが返すのは数値と事実に基づくフラグです。たとえば、値動きの大きさ、上昇分のうちどれだけが失われたか、記事がその銘柄について述べているのか、単に名前を挙げているだけなのかを示します。スコア、評価、推奨は返しません。各応答には読み取れなかった内容(unavailable、reliable)が記載されます。また、拒否する場合は理由も示されます。たとえば、キーがない、プランでそのデータが対象外になっている、接続先のベンダーにその企業のデータがない(小規模企業はアナリストのカバー対象になっていないことがよくあります)などです。利用者の価格プランは data_freshness に記載されます。無料プランでは、取引所1か所のみの出来高が示され、市場全体の出来高より少なくなります。

コインエージェント向けのツールリスト。 全ツールは53個あり、接続するたびに約66,000文字の説明が送信されます。リクエストヘッダー X-Agent-Toolset: crypto を送ると、コインに対応する17個のツールだけが一覧表示されます(約28,000文字)。一覧から省かれたツールも、名前を指定して呼び出せば応答します。コインは BTC-USD と表記します。BTC/USD と BTCUSD も使用できますが、BTC だけの場合は上場ファンドを意味します。価格または取引可能フラグを含む応答(quote、quotes、movers、price_history、price_chart、entry_facts)には、数値の取得元ブローカーを示す data_venue も含まれます(現在は alpaca。特定できない場合は unknown)。これにより、あるブローカーで取引するエージェントは、どの市場のデータを参照しているか確認できます。トークンでは1分あたり120回の呼び出しが可能です。変更するには ALPHADESK_AGENT_RATE_PER_MIN を設定してください。

エージェントの利用状況を確認する。 すべてのツール呼び出しが記録されます。ツール、引数、所要時間、結果(応答、空、不完全、失敗、およびその理由)が対象です。呼び出し元は、リクエストヘッダー X-Agent-Task(1つの質問に対するすべての呼び出しで共通のID)と X-Agent-Intent(質問を1行で記述)を追加できます。また、同じトークンを使って /mcp の代わりに /feedback を付けた同じアドレスへ、小さなJSONメッセージを送信すれば、結果が役に立ったかどうかを伝えられます。 {"tool": "what_moved", "useful": "yes" | "partly" | "no", "note": "…", "missing": "…"}。 これはエージェント用エンドポイントで唯一の書き込み操作で、利用状況ログ以外には何も書き込みません。レポートは python -m alphadesk.main agent-usage --days 30 で読み取れます。サインイン中であれば /api/agent/usage?days=30 でも確認できます。呼び出されていないツール、空の応答や失敗となったツール、処理に時間がかかるツール(所要時間、ツール、引数を含む、単一呼び出しの所要時間上位20件)、繰り返し発生する呼び出しの連鎖(存在するべきツール)、エージェントが不足していると報告した内容を確認できます。ログにトークン、キー、エージェントの推論や最終回答が記録されることはありません。

ツールを自分で試す。 scripts/agent_probe.py はエージェントと同じ方法でサインインし(トークンは ~/.alphadesk-agent-token に保存されます)、指定したシンボルに対して主なツールが返す内容を表示します。python scripts/agent_probe.py NVDA。別のサーバーを指定するには ALPHADESK_PROBE_URL を設定してください。このスクリプトは読み取りのみを行います。

このツールは、画面を見られないエージェント向けに作られています。find_symbol は、エージェントに推測させるのではなく、SECのリストから名前に対応するティッカーを特定します。price_chart は、各ポイントのRSIとMACDを含む、間引いた時系列を返します。filing_text と transcript_text は、ページ単位で文書全体を返します。news_search は、各記事について単語一致か意味一致かを示します。発行元や届出者のテキストを返すツールは、それが信頼できない入力であることを明示します。すべてのツールに readOnlyHint が設定されているため、クライアントは読み取りのたびに許可を求めずに呼び出せます。 通常の HTTP API と同じツールです。 エージェントではないプログラム(トレーディングボットやインポーターなど)向けに、ツールは /api/v1 配下の GET エンドポイントとしても提供されます。同じトークン、同じリーダーごとのキー、同じ制限を使用できます。さらに、エージェントツールでは間引かれる価格履歴のすべてのバーを、時刻でページ分割して取得できます。また、トークンの使用元として許可するアドレスのリストも任意で設定できます。読み取り専用で、ストリーミングではなくポーリング方式です。docs/rest-api.md をご覧ください。


アカウント、セキュリティ、プライバシー

  • サインイン:サーバーごとにユーザーは1人です。ログイン手段は、運用担当者が設定で指定するメールアドレスとパスワード(パスワードハッシュは ALPHADESK_LOGIN_EMAIL に設定)のみです。サインアップやサードパーティーによるサインインはありません(Google、GitHub、Microsoft によるサインインは 2026-10-03 に削除されました)。それ以外のアカウントはすべて拒否されます。
  • セッション:HMAC 署名付き Cookie、有効期間は14日、すべての場所でサインアウトできます。
  • ベンダーキー:データベース外に保管されたマスターキーを使い、AES-256-GCM でリーダーごとに暗号化して保管します。ログに記録されることはなく、入力後に再表示されることもありません。キーを持ち出す唯一の方法は、アカウントページにあるリーダー自身のキーをエクスポートからダウンロードすることです。これはパスフレーズなしのプレーンテキストファイルです(ファイルを持つ人は誰でもキーを持つことになるため、2026-10-02 に所有者の判断でこの方式になりました)。直近10分以内にサインインした本人のブラウザーセッションからのみ利用でき、1時間あたり5回までに制限され、内容ではなく件数が記録されます。エンドポイントにパスフレーズを送信した場合は、ファイルが暗号化されます(scrypt と AES-256-GCM を使用し、12文字以上が必要です)。
  • エージェントの認証情報:トークンと OAuth コードは SHA-256 ハッシュとして保管されます。OAuth クライアントは暗号化され、同意ページには署名が付与され、同一サイトからのみアクセスでき、フレーム内には表示できません。
  • 保持期間 — 初期設定の期間は、ALPHADESK_KEEP_DATA によってすべて延長されます:ストーリーは7日間、記事全文は72時間、ストーリーに紐づく意味ベクトルはストーリーと同じ期間、企業発表は報告後30日間、予測ログは120日間、リリースの傾向は3日間、プレスリリースのチェック結果は24時間、更新頻度の低いベンダー回答(履歴、ファンダメンタルズ、プロフィール、評価、カレンダー)の保存コピーは14日間です。これらのコピーにより、再起動後もデータをすぐに利用でき、ベンダーのレート制限を節約し、ベンダーが停止している場合にも回答できます。ライブデータ(気配値、値上がり・値下がり銘柄、テープ、日中チャートの末尾部分)は保存されません。 記録済みのセッション終値 — 完了した各セッションの市場全体の日足バー(圧縮時でセッションあたり約200 KB)は、保持期間の設定にかかわらず永久に保存されます(削除するには ALPHADESK_PURGE_ON_KEY_REMOVAL を設定するか、アカウントを削除する必要があります)。完了したセッションの内容は変更されず、この記録によって過去セッションの値上がり・値下がり銘柄を引き続き利用できます。 キーを削除しても、そのキーで取得したデータは保持されます。ただし、ALPHADESK_PURGE_ON_KEY_REMOVAL が設定されている場合を除きます。
  • 削除:リーダーは、メールアドレスを入力して確認することでアカウントを削除できます。そのアカウントに紐づくすべての行が、1つのトランザクションで削除されます。テーブル一覧はテストスイートによってスキーマと照合されます。
  • 分析、広告、トラッキングはありません。

アカウント、セッション、キーボールト、エージェント認証情報の設計については、docs/hosted-mode.md をご覧ください。


アーキテクチャ

                       ┌──────────────────────────────────────────────┐
  Browser (React SPA) ─┤  FastAPI · one process · one port            │
  Reader's agent (MCP) ┤                                              │
  Your own bot (HTTP) ─┤                                              │
                       │  /api/*  ── panels, composed per request     │
                       │  /api/agent/tools/mcp ── 53 read-only tools  │
                       │  /api/v1 ── the same tools, GET only, HTTP   │
                       │  OAuth 2.1 at the root (/authorize, /token…) │
                       │                                              │
                       │  Per-reader DataRouter ──► reader's vendors  │──► Alpaca · FMP · Polygon
                       │    (ordered per panel; 428 when none carry)  │    Finnhub · Alpha Vantage
                       │  Background:                                 │
                       │    news poll (5 min) + held news sockets     │──► each reader's feeds
                       │    EDGAR results sweep (15 min, weekdays)    │──► SEC EDGAR
                       │    daily earnings forecast capture           │──► Treasury
                       │    embedding worker (search by meaning)      │
                       └──────────────┬───────────────────────────────┘
                                      │
                         Postgres (Cloud SQL) in production
                         SQLite (WAL) in development

バックエンド — Python 3.11+。FastAPI を使用し、40 ワーカーのスレッドプールで同期ハンドラーを実行します。また、すべての上流接続に明示的なソケットの期限を設定します。プロバイダーは構造的な Protocol(NewsProvider、PriceProvider、TranscriptProvider)で、封印されたキーを使ってリーダーごとに構築され、エントリーポイントから検出できます。リクエストのリーダー ID はコンテキスト変数を通じて引き継がれますが、バックグラウンドスレッドには意図的に継承されません。ストアはローカルでは SQLite、本番環境では純粋な Python 製の pg8000 ドライバーを通じて Postgres と通信します。埋め込みモデルは sentence-transformers と PyTorch の CPU ビルドを使い、プロセス内で CPU 上で実行されます。

フロントエンド — TypeScript、React 19、Vite を使用し、Python プロセスが配信する静的ファイルとしてビルドされます。Tailwind CSS v4 がデザイントークン(ルートサイズ 14 ピクセル、4 ピクセルのスペーシンググリッド、6 つの文字スタイル、ライトとダーク)を適用します。TanStack Query はエンドポイントごとに 1 つのクエリを共有します。コンポーネントライブラリもチャートライブラリもありません。プリミティブは手作業で実装し、チャートには AlphaDesk 独自の SVG レンダラーを使用します。ローソク足は 4 つのパスにまとめられるため、ノード数はバーの数に左右されません。


リポジトリ構成

alphadesk/
  main.py            entry point: web server + background loops, and the CLI
  app/               FastAPI app, auth, admin, agent access (tokens, OAuth, MCP mount), the plain-HTTP data API (rest_data.py)
  providers/         the plugin seams, vendor implementations, catalogue, per-reader router
  ingest/            EDGAR, news polling, calendars, movers, recorded session closes, prices and indicator math
  desk/              screener window, filings, transcripts, market-today
  ledger/            store (SQLite / Postgres), database adapter, key vault and the sealed key export
  mcp_server.py      the agent tools
  semantic.py        search by meaning (self-hosted embedding model)
  cryptonews.py      a coin's news selection, and the feed's coin tags written as the board writes them
  cryptocheck.py     the check that every crypto pair is searchable, has bars and reaches the movers
  newsquery.py       the word-search rule
  config.py          settings, retention, curated baskets
  ui/                React 19 + Vite frontend (built into app/static)
  deploy/            deployment guide and the configuration template
docs/                data sources, providers, widgets, hosted mode
scripts/deploy.sh    build on Cloud Build and roll the Cloud Run service
tests/               pytest suite

開発

前提条件
  • Python 3.11+、Node と pnpm
  • 実際の連絡先情報を含む SEC User-Agent 文字列(SEC で必須です)
  • EDGAR と Treasury 以外で使用する、各ベンダーのキー
  • 埋め込みモデル用に約 1.5 GB のディスク容量。search extra を使用する場合のみ必要で、初回使用時にダウンロードされます(または ALPHADESK_SEMANTIC_SEARCH=off を設定してください)
セットアップと実行
pip install -r requirements.txt
cp alphadesk/deploy/env.example .env        # then edit: vault key, SEC user agent
python -m alphadesk.main dashboard          # API + built SPA on http://127.0.0.1:8000

Vault キーを生成します(ランダムな 32 バイトを Base64 でエンコード):

python -c "import os, base64; print(base64.b64encode(os.urandom(32)).decode())"

サインインなしでローカル作業を行う場合は、ALPHADESK_AUTH=off(ローカルアカウント 1 つ)を設定し、独自のベンダーキーを .env に入れて、そのアカウントに封印します:

python -m alphadesk.main keys import-env

ホットリロードを使うフロントエンド(/api を実行中のサーバーにプロキシします):

cd alphadesk/ui && pnpm install && pnpm dev
コマンドライン
コマンド用途
python -m alphadesk.main dashboardWeb サーバーとバックグラウンドループを起動します
python -m alphadesk.main keys import-env開発用:.env のベンダーキーをローカルアカウントに封印します
python -m alphadesk.main keys decrypt FILEAccount ページからエクスポートしたファイル内のキーを表示します(パスフレーズの入力を求められます)
python -m alphadesk.main keys import-file FILEエクスポートしたファイル内のキーを、このインスタンス独自の Vault キーを使ってローカルアカウントに封印します
python -m alphadesk.main earnings本日の EDGAR 決算発表を記録し、過去 3 日分を一覧表示します
python -m alphadesk.main backfill --hours 72EDGAR 決算発表のバックフィルを実行します
python -m alphadesk.main calendar-accuracy --days 30EDGAR の発表日を基準にカレンダープロバイダーの精度を評価します
python -m alphadesk.main mcp [--http]エージェントツールを単独で起動します(EDGAR のみ — リーダー ID なし)
python -m alphadesk.main init --email [email protected] [--like-cloud]初回セットアップ:Vault キー、SEC の連絡先、設定ファイルを用意します。--like-cloud を指定すると、サインインなしの設定ではなく、Postgres とログインを設定します(パスワードの入力を求められます)
python -m alphadesk.main hash-passwordALPHADESK_LOGIN_PASSWORD_HASH 用のパスワードハッシュを作成します(パスワードの入力を求められます)
拡張
  • プロバイダー:Protocol を実装し、ローカルモジュール(ALPHADESK_PLUGINS)または alphadesk.providers エントリーポイントを通じて登録します — docs/providers.md。
  • ダッシュボードタイル:ui/src/widgets/ にウィジェットを登録するか、外部の JSON バックエンド(ALPHADESK_WIDGET_BACKENDS)からタイルを配信します — docs/widgets.md。
  • このツールが自分に適しているか、また他のツールとどう異なるかについては、docs/comparison.md をご覧ください。独自のキーを使ってデータを実行する理由については、docs/your-own-keys.md をご覧ください。
  • 規約とチェックについては CONTRIBUTING.md、ルールと試行して取り消した内容については DECISIONS.md、脆弱性の報告については SECURITY.md をご覧ください。

設定リファレンス

環境変数(.env からも読み込まれます)。最初の2つだけが必須です。

変数用途
ALPHADESK_VAULT_KEY必須。 32 バイトの base64 値です。すべてのユーザーのキーを暗号化します。紛失すると、キーを読み取れなくなります
SEC_USER_AGENT必須。 SEC の要請に従い、連絡先情報を含む説明的な User-Agent を指定します
ALPHADESK_DATABASE_URLPostgres 接続文字列です。未設定の場合は、ALPHADESK_DATA 内の SQLite を使用します
ALPHADESK_DATASQLite のデータディレクトリ(デフォルトは ~/.alphadesk)
ALPHADESK_AUTHサインインなしのローカルアカウント1つで使用する場合は off
ALPHADESK_ACCESS_TOKENサインインを無効にした場合にブラウザーを保護する共有シークレット(16文字以上)です。アカウントでアクセスを制限する場合は無視されます
ALPHADESK_LOCAL_USER_EMAILサインインを無効にした場合に、新しいローカルアカウントではなく、ここで指定した既存アカウントとして動作します。アカウント制で始めたサーバーを個人用にしたい場合に使います。データは移動されません
ALPHADESK_OAUTH_REDIRECT_HOSTS任意。Claude.ai または ChatGPT のコネクター権限を受け取れるのは、カンマ区切りで指定したアドレスとそのサブドメインだけです。それ以外は同意ページで拒否されます。未設定の場合は、どのアドレスでも受け取れます。同意ページにはアドレスが先頭に表示され、認識できないアドレスには警告が表示されます
ALPHADESK_ALLOWED_HOSTSサーバーが応答する追加のホスト名です。サインインが無効でアクセストークンも設定されていない場合、サーバーが応答するのは localhost、127.0.0.1、[::1] のみです(ウェブページが自身の名前を再バインドしてサーバーにアクセスできないようにするためです)。アクセスに使う他のホスト名は、カンマ区切りで列挙してください。ALPHADESK_BASE_URL のホストも許可されます
ALPHADESK_AGENT_RATE_PER_MIN1つのエージェントトークンが1分間に実行できる呼び出し数(デフォルトは120)
ALPHADESK_AGENT_HEAVY_CONCURRENCY高負荷のエージェントツール(what_moved、related_assets、news_search、movers_in_context、candidates、earnings_calendar、entry_facts、options_flow、priced_in、analyst_view)を同時に実行できる数です。超過分は拒否されず、順番待ちになります(デフォルトは2)
ALPHADESK_KEEP_DATAforever または日数を指定します。レコード(記事とその本文、発表、予測ログ、スクレイピングしたページ)を、デフォルトの3~120日間ではなく、指定した期間保持します。また、ストア内のデータが少ない場合は、さらに過去までさかのぼります(キーを保存すると30日分が補充され、「古いデータを読み込む」では30日前まで遡り、銘柄ごとの問い合わせでは1年分を対象にします)。デフォルトの保持期間を延長する場合にのみ有効です。ベンダー独自のデータ保存規約は引き続き適用され、この設定によって変更されることはありません
NEWS_BACKFILL_DAYSキーの保存時に補充する日数(デフォルトは保持期間。ALPHADESK_KEEP_DATA が設定されている場合は30日、最大365日)
ALPHADESK_SKIP_KEY_CHECK1 にすると、ニュースキーをベンダーで事前に検証せずに保存します(オフライン)
ALPHADESK_PURGE_OTHER_ACCOUNTSメンテナンス用。count はログイン中のアカウント以外のアカウント数をログに記録します。delete は次回起動時に、それらのアカウントをすべて削除します(その後、この設定を解除してください)
ALPHADESK_PURGE_ON_KEY_REMOVAL1 にすると、キーの削除時にベンダーの保存データも削除します(ベンダー規約で削除が必要な、他の人も利用するインスタンス向けです)。デフォルトでは無効です
ALPHADESK_BASE_URL公開 URL です。OAuth リダイレクトとエージェントのホスト許可リストは、この値に依存します
ALPHADESK_SECRETセッション署名用シークレット
ALPHADESK_COOKIE_SECUREセキュア Cookie(HTTPS 経由の場合に有効にします)
ALPHADESK_SEMANTIC_SEARCHoff にすると、意味による検索を無効にします
ALPHADESK_EMBED_MODEL / ALPHADESK_SEMANTIC_THRESHOLD埋め込みモデル(デフォルトは Qwen/Qwen3-Embedding-0.6B)と類似度のしきい値(0.50)
ALPHADESK_PLUGINS / ALPHADESK_WIDGET_BACKENDSプロバイダープラグイン、外部タイルのバックエンド
NEWS_REFRESH_MINUTES / NEWS_LOOKBACK_HOURS / NEWS_KEEP_DAYSニュースのポーリング間隔(5分)、対象期間(72時間)、保持期間(7日)
CHART_MIN_COVERAGE / CHART_MAX_MEDIAN_GAP_MINインジケーターのカバレッジ判定
DASHBOARD_HOST / DASHBOARD_PORTウェブサーバーのバインド設定(Cloud Run は PORT を設定します)
MCP_HOST / MCP_PORT単独エージェントサーバーのバインド設定(デフォルトのポートは8010)

注釈付きの完全なテンプレートは alphadesk/deploy/env.example にあります。各設定のデフォルト値は alphadesk/config.py にあります。

本番環境へのデプロイと運用

リファレンスサービスは、Google Cloud Run(alphadesk、us-east4)上で Cloud SQL for Postgresとともに稼働します。

設定値理由
サイズ2 vCPU、4 GiB埋め込みモデルとウェブサーバーでインスタンスを共有するため
インスタンス数常に1(最小 = 最大 = 1)バックグラウンドループとライブソケットで書き込み元を1つにするため
CPU常時割り当て、スタートアップブーストバックグラウンドループはリクエスト間にも実行されるため
イメージPython 3.12 slim、PyTorch CPU ビルド、モデルを内包(約1.2 GB)起動時に何もダウンロードせず、モデルを数秒で読み込むため

デプロイ — 継続的インテグレーションで、すべてのプルリクエストに対してテスト、リント、ビルドを実行します。デプロイはメンテナーの作業です。mainへのマージ後:

scripts/deploy.sh

このスクリプトは、チェックアウトがクリーンなmainで、リモートと一致していない限り処理を拒否します。Cloud Buildでイメージをビルドし、新しいイメージのみでサービスを更新します(環境、データベースのマウント、スケーリングは変更しません)。また、稼働中のページで新しいビルドが配信されていることを確認します。フロントエンドのバンドルはalphadesk/app/staticにコミットされているため、イメージのビルドにNodeの手順は必要ありません。

運用

  • ログ:alphadeskサービスのCloud Loggingに記録されます。取り込みループ、プルーニング、埋め込みワーカーの進捗もここに記録されます。

  • リクエストが停滞する場合。 リクエストログから測定し、各バージョンの最初の5分間は対象外にしてください。デプロイのたびにコールドスタートが発生します。これまで確認された停滞は、15〜25分間の使用後、メモリ使用率が約35%から4 GiBの80%超まで上昇した際に発生しました。次の3つの対策で発生を防げました。ライブストリームはグループごとに1つのメッセージでサブスクライブします。バックグラウンドのパネル更新は一時停止を挟みながら一度に15パネルずつ実行します(最初の5分間のみ最大速度で実行)。期限切れの価格回答は挿入のたびにキャッシュから削除されます。メモリ使用率が再び約75%を超えた場合は、gcloud run services update alphadesk --region us-east4 --memory 8Giで引き上げてください(メモリのみ変更します)。

  • 現在の構成では常時稼働が必要です。このサイズでのサービスの概算費用は月額110〜120ドルです(Cloud SQLは別途)。コストを下げるには、ゼロまでスケールダウンするのではなく、より小さい埋め込みモデルを使用してください。

  • グレースフルシャットダウンには上限があり、リビジョンは数秒以内に停止します。

  • 意味検索のキルスイッチ。 サービスの速度が低下したり、リクエストを拒否したりする場合は、再ビルドせずに無効化できます。検索は単語のみを使う方式に切り替わります。

    gcloud run services update alphadesk --region us-east4 --update-env-vars ALPHADESK_SEMANTIC_SEARCH=off
    

    常に--update-env-vars(変数を1つ追加または変更)を使用し、--set-env-vars(すべての変数を置き換え)は使用しないでください。ワーカーの起動ログには、マシンが認識しているコア数とモデルが使用するスレッド数が記録されます(想定値:1)。

  • バックグラウンド処理は無効の状態でデプロイし、その後有効化して監視します。 2 vCPUのコンテナは実際より多いコア数を報告するため、多数のコアを搭載したノートPCでの動作から本番環境の動作を予測することはできません。報告されたコア数を基にスレッド数を設定した結果、稼働中のインスタンスのウェブサーバーがリソース不足になったことがあります。


テストと品質

チェックコマンド対象範囲
バックエンドテストpython -m pytest -q約720件のテスト:プロバイダー、カレンダー、EDGARの解析、ニュースルール、検索、エージェントツール、認証、アカウント、保持期間
フロントエンドテストcd alphadesk/ui && pnpm testsrc/lib/__tests__内の純粋なロジック(チャートのスケール、セッション、ニュースの照合、レイアウト)
型チェックとビルドcd alphadesk/ui && pnpm buildtsc -b(プロジェクト参照。ここではtsc --noEmitでは何もチェックされません)、続いてVite
リントpython -m ruff check alphadeskPython

既知の制限事項

  • ベンダーの利用規約。 マーケットデータはご自身のキーを使って取得し、各ベンダーとのご自身の契約に従います。データの利用方法はそれぞれの規約で定められています。プランによって条件は異なり、個人利用向けのものもあれば、他者への表示や保存を制限するものもあります。そのため、AlphaDesk をホスト環境や共有環境で使う前に、ご利用のプランをご確認ください。各ベンダーの規約へのリンクは docs/data-sources.md にあります。
  • 未検証の機能。 一部の有料プラン向け機能(Alpha Vantage、Finnhub premium、Polygon paid)はドキュメントをもとに構築されており、実際のキーを使った検証は行っていません。
  • 意味による検索では見出しのみを読み込みます(要約を対象にすると、読者 1 人あたり 1 日に数 CPU 時間かかるためです)。新規デプロイでは、古い記事を意味で照合できるようになる前に、保存済みの過去データを埋め込みます。
  • 法的事項のページは、弁護士による確認待ちのドラフトです。

経緯

AlphaDesk は機能を削ぎ落とすことで、情報を閲覧するためのターミナルになりました。スクリーナーのランキング、運営者が保有するデータや非公式な情報源、アプリ内エージェント、アプリ内言語モデルは、それぞれ測定可能な理由または明示された理由に基づき、順に削除されました。詳細は DECISIONS.md をご覧ください。現在残っている唯一のモデルは、検索に使用するセルフホスト型の埋め込みモデルです。


ライセンス

AlphaDesk はデュアルライセンスです。著作権 © 2026 Vignesh Murugan。

オープンソース — GNU AGPL-3.0(LICENSE)。AlphaDesk の使用、調査、変更、再配布が可能です。AGPL は強いコピーレフトライセンスであり、GPL に加えて 1 つの条項があります。変更を加えたコピーを実行し、それをネットワーク経由で他者に利用させる場合、同じライセンスのもと、そのバージョンの完全なソースコードを利用者に提供しなければなりません。変更の有無にかかわらず、コピーを配布する場合もソースコードを添付する必要があります。自分だけで実行する場合、義務は発生しません。

商用ライセンス。 AlphaDesk をプロプライエタリ製品に組み込みたい組織、変更を公開せずにホスト型サービスを運営したい組織、またはエンタープライズ向けの例外を必要とする組織には、商用ライセンスをご用意しています。[email protected] までお問い合わせください。マネージドクラウドは独自の利用規約に基づいて提供されます。加入者に AGPL 上の義務はありません。

コントリビューションはコントリビューターライセンス契約に基づいて受け付けています。これにより、プロジェクトは引き続き両方のライセンスを提供できます。コントリビューターは自身の著作物の著作権を保持します。

依存関係はすべて、制限の緩いライセンス(MIT、ISC、BSD、Apache 2.0)のもとで提供されており、コピーレフトの依存関係は追加できません。商用ライセンスの提供ができなくなるためです。Web インターフェースには、バンドルに実際に含まれるパッケージから各ビルドで生成されるサードパーティ通知が /third-party-notices.txt に含まれています(フォントは SIL Open Font License のもとで提供されています)。埋め込みモデルの Qwen3-Embedding-0.6B は Apache 2.0 です。

データはコードではありません。 コードのライセンスによって、マーケットデータに関する権利が与えられることはありません。ご自身のキーで取得したデータには、各ベンダーの規約が適用されます。docs/data-sources.md をご覧ください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。