Skip to main content
The Ithaca installer links a bring-your-own agent (Codex, Claude Desktop, Cursor, or any MCP client) to the hosted MCP server in a single command. It opens a browser approval flow, mints a scoped API key, writes it to a protected config file, sources it into your shell, and registers the MCP server with your agent.

Prerequisites

  • An MCP-compatible AI agent installed locally (Codex, Claude Desktop, Cursor, or any MCP client)
  • Python 3.11+
  • An account at app.doomberg.me (sign in or sign up during the flow)

The one-liner

curl -fsSL https://app.doomberg.me/install.py | python3
That single command downloads the installer and runs it. The installer handles everything else — you never need to copy a key or edit a config file by hand.

What the installer does

1

Start a localhost callback server

The installer spins up a temporary HTTP server on 127.0.0.1 on an ephemeral port and generates a random state token to verify the response.
2

Open the AgentLink approval page

The installer opens your browser to an approval URL showing the agent config — name, MCP endpoint, and the signed-in account. Click Approve.
3

Sign in and mint the API key

If you’re not already signed in, Clerk authentication runs first. On approval, the app mints a scoped API key (dmbg_<env>_<keyid>_<secret>). The plaintext key is returned once — only its salted SHA-256 hash is persisted server-side.
4

Write the config file

The key is written to ~/.config/doomberg/mcp.env with mode 0600 (owner only):
export DOOMBERG_MCP_API_KEY='dmbg_test_<keyid>_<secret>'
export DOOMBERG_MCP_URL='https://mcp.doomberg.me/mcp'
5

Source the env into your shell

The installer appends a sourcing block to your shell RC file (~/.zshrc or ~/.bashrc) and runs launchctl setenv on macOS so GUI agents pick up the key without a restart.
6

Register the MCP server with your agent

The installer detects your agent and registers the MCP endpoint. For Codex:
codex mcp add doomberg \
  --url https://mcp.doomberg.me/mcp \
  --bearer-token-env-var DOOMBERG_MCP_API_KEY

Default scopes

ScopeGrants
data:readCall any data-layer MCP tool or read an MCP resource
strategy:authorCall propose_strategy
runs:writeCall run_skill to create durable runs
runs:cancelCall cancel_run
approvals:readCall list_approvals
artifacts:readCall get_artifact
deploy:backtestSubmit backtest runs
deploy:paperRequest paper-trading promotion (still requires human approval)
deploy:live is deliberately unissuable — paper-only is enforced at the code level.

Next steps

1

Restart your agent

GUI agents cache environment variables at launch. Restart them so they pick up the key.
2

Run the starter prompt

Paste this into your agent:
Use Ithaca to research NVDA — pull price history, screen peers,
check fundamentals and insider activity, propose a momentum strategy,
and backtest it.
3

Watch it live

Open app.doomberg.meSessions. Your agent’s research session streams live via SSE.

Troubleshooting

  1. Run echo $DOOMBERG_MCP_API_KEY in a fresh terminal. If empty, source the file: . ~/.config/doomberg/mcp.env
  2. Restart GUI agents (Codex Desktop, Claude Desktop) — launchctl setenv only affects processes launched after it runs.
  3. Check the web UI → Settings → API Keys. If the key shows revoked: true, re-run the installer.
  1. For Codex: codex mcp list should show doomberg pointing at https://mcp.doomberg.me/mcp.
  2. The agent must support streamable-HTTP transport. stdio-only clients need a local server (see MCP Connection).
  3. The key needs data:read scope to list tools.
FlagDefaultPurpose
--app-urlhttps://app.doomberg.meWeb app base URL
--mcp-urlhttps://mcp.doomberg.me/mcpMCP endpoint
--namedoombergServer name registered with the agent
--clientcodexWhich agent client to auto-register
--timeout300Seconds to wait for browser approval
--no-open(off)Print the approval URL instead of opening a browser