Deterministic-first portfolio analyzer — holdings, performance, Sharpe + Sortino, FRED yield curves, bond duration, sector breakdowns, scenario rebalancing. Free by default (Yahoo Finance), no API key required; optional Massive key for futures/premium data.
$npx -y skills add argonautsystems/investorclaw --skill investorclawInstalls into the current project.
Run `npx skills use "https://github.com/argonautsystems/investorclaw" --skill "argonautsystems/investorclaw"` and follow the generated skill instructions now. Read its complete output, redirecting it to a temporary file first if necessary. Resolve relative paths from the supporting-files directory it provides.
Use the skills in "https://github.com/argonautsystems/investorclaw" that are relevant to the current task. Run `npx skills add "https://github.com/argonautsystems/investorclaw"` and select the relevant skills, then follow their instructions.
| 1 | # InvestorClaw |
| 2 | |
| 3 | [](https://skills.sh/argonautsystems/InvestorClaw) |
| 4 | |
| 5 | <p align="center"> |
| 6 | <picture> |
| 7 | <source srcset="assets/investorclaw-logo.webp" type="image/webp"> |
| 8 | <img src="assets/investorclaw-logo.jpg" alt="InvestorClaw" width="200"> |
| 9 | </picture> |
| 10 | </p> |
| 11 | |
| 12 | <p align="center"> |
| 13 | Portfolio analysis and market intelligence | v4.5.0 | Apache 2.0 + MIT-0 | Educational Use Only |
| 14 | </p> |
| 15 | |
| 16 | InvestorClaw is a self-contained containerized software package that any MCP-capable agent calls into. It is not a markdown skill. It is not a prompt injection. It is the adapter and distribution layer for a real portfolio engine, packaged for agent runtimes that know how to speak MCP. |
| 17 | |
| 18 | The deterministic engine lives in [`ic-engine`](https://github.com/argonautsystems/ic-engine). Foundation primitives live in [`clio`](https://github.com/argonautsystems/clio). The runtime container lives in [`mnemos-ic-runtime`](https://github.com/ncz-os/mnemos-ic-runtime). |
| 19 | |
| 20 | **New to InvestorClaw?** The fastest path is the prebuilt container — see **[Getting Started](docs/GETTING_STARTED.md)**: `docker pull ghcr.io/argonautsystems/ic-engine:4.7.7-cpu`, mount a portfolio CSV, done. No source build. Works with any market-data provider (free `yfinance` by default). |
| 21 | |
| 22 | Optional [Stonkmode](docs/STONKMODE_AVATAR_LEGEND.md) adds live commentary from 30 fictional cable TV finance personalities. It is entertainment and education on top of the portfolio surface, not a requirement. |
| 23 | |
| 24 | --- |
| 25 | |
| 26 | ## Features |
| 27 | |
| 28 | InvestorClaw separates agent-facing commands from portfolio computation. |
| 29 | |
| 30 | - Containerized engine. The current runtime is a single Docker container with MCP-HTTP on port `18090` and the dashboard portal on port `18092`. Start the container, point an MCP-capable agent at it, and ask portfolio questions. |
| 31 | - Deterministic computation. There is no LLM in the parse path. Holdings parsing, normalization, analytics, and envelopes are deterministic. Narration is optional, provider-swappable, and sits on top of structured output. |
| 32 | - Nine asset classes. InvestorClaw handles equities, ETFs, bonds, mutual funds, options, cash, **CME futures** (priced via Massive's `/futures/vX` feed with correct contract-multiplier notional), crypto, and precious metals. |
| 33 | - Massive market data. [Massive](https://massive.com) (massive.com) is the primary paid provider — batch quotes for large portfolios and **CME futures via `/futures/vX`** with correct contract-multiplier notional. Set `MASSIVE_API_KEY` and optionally `INVESTORCLAW_PRICE_PROVIDER=massive`. Full guide: [Getting Started](docs/GETTING_STARTED.md). Full provider matrix: [docs/PROVIDERS.md](docs/PROVIDERS.md). |
| 34 | - Twenty MCP tools. The primary surface is `portfolio_ask`, `portfolio_initialize`, `portfolio_initialize_status`, `portfolio_holdings`, `portfolio_refresh`, `portfolio_setup`, `portfolio_keys_status`, `portfolio_keys_set`, `portfolio_keys_delete`, `portfolio_keys_recommend`, `portfolio_keys_backup`, `portfolio_keys_restore`, `portfolio_keys_backups_list`, `portfolio_response_get`, `portfolio_response_list`, `portfolio_response_delete`, `portfolio_response_flag_bad`, `portfolio_version_check`, `portfolio_export`, and `portfolio_import`. |
| 35 | - 17-tab dashboard portal. Open `http://localhost:18092` for Overview, Holdings, Performance, WhatChanged, Scenarios, Bonds, Optimize, Cashflow, Peer, Analyst, News, Markets, Lookup, Synthesis, Reports, Settings, and About. |
| 36 | - Regenerate from the browser. The Overview tab has a Regenerate button that fires setup, refresh, and all 12 analyzers as a background sweep. |
| 37 | - Web upload form. Settings accepts multipart uploads for `.csv`, `.tsv`, `.xls`, `.xlsx`, `.pdf`, `.json`, `.ofx`, and `.qfx` portfolio files. |
| 38 | - Pluggable, battery-tuned narration. Narration is two-stage — a **consultant** compresses the signed envelope into a fact-faithful summary, then a **narrator** enriches it. The 30-prompt COBOL hallucination battery ([`harness/cobol/PROVIDER_HALLUCINATION_REPORT.md`](harness/cobol/PROVIDER_HALLUCINATION_REPORT.md)) settled the defaults: **consultant = `deepseek-v4-flash` via the direct DeepSeek API** (cheapest, and matches `gemma-4-31B` on hallucination with better coverage); **narrator = `gemini-3.1-pro`** (lowest fabrication) or `llama-3.3-70b` on Groq/Together (max coverage). Any OpenAI-compatible endpoint works — set `INVESTORCLAW_CONSULTANT_*` and `INVESTORCLAW_NARRATIVE_*` (see [Getting Started](docs/GETTING_STARTED.md)). |
| 39 | - Safe fallback defaults. InvestorClaw can start with no API keys and use the `yfinance` fallback. Optional keys improve news, ratings, and premium data coverage. |
| 40 | - HMAC-signed envelopes. Outputs are tamper-evident. They are not encrypted. |
| 41 | - No fabrication path. The engine returns what it can prove from data, marks gaps, and avoids pretending that missing facts exist. |
| 42 | - No brokerage credentials. InvestorClaw does not ask for brokerage logins and does not need them. |
| 43 | - No outbound trades. This package analyzes p |