EdgeLock Trading Journal
Talk to your trading journal.
What it can do
- Edgelock Query Trades: Search the trader's journal for individual trades, newest first. Returns prices, P/L, R, edge tag, market condition, plan adherence, and notes per trade. Use this to inspect or
- Edgelock Get Stats: Aggregate performance stats: trade count, total P/L, win rate, average R, expectancy ($/trade), profit factor — optionally grouped. Win rate excludes break-even trades, matching th
- Edgelock Get Edges: The trader's edge/setup tags with their written definitions (entry rules, criteria) and per-edge risk settings. Call this before judging whether a trade fits an edge, before writin
What data it sees
Do you need an account
No: the server works without sign-in
Talk to your trading journal. Query your real trades, performance stats (win rate, P/L, R-multiples, with grouping that surfaces patterns like win rate by sleep quality), equity curve, edges, A+ setups, and journal — and log trades, save journal entries, define edge rules, and set your standing focus, all by chat. Trade screenshots return as viewable images. The first trading journal with a native MCP server. Per-user OAuth, free account.
How to connect
How to connect EdgeLock Trading Journal to Claude
The server address to paste into Claude settings:
https://edgelock-journal--elliot.run.tools
- Open Claude (claude.ai or the desktop app).
- Go to Settings → Connectors.
- Click Add custom connector.
- Paste the server address copied below into Remote MCP server URL and click Add.
- In a chat, click + → Connectors and switch the new connector on.
Custom connectors are available on Free, Pro, Max, Team and Enterprise plans (Free is limited to one). On Team and Enterprise an organization Owner adds the connector first under Organization settings → Connectors.
Authorization
After you click Add, a sign-in window for the service opens. Sign in with your own account and approve access. Claude never sees your password.
How to connect EdgeLock Trading Journal to ChatGPT
The server address to paste into ChatGPT settings:
https://edgelock-journal--elliot.run.tools
- Open ChatGPT in a browser (chatgpt.com). A Plus, Pro, Business, Enterprise or Edu plan is required.
- Turn on developer mode once: Settings → Apps → Advanced settings → Developer mode.
- Open Settings → Connectors and click Create.
- Fill in the form: Name (anything), Description (one line about what the service does), MCP server URL (copy it below).
- Under Authentication choose OAuth if the service requires sign-in, otherwise None. Click Create.
- In a new chat open + → Apps/Connectors and enable the connector.
OpenAI has renamed this section before (Connectors → Apps/Plugins). If the label differs, search settings for "developer mode". On Business/Enterprise workspaces an admin must allow custom connectors first.
Authorization
On first use ChatGPT opens the service's sign-in window. Sign in and approve access.
How to connect EdgeLock Trading Journal to Cursor
The server address to paste into Cursor settings:
https://edgelock-journal--elliot.run.tools
Fastest: click Open in Cursor below and confirm the prompt.
Manually:
- In Cursor open Settings → Cursor Settings → MCP and click Add new global MCP server.
- Paste the JSON copied below into
~/.cursor/mcp.json(per project:.cursor/mcp.jsonin the repo root). - Save the file. The server appears in the MCP list; authorize it there if asked.
Authorization
If the service needs sign-in, an authorize button appears next to the server in the MCP list.
Server tool list (14)
Raw names from tools/list. Only developers need these.
| edgelock_query_trades | Search the trader's journal for individual trades, newest first. Returns prices, P/L, R, edge tag, market condition, plan adherence, and notes per trade. Use this to inspect or list specific trades; for aggregate questions (win rate, totals, "best edge") prefer edgelock_get_stats. Example: { ticker: "NQ", direction: "short", time_from: "10:00", date_from: "2026-06-01" } |
| edgelock_get_stats | Aggregate performance stats: trade count, total P/L, win rate, average R, expectancy ($/trade), profit factor — optionally grouped. Win rate excludes break-even trades, matching the in-app Dashboard. Aggregation is server-side, so prefer this over edgelock_query_trades for any "what is my win rate / which edge performs best / P&L by X" question. Example: { group_by: "edge", market_condition: "Trending" } answers "which edge works best in trends". |
| edgelock_get_edges | The trader's edge/setup tags with their written definitions (entry rules, criteria) and per-edge risk settings. Call this before judging whether a trade fits an edge, before writing rules with edgelock_set_edge_rules, or to learn the trader's own rulebook. Returns all edges; no parameters. |
| edgelock_get_aplus_setups | Trades the trader marked as A+ (premium) setups — their visual pattern library of best entries. Returns trade details plus short-lived signed URLs for the screenshots (cheap, no inline images). To actually view a setup's chart, pass its trade id to edgelock_get_screenshots. Use when the trader asks about their best setups or wants pattern comparisons. |
| edgelock_get_screenshots | Fetch the chart screenshots attached to a specific trade and return them as inline images you can actually see — use this to read a setup off the chart, compare entries, or describe what happened visually. Get the trade id from edgelock_query_trades or edgelock_get_aplus_setups first (that A+ tool returns signed URLs; this one returns the actual image bytes). Inline images are heavy, so call this only when you need to look at the chart, and for one trade at a time. Defaults to the first 4 screenshots; raise max_images for more. |
| edgelock_get_equity_curve | Cumulative P/L over time (all trade filters apply, so per-edge or per-ticker curves work). Returns equity points plus summary: max drawdown, peak/final equity, best/worst period, win/loss streaks. Use for drawdown, consistency, and streak questions. Periods bucket by UTC date. |
| edgelock_get_journal | Premarket plans, postmarket reviews, daily personal-state check-ins (sleep, mood, stress), and weekly notes by date range. Also returns current_focus — the trader's ONE standing focus item (with who set it and when) plus recent focus history. Use for "what was my plan on X", "what did I write last week", and for reviewing whether trading followed the written plan. Defaults to the most recent 30 days. |
| edgelock_get_market_context | The economic calendar EdgeLock ingests: scheduled economic events (CPI, FOMC, NFP, …) with impact level, forecast, previous, and actual readings. Use for trade-prep questions ("what events are coming up?") and for explaining volatility around a trade. Returns events in the requested date range, or all cached events when no range is given. |
| edgelock_log_trade | Record a new trade in the journal. The server computes P/L and R exactly like the in-app form: P/L from entry/exit prices, position size, and the instrument's contract multiplier (futures point values are known server-side); R = P/L / risk. If the trader only knows their dollar P/L, pass pl instead of exit_price and the exit is back-computed (tick-snapped). Risk defaults from the stop-loss distance, then the edge's per-edge risk setting. ALWAYS pass an idempotency_key — any stable string unique to this trade (e.g. "nq-short-2026-06-11-1432") — so retries can't double-log. Example: { ticker: "NQ", direction: "short", size: 2, entry_price: 18000, stop_loss: 18010, pl: 250, edge: "Breakout", idempotency_key: "nq-short-2026-06-11-1432" } |
| edgelock_update_trade | Patch an existing trade by id — the post-trade review path: set followed_plan and market_condition, append notes, or correct prices/size/risk (P/L and R are recomputed the same way the app does). Notes append by default; pass notes_mode: "replace" to overwrite. Get the id from edgelock_query_trades first, and confirm the returned ticker/timestamp matches the trade the trader meant. Example: { id: 1765432100000, followed_plan: false, notes: "Chased the entry." } |
| edgelock_save_journal | Write to the trading journal for a date: the premarket plan, the postmarket review, and/or the daily personal-state check-in (sleep, mood, stress, life stressors — the inputs behind the sleep/mood performance stats). Notes append to existing text by default; personal-state fields merge with what's already recorded. scope: "weekly" writes the weekly review instead (date may be any day in that week). Example: { date: "2026-06-11", premarket_notes: "A-setups only, max 2 trades.", personal_state: { sleep_quality: "poor", stress_level: "high" } } |
| edgelock_set_focus | Set the trader's ONE standing focus — the single thing they're working on until it's replaced. Exactly one item: one imperative sentence, not a list. Read current_focus from edgelock_get_journal first; if you're replacing an existing focus, acknowledge it to the trader (kept, done, or superseded) before setting the new one. Inserts a new focus_items row with source "coach" — history is preserved, nothing is deleted. Example: { text: "Skip Reversal entries when the market condition is Volatile." } |
| edgelock_set_edge_rules | Write the definition (entry rules / criteria) and/or per-edge risk for one of the trader's edges — the rulebook the coach checks behavior against. ALWAYS read the current edges with edgelock_get_edges first, and when you're overwriting an existing definition, show the trader what it was and confirm before replacing. Help the trader articulate THEIR rules — don't invent a rulebook for them. definition_mode "append" adds to the existing text; "replace" (default) overwrites it (the previous text comes back in the result either way). Risk needs both risk_amount AND risk_type to be meaningful. By default an unknown edge name is an error (so a typo can't spawn a junk edge); pass create: true to deliberately make a new edge. You cannot rename an edge here — historical trades are tagged by name. Example: { edge: "Breakout", definition: "Price breaks the prior-day high on rising volume; enter on the retest, stop below the breakout candle.", risk_amount: 200, risk_type: "dollar" } |
| edgelock_health_check | Audit how well the trading journal itself is set up — NOT trading performance. Checks: edges exist with written definitions and per-edge risk, premarket/postmarket journaling and personal-state check-in cadence on traded days, plan adherence and risk recorded on trades, and an A+ pattern library. Returns a pass/warn/fail checklist with a concrete fix per gap. Use it when the trader asks how complete their journal is, when starting to coach a new trader, or when stats come back hollow (R always 0, no sleep data) and you want to find out why. |