Build, backtest, and automate Hyperliquid trading strategies — typed, deterministic, live parity.
Keel is a quantitative crypto trading platform built around Hyperliquid — strategy development, backtesting, live execution, and portfolio management on the venue with the deepest on-chain perpetual order book. The full platform includes:
keel-trade — the agent-native research surfaceThis repository is the public mirror of the keel-trade Python package: a single pipx install gives you both a CLI and a stdio MCP server, so the same tools work from a terminal or from any MCP-capable agent.
Most agent-trading projects put an LLM in the execution loop. That makes systems slow, inconsistent, and hard to audit. Keel does the opposite:
You ──── compose ────► Strategy graph ──── compile ────► Deterministic artifact
▲ │
│ ▼
Agent edits Backtest engine
via MCP tools (real HL data)
│
▼
Live execution
(same artifact)
Three properties drive the design:
Paste one URL into the client you already use. You sign in through your client's own OAuth flow; no API key to copy, no local install.
Hosted endpoint URL: https://mcp.usekeel.io/mcp — one endpoint, a 29-tool research/backtest/read surface, nothing to install. Sign in or sign up on the Keel page that opens (no account needed beforehand); authentication is your MCP client's OAuth flow, never a tool call.
claude mcp add --transport http keel https://mcp.usekeel.io/mcp. Inside Claude Code run /mcp and choose Authenticate.{"mcpServers": {"keel": {"url": "https://mcp.usekeel.io/mcp"}}}. Cursor asks you to sign in on first use.codex mcp add keel --url https://mcp.usekeel.io/mcp then codex mcp login keel. Codex opens your browser for the sign-in.{"mcpServers": {"keel": {"serverUrl": "https://mcp.usekeel.io/mcp"}}}. Windsurf asks you to sign in on first use.{"servers": {"keel": {"type": "http", "url": "https://mcp.usekeel.io/mcp"}}}. VS Code asks you to sign in on first use.The agent builds, tests and reads. When you want to run a strategy on your account, it hands it to the Keel app and you take it from there.
Setup guide: https://usekeel.io/docs/agents/setup · Per-client runbook: https://usekeel.io/agents
No Keel account yet? Create one free — then connect the endpoint above and ask your agent to build something.
Keel is one product with several places to use it. The hosted MCP above is the default; this package is the CLI + local MCP path.
| You are… | Default path (shown first) | Also works |
|---|---|---|
| Using Claude/ChatGPT on web or phone | Hosted endpoint — paste the URL (directory one-click coming) | CLI + local MCP |
| Working in Claude Code / Cursor / terminal | Hosted endpoint — one command, or paste the URL | CLI + local MCP |
| Running a strategy from the Keel app | Keel web app (connect an account, review sizing, start it there) | reads on every surface |
| Building your own agent/scripts | SDK + API key | CLI |
| Just browsing/running strategies | Web app + library | hosted endpoint |
Per-surface zero-to-first-backtest runbook: usekeel.io/agents.
Download keel-trade-<version>.mcpb from the latest release and drag onto Claude Desktop. Cross-platform single bundle — works on macOS, Windows, and Linux.
The MCPB bundle requires system Python 3.11+ (same prerequisite as the terminal install path below). First launch takes ~10-30 seconds while the bundle pip-installs runtime deps to ~/.keel/mcpb-lib/py3.X/; subsequent launches are instant.
The bundle runs this package's local MCP server: your assistant composes and validates strategies, backtests them on real Hyperliquid history, browses the strategy library, compares runs, and shares results. Sign in once with keel_auth_login. By default it cannot place orders or move funds — running a strategy with real capital happens in the Keel web app, and the local tools that act on a live account stay off unless you enable them and arm them on your machine (details below). Prefer nothing to install? Claude Desktop also works with the hosted connector in the quick start.
pipx install keel-trade
uv tool install keel-trade also works. Python 3.11+.
Then register the stdio MCP command with your agent host:
# Claude Code
claude mcp add keel -- keel mcp serve
# Codex
codex mcp add keel -- keel mcp serve
For Cursor, Windsurf, and generic MCP clients, see usekeel.io/keel-mcp#install or the agent setup guide.
After install, sign in once via the agent (no terminal commands needed):
You: "Connect to Keel."
Agent: Calls
keel_auth_login. Browser opens to app.usekeel.io, you click Allow, tokens land in~/.keel/config.yaml. Authenticated for 30 days with transparent refresh.
Then describe what you want:
You: "Find me momentum signals for Hyperliquid top-30 perps and compose a backtest from 2024-08-15 to today."
Agent: Calls
keel_components_search→keel_components_get_many→keel_strategy_compose→keel_backtest_run. Returns a share URL with the full tearsheet (equity curve, Sharpe, max drawdown, per-asset attribution).
Concrete example: this share URL is a funding-carry backtest produced through exactly this flow — Sharpe 2.17 over 2024-08-15 → 2026-04-30 on real Hyperliquid data.
The default local toolsets (always, read-only, backtest, share, live-read) span status, auth, components, strategy lifecycle, backtest, audit, accounts, sharing, and read-only live monitoring.
Live-write tools (keel_live_deploy, keel_live_control, keel_live_update) are off unless you opt in with KEEL_TOOLSETS. Even then, going live is a hand-off: keel_live_deploy places no orders and returns a link into the Keel web app, where you choose the account, review sizing, and start the strategy. Acting on a live account from your machine (keel_live_control, or the operator-only direct deploy) also requires local arming (keel arm live set). The hosted connector at mcp.usekeel.io has no live-write tools at all.
Full per-tool reference: usekeel.io/docs/sdk/tool-reference.
Every MCP outcome tool has a CLI mirror. Useful for terminals, SSH sessions, CI, scripts, or agents that prefer subprocess calls:
# Auth + status
keel auth login # opens a browser
keel auth login --key "$KEEL_API_KEY" # CI / SSH / no browser
keel status
# Search components, compose, backtest
keel components search "momentum"
keel strategy compose --source-file my-strategy.py --dry-run
keel backtest run str_abc123 --start-date 2024-08-15 --wait
# Inspect a strategy
keel strategy get str_abc123
keel strategy log str_abc123
Full CLI reference: usekeel.io/docs/sdk/cli-reference.
| Task | Surface |
|---|---|
| Backtest a Hyperliquid strategy — real fees, funding and slippage across the HL perp universe, delisted names included | usekeel.io/hyperliquid-backtest |
| Screen HL perps — momentum, funding, volume, breakout, regime | usekeel.io/lab |
| Use AI to build strategies — typed composition, not freeform code | usekeel.io/ai-trading-strategy-builder |
| Backtest portfolios across the HL universe | usekeel.io/crypto-portfolio-backtesting |
| Robustness calculators — walk-forward visualizer, Monte Carlo, deflated Sharpe, overfit check | usekeel.io/lab |
| Run a strategy live from the Keel web app, on your own Hyperliquid account (non-custodial) | usekeel.io/strategy-os |
| Compare strategies + venues | usekeel.io/compare |
| Browse documented trading strategies | usekeel.io/strategies |
AGENTS.mdAlpha. The CLI and MCP surface are stable and ship to PyPI on a regular cadence; the underlying engine and component library are actively developed.
Keel measures the strategies you design. It is not investment advice, and backtest results do not predict future returns.
See CONTRIBUTING.md. Short version:
team@usekeel.io (do not open a public issue)MIT. See LICENSE.
Source-derived launch command. Check the maintainer’s required arguments and credentials before running:
uvx keel-tradeMerge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.
{
"mcpServers": {
"io-github-keel-trade-keel-trade": {
"command": "uvx",
"args": [
"keel-trade"
]
}
}
}Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.
Claude Desktop setup referencekeel-tradepypiKeel — Hyperliquid trading agent works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.
~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.~/.cursor/mcp.jsonRestart Cursor for changes to take effect..vscode/mcp.jsonReload VS Code window for changes to take effect.~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect..mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.