Investment Management
Critical Constraint: ES < 2.5%
Expected Shortfall at 97.5% confidence must remain below 2.5%. This is the binding risk constraint. Check ES before and after any proposed trade or rebalance.
Tool Mapping
| Task |
Server |
Key Tools |
| Current holdings & allocations |
portfolio-state |
get_positions, get_portfolio_summary, get_tax_lots |
| Risk metrics (ES, VaR, drawdown) |
risk |
calculate_es, calculate_var, stress_test, correlation_matrix |
| Portfolio optimization |
portfolio-optimization |
optimize_portfolio, efficient_frontier, black_litterman |
| Tax analysis |
tax |
get_tax_lots, calculate_gains, wash_sale_check |
| Tax-loss harvesting |
tax-optimization |
find_tlh_opportunities, simulate_harvest, tax_efficient_rebalance |
| Market data & fundamentals |
openbb-curated |
equity_price_historical, equity_fundamental_*, economy_* |
| SEC filings |
openbb-curated |
regulators_sec_section_extract, equity_fundamental_filings |
| News & events |
openbb-curated |
news_search (GDELT — keywords must be 3+ chars) |
| Policy impact |
policy-events |
search_bills, get_bill_detail, search_regulations |
| Portfolio tracking |
ghostfolio |
get_portfolio_summary, get_portfolio_performance, get_dividends |
Workflow: Daily Check
get_portfolio_summary — current value, allocation, cash position
calculate_es — verify ES < 2.5%
get_positions — check for any position > 10% of portfolio
news_search — scan for news on top holdings
- Report: ES status, notable moves, concentration risk, news alerts
Workflow: Rebalancing
get_portfolio_summary — current allocations
optimize_portfolio — target allocation (mean-variance or Black-Litterman)
calculate_es on proposed allocation — verify ES < 2.5%
find_tlh_opportunities — check for tax-loss harvesting before trading
tax_efficient_rebalance — generate trade list minimizing tax impact
- Present: proposed trades, expected ES, tax impact, estimated costs
Workflow: Equity Research
equity_price_historical — price trend and technicals
equity_fundamental_* — revenue, earnings, margins, valuation multiples
equity_fundamental_filings + regulators_sec_section_extract — read 10-K risk factors and MD&A
news_search — recent news and sentiment
search_bills / search_regulations — regulatory exposure
- Present: thesis, valuation range, risks, position sizing recommendation
Workflow: Tax Planning
get_tax_lots — all lots with cost basis and holding period
calculate_gains — realized and unrealized gains/losses by short/long-term
find_tlh_opportunities — losses available for harvesting
wash_sale_check — verify no wash sale violations
- Present: tax liability estimate, TLH opportunities, wash sale risks
Holistic Tax Planning
For tax decisions that span both investment and household income, treat
household-tax-mcp as an exact, fail-closed engine with a narrow 2026 US
and MA support surface. Use assess_exact_support first, then the exact return
and safe-harbor/distribution tools only when the case fits. For Roth
conversions, broad gain realization, or other unsupported scenarios, state that
exact household-tax support is unavailable and keep the tax discussion bounded.
The investing-workspace tax servers still handle investment-specific tax (wash
sales, TLH, cost basis).
Key Rules
- Tool-First Data: ALL metrics must come from MCP tool calls with timestamps
- No Fabrication: If a tool returns no data, report the gap — never estimate
- ES Binding: Any recommendation that pushes ES > 2.5% must include a RISK ALERT
- GDELT Queries: Use full terms ("artificial intelligence" not "AI") — min 3 chars per keyword
- SEC Sections: Max 2 chunks per section, ~15K tokens total per extract call
1---2name: investing3description: Personal portfolio management and investment analysis skill. Use when: (1) Checking portfolio risk (ES, VaR, drawdown), (2) Running rebalancing or optimization, (3) Equity research and valuation, (4) Tax-loss harvesting analysis, (5) Policy/regulatory impact assessment, (6) Performance attribution and benchmarking. Tools: 7 investing-workspace MCP servers + ghostfolio-mcp for portfolio tracking.4---56# Investment Management78## Critical Constraint: ES < 2.5%910Expected Shortfall at 97.5% confidence must remain below 2.5%. This is the binding risk constraint. Check ES before and after any proposed trade or rebalance.1112## Tool Mapping1314| Task | Server | Key Tools |15|------|--------|-----------|16| Current holdings & allocations | portfolio-state | `get_positions`, `get_portfolio_summary`, `get_tax_lots` |17| Risk metrics (ES, VaR, drawdown) | risk | `calculate_es`, `calculate_var`, `stress_test`, `correlation_matrix` |18| Portfolio optimization | portfolio-optimization | `optimize_portfolio`, `efficient_frontier`, `black_litterman` |19| Tax analysis | tax | `get_tax_lots`, `calculate_gains`, `wash_sale_check` |20| Tax-loss harvesting | tax-optimization | `find_tlh_opportunities`, `simulate_harvest`, `tax_efficient_rebalance` |21| Market data & fundamentals | openbb-curated | `equity_price_historical`, `equity_fundamental_*`, `economy_*` |22| SEC filings | openbb-curated | `regulators_sec_section_extract`, `equity_fundamental_filings` |23| News & events | openbb-curated | `news_search` (GDELT — keywords must be 3+ chars) |24| Policy impact | policy-events | `search_bills`, `get_bill_detail`, `search_regulations` |25| Portfolio tracking | ghostfolio | `get_portfolio_summary`, `get_portfolio_performance`, `get_dividends` |2627## Workflow: Daily Check28291. `get_portfolio_summary` — current value, allocation, cash position302. `calculate_es` — verify ES < 2.5%313. `get_positions` — check for any position > 10% of portfolio324. `news_search` — scan for news on top holdings335. Report: ES status, notable moves, concentration risk, news alerts3435## Workflow: Rebalancing36371. `get_portfolio_summary` — current allocations382. `optimize_portfolio` — target allocation (mean-variance or Black-Litterman)393. `calculate_es` on proposed allocation — verify ES < 2.5%404. `find_tlh_opportunities` — check for tax-loss harvesting before trading415. `tax_efficient_rebalance` — generate trade list minimizing tax impact426. Present: proposed trades, expected ES, tax impact, estimated costs4344## Workflow: Equity Research45461. `equity_price_historical` — price trend and technicals472. `equity_fundamental_*` — revenue, earnings, margins, valuation multiples483. `equity_fundamental_filings` + `regulators_sec_section_extract` — read 10-K risk factors and MD&A494. `news_search` — recent news and sentiment505. `search_bills` / `search_regulations` — regulatory exposure516. Present: thesis, valuation range, risks, position sizing recommendation5253## Workflow: Tax Planning54551. `get_tax_lots` — all lots with cost basis and holding period562. `calculate_gains` — realized and unrealized gains/losses by short/long-term573. `find_tlh_opportunities` — losses available for harvesting584. `wash_sale_check` — verify no wash sale violations595. Present: tax liability estimate, TLH opportunities, wash sale risks6061## Holistic Tax Planning6263For tax decisions that span both investment and household income, treat64**household-tax-mcp** as an exact, fail-closed engine with a narrow 2026 `US`65and `MA` support surface. Use `assess_exact_support` first, then the exact return66and safe-harbor/distribution tools only when the case fits. For Roth67conversions, broad gain realization, or other unsupported scenarios, state that68exact household-tax support is unavailable and keep the tax discussion bounded.6970The investing-workspace tax servers still handle investment-specific tax (wash71sales, TLH, cost basis).7273## Key Rules7475- **Tool-First Data**: ALL metrics must come from MCP tool calls with timestamps76- **No Fabrication**: If a tool returns no data, report the gap — never estimate77- **ES Binding**: Any recommendation that pushes ES > 2.5% must include a RISK ALERT78- **GDELT Queries**: Use full terms ("artificial intelligence" not "AI") — min 3 chars per keyword79- **SEC Sections**: Max 2 chunks per section, ~15K tokens total per extract call