AI Drop Zone

Integrations → AI Clients: connect Claude Code, Cursor, Codex or any MCP or HTTP client so it can drive the lab, then watch its work live — grouped into automatic sessions (ADZ-####) you can review afterwards.

The AI Drop Zone is where an AI client you already use — Claude Code, Claude Desktop, Cursor, Codex CLI, or any MCP or HTTP client — drives Forven: writing strategy files, registering them, backtesting, validating, and promoting them through the real gates. You find it at Integrations → AI Clients.

The client's work is grouped into sessions, written ADZ-0007, so after an hour of iterating you can answer the question that matters: what did it actually test, and what came out?

Integrations, AI Clients tab: the AI Drop Zone header with a Backend status dot, 0 open / 0 total sessions and a Session picker with + New; collapsed Connect an MCP client (21 MCP tools) and Connect over HTTP (no MCP) cards; an empty Active Session panel; Recent Activity with no recent intake or runs; and the Manual Fallback forms to register a strategy file or run a backtest.The AI Drop Zone before any client has connected. Sessions and activity fill in once one starts working.

Step by step

The Connect Claude Code or Cursor walkthrough takes you from an empty client config to a live session in about ten minutes.

The page

Integrations has two tabs: AI Clients (outside assistants connecting into Forven — this page) and Agent Tool Servers (Forven's own agents connecting out to external tools — below).

The AI Drop Zone header shows a Backend status dot — if it's red, MCP tool calls fail too, because the MCP server talks to Forven through that API — and how many sessions are open. Pick one in Session to watch it, start one with + New (an optional label and objective), or Close it.

Connect an MCP client

21 MCP tools · the full loop: register → backtest → optimize → robustness → promote.

The Connect an MCP client card with Claude Code selected: where to paste the config (~/.claude.json or a per-project .mcp.json), the claude mcp add command, and the mcpServers JSON with FORVEN_API_URL set to http://127.0.0.1:8003.Each client gets its own snippet and the file it belongs in.

Choose your client

Pick it in Client. The list covers desktop chat apps (Claude Desktop, ChatGPT Desktop, Jan, LibreChat, Minimax Agent), editors (Claude Code, Cursor, Windsurf, VS Code, Cline, Roo Code, Continue.dev, Zed), terminals (Codex CLI, Gemini CLI, Warp), and Other / custom.

Find where it goes

Where to paste names the config file — for Claude Desktop, %APPDATA%\Claude\claude_desktop_config.json on Windows; for Claude Code, ~/.claude.json or a per-project .mcp.json; for Cursor, .cursor/mcp.json; for Codex, ~/.codex/config.toml.

Copy the snippet

Copy JSON (or Copy TOML for Codex) and merge it into that file. Each client gets its own shape. For Claude Code, Copy CLI command gives a one-line claude mcp add forven … instead. The snippet points FORVEN_API_URL at http://127.0.0.1:8003. Its your-*-key placeholders are only needed if your backend requires auth; on a normal local install, remove those env keys.

Restart the client

Tools appear only after the client re-reads its config. The python in the snippet must be one that can import forven — your Forven virtual environment's.

Full guide opens the MCP setup guide that ships with Forven. Per-client details and troubleshooting are on MCP server.

Connect over HTTP (no MCP)

Same tools via the REST API. For clients that don't speak MCP, scripts and CI: a small CLI (python -m forven.agent health | list | backtest | enqueue | wait-paper, Copy CLI), Python and TypeScript snippets, and an Endpoints (any language) table. Auth is only needed if the backend is exposed beyond localhost — send x-api-key / x-operator-key, or set FORVEN_API_KEY / FORVEN_OPERATOR_KEY.

Active Session and Recent Activity

  • Active Session — for the session you picked: Strategies tagged to this session and Gauntlet runs in this session.
  • Recent Activity — across all sessions, refreshed every 5 seconds: Latest intake (newly registered strategies and their stage) and Latest runs.

Strategies that came in this way also carry an AI Drop Zone chip in The Forge.

Manual Fallback

Do it by hand. Register strategy file: enter an absolute path, click Scan — AI-generated strategies must pass the AST safety gate first — then Register. Run backtest: a strategy ID and a dataset such as BTC/USDT-1h, then Run.

Sessions

A session is a grouping tag, not an account or a permission:

  • IDs run in order: ADZ-0001, ADZ-0002, …
  • Over MCP they're automatic. A session opens on the client's first register or backtest call, tags everything after it, and closes when the client disconnects. A server-side sweep also closes sessions idle for about 6 hours (FORVEN_DROPZONE_IDLE_TTL_HOURS), so open means genuinely in use.
  • You can still open one yourself with a label and objective, or pass a session_id to resume one.
  • A session is active or closed. Closing is one-way: a closed session is kept for review but can't be reopened or tagged again.

Sessions scope queries; they don't control access. Who can do what is decided by the backend's auth, not the session.

Where strategies land

A registered .py file is checked by the registration validator and the AST safety gate, and its code only ever runs inside the locked-down strategy worker. Then it lands in one of two places:

  • quick_screen — the start of the normal pipeline: quick_screen → gauntlet → paper → live_graduated.
  • The graveyard, archived as untestable — if it crashes, leaks look-ahead, or fails certification. The response gives the reason; fix the file and register it again.

Registering never promotes. A strategy reaches paper only by passing the gauntlet and the door into paper (then a free slot in the paper pool), and live only through the stricter paper → live gate and your typed GO LIVE.

The loop an AI client runs

The MCP server's own instructions give the client this loop:

  1. forven_get_context — overview first, then the template and gotchas sections.
  2. forven_get_quant_skills for priors; and before using any input beyond candles, forven_get_data_readiness for the market.
  3. Write a strategy .py into the workspace, then forven_register_strategy_file with its absolute path.
  4. forven_run_backtest and iterate on the design.
  5. forven_run_optimization, then bake the winning parameters into the file's default_params.
  6. forven_run_robustness — the persisted validation suite the paper gate reads — and poll forven_get_robustness_result.
  7. forven_get_gate_report, then forven_promote_strategy when every gate is green — or when the only failed gate is holdout_pending, because that attempt submits the one-shot held-back test. By default the held-back test runs at paper → live, so on the way into paper you'll only see holdout_pending under Strict paper or with Held-back test runs at set to Gauntlet to paper.
  8. forven_get_session to review everything the session tagged.

Never with force=true: a genuine rejection is the system working. Every tool is in the MCP tools reference.

With the default settings, promotion to paper goes through the research door: a strategy that isn't broken or clearly losing reaches paper, and the deflated Sharpe, walk-forward, jitter, regime-split and held-back checks are recorded there and enforced at paper → live. So holdout_pending shows on the paper hop only when the held-back test runs before paper (Strict paper, or Held-back test runs at → Gauntlet to paper). If the paper pool is full, a passing strategy waits for a slot (paper_queue_full) and is admitted automatically.

Agent tool servers

Integrations, Agent Tool Servers tab: the outbound direction explained, a + Add Server button, and the empty state reading No agent tool servers configured — that's the normal state.The other direction. Most installs never need anything here.

The Agent Tool Servers tab is the reverse: you register an external MCP server (a web search, a filesystem, a ticker API) and its tools become callable by Forven's own agents. Having none is the normal state. Setup is on MCP server; grant a server to an agent on its drawer's Tools tab under Agents.

The underlying API

Each MCP tool is a thin wrapper over the local backend (http://127.0.0.1:8003 by default), so you can drive the Drop Zone directly:

ActionEndpoint
Drop Zone contextGET /api/ai-dropzone/context
Open a sessionPOST /api/ai-dropzone/sessions — body {label, actor, objective}
List sessionsGET /api/ai-dropzone/sessions — query limit, include_closed
Session detailGET /api/ai-dropzone/sessions/<session_id>
Close a sessionPOST /api/ai-dropzone/sessions/<session_id>/close
Safety scan a filePOST /api/strategy-guard/scan
Register a .py filePOST /api/strategies/intake/register-file — body {file_path, session_id?}
Run a backtestPOST /api/backtesting/run — body {strategy_id, dataset_id, session_id?, …}
Submit a robustness testPOST /api/robustness/<test>/submit — walk-forward, cost-stress, param-jitter, monte-carlo, regime-split
Poll a robustness resultGET /api/robustness/results/<result_id>
Gate readinessGET /api/lifecycle/strategies/<id>/readiness (paper strategies: /paper-live-readiness)

If the backend has FORVEN_AUTH_REQUIRED=true, send the x-api-key and x-operator-key headers.

Good to know

  • Overrides are per run. Parameters passed to one backtest never change the strategy's saved defaults; bake winners into the file.
  • Closed is closed. New work gets a new session.
  • Registration isn't promotion. Nothing reaches paper without surviving the gauntlet and the gates.

Forven is research software. Backtests and session results describe past behaviour on historical data; they're illustrative, not predictive, and nothing here is financial advice.