@mylinedchart/mcp-chart-context
MCP server that lets AI agents see your live MyLinedChart desktop chart and propose changes to it — drawings, indicators, the view — every change confirmed by you first. Read-only to your account and orders: it can never place, modify, or cancel a trade. Requires the MyLinedChart desktop app. Full docs: mylinedchart.com/mcp
Tools
get_chart_context | Returns the current MyLinedChart chart and workspace summary: symbol, timeframe, range, provider, connection state, feed type, candle/drawing/indicator counts, diagnostics ID, and data freshness. Read-only. |
get_candles | Returns the most-recent OHLCV candle bars for the current chart. Fields: timestamp (epoch ms), open, high, low, close, volume. Read-only. |
get_drawings | Returns all drawings and price levels for the current chart symbol: trend lines, horizontal levels, note labels, and other overlays. Read-only. |
get_indicators | Returns the configured indicators for the current chart: name, calculation parameters, placement (main/lower), and visibility. Does NOT include series data. Read-only. |
get_provider_status | Returns IBKR connector and market-data provider status: connection state, MarketDataStatus code, feed type (delayed/live), diagnostics ID, and last-updated. Never exposes account IDs, credentials, or bridge URLs. Read-only. |
get_trades | Returns the session's executed trades/fills as chart markers: timestamp, trade type (buy/sell), quantity, price, and symbol. Populated for IBKR users via session fills. Returns empty when no trades are available. Read-only. |
get_all_drawing_symbols | Returns a summary of drawings across ALL symbols in the workspace — drawing count, AI-written count, and labels per symbol. Read-only. |
get_chart_screenshot | Captures the current live chart view as a PNG so the AI can see candles, drawings, indicators, and zoom exactly as rendered. Read-only; does not modify the chart. |
propose_chart_changes | Proposes annotation, indicator, or view changes (add/update/replace/remove) — drawings, indicator config, or the chart's view (symbol/timeframe/chart type/range/session). Every change is confirmation-gated (or auto-applied only if you've marked a source "always allow"). Never an order — no trade/order verb or field exists in this tool. |
Privacy & safety
- Chart-only, confirmation-gated.
propose_chart_changes can draw levels, configure indicators, and set the view — but every change requires your confirmation (or an explicit per-source "always allow"), and AI-made items are tagged separately from your own.
- Authenticated auto-apply. When you tick "always allow", the app and this server complete a one-time handshake and this server signs each later change with a per-source secret; the app auto-applies only signed changes and falls back to the confirm dialog for anything unsigned. The secret is stored in your login Keychain when available, otherwise in an owner-only (0600) file. Residual: this raises the bar and closes the trivial "another local process impersonates a trusted source" attack, but a determined process running as your own user could, with effort, read the secret — acceptable for a draw-only, no-orders channel.
- Account and orders stay read-only. The MCP can never place, modify, or cancel a trade. No order entry, no trading, ever.
- Local. The server runs on your machine alongside the desktop app. Nothing leaves your machine.
- Redacted. Account IDs, credentials, bridge URLs, and session tokens are stripped before any context is returned.
Install
npm install -g @mylinedchart/mcp-chart-context
Node 18 or later required.
Usage
Add to your AI agent's MCP config (claude_desktop_config.json or ~/.claude/settings.json):
{
"mcpServers": {
"mylinedchart": {
"command": "mlc-mcp"
}
}
}
Then:
- Download and open the MyLinedChart desktop app (mylinedchart.com/resources/downloads).
- Enable the MCP server in-app (Settings → MCP).
- Load a chart. Your AI agent can now call the nine tools above — six read-only, two more read-only (screenshot + all-symbols summary), and one that proposes chart changes for you to confirm.
Override the context file path
MLC_CONTEXT_FILE=/custom/path/agent-context.json mlc-mcp
Links