Keel Docs
SDK & CLI

MCP Tool Reference

Generated reference for Keel MCP outcome tools and their CLI equivalents.

Updated October 14, 2026

MCP Tool Reference

Generated from keel.tools.outcomes.OUTCOMES and the live Click command tree. Do not edit this file by hand; run python 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 toolHostedCLI commandToolsetScopeAnnotationsRequired argsOptional args
keel_account_status✓keel statusalwaysaudit.readread-only, idempotent--
keel_accounts_list—keel accounts listread-onlyaccount.readread-only, idempotent-account_id (string), limit (integer), cursor (string)
keel_accounts_safety—keel accounts safetylive-readaccount.readread-only, idempotentaccount_id* (string)-
keel_app_link✓keel app openread-onlystrategy.readread-only, idempotentid* (string)-
keel_audit_list_last—keel audit list-lastread-onlyaudit.readread-only, idempotent-n (integer)
keel_auth_login—keel auth login (CLI-only implementation)alwaysreadwrite, idempotent, open-world-scope (base, live), api_url (string), attach_anonymous_work (boolean)
keel_auth_logout—keel auth logout (CLI-only implementation)alwaysreadwrite, destructive, idempotent--
keel_backtest_compare✓keel backtest comparebacktestbacktest.readread-only, idempotentbacktest_ids* (array)holds (array), periods (monthly, quarterly)
keel_backtest_positions✓keel backtest positionsbacktestbacktest.readread-only, idempotentbacktest_id* (string)asset (string), start (string), end (string), limit (integer), cursor (string), sort (pnl, time), compare_to (string)
keel_backtest_run✓keel backtest runbacktestbacktest.createwritestrategy_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 summarizebacktestbacktest.readread-only, idempotentbacktest_id* (string)start (string), end (string), capital (number), periods (monthly, quarterly)
keel_backtest_watch✓keel backtest watchbacktestbacktest.readread-only, idempotentbacktest_id* (string)interval_s (number), timeout_s (integer), skip_readiness (boolean), present (receipt, view)
keel_components_get✓keel components compose-helpread-onlycomponent.readread-only, idempotentname* (string)-
keel_components_get_many✓keel components describe-batchread-onlycomponent.readread-only, idempotentnames* (array)-
keel_components_search✓keel components searchread-onlycomponent.listread-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 doctoralwaysaudit.readread-only, idempotent--
keel_deployments_list—keel deployments listlive-readrunner.readread-only, idempotent-include_stopped (boolean), limit (integer), cursor (string), capital_class (real, practice, all)
keel_feedback✓keel feedbackalwaysaudit.readwrite, destructive, open-worldtext* (string)goal (string), kind (friction, praise, bug), severity (string), context_ref (string)
keel_help✓keel helpalwaysaudit.readread-only, idempotent-topic (string)
keel_library_fork✓keel library forkbackteststrategy.createwriteslug* (string)variant_id (string), name (string)
keel_library_get✓keel library getread-onlystrategy.readread-only, idempotentslug* (string)-
keel_library_list✓keel library listread-onlystrategy.readread-only, idempotent--
keel_live_control—keel live controllive-writerunner.pausewrite, destructive, open-worlddeployment_id* (string), action* (pause, resume, stop, trigger)override (boolean)
keel_live_deploy—keel live deploylive-writerunner.createwrite, destructive, open-worldstrategy_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 monitorlive-readrunner.readread-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 qualitylive-readexecution_analytics.readread-only, idempotentdeployment_id* (string)start_date (string), end_date (string), style (string), style_version (string)
keel_live_receipt—keel live receiptlive-readexecution_analytics.readread-only, idempotentdeployment_id* (string), session_id* (string)intent_rev (integer), version (integer)
keel_live_update—keel live updatelive-writerunner.readwrite, open-worlddeployment_id* (string)intent_token (string)
keel_paper_control—keel paper controlpaperbacktest.createwrite, destructivedeployment_id* (string), action* (pause, resume, stop, restart, update)-
keel_paper_deploy—keel paper deploypaperbacktest.createwritestrategy_id* (string)schedule (string), simulated_capital (1000, 10000, 100000), config_id (string)
keel_plan_usage✓keel plan statusread-onlyaudit.readread-only, idempotent--
keel_share_create✓keel share createsharesharing.createwrite, destructive, open-worldtarget_id* (string)target_type (strategy, backtest, paper), include_source (boolean), permission (view, fork), expires_at (string)
keel_strategy_checkout—keel strategy checkoutbackteststrategy.readwritestrategy_id* (string)dir (string)
keel_strategy_compose✓keel strategy composebackteststrategy.createwrite-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 deletebackteststrategy.deletewrite, destructivestrategy_id* (string)-
keel_strategy_diff✓keel strategy diffread-onlystrategy.readread-only, idempotentref_a* (string), ref_b* (string)strategy_id (string)
keel_strategy_discard—keel strategy discardbackteststrategy.readwrite, destructive, idempotent-strategy_id (string)
keel_strategy_fork✓keel strategy forkbackteststrategy.createwrite, open-worldsource* (string)name (string), target_workspace_id (string), present (receipt, view), description (string)
keel_strategy_get✓keel strategy getread-onlystrategy.readread-only, idempotentstrategy_id* (string)version (string), include_source (boolean), include_versions (boolean), skip_readiness (boolean)
keel_strategy_history✓keel strategy logread-onlystrategy.readread-only, idempotentstrategy_id* (string)limit (integer)
keel_strategy_notes_add✓keel strategy memory-writebackteststrategy.updatewritestrategy_id* (string), note* (string)role (agent, user)
keel_strategy_notes_read✓keel strategy memory-readread-onlystrategy.readread-only, idempotentstrategy_id* (string)limit (integer)
keel_strategy_pull—keel strategy pullbackteststrategy.readwrite, idempotent-strategy_id (string), force (boolean)
keel_strategy_push—keel strategy pushbackteststrategy.updatewrite-strategy_id (string), message (string), force (boolean)
keel_strategy_readiness✓keel ownership statusread-onlystrategy.readread-only, idempotentstrategy_id* (string)-
keel_strategy_restore✓keel strategy restorebackteststrategy.updatewritestrategy_id* (string), ref* (string)message (string)
keel_strategy_search✓keel strategy searchread-onlystrategy.readread-only, idempotent-query (string), limit (integer), cursor (string)
keel_strategy_status—keel strategy statusbackteststrategy.readread-only, idempotent-strategy_id (string), include_recent (boolean), recent_commits (integer), skip_readiness (boolean)
keel_strategy_upgrade—keel strategy upgradebackteststrategy.updatewritestrategy_id* (string)answers (array), apply (boolean), message (string)
keel_strategy_workspaces—keel strategy workspacesread-onlystrategy.readread-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 is keel_plan_usage, a failing connection keel_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 are keel_account_status.
  • keel_feedback: Send feedback about Keel to the Keel team — friction, praise or a bug report in goal, kind and text — when the user asks or agrees; a failing connection is keel_connection_check.
  • keel_help: Fetch one Keel knowledge or DSL-reference document by topic — components are keel_components_search, one component's contract keel_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 are keel_components_get_many.
  • keel_components_get_many: Fetch the full contract of SEVERAL components in one call — one component alone is keel_components_get.
  • keel_components_search: Search the Keel pipeline component catalog — the chosen candidates go to keel_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 is keel_library_fork.
  • keel_library_list: List the Keel Library — the verified, backtested strategy entries published in the product; the caller's own strategies are keel_strategy_search.
  • keel_plan_usage: Report the org's own Keel plan and its backtest usage this period — auth, identity and visible tools are keel_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 is keel_strategy_history, with no card.
  • keel_strategy_history: Show a strategy's commit history — each version's commit id, the ref keel_backtest_run pins and keel_strategy_diff compares.
  • keel_strategy_notes_read: Read the notes saved on one of the caller's strategies — the durable context that outlives one session; adding one is keel_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 is keel_backtest_run.
  • keel_strategy_search: Search and list the org's strategies — the entry point for an EXISTING strategy, before keel_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 is keel_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 is keel_backtest_summarize, a running one's wait keel_backtest_watch.
  • keel_backtest_summarize: Show ONE completed backtest run in full — several runs together are keel_backtest_compare, a still-running one keel_backtest_watch.
  • keel_backtest_watch: Wait on a running backtest (started by keel_backtest_run) until it finishes or the timeout elapses — a finished run in full is keel_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 is keel_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 with strategy_id its next version; components come from keel_components_search and keel_components_get_many.
  • keel_strategy_delete: Hard-delete a strategy on the platform — IRREVERSIBLE.
  • keel_strategy_discard: Remove a local workspace — the checked-out strategy.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 is keel_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 by keel_strategy_notes_read in 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 is keel_strategy_history, the current strategy keel_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 is keel_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 — one view enum 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 commandMCP toolPositional argsOptions
keel statuskeel_account_status---format
keel accounts listkeel_accounts_listaccount_id--format, --limit, -n, --cursor
keel accounts safetykeel_accounts_safetyaccount_id--format
keel app openkeel_app_linkid--format
keel audit list-lastkeel_audit_list_last---format, --n
keel auth loginkeel_auth_login---key, --scope, --api-url, --attach-anon, --no-attach-anon
keel auth logoutkeel_auth_logout--
keel backtest comparekeel_backtest_comparebacktest_ids...--format, --periods, --holds
keel backtest positionskeel_backtest_positionsbacktest_id--format, --start, --sort, --limit, -n, --end, --cursor, --compare-to, --asset
keel backtest runkeel_backtest_runstrategy_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 summarizekeel_backtest_summarizebacktest_id--format, --start, --periods, --end, --capital
keel backtest watchkeel_backtest_watchbacktest_id--format, --no-ownership-hint, --no-no-ownership-hint, --timeout-s, --skip-readiness, --no-skip-readiness, --present, --interval-s
keel components compose-helpkeel_components_getname--format
keel components describe-batchkeel_components_get_manynames...--format
keel components searchkeel_components_searchkeyword--format, --sub-category, --query, --output-type, --limit, -n, --input-type, --include-deprecated, --no-include-deprecated, --clock-direction, --category, --before, --after
keel doctorkeel_connection_check---format
keel deployments listkeel_deployments_list---format, --limit, -n, --include-stopped, --no-include-stopped, --cursor, --capital-class
keel feedbackkeel_feedbacktext--format, --severity, --kind, --goal, --context-ref
keel helpkeel_helptopic--format
keel library forkkeel_library_forkslug--format, --variant-id, --name
keel library getkeel_library_getslug--format
keel library listkeel_library_list---format
keel live controlkeel_live_controldeployment_id--format, --yes, --override, --no-override, --action
keel live deploykeel_live_deploystrategy_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 monitorkeel_live_monitordeployment_id--format, --view, --symbol, --start-time, --sort-dir, --sort-by, --side, --limit, -n, --expand-orders, --no-expand-orders, --execution-run-id, --cursor
keel live qualitykeel_live_qualitydeployment_id--format, --style-version, --style, --start-date, --end-date
keel live receiptkeel_live_receiptdeployment_id--format, --version, --session-id, --intent-rev
keel live updatekeel_live_updatedeployment_id--format, --intent-token
keel paper controlkeel_paper_controldeployment_id--format, --yes, --action
keel paper deploykeel_paper_deploystrategy_id--format, --capital, --schedule, --config-id
keel plan statuskeel_plan_usage---format
keel share createkeel_share_createtarget_id--format, --yes, --target-type, --permission, --include-source, --no-include-source, --expires-at
keel strategy checkoutkeel_strategy_checkoutstrategy_id--format, --dir
keel strategy composekeel_strategy_compose---format, --strategy-id, --source-file, --source, --present, --parent-version, --name, --message, -m, --dry-run, --no-dry-run, --description, --component-lock
keel strategy deletekeel_strategy_deletestrategy_id--format, --yes
keel strategy diffkeel_strategy_diff---format, --strategy-id, --ref-b, --ref-a
keel strategy discardkeel_strategy_discardstrategy_id--format, --yes
keel strategy forkkeel_strategy_forksource--format, --target-workspace-id, --present, --name, --description
keel strategy getkeel_strategy_getstrategy_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 logkeel_strategy_historystrategy_id--format, --limit, -n
keel strategy memory-writekeel_strategy_notes_addstrategy_id--format, --role, --note
keel strategy memory-readkeel_strategy_notes_readstrategy_id--format, --limit, -n
keel strategy pullkeel_strategy_pullstrategy_id--format, --force, --no-force
keel strategy pushkeel_strategy_pushstrategy_id--format, --message, -m, --force, --no-force
keel ownership statuskeel_strategy_readinessstrategy_id--format
keel strategy restorekeel_strategy_restorestrategy_id--format, --ref, -r, --message, -m
keel strategy searchkeel_strategy_search---format, --query, --limit, -n, --cursor
keel strategy statuskeel_strategy_statusstrategy_id--format, --no-ownership-hint, --no-no-ownership-hint, --skip-readiness, --no-skip-readiness, --recent-commits, --include-recent, --no-include-recent
keel strategy upgradekeel_strategy_upgradestrategy_id--format, --message, -m, --apply, --no-apply, --answers
keel strategy workspaceskeel_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 commandPositional argsOptions
keel arm disarm---emergency
keel arm live set---account, --ttl, --once, --renew
keel arm status--
keel auth status--
keel auth whoami--
keel backtest tradesbacktest_id--format, --start, --sort, --limit, -n, --end, --cursor, --compare-to, --asset
keel components describename--format
keel components detailname--format
keel context addnote-
keel context edit--
keel context importsource-
keel context init---force, --user
keel context show---layer
keel mcp serve--
keel openkind, target_id-
keel project hooks--
keel project init---force
keel skills list---format
keel skills showname--format
keel universe add-groupfile, name--symbols
keel universe categories--
keel universe getfile-
keel universe instruments---market
keel universe modify-groupfile, name--add, --remove
keel universe remove-groupfile, name-
keel universe resolvefile--mode, --market, --symbols, --categories, --top-n, --exclusions, --inclusions, --lookback, --volume-quartiles
keel universe setfile--mode, --market, --symbols, --categories, --top-n, --exclusions, --inclusions, --lookback, --volume-quartiles, --no-resolve