DocumentationReference

MCP tools reference

Generated by scripts/docgen/mcp-tools. Do not edit by hand — run make docs-regen after changing internal/mcp/tools.go.

These are the tools canary mcp exposes to MCP clients (Claude Code, Claude Desktop, or any other MCP host). Every public tool uses the canonical canary_* namespace. Each entry lists the tool name an LLM picks against, the description the LLM reads to decide whether to invoke, and the parameter schema the LLM binds against.

20 tools total. Listed in registration order, aligned with the agent-appropriate CLI commands. Local lifecycle commands such as setup, update, restart, mcp, daemon, and version are intentionally excluded from MCP tools.

canary_status

Read daemon, gateway, storage, and source health. Use for connectivity or degraded-input diagnosis; use canary_brief for the desk decision surface.

No parameters.

canary_trading_status

Read local broker-write readiness, pinned context, freeze state, and blockers. It only reports readiness and does not place, modify, or cancel orders.

No parameters.

canary_settings

Read platform settings and observed data quality. This tool cannot change settings or authorize a broker action.

No parameters.

canary_orders_open

Read-only current-context local order lifecycle view. It does not place, modify, cancel, or transmit orders and is not a broker statement.

No parameters.

canary_orders_history

Read-only bounded local order-journal history for the current account and mode. It does not place orders and is not an IBKR Activity Statement.

Parameters:

Name Type Required Description
event_limit integer no maximum lifecycle events returned per grouped order row; default 20, max 200. When truncated, rows carry events_truncated and total_events_count.
limit integer no maximum grouped order rows to return; default 50, max 500
since string no optional inclusive lower boundary as YYYY-MM-DD UTC date or RFC3339 timestamp; default is 7 days before until
until string no optional upper boundary as RFC3339 timestamp, or YYYY-MM-DD UTC date to include that whole UTC day; default is now

canary_order_status

Read-only lifecycle and typed callback evidence for one locally journaled order. Broker free text is withheld; this tool cannot preview or change the order.

Parameters:

Name Type Required Description
id string yes order identifier to inspect: local order_ref such as canary-20260528-093000, IBKR order ID, or permanent ID. Orders journaled before the product was renamed carry an ibkr- prefix instead; pass those through unchanged

canary_account

Read account financials. The authority block identifies one concrete account and mode with availability, freshness, typed reason, and field presence; missing is never zero.

No parameters.

canary_positions

Read held positions and exposure. The authority block identifies one concrete account and mode with availability, freshness, and typed reason; stale or unavailable empty rows do not prove an empty book.

Parameters:

Name Type Required Description
symbol string no filter to a single underlying symbol (case-insensitive)
type string no filter to stock or option positions
view string no response shape: full returns existing stocks/options/by_underlying detail plus protection_coverage; risk returns compact portfolio aggregates, top exposures, option-health counts, protection coverage, and flagged option legs

canary_strategies

Read how Canary groups currently held option legs into proportional strategies and which legs still need review. Use canary_positions for the full book. This tool cannot preview, submit, place, modify, cancel, or transmit an order.

No parameters.

canary_technical

Analyze explicitly named stock or ETF symbols using daily trend, relative strength, ATR, and liquidity evidence. This is analysis, not order entry.

Parameters:

Name Type Required Description
benchmark string no relative-strength benchmark, default SPY
currency string no optional ISO currency override for symbols, e.g. USD or EUR
exchange string no optional IBKR exchange override for symbols, e.g. SMART or IBIS
lookback_days integer no calendar-day history lookback; default 420, enough for 200-DMA and 126 trading-bar returns
market string no optional route for symbols, not the benchmark; omit/use us for SMART/USD, use de for Xetra/IBIS EUR equities
primary_exchange string no optional primary-exchange hint for symbols, e.g. ARCA for ETFs or IBIS for Xetra
symbols array yes ticker symbols, e.g. ["AAPL","MSFT","NVDA"]

canary_calendar

Read official exchange sessions to plan work around market opens, closes, holidays, and early closes. Supports US cash equities, US listed options, and Xetra. Preserve timezone, source, coverage bounds, and session.state: unknown is not closed and cannot supply a trading schedule. This is an exchange-session calendar, not an economic-release or earnings calendar; use canary_brief for current held-name event context. Read-only; no scheduling, refresh, or broker actions.

Parameters:

Name Type Required Description
at string no optional RFC3339 instant including a timezone offset; evaluates the market at that instant and takes precedence over date
date string no optional YYYY-MM-DD in the market timezone; evaluates that date at local noon. Omit for now; at takes precedence when both are supplied
days integer no number of forward calendar dates including the selected date, not trading sessions; default 14, maximum 400
market string no exchange-session market; default us. US listed options models the regular 16:15 session; per-class exceptions and global/curb hours are not modeled

canary_macro

Read cached economic releases, central-bank meetings and recent official publications for the trading day. Includes BLS, BEA, Federal Reserve and ECB sources with per-feed availability, original times and a bounded window. Missing or stale feeds do not mean nothing is scheduled. Preserve source_label/date-only precision and truncation. This is official-source coverage, not a licensed general-news or consensus feed. Use canary_calendar for exchange hours and canary_brief for the current book and risk. Read-only; does not fetch, acknowledge, schedule or trade.

No parameters.

canary_regime

Read the detailed broad-market regime: all eight indicators, independent clusters, confirmation eligibility, gamma horizons and skew, source health, and stale or unavailable evidence. Choose view=monitor for a compact dashboard projection or view=full (default) for detailed evidence. Use after canary_brief or for an explicit market-regime question; use canary_stress for how that market state affects the held portfolio. Gamma is a conditional amplification/damping model; open interest does not identify dealer inventory or market direction. Read-only; no history or refresh controls.

Parameters:

Name Type Required Description
include_profiles boolean no Include large gamma profile arrays; false by default. Scalar measurements, thresholds, warnings and freshness are always retained.
view string no full (default) retains detailed evidence; monitor uses the shared compact dashboard projection. monitor cannot include gamma profile arrays.

canary_stress

Read the full current portfolio-stress assessment: margin, P&L and tape shocks, exposure, concentration, protection coverage, held-name and options risk, market indicators, and source health. Use after canary_brief or for an explicit portfolio-risk question; use canary_regime for the detailed broad-market dashboard. Preserves the same shared assessment used by the app. Missing inputs cannot become healthy zero values. Advisory and read-only; cannot preview or submit orders or change limits.

No parameters.

canary_brief

Start here for the daemon's current desk summary: regime stage and verdict, portfolio-stress summary, breadth coverage, modeled gamma response and expiry horizons, and observed 25-delta option skew. Preserve freshness, rankability, source warnings and unavailable values. Gamma models potential amplification or damping; open interest does not prove bullish/bearish intent or dealer inventory, and put-call skew is relative option pricing, not a forecast. Use canary_regime for all market indicators and confirmation details, canary_stress for full portfolio-risk evidence, canary_status to diagnose degraded sources and canary_edge for retrospective decision outcomes; drill into canary_positions or canary_account only when the brief points there. Read-only; never acknowledges the brief or writes to the journal.

No parameters.

canary_reporting

Read shared IBKR statement-reporting setup, broker reachability, backfill state, absent sections, present-empty sections, and proven missing fields for Recon and Edge. Read-only; returns no Query ID or token and cannot validate candidates, refresh reports, or change setup.

No parameters.

canary_edge

Call with no arguments after canary_brief for an automatic one-year review of historical decision price outcomes: action/direction coverage, comparisons of the same decisions at different horizons, monthly consistency, concentration, and exact local protection provenance when available. SPY, QQQ, DIA, and VIX supply informational context. Options separately report option lifecycle coverage, proven flat-to-flat exact-contract positions, broker-reported realized option episodes, and the latest dated open option snapshot; these scopes overlap and must not be added. Use a returned change_id or returned option_id for broker-fact details; completed position cycles are already expanded in options.cycles. Do not use for current risk, order decisions, forecasting, or causal claims. Do not infer skill, strategy win rates, trade intent, or risk effectiveness. Use canary_brief for current portfolio risk and canary_positions for current holdings. Read-only; parameters select retained evidence and cannot refresh data.

Parameters:

Name Type Required Description
change_id string no optional opaque change ID returned by a prior canary_edge call
horizon_sessions integer no optional explicit decision-price-impact horizon; omitted selects the longest adequately covered horizon automatically
limit integer no maximum findings; default 3
option_id string no optional opaque option ID returned by a prior canary_edge call
window string no optional review override; default 365d

canary_rules

Read the daemon-evaluated desk rulebook, ranked findings, policy identity, and explicit unknown inputs. Advisory evidence never authorizes an order.

Parameters:

Name Type Required Description
symbol string no optional underlying symbol (case-insensitive) to narrow per-rule offender lists; portfolio verdicts are unaffected

canary_proposals

Read-only protection candidates for existing positions. It can refresh discovery but cannot preview, submit, place, modify, cancel, or transmit an order.

Parameters:

Name Type Required Description
refresh boolean no when true, ask the daemon to recompute proposals before returning; otherwise returns the latest daemon snapshot
show boolean no when true, records a shown audit event for returned proposal rows

canary_opportunities

Read-only option-exercise candidates for existing positions. It can refresh discovery but cannot preview, exercise, submit, or expose an execution token.

Parameters:

Name Type Required Description
refresh boolean no when true, ask the daemon to recompute opportunities before returning; otherwise returns the latest daemon snapshot
show boolean no when true, records a shown audit event for returned opportunity rows