Keel Docs
Agents

Agent Setup

Connect an AI agent to Keel. Add it from the Claude or ChatGPT listing, or give any other MCP client the hosted endpoint URL.

Updated October 14, 2026

Keel runs one hosted MCP endpoint:

https://mcp.usekeel.io/mcp

Add Keel from its official listing in Claude (claude.ai/directory) or ChatGPT (chatgpt.com/plugins): one click, then sign in. In Cursor, Windsurf or any client that takes a remote MCP server, paste the URL. Sign in or sign up on the Keel page that opens (no account needed beforehand), and the agent has Keel: a 29-tool research/backtest/read surface, nothing to install, no API key to create. Authentication is your MCP client's OAuth flow, never a tool call.

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.

Connect your client

Claude

Keel's Claude listing: claude.ai/directory

  1. Open Keel in the Claude directory, or search for Keel under Customize → Connectors
  2. Choose Connect
  3. Sign in or sign up on the Keel page that opens (no account needed beforehand)

Or add it by URL:

  1. Customize → Connectors → Add custom connector
  2. Paste https://mcp.usekeel.io/mcp and choose Connect
  3. Sign in or sign up on the Keel page that opens (no account needed beforehand)

Check it worked

  • In Claude: Keel shows as connected once the sign-in has finished (Customize → Connectors, then search for Keel).

  • Ask the agent: Use keel_account_status and tell me which Keel account this session is signed in as.

    keel_account_status answers with the Keel account the session is signed in as, which nothing but a live connection can return. If the agent says it has no Keel tools, the sign-in did not finish.

First prompt: Find carry and momentum components on Keel (usekeel.io), compose a strategy, and backtest it.

Not verified yet against a Claude version. The steps follow the vendor's documentation; if the sign-in does not finish, tell us.

Vendor docs: claude.com/docs (checked 2026-09-16)

ChatGPT

Keel's ChatGPT listing: chatgpt.com/plugins

  1. Open Keel in the ChatGPT plugin directory, or search for Keel at chatgpt.com/plugins
  2. Choose Install plugin
  3. Sign in or sign up on the Keel page that opens (no account needed beforehand)

Or add it by URL:

  1. Settings → Security and login → turn on Developer mode (in a workspace, an admin may have to allow it)
  2. Open chatgpt.com/plugins, choose +, give the connector a name and a description, and enter https://mcp.usekeel.io/mcp as the MCP server URL (the /mcp path included)
  3. Sign in or sign up on the Keel page that opens (no account needed beforehand)

Check it worked

  • In ChatGPT: Keel shows as connected once the sign-in has finished (chatgpt.com/plugins, then search for Keel).

  • Ask the agent: Use keel_account_status and tell me which Keel account this session is signed in as.

    keel_account_status answers with the Keel account the session is signed in as, which nothing but a live connection can return. If the agent says it has no Keel tools, the sign-in did not finish.

First prompt: Find carry and momentum components on Keel (usekeel.io), compose a strategy, and backtest it.

Not verified yet against a ChatGPT version. The steps follow the vendor's documentation; if the sign-in does not finish, tell us.

Vendor docs: developers.openai.com/api (checked 2026-09-16)

Claude Code

claude mcp add --transport http keel https://mcp.usekeel.io/mcp
  1. Run the command in your terminal
  2. Inside Claude Code run /mcp and choose Authenticate
  3. Sign in or sign up on the Keel page that opens (no account needed beforehand)

Check it worked

  • In Claude Code:
claude mcp list

Keel should be listed there with its sign-in recorded. If it is, you are connected — signing in again changes nothing.

  • Ask the agent: Use keel_account_status and tell me which Keel account this session is signed in as.

    keel_account_status answers with the Keel account the session is signed in as, which nothing but a live connection can return. If the agent says it has no Keel tools, the sign-in did not finish.

First prompt: Connect to Keel (usekeel.io), then compose a carry strategy and backtest it.

Not verified yet against a Claude Code version. The steps follow the vendor's documentation; if the sign-in does not finish, tell us.

Vendor docs: code.claude.com/docs (checked 2026-09-16)

Cursor

{
  "mcpServers": {
    "keel": {
      "url": "https://mcp.usekeel.io/mcp"
    }
  }
}
  1. Add the server to .cursor/mcp.json (project) or ~/.cursor/mcp.json (global)
  2. Cursor asks you to sign in on first use
  3. Sign in or sign up on the Keel page that opens (no account needed beforehand)

Install link (opens the client and registers Keel):

cursor://anysphere.cursor-deeplink/mcp/install?name=keel&config=eyJ1cmwiOiJodHRwczovL21jcC51c2VrZWVsLmlvL21jcCJ9

Check it worked

  • Cursor does not report the connection separately, so the agent's own answer is the check.

  • Ask the agent: Use keel_account_status and tell me which Keel account this session is signed in as.

    keel_account_status answers with the Keel account the session is signed in as, which nothing but a live connection can return. If the agent says it has no Keel tools, the sign-in did not finish.

First prompt: Connect to Keel (usekeel.io), then compose a carry strategy and backtest it.

Not verified yet against a Cursor version. The steps follow the vendor's documentation; if the sign-in does not finish, tell us.

Vendor docs: cursor.com/docs (checked 2026-09-16)

Codex

codex mcp add keel --url https://mcp.usekeel.io/mcp
codex mcp login keel
  1. Run the two commands in your terminal
  2. Codex opens your browser for the sign-in
  3. Sign in or sign up on the Keel page that opens (no account needed beforehand)

Check it worked

  • In Codex:
codex mcp list

Keel should be listed there with its sign-in recorded. If it is, you are connected — signing in again changes nothing.

  • Ask the agent: Use keel_account_status and tell me which Keel account this session is signed in as.

    keel_account_status answers with the Keel account the session is signed in as, which nothing but a live connection can return. If the agent says it has no Keel tools, the sign-in did not finish.

First prompt: Connect to Keel (usekeel.io), then compose a carry strategy and backtest it.

Verified against Codex 0.155.1 on 2026-09-19. An older version may not complete the sign-in.

Vendor docs: learn.chatgpt.com/docs (checked 2026-09-16)

Windsurf

{
  "mcpServers": {
    "keel": {
      "serverUrl": "https://mcp.usekeel.io/mcp"
    }
  }
}
  1. Add the server to Windsurf's mcp_config.json
  2. Windsurf asks you to sign in on first use
  3. Sign in or sign up on the Keel page that opens (no account needed beforehand)

Check it worked

  • Windsurf does not report the connection separately, so the agent's own answer is the check.

  • Ask the agent: Use keel_account_status and tell me which Keel account this session is signed in as.

    keel_account_status answers with the Keel account the session is signed in as, which nothing but a live connection can return. If the agent says it has no Keel tools, the sign-in did not finish.

First prompt: Connect to Keel (usekeel.io), then compose a carry strategy and backtest it.

Not verified yet against a Windsurf version. The steps follow the vendor's documentation; if the sign-in does not finish, tell us.

Vendor docs: docs.devin.ai/desktop (checked 2026-09-16)

VS Code

{
  "servers": {
    "keel": {
      "type": "http",
      "url": "https://mcp.usekeel.io/mcp"
    }
  }
}
  1. Add the server to .vscode/mcp.json, or open the install link
  2. VS Code asks you to sign in on first use
  3. Sign in or sign up on the Keel page that opens (no account needed beforehand)

Install link (opens the client and registers Keel):

vscode:mcp/install?%7B%22name%22%3A%22keel%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fmcp.usekeel.io%2Fmcp%22%7D

Or in the browser:

https://vscode.dev/redirect/mcp/install?%7B%22name%22%3A%22keel%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fmcp.usekeel.io%2Fmcp%22%7D

Check it worked

  • VS Code does not report the connection separately, so the agent's own answer is the check.

  • Ask the agent: Use keel_account_status and tell me which Keel account this session is signed in as.

    keel_account_status answers with the Keel account the session is signed in as, which nothing but a live connection can return. If the agent says it has no Keel tools, the sign-in did not finish.

First prompt: Connect to Keel (usekeel.io), then compose a carry strategy and backtest it.

Not verified yet against a VS Code version. The steps follow the vendor's documentation; if the sign-in does not finish, tell us.

Vendor docs: code.visualstudio.com/docs (checked 2026-09-16)

Other

  1. Use your client's own add remote / HTTP MCP server flow with https://mcp.usekeel.io/mcp
  2. The first request answers 401 with OAuth 2.1 metadata, so a compliant client discovers the sign-in step by itself
  3. Sign in or sign up on the Keel page that opens (no account needed beforehand)

Check it worked

  • Your MCP client does not report the connection separately, so the agent's own answer is the check.

  • Ask the agent: Use keel_account_status and tell me which Keel account this session is signed in as.

    keel_account_status answers with the Keel account the session is signed in as, which nothing but a live connection can return. If the agent says it has no Keel tools, the sign-in did not finish.

First prompt: Connect to Keel (usekeel.io), then compose a carry strategy and backtest it.

Not verified yet against a your MCP client version. The steps follow the vendor's documentation; if the sign-in does not finish, tell us.

What the agent gets

Hosted tools (29):

  • 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_connection_check — Check this connection to Keel 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.
  • keel_app_link — Returns a link to view and manage this strategy in the Keel web app.
  • 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 — Lists the org's strategies, the entry point for an existing one before keel_strategy_get.
  • 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_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_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_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_share_create — Publish a strategy (str_*) or a backtest (btr_*) at a public usekeel.io/share/<id> URL.
  • keel_live_monitor — Read-only monitoring of the strategies running on the caller's account; acting on one happens in the Keel web app (keel_app_link returns the link).

In Claude, the connector also offers two paper tools that start and change simulated runs, with no real orders and no real capital; the paper docs page describes them in its Claude section.

tools/list is authoritative; use the live schemas for exact argument names. The file-based workspace tools and keel_auth_login / keel_auth_logout are not registered on the hosted endpoint — they belong to the package below.

Read-only tools run without a prompt. The write tools (keel_feedback, keel_backtest_run, keel_library_fork, keel_strategy_compose, keel_strategy_fork, keel_strategy_notes_add, keel_strategy_restore, keel_share_create) ask once per tool until you choose Allow always — in the prompt itself, or under Customize → Connectors → Keel → Tool permissions in Claude; Codex auto-approves read-only tools with default_tools_approval_mode = "writes" and remembers the rest per tool.

Other ways to connect

The keel CLI

pipx install keel-trade
keel auth login

uv tool install keel-trade also works. The keel CLI starts with no sign-up; keel auth login later attaches the workspace to your account.

Local MCP over stdio

The same package serves MCP over stdio for file-based workspaces; the host launches it as a child process.

claude mcp add keel -- keel mcp serve
codex mcp add keel -- keel mcp serve

Any client that launches MCP servers from a config file:

{
  "mcpServers": {
    "keel": {
      "command": "keel",
      "args": ["mcp", "serve"]
    }
  }
}

Claude Desktop bundle

Claude Desktop: download the bundle and drag it onto the app. One bundle for macOS, Windows and Linux; needs system Python 3.11+. Download: keel-trade-latest.mcpb

API key

API keys are for the keel CLI, the local MCP server (keel mcp serve) and the REST API. Claude, ChatGPT and Cursor connect by sign-in instead, with no key. Create a key at app.usekeel.io/settings; reference: API reference

More