IG Trading MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| IG_API_KEY | Yes | API key generated for the selected IG environment. | |
| IG_PASSWORD | Yes | IG login password. | |
| IG_ACCOUNT_ID | No | Optional active account ID. IG's login-selected account is used when omitted. | |
| IG_IDENTIFIER | Yes | IG login identifier. | |
| IG_ENVIRONMENT | No | demo or live; defaults to demo. | demo |
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_list_accountsC | List the accounts available to the authenticated IG client. |
| ig_get_account_preferencesC | Return preferences for the active IG account. |
| ig_get_activityC | Return active-account history for offset-aware ISO-8601 datetime inputs. |
| ig_get_transactionsB | Return transactions for an offset-aware ISO-8601 datetime range. |
| ig_search_marketsC | Search IG instruments by a market name or symbol. |
| ig_get_marketB | Get dealing rules, snapshot, and details for an instrument epic. |
| ig_get_historical_pricesA | Get historical OHLC prices for an offset-aware range, reusing cached periods. |
| ig_get_current_candleA | Get the latest forming IG chart candle via a shared streaming subscription. Supported resolutions are SECOND, MINUTE, MINUTE_5, MINUTE_15, HOUR, HOUR_4, and DAY. Derived resolutions are built from IG streaming candles. Call again for a newer snapshot; MCP tool responses cannot be pushed after they return. |
| ig_list_categoriesB | List instrument categories enabled for the active account. |
| ig_list_category_instrumentsC | List the instruments within an IG category. |
| ig_list_positionsC | List open positions in the active account. |
| ig_get_positionB | Get a specific open position by deal ID. |
| ig_list_working_ordersB | List open working orders in the active account. |
| ig_get_deal_confirmationB | Get the confirmation of a submitted deal using its deal reference. |
| ig_create_positionC | Create an OTC position. This may execute a leveraged trade. |
| ig_update_positionB | Update an OTC position's stops or limits. This changes account risk. |
| ig_close_positionC | Close all or part of an OTC position. This may realize profit or loss. |
| ig_create_working_orderC | Create an OTC working order that can open a leveraged position later. |
| ig_update_working_orderC | Update an OTC working order. |
| ig_cancel_working_orderC | Cancel an OTC working order. |
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 20 tools
Each tool targets a distinct resource and action, with clear separation between positions, working orders, market data, and account history. Even similar-sounding tools like get_activity and get_transactions are differentiated by their descriptions (account activity vs. financial transactions).
All tools follow the ig_ prefix followed by a consistent verb_noun pattern (e.g., list_positions, get_market, create_position, cancel_working_order). The naming is uniform and predictable.
20 tools is a bit above the typical 3-15 range, but the breadth of the IG trading domain (accounts, markets, positions, working orders, history) justifies the count. Each tool serves a distinct purpose with no redundancy.
The tool set covers the full lifecycle for positions (create, get, list, update, close) and working orders (create, list, update, cancel), plus market data and account history. There are no obvious dead ends; operations like get_deal_confirmation support post-submission workflows.