@romaco/mcp
OfficialServer Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| ROMACO_TOKEN | No | API key from romaco.io to unlock Pro features | |
| ROMACO_API_URL | No | ROA-I backend URL | http://localhost:8000 |
| ROMACO_MCP_PORT | No | WebSocket port for MCP server | 7399 |
| ROMACO_CACHE_DIR | No | Override cache directory location |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| romaco_get_chart_contextA | Get a compressed snapshot of the romaco chart state: last price, pane list, indicator/drawing/alert counts, visible range, zoom, render backend. Cost: compressed by default (~1 KB). Set acknowledgeHighTokenCost:true to receive the raw chart context (≈80 KB including all visible candles, every drawing with its points, full indicator params, and capability registries). Only opt in to the raw payload when the user has explicitly asked for it. |
| romaco_get_visible_candlesA | Summarize the OHLCV candles currently visible in the chart viewport: count, first/last candle, OHLC range, volume stats, percent change, ATR approximation. Cost: compressed by default (<1 KB). Set acknowledgeHighTokenCost:true to receive the raw OHLCV array (≈70 KB for a 360-candle viewport). Only opt in to the raw array when the user explicitly asked for raw candles (e.g. for custom indicator math). For analysis, prefer romaco_analyze_market. |
| romaco_add_indicatorA | Add a technical indicator to the chart. Examples: EMA with period 20, RSI with period 14, MACD with params [12, 26, 9], BOLL (Bollinger Bands) with period 20. Params are positional numbers specific to each indicator type. |
| romaco_add_drawingA | Draw a technical-analysis shape on the chart. Romaco-charts ships 33 templates: trendline, horizontalLine, horizontalRay, verticalLine, verticalSegment, verticalRay, parallelChannel, rectangle, brush, path, fibRetracement, fibExtension, fibCircle, fibSpiral, fibFan, longPosition, shortPosition, dateRange, ruler, volumeProfile, text, elliottWave, elliottWave3, elliottWave8, elliottWaveAny, circle, triangle, arrow, parallelogram, abcd, xabcd, gannBox, priceAlert. Required point counts vary per template (use romaco_list_templates to discover them). |
| romaco_set_zoomA | Zoom the chart in or out. Each call zooms by the given factor (default 1.5x). Call multiple times for more zoom. Use romaco_reset_view to return to default fit. |
| romaco_reset_viewA | Reset the chart view to auto-fit all available data. Use after zooming or panning to return to the default overview. |
| romaco_add_alertB | Add a price alert on the chart. Triggered alerts are shown visually. Use romaco_get_chart_context to see existing alerts. |
| romaco_remove_alertA | Remove a specific price alert from the chart. Use romaco_get_chart_context to see existing alerts and their price/direction. |
| romaco_clear_alertsA | Remove all price alerts from the chart. |
| romaco_remove_indicatorA | Remove a technical indicator from the chart by type. Use romaco_get_chart_context to see active indicators. |
| romaco_capture_snapshotA | Capture the current chart as a base64 image for vision-enabled models. Cost: 300–800 KB per image (PNG, lossless) or 100–300 KB (JPEG). Gated. Set acknowledgeHighTokenCost:true to receive the image. Without it the tool returns an error explaining the cost. Only opt in when the USER explicitly asked for a visual snapshot — e.g. to share, to confirm placement, or to feed a vision LLM. |
| romaco_open_paper_positionA | Open a simulated (paper) trading position at the current market price. No real money involved. Positions are shown visually on the chart as entry markers. |
| romaco_clear_drawingsA | Remove all drawings from the chart (trendlines, Fibonacci retracements, horizontal lines, rectangles, channels, annotations). Cannot be undone. |
| romaco_list_panesA | List the chart panes: the main candlestick pane plus every indicator subpanel. Each pane returns its id, the indicators it hosts, and a short alias (e.g. "rsi"). Use the id as |
| romaco_get_indicator_valuesA | Read the current state of an indicator on the chart: last value, previous value, delta, and a per-indicator state classification (RSI: oversold/neutral/overbought; MACD: bull_cross/bear_cross/bullish/bearish; BOLL: squeeze/expansion/neutral; default: rising/falling/flat). Cost: compressed by default (<500 B). Set acknowledgeHighTokenCost:true to receive every bar of every series (~10 KB at 500 candles, scales linearly). Only opt in to raw series when the user explicitly asked for bar-by-bar values (e.g. for custom backtesting). |
| romaco_go_to_timestampA | Move the chart viewport (or replay cursor if in replay mode) to a specific timestamp. Use this to revisit historical setups or scrub through past patterns. Timestamp is in milliseconds. |
| romaco_list_templatesA | List every drawing template available in romaco-charts, with category and required point count. Use this BEFORE romaco_add_drawing to choose a valid drawingType and know how many anchor points it expects. |
| romaco_setup_chartA | One-command chart setup: loads OHLCV data, runs full market analysis, and (if browser is connected) applies a professional indicator preset to the chart. Available presets: trend_analysis, scalping, swing_trading, institutional, momentum, clean. Works headless too — returns MarketSummary even without a connected browser. This is the recommended first tool to call for any analysis session. |
| romaco_load_candlesA | Load OHLCV candle data from a data source. Once loaded, the data persists in the MCP session and is used by all subsequent analysis tools (analyze_market, find_levels, detect_patterns). Default source is "yfinance" (free, no auth). Use "raw" to pass your own candle array. |
| romaco_analyze_marketA | Run full technical analysis on the currently loaded candle data and return a compressed MarketSummary. Includes trend (direction + strength), piecewise linear price action, support/resistance levels (clustering), momentum (RSI, MACD, divergences), volatility (ATR, Bollinger Bands), and detected patterns (H&S, double top/bottom, triangles, flags). Call romaco_load_candles first. Returns ~500 tokens of structured features instead of raw OHLCV. With a ROMACO_TOKEN (Pro), this is computed server-side when available, with automatic fallback to local compute. |
| romaco_thesisA | Produce an actionable trade thesis for the currently loaded candles: a computed bull/bear debate (every point derived from real features, not guessed), a verdict (long / short / stand_aside) with confidence, and a concrete setup (entry, stop, target, reward/risk) plus invalidation. Stands aside when there is no clean setup at acceptable R/R — it will not manufacture a signal. Call romaco_load_candles or romaco_setup_chart first. Returns <2 KB. With a ROMACO_TOKEN (Pro), an enhanced server-side thesis is used when available, with automatic fallback to the local synthesis. After stating the verdict, OFFER to draw it on the user's chart and ASK first (e.g. "Want me to draw this setup on your chart so you can judge it yourself?") — do not call romaco_annotate automatically. Always end your response with: "⚠️ Not investment advice — educational purposes only." |
| romaco_thesis_batchA | Analyze multiple tickers in one call, compare their trade setups, and return a ranked table sorted by R/R × confidence (best setup first). Fetches OHLCV data for each symbol via yfinance (free), runs a deterministic bull/bear thesis (no LLM, no hallucination) for each, then ranks them. After returning the table, OFFER to draw the top-ranked setup on the user's chart: "Draw the [SYMBOL] setup on your chart? (Recommended)" — if the user accepts, call romaco_setup_chart then romaco_annotate. The top-ranked symbol is automatically loaded into session so romaco_annotate runs immediately. Always end your response with: "⚠️ Not investment advice — educational purposes only." |
| romaco_annotateA | Annotate the latest locally-computed trade thesis on the user's browser chart with VISUAL HIERARCHY: support/resistance and the detected pattern are drawn FAINT (gray, dashed/dotted, low opacity) as context; the entry zone is a soft band; entry/stop/target are the BOLD action (longPosition/shortPosition with built-in reward/risk). Honest guard: if the verdict is stand_aside it draws ONLY context and never invents an entry/stop/target. Re-running replaces the previous annotation (group 'romaco-thesis') and leaves the user's own drawings untouched. Call this ONLY after the user accepts the offer to draw. Requires mounted and candles loaded (romaco_setup_chart or romaco_load_candles). |
| romaco_draw_patternA | Draw the GEOMETRY of a detected chart pattern on the user's browser chart: head & shoulders neckline + silhouette, double top/bottom extremes + trigger line, triangle border trendlines, flag polyline — plus faint dotted target/invalidation levels when the pattern projects them. Patterns are re-detected from the loaded candles (deterministic math, never agent-supplied geometry) and only RECENT patterns qualify — if none match, nothing is drawn and that is the honest answer. Each pattern family owns one drawing group, so re-drawing a family replaces it atomically and the user's own drawings are never touched. Offer this after romaco_detect_patterns or romaco_thesis finds something; call it ONLY after the user accepts. Requires mounted and candles loaded (romaco_load_candles), with the SAME symbol/range on the chart. |
| romaco_find_levelsA | Find key support and resistance price levels for the currently loaded candle data using 1D K-means clustering on swing extremes, plus Volume Profile (POC, VAH, VAL). Returns up to 3 support levels (below current price) and 3 resistance levels (above), each with touch count, strength (0..1, touch-count × recency), and last-test timestamp. Call romaco_load_candles first. |
| romaco_detect_patternsA | Scan the currently loaded candle data for classical chart patterns: Head & Shoulders (and inverse), Double/Triple Top/Bottom (M/W — ATR-gated alignment + depth, no range-chop false positives), Ascending/Descending/Symmetric Triangles, Bull/Bear Flags, Parallel Channels (up/down/flat — strict gates: parallel fit, 5+ touches, close containment), Rising/Falling Wedges, Cup & Handle, Rounding Bottom (parabolic basin, no handle required), unfilled momentum Gaps (≥0.5×ATR, gap_up/gap_down), and Fibonacci harmonics: ABCD, Gartley, Bat, Butterfly, Crab (strict ratio gates ±0.05 — the math fits or no pattern is reported). Each hit returns kind, confidence (0..1), target_price, invalidation_price, and anchor_count. Zombie patterns are discarded: if any candle after a pattern completed already breached its invalidation level or tagged its target, the setup is consumed and never reported — even when the current price drifted back into the live band. Cost: compressed by default (<2 KB). Set acknowledgeHighTokenCost:true to receive the full anchor points[] for each hit (≈3× larger). Call romaco_load_candles first. To draw a detected pattern on the chart, offer romaco_draw_pattern. |
| romaco_calculate_position_sizeA | Calculate position size based on account risk management rules. Given account size, risk percentage, entry price, and stop loss — returns exact shares/contracts to trade, total risk in dollars, position value, and risk/reward ratio if target is provided. Pure math — no data source or browser needed. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/romaco-labs/romaco-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server