IG Integration MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| IG_API_KEY | Yes | Your IG API key. | |
| IG_LOG_PATH | No | Path to the rotating log file. Defaults to ~/.cache/ig-mcp/ig-mcp.log. | |
| IG_PASSWORD | Yes | Your IG password. | |
| IG_IDENTIFIER | Yes | Your IG identifier (username). | |
| IG_ENVIRONMENT | Yes | The IG environment: 'demo' or 'live'. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| ig_requestB | Call any documented IG REST endpoint. All POST, PUT, and DELETE calls require confirm=true. |
| accountsA | List the authenticated client's IG accounts. |
| account_preferencesA | Get account preferences, or update them when updates is provided and confirm=true. |
| session_detailsA | Get details of the current IG session without requesting session tokens. |
| switch_accountA | Switch the active IG account. Requires confirm=true. |
| search_marketsA | Search IG markets by name or keyword. |
| market_detailsB | Get an instrument's market details by EPIC. |
| historical_pricesB | Get historical prices for an EPIC. IG supports resolutions such as MINUTE, HOUR, DAY, and WEEK. |
| open_positionsA | List open positions or get one by deal ID. |
| working_ordersA | List open working orders for the active account. |
| deal_confirmationC | Get the confirmation for a submitted deal reference. |
| create_positionA | Create an OTC position from an IG order payload. This can place a trade and requires confirm=true. |
| update_positionB | Update an OTC position's stops/limits. Requires confirm=true. |
| close_positionB | Close one or more OTC positions. Requires confirm=true. |
| create_working_orderB | Create an OTC working order. Requires confirm=true. |
| update_working_orderA | Update an OTC working order. Requires confirm=true. |
| delete_working_orderA | Delete an OTC working order. Requires confirm=true. |
| watchlistsA | List watchlists or get a watchlist by ID. |
| mutate_watchlistC | Create/delete a watchlist or add/remove a market. Requires confirm=true. |
| client_sentimentA | Get client sentiment for all markets, one market, or related markets. |
| stream_updatesA | Collect bounded Lightstreamer updates. PRICE, ACCOUNT, TRADE, and CHART subscriptions are supported; deprecated MARKET is excluded. |
| stream_ohlc_snapshotA | Seed an in-progress OHLC candle from REST, then update it from 5-minute chart stream data. Use REST historical prices for completed candles. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 22 tools
Most tools map unambiguously to a resource and action, and the descriptions clearly distinguish OTC positions from working orders and streaming variants. However, ig_request overlaps with every specific endpoint and stream_ohlc_snapshot vs stream_updates could be confused, so it is not a perfect 5.
The set mostly uses snake_case and commonly pairs verbs with resources for mutations, such as create_position, update_working_order, and close_position. Reads are inconsistent noun phrases like accounts, open_positions, and watchlists rather than list_* verbs, and ig_request, mutate_watchlist, and account_preferences break the action/resource pattern.
22 tools is on the heavy side for an MCP surface, falling in the borderline 16-25 range. For a broad IG REST integration, each tool covers a meaningful capability, but the generic ig_request means the surface could be trimmed without losing much functionality.
The toolset covers the core trading lifecycle: positions, working orders, watchlists, account preferences, market data, sentiment, deal confirmations, and streaming. It lacks a dedicated transaction/closed-trade history tool and a get-working-order-by-ID equivalent, but ig_request provides a workaround for those gaps.