MCP App Store
by KeenEthics
CMC Markets icon

CMC Markets

By CMC Markets UK plc

Get New App Alerts

Overview

Connect your CMC Markets CFD account to ChatGPT and ask questions about your portfolio, trading activity and the markets. View your positions, balances, watchlists and market data – all from within ChatGPT. View your available live and demo CFD accounts, account balances, margin summaries, open positions, exposure, and unrealised profit or loss. Search for markets, retrieve product information, request real-time or delayed prices, analyse historical market data, and generate candlestick charts, directly in ChatGPT. This integration is read-only. ChatGPT cannot place, amend or close trades, transfer funds, or make any changes to your CMC Markets account. Currently only available for CFD accounts. Information provided through this integration is for informational purposes only and should not be considered personal investment advice or a recommendation to trade. T&Cs apply. 68% of retail investor accounts lose when money trading CFDs with this provider.

Tools

fetch

ChatGPT
Fetch a CMC resource returned by search, including the linked user account list or tool capability documents.

find_products

ChatGPT
Search by friendly market text with account_id and return display names plus the authoritative customer-facing product_type. Product keys and instrument IDs remain internal-only follow-up plumbing; on Spectre accounts, a public SB filter is translated to the technical CFD selector. If results are ambiguous, ask the user to choose using display names or friendly labels only.

get_account_summary

ChatGPT
Return balances and account value summary for one account_id.

get_accounts

ChatGPT
List accounts visible to the linked user, including customer productTypes used to resolve the public category. Active wrapper settings are used internally and raw PMS wrapper codes are not returned. Call this before account-specific tools unless the user already supplied an account_id; if multiple accounts are returned, ask the user to choose.

get_delayed_price

ChatGPT
Return a 15-minute delayed price for one internal-only product key. Resolve the selected account first; on a Spectre account a public SB key is translated to the technical CFD selector. Use only when delayed data is acceptable or real-time pricing is unavailable; identify the product to users by friendly display name and safe product category. The result is labelled delayed, includes delay_minutes and as_at, includes the exact absolute bid/ask spread when both source prices parse, and reports current market_status and price_state separately when available.

get_delayed_prices

ChatGPT
Return 15-minute delayed prices for multiple regular products (non-FXR, non-options). Resolve the selected account first; public SB keys are translated to technical CFD selectors only for a uniquely resolved Spectre account. Each result is labelled delayed, includes delay_minutes and as_at, includes the exact absolute bid/ask spread when both source prices parse, and reports current market_status and price_state separately when available. Use product keys only for tool calls; identify products to users by friendly display name and safe product category.

get_ohlc_data

ChatGPT
Resolve a friendly product query or internal-only product key, apply the selected account's public wrapper mapping, fetch OHLC price history with the retained technical selector, and return normalized numeric candles only. Use only when the user explicitly asks for raw candle data instead of a visual.

get_option_position_details

ChatGPT
Return option contract characteristics and current analytics for one Option position selected by an internal-only position_ref from a fresh get_positions result. Keep position_ref internal. Treat product_type as authoritative rather than inferring from product_display_name; when available, include the friendly product name and returned option contract fields such as type, strike, and expiry. When analytics is present, use analytics.as_of as the source timestamp.

get_pending_orders

ChatGPT
Return account-level unfilled Pending Orders with the account-aware public product wrapper applied to product lookups. Keep Contingent Orders under their parent Pending Order. Excludes Positions and filled Position Orders.

get_position_orders

ChatGPT
Return the filled Position Orders for one selected Position using an internal-only position_ref from a fresh get_positions result. Apply the same account-aware public product wrapper as get_positions and include source stake context when available. Keep Contingent Orders under their parent Position Order. Excludes account-level Pending Orders.

get_positions

ChatGPT
Fetch fresh concise Position summaries and account totals, plus internal-only position_ref values for follow-up calls. Resolve the selected account's customer wrapper before mapping: Treat the structured product_type as authoritative: use it as the position category, never infer a category from product_display_name, and never expand “Cash” to CFD. Label Option rows as Option and keep identical display names with different product_type values distinct. Public product_type is the customer-facing category, while technical CFD selectors remain internal request plumbing for Spectre accounts. Position hierarchy: Account → Position Category → Position → Position Order → Contingent Order. Internal-only category mappings are CfdSbStandardPositions (standard-margin CFD/SB), CfdSbPrimePositions (prime-margin CFD/SB), InvestmentPositions (investment holdings), OptionPositions (options contracts), FxInstrumentPositions (traded pair/instrument), FxCurrencyPositions (one-currency exposure), and FxAggregatedCurrencyPositions (net currency exposure across instruments). use get_position_orders or get_pending_orders for those lifecycle details; never expand internal category names in user-facing text.

get_price

ChatGPT
Live pricing is disabled for the delayed-pricing launch. Use get_delayed_price instead. This handler is retained for implementation compatibility; when enabled, resolve the selected account and translate a public SB key to the technical CFD selector only for a uniquely resolved Spectre account. Identify the product to users by friendly display name and safe product category.

get_price_history

ChatGPT
Return OHLC price history using internal-only instrument_id and the customer-facing product_type from find_products. Resolve the selected account first; on a Spectre account public SB is translated to the technical CFD selector before the upstream request. Use interval ONE_DAY for daily OHLC. Date bounds accept YYYY-MM-DD or UTC datetimes such as 2025-06-09T00:00:00Z. Never expose instrument_id to users.

get_prices

ChatGPT
Live pricing is disabled for the delayed-pricing launch. Use get_delayed_prices instead. This handler is retained for implementation compatibility; when enabled, resolve the selected account and translate public SB keys to technical CFD selectors only for a uniquely resolved Spectre account. Identify products to users by friendly display name and safe product category.

get_products

ChatGPT
Return product details for known internal-only product IDs/product keys. Resolve the selected account before the request and keep technical selectors separate from the authoritative customer-facing product_type; on Spectre accounts, public SB selectors are translated to technical CFD keys. Use returned display names in user-facing text. Financial configuration is included when requested in fields; economics and conversion groups report source availability without inferred values. margin_rate values are Connect percentage strings (for example, "20" means 20%), all decimal values remain exact source strings, holding buy/sell charge directions follow bid/offer carry rates, effective_at is the source carry-rate date, and current/upcoming trading_hours retain source session dates in the requested timezone while typical_trading_hours requests return chronological, non-overlapping normalised session intervals. is_tradable, market_status, and price_state are separate availability signals.

render_candlestick_chart

ChatGPT
Resolve the selected account's customer wrapper, fetch fresh OHLC data when needed, and display a candlestick chart in the ChatGPT app UI. Use this as the terminal tool whenever the user asks to show, draw, plot, render, visualize, or create a candlestick/OHLC/price chart; do not answer with raw data only. Pass query/product_key/instrument_id inputs directly, or pass an existing chart object. The server resolves the chart title from the selected product. Public SB selectors on Spectre accounts are translated to technical CFD requests; the chart title remains the friendly product name. If a friendly query is ambiguous, call find_products and ask the user to choose from display names only. Product keys and instrument IDs are internal-only; do not repeat them to users. Single-product charts only: if the user asks to overlap or overlay charts for two different products, refuse because multi-product chart overlays are not supported; do not call this tool.

submit_feedback

ChatGPT
Store user-approved feedback with CMC for later analysis. This is the only write tool and requires no account_id. Invoke only after the user affirmatively approves the proposed text or explicitly asks to send, report, or tell CMC; a complaint, failure, silence, or continued conversation is not approval. Select general_feedback for feedback, feature_request for a requested capability, and issue when something did not work or produced an error.

Capabilities

InteractiveWrites

Example Prompts

Click any prompt to copy it.

Similar Apps