three.ws Portfolio

io.github.nirholas由 GitHub 帳號 nirholas 發布v0.1.2更新於 Nov 1, 2026

An agent's trading state — portfolio value, PnL, live balances, trade feed, and signed transfers.

發布方自己的服務:PortfolioFit

已驗證STDIO僅桌面資料庫金融

概覽

AI 產生的概覽

本機 MCP 伺服器,讓助理讀取 three.ws 投資組合、損益、成交動態與 Solana 餘額,並簽署送出真實的 SOL 或 SPL 轉帳。

可以做什麼
  • 讀取所擁有代理錢包的持倉與美元總值,可選擇建立歷史快照並依錢包拆分
  • 檢視組合價值隨時間的變化,並深入查看單一代幣的持倉、即時行情與價格歷史
  • 瀏覽平台整體的已平倉交易與已實現損益,可依幣種、時間範圍與最低報酬率篩選
  • 查詢任一 Solana 地址的鏈上 SOL 與 SPL 代幣即時餘額
  • 從設定的錢包簽署並廣播 Solana 主網的 SOL 或 SPL 代幣轉帳
適用情境
適合需要追蹤助理自身在 three.ws 上交易狀態(目前價值、歷史績效、已平倉結果)或查詢 Solana 錢包餘額的情境。只有在你確實希望助理能轉出真實資金時才需要加入,因為那是唯一的寫入工具。
執行需求
需要 Node.js 20 以上版本,可透過 npx 或 npm 安裝執行。需要連線至 three.ws API 與 Solana RPC 的網路。帳戶層級讀取需要 THREE_WS_SESSION(即 __Host-sid cookie 的值);SOLANA_SECRET_KEY 僅 send_transfer 需要。選用設定:SOLANA_RPC_URL、THREE_WS_BASE、THREE_WS_TIMEOUT_MS、MAX_SOL_PER_TX、RECIPIENT_ALLOWLIST、REQUIRE_CONFIRM。
安裝前請注意
send_transfer 會在 Solana 主網轉移真實且不可撤銷的資金,是唯一的寫入工具;SOLANA_SECRET_KEY 外洩或參數被注入都可能動用錢包資金。建議保持 REQUIRE_CONFIRM 開啟、設定 MAX_SOL_PER_TX 與 RECIPIENT_ALLOWLIST,並把 SOLANA_SECRET_KEY 與 THREE_WS_SESSION 當作密碼保管。遇到 tx_unconfirmed 逾時,先核對簽章再重送,以免重複付款。讀取操作會把錢包與工作階段資料送往 three.ws API。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 three.ws Portfolio,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

[three.ws]

@three-ws/portfolio-mcp

An AI agent's own trading state over MCP — portfolio value, PnL, live balances, the public trade feed, and one real write: a signed on-chain Solana transfer.

[npm] [license] [node] [MCP Registry] [three.ws]


A Model Context Protocol server that gives an AI agent programmatic access to its own trading state over stdio: what it holds, how that value moves over time, a single token's position with live market data, the platform-wide feed of closed trades and their realized PnL, live on-chain balances for any wallet — and one real write, a signed Solana transfer of SOL or any SPL token.

Reads hit the live three.ws API and Solana RPC — nothing is mocked. The account-scoped reads run against the agent wallets you own (resolved from your three.ws session). The one write, send_transfer, signs locally with your own key and moves real funds on mainnet.

Install

bash
npm install @three-ws/portfolio-mcp

Or run with npx (no install):

bash
npx @three-ws/portfolio-mcp

Quick start

Claude Code, one line:

bash
claude mcp add portfolio -- npx -y @three-ws/portfolio-mcp

Claude Desktop / Cursor (claude_desktop_config.json or mcp.json):

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 is only needed for the account-scoped reads; SOLANA_SECRET_KEY is only needed for send_transfer. The trade feed and on-chain balance reads work with no configuration at all.

Inspect the surface with the MCP Inspector:

bash
npx -y @modelcontextprotocol/inspector npx @three-ws/portfolio-mcp

Tools

ToolTypeWhat it does
get_portfolio_summaryread · sessionLive holdings + USD value across every agent wallet you own, with a per-wallet breakdown. Optional snapshot.
get_portfolio_historyread · sessionYour total portfolio USD value over time, from stored snapshots — the performance chart.
get_portfolio_assetread · sessionOne token deep-dive: which wallets hold it, your total amount/USD, plus live market data and a price-history chart.
get_trades_feedread · publicThe platform-wide feed of closed positions and their realized PnL — newest exit first, filterable by coin.
get_wallet_balancesread · publicLive on-chain SOL + SPL (incl. Token-2022) balances for any Solana address, straight from the RPC.
send_transferwrite · destructiveSign and broadcast a real, irreversible Solana mainnet transfer of SOL or any SPL token from your own wallet.

Everything reads live state — balances, feeds, and broadcasts all move between calls — so no tool is idempotent. send_transfer is the only tool that mutates anything.

Input parameters

get_portfolio_summary — snapshot (bool, default false — also persist a history point).

get_portfolio_history — days (1–365, default 90).

get_portfolio_asset: chain (solana | evm, required), id (native or the base58 mint / 0x contract, required), days (1 to 365, default 30), chain_id (optional EVM chain id: 8453 Base, 1 Ethereum, 42161 Arbitrum, 10 Optimism, 137 Polygon, 56 BNB, and the other chains the platform indexes). Leave chain_id off and the API prices the contract on whatever chain your wallets hold it on, defaulting to Base; set it when the same address exists on more than one chain.

get_trades_feed — network (mainnet | devnet, default mainnet), window (1h | 6h | 24h | 7d | 30d | all, default 24h), min_pnl_pct (default 10), limit (1–80, default 40), cursor (ISO timestamp for pagination), mint (filter to one coin).

get_wallet_balances — address (base58, required), include_tokens (bool, default true).

send_transfer — recipient (base58, required), amount (decimal string, required), mint (base58 SPL mint; omit / native for SOL), secret (base58, overrides SOLANA_SECRET_KEY), priorityMicroLamports (0–50,000,000), confirm (must be true to execute).

Realized vs. live value

Two different questions, two different tools:

  • "What am I worth right now?" → get_portfolio_summary / get_portfolio_asset — live holdings priced in USD.
  • "How have my closed trades done?" → get_trades_feed — realized PnL per closed position (entry/exit in SOL, profit %, multiple, hold time).

The write tool — send_transfer

send_transfer broadcasts a real, irreversible transaction on Solana mainnet and moves funds out of the signing wallet. It signs locally with the per-call secret or SOLANA_SECRET_KEY — the three.ws API never holds your key. Guardrails:

  • confirm: true required while REQUIRE_CONFIRM is on (the default) — the first call without it returns a refusal, not a broadcast.
  • MAX_SOL_PER_TX caps native SOL sends (default 0.5 SOL).
  • RECIPIENT_ALLOWLIST, when set, restricts the destination to a known set.
  • The mint is runtime input — pass the $THREE mint or any SPL token you hold. No mint is hardcoded.

For an SPL transfer it reads the mint's decimals on-chain, verifies your balance, and auto-creates the recipient's associated token account when missing. On a confirmation timeout it returns tx_unconfirmed with the signature rather than silently retrying — check Solscan before resending to avoid a double-spend.

Requirements

  • Node.js >= 20.
  • Network access to https://three.ws (or your own THREE_WS_BASE) and a Solana RPC.

Environment variables

VariableRequiredDefault
THREE_WS_BASEnohttps://three.ws
THREE_WS_TIMEOUT_MSno20000
THREE_WS_SESSIONfor account-scoped reads—
SOLANA_RPC_URLnohttps://api.mainnet-beta.solana.com
SOLANA_SECRET_KEYfor send_transfer—
MAX_SOL_PER_TXno0.5
RECIPIENT_ALLOWLISTno— (any valid pubkey allowed)
REQUIRE_CONFIRMnotrue

THREE_WS_SESSION is the value of the __Host-sid cookie from a signed-in three.ws browser session. Treat it — and SOLANA_SECRET_KEY — like a password.

Links


Part of the three.ws SDK suite — 3D AI agents, on-chain identity, and agent payments.
Website · Changelog · GitHub

來源:packages/portfolio-mcp/README.md,提交 c8f2cde

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

2
  1. v0.1.2最新Oct 10, 2026
  2. v0.1.1Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分

其他 Portfolio 整合