MCP Tool Reference
Generated reference for Keel MCP outcome tools and their CLI equivalents.
MCP Tool Reference
Generated from
keel.tools.outcomes.OUTCOMESand the live Click command tree. Do not edit this file by hand; runpython packages/keel-trade/keel-sdk/scripts/generate_agent_reference_docs.py.
The keel-trade registry holds 50 outcome tools; the keel CLI and the local stdio MCP server bind to it. The hosted endpoint (https://mcp.usekeel.io/mcp) registers a 29-tool research/backtest/read surface of them — the surface Claude, ChatGPT and every remote-MCP client see. The default local stdio MCP surface exposes 47 tools, including read-only keel_live_monitor; the 3 live-write tools are opt-in with KEEL_TOOLSETS=always,read-only,backtest,share,live-read,paper,live-write.
KEEL_TOOLSETS=live remains a deprecated compatibility alias for live-read,live-write; new configs should use the explicit split.
MCP is the agent surface. The CLI is the reproducible terminal surface. Outcome tools share names, schemas, handlers, structured errors, and safety annotations across both surfaces.
Outcome Tools
The Hosted column marks the tools the hosted endpoint registers (LISTED_PROFILE_TOOLS); every row is on the local stdio server and the CLI.
| MCP tool | Hosted | CLI command | Toolset | Scope | Annotations | Required args | Optional args |
|---|---|---|---|---|---|---|---|
keel_account_status | ✓ | keel status | always | audit.read | read-only, idempotent | - | - |
keel_accounts_list | — | keel accounts list | read-only | account.read | read-only, idempotent | - | account_id (string), limit (integer), cursor (string) |
keel_accounts_safety | — | keel accounts safety | live-read | account.read | read-only, idempotent | account_id* (string) | - |
keel_app_link | ✓ | keel app open | read-only | strategy.read | read-only, idempotent | id* (string) | - |
keel_audit_list_last | — | keel audit list-last | read-only | audit.read | read-only, idempotent | - | n (integer) |
keel_auth_login | — | keel auth login (CLI-only implementation) | always | read | write, idempotent, open-world | - | scope (base, live), api_url (string), attach_anonymous_work (boolean) |
keel_auth_logout | — | keel auth logout (CLI-only implementation) | always | read | write, destructive, idempotent | - | - |
keel_backtest_compare | ✓ | keel backtest compare | backtest | backtest.read | read-only, idempotent | backtest_ids* (array) | holds (array), periods (monthly, quarterly) |
keel_backtest_positions | ✓ | keel backtest positions | backtest | backtest.read | read-only, idempotent | backtest_id* (string) | asset (string), start (string), end (string), limit (integer), cursor (string), sort (pnl, time), compare_to (string) |
keel_backtest_run | ✓ | keel backtest run | backtest | backtest.create | write | strategy_id* (string) | start_date (string), end_date (string), commit_id (string), version (['integer', 'string']), config (object), wait (boolean), auto_push (boolean), push_message (string), skip_readiness (boolean), present (receipt, view) |
keel_backtest_summarize | ✓ | keel backtest summarize | backtest | backtest.read | read-only, idempotent | backtest_id* (string) | start (string), end (string), capital (number), periods (monthly, quarterly) |
keel_backtest_watch | ✓ | keel backtest watch | backtest | backtest.read | read-only, idempotent | backtest_id* (string) | interval_s (number), timeout_s (integer), skip_readiness (boolean), present (receipt, view) |
keel_components_get | ✓ | keel components compose-help | read-only | component.read | read-only, idempotent | name* (string) | - |
keel_components_get_many | ✓ | keel components describe-batch | read-only | component.read | read-only, idempotent | names* (array) | - |
keel_components_search | ✓ | keel components search | read-only | component.list | read-only, idempotent | - | keyword (string), query (string), category (data_loader, data_transform, forecast_composer, forecast_mapper, indicator, position_manager, position_sizer, regime_detector, risk_manager, signal_composer, signal_transform, slot_op, universe_filter), sub_category (string), input_type (string), output_type (string), clock_direction (keep, synth, resample, project), after (string), before (string), include_deprecated (boolean), limit (integer) |
keel_connection_check | ✓ | keel doctor | always | audit.read | read-only, idempotent | - | - |
keel_deployments_list | — | keel deployments list | live-read | runner.read | read-only, idempotent | - | include_stopped (boolean), limit (integer), cursor (string), capital_class (real, practice, all) |
keel_feedback | ✓ | keel feedback | always | audit.read | write, destructive, open-world | text* (string) | goal (string), kind (friction, praise, bug), severity (string), context_ref (string) |
keel_help | ✓ | keel help | always | audit.read | read-only, idempotent | - | topic (string) |
keel_library_fork | ✓ | keel library fork | backtest | strategy.create | write | slug* (string) | variant_id (string), name (string) |
keel_library_get | ✓ | keel library get | read-only | strategy.read | read-only, idempotent | slug* (string) | - |
keel_library_list | ✓ | keel library list | read-only | strategy.read | read-only, idempotent | - | - |
keel_live_control | — | keel live control | live-write | runner.pause | write, destructive, open-world | deployment_id* (string), action* (pause, resume, stop, trigger) | override (boolean) |
keel_live_deploy | — | keel live deploy | live-write | runner.create | write, destructive, open-world | strategy_id* (string) | account_id (string), direct (boolean), preview (boolean), confirmation_token (string), schedule (string), intent_token (string), auto_push (boolean), push_message (string) |
keel_live_monitor | ✓ | keel live monitor | live-read | runner.read | read-only, idempotent, open-world | - | deployment_id (string), view (equity, executions, funding, orders, overview, pnl, portfolio, positions, stats, trades, weights, weights-history), limit (integer), symbol (string), side (string), start_time (string), sort_by (trade_time, notional, closed_pnl), sort_dir (asc, desc), cursor (string), expand_orders (boolean), execution_run_id (string) |
keel_live_quality | — | keel live quality | live-read | execution_analytics.read | read-only, idempotent | deployment_id* (string) | start_date (string), end_date (string), style (string), style_version (string) |
keel_live_receipt | — | keel live receipt | live-read | execution_analytics.read | read-only, idempotent | deployment_id* (string), session_id* (string) | intent_rev (integer), version (integer) |
keel_live_update | — | keel live update | live-write | runner.read | write, open-world | deployment_id* (string) | intent_token (string) |
keel_paper_control | — | keel paper control | paper | backtest.create | write, destructive | deployment_id* (string), action* (pause, resume, stop, restart, update) | - |
keel_paper_deploy | — | keel paper deploy | paper | backtest.create | write | strategy_id* (string) | schedule (string), simulated_capital (1000, 10000, 100000), config_id (string) |
keel_plan_usage | ✓ | keel plan status | read-only | audit.read | read-only, idempotent | - | - |
keel_share_create | ✓ | keel share create | share | sharing.create | write, destructive, open-world | target_id* (string) | target_type (strategy, backtest, paper), include_source (boolean), permission (view, fork), expires_at (string) |
keel_strategy_checkout | — | keel strategy checkout | backtest | strategy.read | write | strategy_id* (string) | dir (string) |
keel_strategy_compose | ✓ | keel strategy compose | backtest | strategy.create | write | - | source (string), source_file (string), strategy_id (string), name (string), present (receipt, view), dry_run (boolean), parent_version (string), component_lock (object), description (string), message (string) |
keel_strategy_delete | — | keel strategy delete | backtest | strategy.delete | write, destructive | strategy_id* (string) | - |
keel_strategy_diff | ✓ | keel strategy diff | read-only | strategy.read | read-only, idempotent | ref_a* (string), ref_b* (string) | strategy_id (string) |
keel_strategy_discard | — | keel strategy discard | backtest | strategy.read | write, destructive, idempotent | - | strategy_id (string) |
keel_strategy_fork | ✓ | keel strategy fork | backtest | strategy.create | write, open-world | source* (string) | name (string), target_workspace_id (string), present (receipt, view), description (string) |
keel_strategy_get | ✓ | keel strategy get | read-only | strategy.read | read-only, idempotent | strategy_id* (string) | version (string), include_source (boolean), include_versions (boolean), skip_readiness (boolean) |
keel_strategy_history | ✓ | keel strategy log | read-only | strategy.read | read-only, idempotent | strategy_id* (string) | limit (integer) |
keel_strategy_notes_add | ✓ | keel strategy memory-write | backtest | strategy.update | write | strategy_id* (string), note* (string) | role (agent, user) |
keel_strategy_notes_read | ✓ | keel strategy memory-read | read-only | strategy.read | read-only, idempotent | strategy_id* (string) | limit (integer) |
keel_strategy_pull | — | keel strategy pull | backtest | strategy.read | write, idempotent | - | strategy_id (string), force (boolean) |
keel_strategy_push | — | keel strategy push | backtest | strategy.update | write | - | strategy_id (string), message (string), force (boolean) |
keel_strategy_readiness | ✓ | keel ownership status | read-only | strategy.read | read-only, idempotent | strategy_id* (string) | - |
keel_strategy_restore | ✓ | keel strategy restore | backtest | strategy.update | write | strategy_id* (string), ref* (string) | message (string) |
keel_strategy_search | ✓ | keel strategy search | read-only | strategy.read | read-only, idempotent | - | query (string), limit (integer), cursor (string) |
keel_strategy_status | — | keel strategy status | backtest | strategy.read | read-only, idempotent | - | strategy_id (string), include_recent (boolean), recent_commits (integer), skip_readiness (boolean) |
keel_strategy_upgrade | — | keel strategy upgrade | backtest | strategy.update | write | strategy_id* (string) | answers (array), apply (boolean), message (string) |
keel_strategy_workspaces | — | keel strategy workspaces | read-only | strategy.read | read-only, idempotent | - | - |
Tool Descriptions
always
keel_account_status: Report who is signed in to Keel, on which plan and with how much quota left — plan usage per unit iskeel_plan_usage, a failing connectionkeel_connection_check.keel_auth_login: Run the OAuth 2.1 + PKCE browser-loopback login flow against Keel and persist tokens to ~/.keel/config.yaml so subsequent tool calls are authenticated.keel_auth_logout: Clear stored Keel credentials from ~/.keel/config.yaml so the next tool call is unauthenticated — use it to sign the user out, or to switch accounts (logout →keel_auth_login).keel_connection_check: Check the connection to Keel from the Keel CLI/MCP installation when a call fails for an environmental reason — identity and quota arekeel_account_status.keel_feedback: Send feedback about Keel to the Keel team — friction, praise or a bug report ingoal,kindandtext— when the user asks or agrees; a failing connection iskeel_connection_check.keel_help: Fetch one Keel knowledge or DSL-reference document by topic — components arekeel_components_search, one component's contractkeel_components_get.
read-only
keel_accounts_list: List your Hyperliquid accounts (id, label, wallet_address, status, account_mode, agent_address, expires_at, attached strategy/deployment) — read-only enumeration to find the account you need.keel_app_link: Returns a link to view and manage this strategy in the Keel web app.keel_audit_list_last: Read the most recent N audit events for the current org — the agent's own trail for self-debugging and recovery.keel_components_get: Fetch the full contract for ONE known pipeline component — several at once arekeel_components_get_many.keel_components_get_many: Fetch the full contract of SEVERAL components in one call — one component alone iskeel_components_get.keel_components_search: Search the Keel pipeline component catalog — the chosen candidates go tokeel_components_get_many, which verifies their types and slots.keel_library_get: Read one Keel Library entry's verified facts before a fork — forking it iskeel_library_fork.keel_library_list: List the Keel Library — the verified, backtested strategy entries published in the product; the caller's own strategies arekeel_strategy_search.keel_plan_usage: Report the org's own Keel plan and its backtest usage this period — auth, identity and visible tools arekeel_account_status.keel_strategy_diff: What changed between two strategies or two versions of one (versions:keel_strategy_history; several runs' results:keel_backtest_compare).keel_strategy_get: Render a saved strategy as its structure card — a version's commit id alone iskeel_strategy_history, with no card.keel_strategy_history: Show a strategy's commit history — each version's commit id, the refkeel_backtest_runpins andkeel_strategy_diffcompares.keel_strategy_notes_read: Read the notes saved on one of the caller's strategies — the durable context that outlives one session; adding one iskeel_strategy_notes_add.keel_strategy_readiness: Report what evidence a saved strategy has and still lacks — a brief, a baseline backtest, named failure modes — and the one next step; a backtest iskeel_backtest_run.keel_strategy_search: Search and list the org's strategies — the entry point for an EXISTING strategy, beforekeel_strategy_get.keel_strategy_workspaces: List every locally checked-out strategy workspace — strategy id, name, and sync metadata (source hash, checkout time, sequence at checkout).
backtest
keel_backtest_compare: Compare 2–8 completed backtests side by side — one run alone iskeel_backtest_summarize.keel_backtest_positions: The positions of ONE completed backtest, entry to exit — what drove its result.keel_backtest_run: Submit a NEW backtest run of a strategy — a finished run's result iskeel_backtest_summarize, a running one's waitkeel_backtest_watch.keel_backtest_summarize: Show ONE completed backtest run in full — several runs together arekeel_backtest_compare, a still-running onekeel_backtest_watch.keel_backtest_watch: Wait on a running backtest (started bykeel_backtest_run) until it finishes or the timeout elapses — a finished run in full iskeel_backtest_summarize.keel_library_fork: Fork a verified Keel Library entry into the caller's org as an editable strategy — a copy of a Keel strategy or a share link iskeel_strategy_fork.keel_strategy_checkout: Pull a platform strategy into a local workspace so you can edit, validate, and version-control it.keel_strategy_compose: Save a strategy from Keel DSL source — new, or withstrategy_idits next version; components come fromkeel_components_searchandkeel_components_get_many.keel_strategy_delete: Hard-delete a strategy on the platform — IRREVERSIBLE.keel_strategy_discard: Remove a local workspace — the checked-outstrategy.py+.keel-meta.json.keel_strategy_fork: Copy a strategy into the caller's org as a separate strategy with its own history; the original's source and versions are unchanged (saving a new version of a strategy iskeel_strategy_compose).keel_strategy_notes_add: Add a note to a strategy's saved notes, kept with the strategy in the user's Keel account and returned bykeel_strategy_notes_readin later sessions.keel_strategy_pull: Re-fetch the server HEAD into the local working copy — the 'git pull' of the sync model.keel_strategy_push: Commit local strategy.py changes back to the platform as a new version — the 'git push' of the sync model.keel_strategy_restore: Add a new version of a strategy equal to an earlier one — a restore; the history iskeel_strategy_history, the current strategykeel_strategy_get.keel_strategy_status: Compare a local workspace's strategy.py against the server's current HEAD — the 'git status' of the sync model.keel_strategy_upgrade: Upgrade a saved strategy that pins deprecated position components (PositionStateMachine, TradeLevelRiskExit, ScalingPositionManager, the stop / target / trailing / time exits, StopDistanceRiskSizer) into the TradeManager form — the edit the validator's POSITION_UPGRADE_AVAILABLE issue describes; a hand-written change iskeel_strategy_compose.
share
keel_share_create: Publish a strategy (str_*) or a backtest (btr_*) at a public usekeel.io/share/<id> URL.
live-read
keel_accounts_safety: Read one Hyperliquid account's execution SAFETY state: whether the account is halted, which halt event is current, how many frozen sessions and unresolved cancels the release still waits on, the halt's authority tier, and the block reasons.keel_deployments_list: List every deployment in your org with its id, strategy, status, schedule, account_id, deployed version, realized P&L, and open position count.keel_live_monitor: Read-only observability for live deployments: overview, positions, equity, P&L, stats, weights, weights-history, executions, orders, trades, funding events, or portfolio summary — oneviewenum in place of ~13 separate live_* read endpoints.keel_live_quality: Read a live deployment's precomputed execution-quality rollup: the aggregated cost of its executions, projected from sealed receipts rather than recomputed.keel_live_receipt: Fetch the sealed execution receipt for ONE episode of a live deployment — the per-symbol record of what an execution actually cost: filled and residual quantity, decision- and arrival-benchmark shortfall in basis points, fee components, completeness and its missing reasons, and the terminal reason.
paper
keel_paper_control: Pause, resume, stop, restart or update a paper (simulated) run.keel_paper_deploy: Start a paper-trading run of a saved strategy: fills are simulated at live Hyperliquid prices under Keel's published fill model, no real orders are placed and no funds are at risk.
live-write
keel_live_control: Control an EXISTING live deployment that the human already deployed and authorized in the Keel web app: pause, resume, stop, or trigger a manual rebalance.keel_live_deploy: Go live with a strategy.keel_live_update: Update a LIVE or PAUSED deployment to its strategy's current version.
CLI Equivalents
Outcome commands generated from the registry:
| CLI command | MCP tool | Positional args | Options |
|---|---|---|---|
keel status | keel_account_status | - | --format |
keel accounts list | keel_accounts_list | account_id | --format, --limit, -n, --cursor |
keel accounts safety | keel_accounts_safety | account_id | --format |
keel app open | keel_app_link | id | --format |
keel audit list-last | keel_audit_list_last | - | --format, --n |
keel auth login | keel_auth_login | - | --key, --scope, --api-url, --attach-anon, --no-attach-anon |
keel auth logout | keel_auth_logout | - | - |
keel backtest compare | keel_backtest_compare | backtest_ids... | --format, --periods, --holds |
keel backtest positions | keel_backtest_positions | backtest_id | --format, --start, --sort, --limit, -n, --end, --cursor, --compare-to, --asset |
keel backtest run | keel_backtest_run | strategy_id | --format, --no-ownership-hint, --no-no-ownership-hint, --wait, --no-wait, --version, --start-date, --skip-readiness, --no-skip-readiness, --push-message, --present, --end-date, --config, --commit-id, --auto-push, --no-auto-push |
keel backtest summarize | keel_backtest_summarize | backtest_id | --format, --start, --periods, --end, --capital |
keel backtest watch | keel_backtest_watch | backtest_id | --format, --no-ownership-hint, --no-no-ownership-hint, --timeout-s, --skip-readiness, --no-skip-readiness, --present, --interval-s |
keel components compose-help | keel_components_get | name | --format |
keel components describe-batch | keel_components_get_many | names... | --format |
keel components search | keel_components_search | keyword | --format, --sub-category, --query, --output-type, --limit, -n, --input-type, --include-deprecated, --no-include-deprecated, --clock-direction, --category, --before, --after |
keel doctor | keel_connection_check | - | --format |
keel deployments list | keel_deployments_list | - | --format, --limit, -n, --include-stopped, --no-include-stopped, --cursor, --capital-class |
keel feedback | keel_feedback | text | --format, --severity, --kind, --goal, --context-ref |
keel help | keel_help | topic | --format |
keel library fork | keel_library_fork | slug | --format, --variant-id, --name |
keel library get | keel_library_get | slug | --format |
keel library list | keel_library_list | - | --format |
keel live control | keel_live_control | deployment_id | --format, --yes, --override, --no-override, --action |
keel live deploy | keel_live_deploy | strategy_id | --format, --yes, --schedule, --push-message, --preview, --no-preview, --intent-token, --direct, --no-direct, --confirmation-token, --auto-push, --no-auto-push, --account-id |
keel live monitor | keel_live_monitor | deployment_id | --format, --view, --symbol, --start-time, --sort-dir, --sort-by, --side, --limit, -n, --expand-orders, --no-expand-orders, --execution-run-id, --cursor |
keel live quality | keel_live_quality | deployment_id | --format, --style-version, --style, --start-date, --end-date |
keel live receipt | keel_live_receipt | deployment_id | --format, --version, --session-id, --intent-rev |
keel live update | keel_live_update | deployment_id | --format, --intent-token |
keel paper control | keel_paper_control | deployment_id | --format, --yes, --action |
keel paper deploy | keel_paper_deploy | strategy_id | --format, --capital, --schedule, --config-id |
keel plan status | keel_plan_usage | - | --format |
keel share create | keel_share_create | target_id | --format, --yes, --target-type, --permission, --include-source, --no-include-source, --expires-at |
keel strategy checkout | keel_strategy_checkout | strategy_id | --format, --dir |
keel strategy compose | keel_strategy_compose | - | --format, --strategy-id, --source-file, --source, --present, --parent-version, --name, --message, -m, --dry-run, --no-dry-run, --description, --component-lock |
keel strategy delete | keel_strategy_delete | strategy_id | --format, --yes |
keel strategy diff | keel_strategy_diff | - | --format, --strategy-id, --ref-b, --ref-a |
keel strategy discard | keel_strategy_discard | strategy_id | --format, --yes |
keel strategy fork | keel_strategy_fork | source | --format, --target-workspace-id, --present, --name, --description |
keel strategy get | keel_strategy_get | strategy_id | --format, --no-ownership-hint, --no-no-ownership-hint, --version, --skip-readiness, --no-skip-readiness, --include-versions, --no-include-versions, --include-source, --no-include-source |
keel strategy log | keel_strategy_history | strategy_id | --format, --limit, -n |
keel strategy memory-write | keel_strategy_notes_add | strategy_id | --format, --role, --note |
keel strategy memory-read | keel_strategy_notes_read | strategy_id | --format, --limit, -n |
keel strategy pull | keel_strategy_pull | strategy_id | --format, --force, --no-force |
keel strategy push | keel_strategy_push | strategy_id | --format, --message, -m, --force, --no-force |
keel ownership status | keel_strategy_readiness | strategy_id | --format |
keel strategy restore | keel_strategy_restore | strategy_id | --format, --ref, -r, --message, -m |
keel strategy search | keel_strategy_search | - | --format, --query, --limit, -n, --cursor |
keel strategy status | keel_strategy_status | strategy_id | --format, --no-ownership-hint, --no-no-ownership-hint, --skip-readiness, --no-skip-readiness, --recent-commits, --include-recent, --no-include-recent |
keel strategy upgrade | keel_strategy_upgrade | strategy_id | --format, --message, -m, --apply, --no-apply, --answers |
keel strategy workspaces | keel_strategy_workspaces | - | --format |
CLI-Only Commands
These commands are intentionally not MCP tools. They handle local setup, credentials, project scaffolding, local context, local arming, and local universe files.
| CLI command | Positional args | Options |
|---|---|---|
keel arm disarm | - | --emergency |
keel arm live set | - | --account, --ttl, --once, --renew |
keel arm status | - | - |
keel auth status | - | - |
keel auth whoami | - | - |
keel backtest trades | backtest_id | --format, --start, --sort, --limit, -n, --end, --cursor, --compare-to, --asset |
keel components describe | name | --format |
keel components detail | name | --format |
keel context add | note | - |
keel context edit | - | - |
keel context import | source | - |
keel context init | - | --force, --user |
keel context show | - | --layer |
keel mcp serve | - | - |
keel open | kind, target_id | - |
keel project hooks | - | - |
keel project init | - | --force |
keel skills list | - | --format |
keel skills show | name | --format |
keel universe add-group | file, name | --symbols |
keel universe categories | - | - |
keel universe get | file | - |
keel universe instruments | - | --market |
keel universe modify-group | file, name | --add, --remove |
keel universe remove-group | file, name | - |
keel universe resolve | file | --mode, --market, --symbols, --categories, --top-n, --exclusions, --inclusions, --lookback, --volume-quartiles |
keel universe set | file | --mode, --market, --symbols, --categories, --top-n, --exclusions, --inclusions, --lookback, --volume-quartiles, --no-resolve |