| name | investing |
| description | 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.
|
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