three.ws Portfolio について
three.ws Portfolio は、AI エージェントが自身の取引状態にアクセスするための MCP サーバーです。ポートフォリオ価値、損益、ライブ残高、決済済みトレードの記録を扱えます。Solana の送金をローカルで署名して送信する書き込みツールも備えています。
主な機能
- 01所有するエージェントウォレット全体のポートフォリオ USD 価値
- 02保存されたスナップショットによる価値の推移
- 03市場データ付きの単一トークンの保有状況
- 04コイン別に絞り込める決済済みトレードと実現損益
- 05SOL および SPL トークン送金のローカル署名
活用シーン
- 01エージェント保有分の現在の USD 価値の確認
- 02決済済みトレードの実現損益の確認
- 03Solana アドレスの SOL と SPL の残高照会
MCP 対応
このサーバーはポートフォリオ、資産、トレードフィード、残高照会、送金のツールを MCP クライアントに公開します。送金ツールはユーザー自身の鍵でローカル署名し、メインネットのトランザクションを送信します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y @three-ws/portfolio-mcpTHREE_WS_BASEBase URL of the three.ws API that serves the portfolio + trades endpoints. Override only when self-hosting or targeting a preview deployment.THREE_WS_TIMEOUT_MSPer-request timeout in milliseconds for the live three.ws API reads.THREE_WS_SESSIONシークレットYour three.ws session token (the value of the `__Host-sid` cookie from a signed-in browser). Required for the account-scoped reads — get_portfolio_summary, get_portfolio_history, get_portfolio_asset — which return data for the agents YOU own. The public trade feed and on-chain balance reads do not need it. Treat like a password.SOLANA_RPC_URLSolana mainnet RPC endpoint used by get_wallet_balances and send_transfer. Defaults to https://api.mainnet-beta.solana.com — bring your own (Helius / Quicknode / Triton) for production traffic.SOLANA_SECRET_KEYシークレットBase58-encoded Solana secret key for the wallet that send_transfer signs from. REQUIRED for send_transfer (the only write tool); a per-call `secret` arg overrides it. Not needed for any read tool. Treat like cash.MAX_SOL_PER_TXPer-transaction spend cap in SOL for native SOL transfers via send_transfer. Bounds the blast radius of a leaked key or an injected argument.RECIPIENT_ALLOWLISTOptional comma-separated base58 pubkeys. When set, send_transfer refuses any recipient not in the list.REQUIRE_CONFIRMWhen on (default), send_transfer refuses until re-issued with confirm:true. Set 0/false to disable the gate.ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
6掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| snapshot | boolean | いいえ | true の場合、この合計値をポートフォリオスナップショットとしても保存します(get_portfolio_history で使用)。デフォルトは false です。 |
詳細
@three-ws/portfolio-mcp
MCP を通じて AI エージェント自身の取引状況を確認できます。ポートフォリオ価値、PnL、リアルタイム残高、公開取引フィードに加え、署名付きオンチェーン Solana 送金という実際の書き込み操作を 1 つ提供します。
AI エージェントが stdio 経由で自身の取引状況にプログラムからアクセスできる Model Context Protocol サーバーです。保有資産、価値の推移、リアルタイム市場データを含む単一トークンのポジション、クローズ済み取引と実現損益のプラットフォーム全体のフィード、任意のウォレットのリアルタイムオンチェーン残高を確認できます。さらに、SOL または任意の SPL トークンを署名付きで送金する実際の書き込み操作を 1 つ提供します。
読み取りではライブの three.ws API と Solana RPC に接続し、モックは一切使用しません。アカウントに紐づく読み取りでは、three.ws のセッションから解決される、お客様が所有するエージェントウォレットにアクセスします。唯一の書き込み操作である send_transfer は、お客様自身のキーを使用してローカルで署名し、メインネット上の実際の資金を移動します。
インストール
npm install @three-ws/portfolio-mcp
または npx で実行できます(インストール不要):
npx @three-ws/portfolio-mcp
クイックスタート
Claude Code の場合は 1 行です:
claude mcp add portfolio -- npx -y @three-ws/portfolio-mcp
Claude Desktop / Cursor の場合(claude_desktop_config.json または mcp.json):
{
"mcpServers": {
"portfolio": {
"command": "npx",
"args": ["-y", "@three-ws/portfolio-mcp"],
"env": {
"THREE_WS_SESSION": "<your __Host-sid cookie>",
"SOLANA_SECRET_KEY": "<base58 secret of the sending wallet>"
}
}
}
}
THREE_WS_SESSION はアカウントに紐づく読み取りにのみ必要です。SOLANA_SECRET_KEY は send_transfer にのみ必要です。取引フィードとオンチェーン残高の読み取りは、設定なしで利用できます。
MCP Inspector で機能を確認できます:
npx -y @modelcontextprotocol/inspector npx @three-ws/portfolio-mcp
ツール
| ツール | 種類 | 機能 |
|---|---|---|
get_portfolio_summary | 読み取り · セッション | お客様が所有するすべてのエージェントウォレットのリアルタイム保有資産と米ドル価値を、ウォレットごとの内訳とともに表示します。任意でスナップショットも取得できます。 |
get_portfolio_history | 読み取り · セッション | 保存済みスナップショットに基づき、時間の経過に伴うポートフォリオ全体の米ドル価値を表示します。パフォーマンスチャートを確認できます。 |
get_portfolio_asset | 読み取り · セッション | 1 つのトークンを詳しく確認します。保有しているウォレット、合計数量と米ドル価値に加え、リアルタイム市場データと価格履歴チャートを表示します。 |
get_trades_feed | 読み取り · パブリック | クローズ済みポジションと実現損益のプラットフォーム全体のフィードです。最新の決済が先に表示され、コインで絞り込めます。 |
get_wallet_balances | 読み取り · パブリック | 任意の Solana アドレスのリアルタイムオンチェーン SOL および SPL(Token-2022 を含む)残高を、RPC から直接取得します。 |
send_transfer | 書き込み · 破壊的操作 | お客様自身のウォレットから SOL または任意の SPL トークンを送金する、取り消し不可能な Solana メインネット上の実際の送金に署名し、ブロードキャストします。 |
すべての読み取りはライブ状態を参照します。残高、フィード、ブロードキャストの内容は呼び出しの間に変化するため、べき等なツールはありません。send_transfer のみが状態を変更します。
入力パラメーター
get_portfolio_summary — snapshot(bool、デフォルトは false — 履歴ポイントも保存します)。
get_portfolio_history — days(1~365、デフォルトは90)。
get_portfolio_asset:chain(solana | evm、必須)、id(native または base58 のミントアドレス/0x コントラクトアドレス、必須)、days(1~365、デフォルトは30)、chain_id(任意の EVM チェーン ID:8453 Base、1 Ethereum、42161 Arbitrum、10 Optimism、137 Polygon、56 BNB、およびプラットフォームがインデックスするその他のチェーン)。chain_id を省略すると、API はウォレットが保有する任意のチェーン上のコントラクトを価格付けします。デフォルトは Base です。同じアドレスが複数のチェーンに存在する場合は、chain_id を指定してください。
get_trades_feed — network(mainnet | devnet、デフォルトは mainnet)、window(1h | 6h | 24h | 7d | 30d | all、デフォルトは24h)、min_pnl_pct(デフォルトは10)、limit(1~80、デフォルトは40)、cursor(ページネーション用の ISO タイムスタンプ)、mint(1つのコインに絞り込むフィルター)。
get_wallet_balances — address(base58、必須)、include_tokens(bool、デフォルトは true)。
send_transfer — recipient(base58、必須)、amount(10進数文字列、必須)、mint(base58 の SPL ミントアドレス。SOL の場合は省略するか native を指定)、secret(base58。SOLANA_SECRET_KEY より優先)、priorityMicroLamports(0~50,000,000)、confirm(実行には true が必須)。
実現価値と現在価値
異なる質問には、それぞれ異なるツールを使います。
- 「今の資産価値はいくらですか?」 →
get_portfolio_summary/get_portfolio_asset— 保有資産を現在の USD 価格で評価します。 - 「決済済みの取引実績はどうですか?」 →
get_trades_feed— 決済済みポジションごとの実現 PnL(SOL でのエントリー/決済価格、利益率、倍率、保有時間)。
書き込みツール — send_transfer
send_transfer は、Solana mainnet 上で実際の取り消し不能なトランザクションをブロードキャストし、署名に使用するウォレットから資金を移動します。呼び出しごとの secret または SOLANA_SECRET_KEY を使ってローカルで署名するため、three.ws API が秘密鍵を保持することはありません。安全対策:
REQUIRE_CONFIRMが有効な場合(デフォルト)、confirm: trueが必須です。指定せずに最初の呼び出しを行うと、ブロードキャストではなく拒否が返されます。MAX_SOL_PER_TXは、ネイティブ SOL の送金上限を設定します(デフォルトは0.5 SOL)。RECIPIENT_ALLOWLISTを設定すると、送金先を既知の宛先に制限できます。mintは実行時の入力値です。$THREEのミントアドレスや、保有している任意の SPL トークンを渡せます。ミントアドレスはハードコードされていません。
SPL トークンの送金では、オンチェーンでミントの小数桁数を読み取り、残高を確認し、送金先の関連トークンアカウントが存在しない場合は自動で作成します。確認がタイムアウトすると、再試行を黙って行うのではなく、署名付きの tx_unconfirmed を返します。二重支払いを避けるため、再送信する前に Solscan を確認してください。
要件
- Node.js >= 20。
https://three.ws(または独自のTHREE_WS_BASE)と Solana RPC へのネットワークアクセス。
環境変数
| 変数 | 必須 | デフォルト |
|---|---|---|
THREE_WS_BASE | いいえ | https://three.ws |
THREE_WS_TIMEOUT_MS | いいえ | 20000 |
THREE_WS_SESSION | アカウント単位の読み取りに必要 | — |
SOLANA_RPC_URL | いいえ | https://api.mainnet-beta.solana.com |
SOLANA_SECRET_KEY | send_transfer に必要 | — |
MAX_SOL_PER_TX | いいえ | 0.5 |
RECIPIENT_ALLOWLIST | いいえ | —(有効な公開鍵ならすべて許可) |
REQUIRE_CONFIRM | いいえ | true |
THREE_WS_SESSION は、サインイン済みの three.ws ブラウザーセッションにある __Host-sid Cookie の値です。これと SOLANA_SECRET_KEY はパスワードと同様に取り扱ってください。
リンク
- ホームページ:https://three.ws
- 変更履歴:https://three.ws/changelog
- 課題:https://github.com/nirholas/three.ws/issues
- ライセンス:Apache-2.0。LICENSEを参照してください。
three.ws SDK スイートの一部です — 3D AI エージェント、オンチェーン ID、エージェント向け決済。
ウェブサイト · 変更履歴 · GitHub
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。