IG Trading API with MCP (Model Context Protocol) server for AI integration
IG Trading MCP has 20 tools with significant definition gaps. Most tools lack input schemas (only 6 of 20 have visible schemas in the provided code). Descriptions are present but generic (avg ~40 chars, well below the 194-char baseline). Critical security issue: login/logout tools expose authentication as tool parameters rather than using server-side injection. No output schemas documented. Error handling is absent, no recovery guidance, no error categorization. Destructive tools (create_position, close_position) lack confirmation patterns. Tool composition is reasonable (verb_noun naming), but parameter descriptions are minimal. This server would not pass production code review.
Add market to watchlist
Calculate Average True Range indicator
Calculate Supertrend indicator for market data
Close an open trading position
Create a pending order
Create a new trading position
Delete a pending order
Get list of accounts
10 tools (get_accounts, get_positions, get_watchlists, get_working_orders, logout, login, and 4 others) have NO visible input schemas.
Credentials (username, password, API key) exposed as tool parameters in login/logout. Per pattern:secret-injection, credentials must use server-side injection via environment variables or vault. Agent traces log all parameters, secrets leak into logs and prompt history.
Destructive tools (create_position, close_position, create_order, delete_order, update_order) lack confirmation patterns and dry-run support. No error guidance for recovery. Agents can execute irreversible trades without safeguards.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 36 | <=2025-11-25 | v2 |
Get account activity history
Get historical price data for a market
Get detailed market information
Get open positions
Get account transactions
Get user watchlists
Get list of working orders
Authenticate with IG Trading API
End session with IG Trading API
Remove market from watchlist
Search for markets by name or epic
Update a pending order
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract required fields (e.g., dealId from create_position for later close_position). Breaks tool chaining.
Descriptions are generic and under 50 chars for most tools (e.g., 'Get list of accounts', 'Get open positions'). No guidance on WHEN to use each tool, dependencies, or prerequisites.