原型 · 预览版:收录官方注册中心里的全部服务器,每 30 分钟同步一次。评价和账户功能将在后续阶段推出。
PopNx MCP为使用 AI 的人准备的 MCP 服务器 · 用大白话讲清楚

three.ws Portfolio

作者:nirholas版本 0.1.2i★ –i在你的电脑上运行
注册名称io.github.nirholas/portfolio-mcp

安装

概览

作者提供的说明(英文原文)

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

PopNx MCP 的三大支柱

这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。

它能帮你做什么

我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。

  • 连接方式: 在你的电脑上运行
  • 传输方式: stdio
  • 分类: 会计、财务与税务
  • 你需要填写:THREE_WS_SESSION, SOLANA_SECRET_KEY

安装

选择你使用的 AI 应用,然后复制设置。

安装之前

  • 基础检查:1 项中通过 1 项
  • 在你的电脑上运行,拥有你的用户账户的权限(文件、网络、应用)。
  • 需要你自己填写: THREE_WS_BASE, THREE_WS_TIMEOUT_MS, THREE_WS_SESSION, SOLANA_RPC_URL, SOLANA_SECRET_KEY, MAX_SOL_PER_TX, RECIPIENT_ALLOWLIST, REQUIRE_CONFIRM

标为机密的值是你账户的钥匙。千万不要分享给别人,也不要粘贴到聊天里。

你需要

  • npm已安装 Node.js(用于 npx 命令)

你用的是哪个应用?

在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。

打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json

{
  "mcpServers": {
    "portfolio": {
      "command": "npx",
      "args": [
        "-y",
        "@three-ws/portfolio-mcp"
      ],
      "env": {
        "THREE_WS_BASE": "your-value",
        "THREE_WS_TIMEOUT_MS": "your-value",
        "THREE_WS_SESSION": "your-value",
        "SOLANA_RPC_URL": "your-value",
        "SOLANA_SECRET_KEY": "your-value",
        "MAX_SOL_PER_TX": "your-value",
        "RECIPIENT_ALLOWLIST": "your-value",
        "REQUIRE_CONFIRM": "your-value"
      }
    }
  }
}

在终端中运行这条命令

claude mcp add portfolio --env THREE_WS_BASE=your-value --env THREE_WS_TIMEOUT_MS=your-value --env THREE_WS_SESSION=your-value --env SOLANA_RPC_URL=your-value --env SOLANA_SECRET_KEY=your-value --env MAX_SOL_PER_TX=your-value --env RECIPIENT_ALLOWLIST=your-value --env REQUIRE_CONFIRM=your-value -- npx -y @three-ws/portfolio-mcp

运行前请先填写空着的值。

在 Cursor 中打开

或者自己复制设置

粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json

{
  "mcpServers": {
    "portfolio": {
      "command": "npx",
      "args": [
        "-y",
        "@three-ws/portfolio-mcp"
      ],
      "env": {
        "THREE_WS_BASE": "your-value",
        "THREE_WS_TIMEOUT_MS": "your-value",
        "THREE_WS_SESSION": "your-value",
        "SOLANA_RPC_URL": "your-value",
        "SOLANA_SECRET_KEY": "your-value",
        "MAX_SOL_PER_TX": "your-value",
        "RECIPIENT_ALLOWLIST": "your-value",
        "REQUIRE_CONFIRM": "your-value"
      }
    }
  }
}

浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。

在 VS Code 中打开

或者自己复制设置

粘贴到项目中的 .vscode/mcp.json

{
  "servers": {
    "portfolio": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@three-ws/portfolio-mcp"
      ],
      "env": {
        "THREE_WS_BASE": "your-value",
        "THREE_WS_TIMEOUT_MS": "your-value",
        "THREE_WS_SESSION": "your-value",
        "SOLANA_RPC_URL": "your-value",
        "SOLANA_SECRET_KEY": "your-value",
        "MAX_SOL_PER_TX": "your-value",
        "RECIPIENT_ALLOWLIST": "your-value",
        "REQUIRE_CONFIRM": "your-value"
      }
    }
  }
}

浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。

这个服务器在你的电脑上运行,而 ChatGPT 只能连接互联网上的服务器。请选择其他应用。

你的选择通过 Cookie 保存在这台设备上,无需账户。

需要你填写的值

  • THREE_WS_BASE env
    Base 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_MS env
    Per-request timeout in milliseconds for the live three.ws API reads.
  • THREE_WS_SESSION 机密 env
    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…
  • SOLANA_RPC_URL env
    Solana 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 机密 必填 env
    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. Tr…
  • MAX_SOL_PER_TX env
    Per-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_ALLOWLIST env
    Optional comma-separated base58 pubkeys. When set, send_transfer refuses any recipient not in the list.
  • REQUIRE_CONFIRM env
    When on (default), send_transfer refuses until re-issued with confirm:true. Set 0/false to disable the gate.

这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。

它能做什么

它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。

基础检查i

我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月7日

  • ✓ 通过

    作者与仓库一致

    注册名称已通过 GitHub 账户 nirholas 验证,该账户拥有此仓库

  • … 尚未检查

    仍在维护

    我们还没有从 GitHub 读取这个仓库

  • … 尚未检查

    有许可证

    我们还没有从 GitHub 读取这个仓库

  • – 不适用

    端点有响应

    它在你的电脑上运行,没有互联网端点

  • – 不适用

    使用 OAuth 登录

    在你的电脑上运行,改用本地设置

  • … 尚未检查

    工具描述中没有隐藏指令

    它在你的电脑上运行;我们只能读取互联网端点的工具列表

与“会计、财务与税务”中的其他服务器比较i

  • 星标数多于此分类中其他 1734 个服务器的 0%
  • 发布到注册中心的时间比此分类中其他 1734 个服务器的 59% 更新
  • 基础检查结果等于或优于此分类中其他 1734 个服务器的 100%

与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。

常见问题

three.ws Portfolio 安全吗?

它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。

它需要哪些密钥或代码?

你需要填写:THREE_WS_SESSION, SOLANA_SECRET_KEY

它在我的电脑上运行还是在云端?

它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。

它还在维护吗?

GitHub 仓库最后更新于–,最新版本(0.1.2)于27天前进入注册中心。

哪些应用可以使用它?

支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Node.js。

有什么可以替代它?

同一分类中有:Finance Toolkit, SolidInvoice, Korea Tax Calculator

替代选择

同一分类中其他作者的服务器,按星标数排序。

如何看卡片:★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i

Finance Toolkit

作者:JerBouma

500+ transparent financial methods calculated from raw statements, not third-party endpoints.

电脑或云端★ 5,496MIT今天更新
安装

SolidInvoice

作者:SolidInvoice

Create and send invoices and quotes, manage clients, and track payments in SolidInvoice.

在云端运行★ 981MIT8天前更新
安装

Korea Tax Calculator

作者:UpstageAI

Korean tax calculation and tax-audit judgment MCP: 96 tools with statutory citations.

在你的电脑上运行★ 97MIT昨天更新
安装

作者的 README

打开 README

按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。

@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.


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

npm install @three-ws/portfolio-mcp

Or run with npx (no install):

npx @three-ws/portfolio-mcp

Quick start

Claude Code, one line:

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

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

{

"mcpServers": { "portfolio": { "command": "npx", "args": ["-y", "@three-ws/portfolio-mcp"], "env": { "THREE_WS_SESSION": " ", "SOLANA_SECRET_KEY": " " } } } }

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:

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

  • Homepage: https://three.ws
  • Changelog: https://three.ws/changelog
  • Issues: https://github.com/nirholas/three.ws/issues
  • License: Apache-2.0. See LICENSE.

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

Website · Changelog · GitHub

问 PopNx