MCP App Store
Finance
Kova icon

Kova

by Gigantes Research LLC

Overview

Kova gives ChatGPT a persistent home for a user's investment strategy. Users save their investment rules once, then ask ChatGPT to review a portfolio against the same plan whenever they need a check-in. Kova returns repeatable briefs with an alignment score, portfolio drift, strategy-rule checks when configured, and changes that would restore alignment. It keeps the user's plan anchored across sessions, so each review starts from the saved investment standard instead of a blank chat. Kova does not place trades, manage assets, provide financial advice, or predict markets.

Tools

kova_create_asset

ChatGPT
Register a non-ticker asset on a strategy — anything owned and tracked by total value rather than individual ticker symbols. Use this for managed accounts where tickers aren't accessible: robo-advisors, 401k plans, real estate, or other lump-sum holdings. Once registered, the asset is part of the strategy's portfolio and is included in every evaluation. Types: investment_account, real_estate, bitcoin, other. Bitcoin uses live pricing — omit current_value and provide quantity instead. After registering assets, call kova_evaluate_portfolio without a portfolio param to generate a brief.

kova_create_asset

ChatGPT
Register a non-ticker asset on a strategy — anything owned and tracked by total value rather than individual ticker symbols. Use this for managed accounts where tickers aren't accessible: robo-advisors, 401k plans, real estate, or other lump-sum holdings. Once registered, the asset is part of the strategy's portfolio and is included in every evaluation. Types: investment_account, real_estate, bitcoin, other. Bitcoin uses live pricing — omit current_value and provide quantity instead. After registering assets, call kova_evaluate_portfolio without a portfolio param to generate a brief.

kova_create_liability

ChatGPT
Register a non-portfolio liability on a strategy. Use this for persistent obligations like a line of credit, mortgage, personal loan, or other debt that should be visible during evaluation. Liabilities are included as structured context in every evaluation but do not change portfolio value math in this iteration.

kova_create_liability

ChatGPT
Register a non-portfolio liability on a strategy. Use this for persistent obligations like a line of credit, mortgage, personal loan, or other debt that should be visible during evaluation. Liabilities are included as structured context in every evaluation but do not change portfolio value math in this iteration.

kova_create_strategy

ChatGPT
Create a new investment strategy. Before calling this tool, help the user draft their strategy — it can be three lines or a detailed playbook. Good strategies include: target allocations with actual tickers (e.g. "40% VOO, 20% QQQ, 15% IBIT"), investment horizon and objective, action rules (e.g. "rebalance at 5% drift, sell calls when neutral"), and constraints (e.g. "no single position over 15%, no leverage"). Concrete tickers and rules produce specific dollar-based analysis; vague language produces generic commentary. After creating a strategy, use kova_create_asset and kova_create_liability to register non-ticker holdings and obligations before evaluating.

kova_create_strategy

ChatGPT
Create a new investment strategy. Before calling this tool, help the user draft their strategy — it can be three lines or a detailed playbook. Good strategies include: target allocations with actual tickers (e.g. "40% VOO, 20% QQQ, 15% IBIT"), investment horizon and objective, action rules (e.g. "rebalance at 5% drift, sell calls when neutral"), and constraints (e.g. "no single position over 15%, no leverage"). Concrete tickers and rules produce specific dollar-based analysis; vague language produces generic commentary. After creating a strategy, use kova_create_asset and kova_create_liability to register non-ticker holdings and obligations before evaluating.

kova_delete_strategy

ChatGPT
Permanently delete a strategy and all associated data (emails, manual assets). Associated briefs are preserved but unlinked. This action cannot be undone.

kova_delete_strategy

ChatGPT
Permanently delete a strategy and all associated data (emails, manual assets). Associated briefs are preserved but unlinked. This action cannot be undone.

kova_evaluate_portfolio

ChatGPT
Submit a portfolio for evaluation against a strategy. The portfolio param expects individual ticker holdings (stocks, options, cash) — for accounts where individual tickers aren't accessible (investment accounts, 401k, real estate), use kova_create_asset instead, then omit portfolio entirely to evaluate using only registered assets. Use kova_create_liability for persistent obligations like lines of credit or mortgages. Submitting a portfolio also updates the portfolio on file for this strategy. Returns a brief_id with status 'processing' — call kova_show_brief with that brief_id until status is 'completed' to get the full brief with alignment score, analysis, and compliance checks. Evaluation typically takes 60–90 seconds.

kova_evaluate_portfolio

ChatGPT
Submit a portfolio for evaluation against a strategy. The portfolio param expects individual ticker holdings (stocks, options, cash) — for accounts where individual tickers aren't accessible (investment accounts, 401k, real estate), use kova_create_asset instead, then omit portfolio entirely to evaluate using only registered assets. Use kova_create_liability for persistent obligations like lines of credit or mortgages. Submitting a portfolio also updates the portfolio on file for this strategy. Returns a brief_id with status 'processing' — call kova_show_brief with that brief_id until status is 'completed' to get the full brief with alignment score, analysis, and compliance checks. Evaluation typically takes 60–90 seconds.

kova_list_briefs

ChatGPT
List all completed briefs for a strategy with ID, alignment score, and timestamps.

kova_list_briefs

ChatGPT
List all completed briefs for a strategy with ID, alignment score, and timestamps.

kova_list_cash_flows

ChatGPT
List all recorded cash flows (deposits and withdrawals) for a strategy's portfolio. Returns flows ordered by date, most recent first.

kova_list_cash_flows

ChatGPT
List all recorded cash flows (deposits and withdrawals) for a strategy's portfolio. Returns flows ordered by date, most recent first.

kova_list_strategies

ChatGPT
List all user strategies with alignment scores. Returns strategy UUIDs, names, latest alignment score/label, and last evaluation timestamp.

kova_list_strategies

ChatGPT
List all user strategies with alignment scores. Returns strategy UUIDs, names, latest alignment score/label, and last evaluation timestamp.

kova_list_strategy_versions

ChatGPT
List the version history for a strategy. Each entry captures the content before it was overwritten. Returns version numbers, names, previews, and timestamps. Use this before editing a strategy to understand what has changed over time.

kova_list_strategy_versions

ChatGPT
List the version history for a strategy. Each entry captures the content before it was overwritten. Returns version numbers, names, previews, and timestamps. Use this before editing a strategy to understand what has changed over time.

kova_record_cash_flow

ChatGPT
Record a deposit or withdrawal on a strategy's portfolio. Cash flows adjust performance calculations — deposits don't count as gains, withdrawals don't count as losses. Use this to track contributions, distributions, or transfers that affect the portfolio's value but aren't investment returns.

kova_record_cash_flow

ChatGPT
Record a deposit or withdrawal on a strategy's portfolio. Cash flows adjust performance calculations — deposits don't count as gains, withdrawals don't count as losses. Use this to track contributions, distributions, or transfers that affect the portfolio's value but aren't investment returns.

kova_remove_asset

ChatGPT
Remove a non-ticker asset from a strategy. The asset UUID is returned by kova_create_asset or by kova_show_portfolio for existing manual assets.

kova_remove_asset

ChatGPT
Remove a non-ticker asset from a strategy. The asset UUID is returned by kova_create_asset or by kova_show_portfolio for existing manual assets.

kova_remove_cash_flow

ChatGPT
Remove a cash flow record from a strategy's portfolio. Use kova_list_cash_flows to find the cash_flow_id.

kova_remove_cash_flow

ChatGPT
Remove a cash flow record from a strategy's portfolio. Use kova_list_cash_flows to find the cash_flow_id.

kova_remove_liability

ChatGPT
Remove a liability from a strategy. The liability UUID is returned by kova_create_liability or by kova_show_portfolio for existing liabilities.

kova_remove_liability

ChatGPT
Remove a liability from a strategy. The liability UUID is returned by kova_create_liability or by kova_show_portfolio for existing liabilities.

kova_restore_strategy_version

ChatGPT
Restore a strategy to a previous version. The current content is automatically saved as a new version before the restore, so nothing is permanently lost.

kova_restore_strategy_version

ChatGPT
Restore a strategy to a previous version. The current content is automatically saved as a new version before the restore, so nothing is permanently lost.

kova_save_strategy

ChatGPT
Update an existing strategy's name, content, or both. Provide at least one of name or content.

kova_save_strategy

ChatGPT
Update an existing strategy's name, content, or both. Provide at least one of name or content.

kova_show_brief

ChatGPT
Read a brief by ID. Returns status ('processing' or 'completed') and, when completed, the alignment score, label, markdown analysis, summary, and timestamps. Use 'latest' as brief_id to get the most recent brief. When status is 'processing', the response includes elapsed_seconds, expected_duration_seconds (~90s), retry_after_seconds, and a human-readable message — briefs typically complete in 60–120 seconds, so wait retry_after_seconds before calling again.

kova_show_brief

ChatGPT
Read a brief by ID. Returns status ('processing' or 'completed') and, when completed, the alignment score, label, markdown analysis, summary, and timestamps. Use 'latest' as brief_id to get the most recent brief. When status is 'processing', the response includes elapsed_seconds, expected_duration_seconds (~90s), retry_after_seconds, and a human-readable message — briefs typically complete in 60–120 seconds, so wait retry_after_seconds before calling again.

kova_show_portfolio

ChatGPT
Read the current portfolio on file for a strategy — the most recent holdings (stocks, options, cash, assets, and liabilities) with performance metrics. Persisted manual assets and liabilities include uuid values so agents can update or remove existing records without creating duplicates.

kova_show_portfolio

ChatGPT
Read the current portfolio on file for a strategy — the most recent holdings (stocks, options, cash, assets, and liabilities) with performance metrics. Persisted manual assets and liabilities include uuid values so agents can update or remove existing records without creating duplicates.

kova_show_simulation

ChatGPT
Read a simulation result by ID. Returns status ('processing' or 'completed') and, when completed, the alignment score, analysis, and summary. Simulations expire after 1 hour. When status is 'processing', the response includes elapsed_seconds, expected_duration_seconds (~120s), retry_after_seconds, and a human-readable message — simulations typically complete in 80–160 seconds, so wait retry_after_seconds before calling again.

kova_show_simulation

ChatGPT
Read a simulation result by ID. Returns status ('processing' or 'completed') and, when completed, the alignment score, analysis, and summary. Simulations expire after 1 hour. When status is 'processing', the response includes elapsed_seconds, expected_duration_seconds (~120s), retry_after_seconds, and a human-readable message — simulations typically complete in 80–160 seconds, so wait retry_after_seconds before calling again.

kova_show_strategy

ChatGPT
Read a strategy's full content and metadata including alignment score and performance metrics.

kova_show_strategy

ChatGPT
Read a strategy's full content and metadata including alignment score and performance metrics.

kova_show_strategy_version

ChatGPT
Read the full content of a specific strategy version snapshot.

kova_show_strategy_version

ChatGPT
Read the full content of a specific strategy version snapshot.

kova_simulate_portfolio

ChatGPT
Run an ephemeral what-if simulation — evaluates a portfolio against a strategy without saving any records. Use this to check a specific trade idea ('should I sell puts on MARA at 15?'), test a hypothetical portfolio composition, or compare scenarios before committing. Results are temporary (expire after 1 hour) and never appear in brief history. For research-heavy scenarios, enrich with market data (earnings, price action, analyst sentiment) before calling this tool and pass it via context. Optionally override the strategy text to test 'what if my strategy said X?' without modifying the stored strategy. Returns a simulation_id with status 'processing' — call kova_show_simulation with that simulation_id until status is 'completed'. Simulation typically takes 60–120 seconds.

kova_simulate_portfolio

ChatGPT
Run an ephemeral what-if simulation — evaluates a portfolio against a strategy without saving any records. Use this to check a specific trade idea ('should I sell puts on MARA at 15?'), test a hypothetical portfolio composition, or compare scenarios before committing. Results are temporary (expire after 1 hour) and never appear in brief history. For research-heavy scenarios, enrich with market data (earnings, price action, analyst sentiment) before calling this tool and pass it via context. Optionally override the strategy text to test 'what if my strategy said X?' without modifying the stored strategy. Returns a simulation_id with status 'processing' — call kova_show_simulation with that simulation_id until status is 'completed'. Simulation typically takes 60–120 seconds.

kova_update_asset

ChatGPT
Update a non-ticker asset on a strategy. Merge semantics — only supplied fields change. Provide at least one field to update.

kova_update_asset

ChatGPT
Update a non-ticker asset on a strategy. Merge semantics — only supplied fields change. Provide at least one field to update.

kova_update_liability

ChatGPT
Update a liability on a strategy. Merge semantics — only supplied fields change. Provide at least one field to update.

kova_update_liability

ChatGPT
Update a liability on a strategy. Merge semantics — only supplied fields change. Provide at least one field to update.

Capabilities

Writes

App Stats

46

Tools

ChatGPT

Platforms

Works with

ChatGPT

Data refreshed daily