---
bezeichner: "io.github.nirholas/portfolio-mcp"
art: "mcp_server"
slug: "io-github-nirholas-portfolio-mcp"
paketkoordinate: "npm:@three-ws/portfolio-mcp"
status: "aktiv"
homepage: "https://three.ws"
erhebungsstand: "2026-10-11T01:17:01.851Z"
namensraum: "io.github.nirholas"
registerseite: "https://tracevero.com/mcp/io-github-nirholas-portfolio-mcp"
abgerufen_am: "2026-10-11"
zugangsdaten_erforderlich: true
ausfuehrungsort: "lokal"
dateisystem_pfadargument: false
quelloffen_einsehbar: true
einsatzgebiet: "finanzen"
roh_beschreibung: "An agent's trading state — portfolio value, PnL, live balances, trade feed, and signed transfers."
version: "0.1.2"
roh_umgebungsvariablen: "THREE_WS_BASE, THREE_WS_TIMEOUT_MS, THREE_WS_SESSION, SOLANA_RPC_URL, SOLANA_SECRET_KEY, MAX_SOL_PER_TX, RECIPIENT_ALLOWLIST, REQUIRE_CONFIRM"
roh_geheime_pflichtvariablen: "SOLANA_SECRET_KEY"
roh_transportarten: "stdio"
roh_pfadargumente: ""
roh_repository_url: "https://github.com/nirholas/three.ws"
roh_paketquellen: "npm"
roh_geheime_pflichtkopfzeilen: ""
roh_pfad_umgebungsvariablen: ""
roh_remote_adressen: ""
roh_remote_hosts: ""
roh_statusmeldung: ""
roh_veroeffentlicht_am: "2026-10-10"
roh_aktualisiert_am: "2026-10-10"
roh_schemafassung: "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json"
roh_bereitstellungsform: "paket"
roh_repository_quelle: "github"
roh_repository_unterordner: "packages/portfolio-mcp"
roh_paketbezeichner: "@three-ws/portfolio-mcp"
roh_paketversionen: "0.1.2"
roh_laufzeithinweise: "npx"
roh_umgebungsformate: "boolean, number, string"
roh_umgebungsbeschreibungen: "MAX_SOL_PER_TX=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=Optional comma-separated base58 pubkeys. When set, send_transfer refuses any recipient not in the list. · REQUIRE_CONFIRM=When on (default), send_transfer refuses until re-issued with confirm:true. Set 0/false to disable the gate. · SOLANA_RPC_URL=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=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. · THREE_WS_BASE=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_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. · THREE_WS_TIMEOUT_MS=Per-request timeout in milliseconds for the live three.ws API reads."
roh_symbolformate: "image/svg+xml"
roh_verbindungswege: "{\"packages\":[{\"registryType\":\"npm\",\"identifier\":\"@three-ws/portfolio-mcp\",\"version\":\"0.1.2\",\"runtimeHint\":\"npx\",\"transport\":\"stdio\",\"environment\":[{\"name\":\"THREE_WS_BASE\",\"description\":\"Base URL of the three.ws API that serves the portfolio + trades endpoints. Override only when self-hosting or targeting a preview deployment.\",\"format\":\"string\",\"required\":false,\"secret\":false},{\"name\":\"THREE_WS_TIMEOUT_MS\",\"description\":\"Per-request timeout in milliseconds for the live three.ws API reads.\",\"format\":\"number\",\"required\":false,\"secret\":false},{\"name\":\"THREE_WS_SESSION\",\"description\":\"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.\",\"format\":\"string\",\"required\":false,\"secret\":true},{\"name\":\"SOLANA_RPC_URL\",\"description\":\"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.\",\"format\":\"string\",\"required\":false,\"secret\":false},{\"name\":\"SOLANA_SECRET_KEY\",\"description\":\"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.\",\"format\":\"string\",\"required\":true,\"secret\":true},{\"name\":\"MAX_SOL_PER_TX\",\"description\":\"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.\",\"format\":\"number\",\"required\":false,\"secret\":false},{\"name\":\"RECIPIENT_ALLOWLIST\",\"description\":\"Optional comma-separated base58 pubkeys. When set, send_transfer refuses any recipient not in the list.\",\"format\":\"string\",\"required\":false,\"secret\":false},{\"name\":\"REQUIRE_CONFIRM\",\"description\":\"When on (default), send_transfer refuses until re-issued with confirm:true. Set 0/false to disable the gate.\",\"format\":\"boolean\",\"required\":false,\"secret\":false}],\"additional_arguments_declared\":false}],\"remotes\":[]}"
---

# three.ws Portfolio

## Measured values

| Property | Value | Source | Collected on | Level of trust | Raw declaration |
| --- | --- | --- | --- | --- | --- |
| Required secrets declared | true | MCP-Register | 2026-08-06T13:57:41.838Z | abgeleitet | roh_geheime_pflichtvariablen: SOLANA_SECRET_KEY; roh_geheime_pflichtkopfzeilen: |
| Execution location | lokal | MCP-Register | 2026-08-06T13:57:41.838Z | abgeleitet | roh_transportarten: stdio |
| Path argument present | false | MCP-Register | 2026-08-06T13:57:41.838Z | abgeleitet | roh_pfadargumente: ; roh_pfad_umgebungsvariablen: |
| Repository URL listed | true | MCP-Register | 2026-08-06T13:57:41.838Z | abgeleitet | roh_repository_url: https://github.com/nirholas/three.ws |
| Field of use, derived from the vendor description | finanzen | MCP-Register | 2026-08-26T16:45:01.514Z | abgeleitet | roh_beschreibung: An agent's trading state — portfolio value, PnL, live balances, trade feed, and signed transfers. |
| Description (raw) | An agent's trading state — portfolio value, PnL, live balances, trade feed, and signed transfers. | MCP-Register | 2026-08-26T16:45:01.514Z | selbstauskunft |  |
| Declared version | 0.1.2 | MCP-Register | 2026-10-11T01:17:01.851Z | selbstauskunft |  |
| Environment variables (raw) | THREE_WS_BASE, THREE_WS_TIMEOUT_MS, THREE_WS_SESSION, SOLANA_RPC_URL, SOLANA_SECRET_KEY, MAX_SOL_PER_TX, RECIPIENT_ALLOWLIST, REQUIRE_CONFIRM | MCP-Register | 2026-08-06T13:57:41.838Z | selbstauskunft |  |
| Required secret variables (raw) | SOLANA_SECRET_KEY | MCP-Register | 2026-08-06T13:57:41.838Z | selbstauskunft |  |
| Transports (raw) | stdio | MCP-Register | 2026-08-06T13:57:41.838Z | selbstauskunft |  |
| Path arguments (raw) |  | MCP-Register | 2026-08-06T13:57:41.838Z | selbstauskunft |  |
| Repository (raw) | https://github.com/nirholas/three.ws | MCP-Register | 2026-08-06T13:57:41.838Z | selbstauskunft |  |
| Package registries (raw) | npm | MCP-Register | 2026-08-06T13:57:41.838Z | selbstauskunft |  |
| Required secret headers (raw) |  | MCP-Register | 2026-08-16T01:17:01.420Z | selbstauskunft |  |
| Path environment variables (raw) |  | MCP-Register | 2026-08-16T01:17:01.420Z | selbstauskunft |  |
| Remote URLs (raw) |  | MCP-Register | 2026-08-16T01:17:01.420Z | selbstauskunft |  |
| Remote hosts (raw) |  | MCP-Register | 2026-08-16T01:17:01.420Z | selbstauskunft |  |
| Registry status message (raw) |  | MCP-Register | 2026-08-16T01:17:01.420Z | selbstauskunft |  |
| First listed in the registry (raw) | 2026-10-10 | MCP-Register | 2026-10-11T01:17:01.851Z | selbstauskunft |  |
| Last changed in the registry (raw) | 2026-10-10 | MCP-Register | 2026-10-11T01:17:01.851Z | selbstauskunft |  |
| Schema version of the raw record (raw) | https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json | MCP-Register | 2026-08-16T01:17:01.420Z | selbstauskunft |  |
| Delivery form (raw) | paket | MCP-Register | 2026-08-16T01:17:01.420Z | selbstauskunft |  |
| Repository platform (raw) | github | MCP-Register | 2026-08-16T01:17:01.420Z | selbstauskunft |  |
| Repository subfolder (raw) | packages/portfolio-mcp | MCP-Register | 2026-08-16T01:17:01.420Z | selbstauskunft |  |
| Package identifiers (raw) | @three-ws/portfolio-mcp | MCP-Register | 2026-08-16T01:17:01.420Z | selbstauskunft |  |
| Package versions (raw) | 0.1.2 | MCP-Register | 2026-10-11T01:17:01.851Z | selbstauskunft |  |
| Runtime hints (raw) | npx | MCP-Register | 2026-08-16T01:17:01.420Z | selbstauskunft |  |
| Environment variable formats (raw) | boolean, number, string | MCP-Register | 2026-08-16T01:17:01.420Z | selbstauskunft |  |
| Environment variable descriptions (raw) | MAX_SOL_PER_TX=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=Optional comma-separated base58 pubkeys. When set, send_transfer refuses any recipient not in the list. · REQUIRE_CONFIRM=When on (default), send_transfer refuses until re-issued with confirm:true. Set 0/false to disable the gate. · SOLANA_RPC_URL=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=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. · THREE_WS_BASE=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_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. · THREE_WS_TIMEOUT_MS=Per-request timeout in milliseconds for the live three.ws API reads. | MCP-Register | 2026-08-20T01:17:01.620Z | selbstauskunft |  |
| Icon formats (raw) | image/svg+xml | MCP-Register | 2026-08-16T01:17:01.420Z | selbstauskunft |  |
| Connection paths (source structure) | {"packages":[{"registryType":"npm","identifier":"@three-ws/portfolio-mcp","version":"0.1.2","runtimeHint":"npx","transport":"stdio","environment":[{"name":"THREE_WS_BASE","description":"Base URL of the three.ws API that serves the portfolio + trades endpoints. Override only when self-hosting or targeting a preview deployment.","format":"string","required":false,"secret":false},{"name":"THREE_WS_TIMEOUT_MS","description":"Per-request timeout in milliseconds for the live three.ws API reads.","format":"number","required":false,"secret":false},{"name":"THREE_WS_SESSION","description":"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.","format":"string","required":false,"secret":true},{"name":"SOLANA_RPC_URL","description":"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.","format":"string","required":false,"secret":false},{"name":"SOLANA_SECRET_KEY","description":"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.","format":"string","required":true,"secret":true},{"name":"MAX_SOL_PER_TX","description":"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.","format":"number","required":false,"secret":false},{"name":"RECIPIENT_ALLOWLIST","description":"Optional comma-separated base58 pubkeys. When set, send_transfer refuses any recipient not in the list.","format":"string","required":false,"secret":false},{"name":"REQUIRE_CONFIRM","description":"When on (default), send_transfer refuses until re-issued with confirm:true. Set 0/false to disable the gate.","format":"boolean","required":false,"secret":false}],"additional_arguments_declared":false}],"remotes":[]} | MCP-Register | 2026-10-11T01:17:01.851Z | selbstauskunft |  |

## Links

- Namespace: [[namensraum/io-github-nirholas|io.github.nirholas]]

---

- Registry page: <https://tracevero.com/mcp/io-github-nirholas-portfolio-mcp>
- Retrieved on: 2026-10-11
