Trading 212 MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| T212_ENV | No | Environment: demo (default) or live | demo |
| T212_API_KEY | Yes | Your Trading 212 API key | |
| T212_API_SECRET | Yes | Your Trading 212 API secret |
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": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_account_summaryA | Retrieve a full breakdown of the Trading 212 account: account ID, primary currency, cash metrics (available to trade, in pies, reserved for orders), investment metrics (current value, total cost, realised and unrealised P&L), and total account value. Rate limit: 1 req / 5s. |
| get_instrumentsA | Retrieve the complete list of instruments available for trading on Trading 212. Each instrument includes: ticker (unique ID, e.g. AAPL_US_EQ), name, ISIN, currency, type (STOCK, ETF, etc.), max open quantity, extended-hours support, and working schedule ID. Data refreshes every 10 minutes. Rate limit: 1 req / 50s. |
| get_exchangesA | Retrieve all accessible exchanges and their working schedules (open/close times, pre-market, after-hours, breaks). Each exchange has an ID that maps to the workingScheduleId on instruments. Data refreshes every 10 minutes. Rate limit: 1 req / 30s. |
| get_open_positionsA | Retrieve all open positions in the Trading 212 account. Each position includes: instrument details (ticker, name, ISIN, currency), quantity held, average price paid, current price, shares in pies, shares available for trading, and wallet impact (current value, total cost, unrealised P&L, FX impact). Optionally filter by a specific ticker. Rate limit: 1 req / 1s. |
| get_pending_ordersA | Retrieve all currently active (pending) orders — those not yet filled, cancelled, or expired. Each order includes: type (LIMIT, STOP, MARKET, STOP_LIMIT), side (BUY/SELL), ticker, quantity, limit/stop prices, status, time-in-force, and creation date. Rate limit: 1 req / 5s. |
| get_order_by_idA | Retrieve a single pending order by its unique numerical ID. Useful for checking the status of a previously placed order. Rate limit: 1 req / 1s. |
| place_market_orderA | Place a MARKET order for immediate execution at the next available price. Use a POSITIVE quantity to BUY and a NEGATIVE quantity to SELL (e.g. -10.5 sells 10.5 shares). WARNING: Market orders may experience price slippage. This endpoint is NOT idempotent — duplicate calls create duplicate orders. Rate limit: 50 req / 1m. |
| place_limit_orderA | Place a LIMIT order that executes at a specified price or better. Use a POSITIVE quantity to BUY (fills at limitPrice or lower) and a NEGATIVE quantity to SELL (fills at limitPrice or higher). NOT idempotent — duplicate calls create duplicate orders. Rate limit: 1 req / 2s. |
| place_stop_orderA | Place a STOP order that triggers a market order once the stop price is reached (triggered by Last Traded Price). Use a POSITIVE quantity to BUY and a NEGATIVE quantity to SELL (stop-loss). NOT idempotent. Rate limit: 1 req / 2s. |
| place_stop_limit_orderA | Place a STOP-LIMIT order: when the Last Traded Price reaches stopPrice a limit order is placed at limitPrice. Protects against slippage. Use POSITIVE quantity to BUY, NEGATIVE to SELL. NOT idempotent. Rate limit: 1 req / 2s. |
| cancel_orderA | Cancel an active, unfilled order by its unique ID. Cancellation is not guaranteed if the order is already being filled. A successful response means the cancellation request was accepted. Rate limit: 50 req / 1m. |
| get_historical_ordersA | Retrieve paginated history of all past orders (filled, cancelled, expired) with fill details, taxes, realised P&L. Optionally filter by ticker. Uses cursor-based pagination. Rate limit: 6 req / 1m. |
| get_dividendsA | Retrieve paginated history of paid-out dividends. Each entry includes: amount (in account currency), gross amount per share, instrument details, payment date, quantity, and dividend type. Optionally filter by ticker. Rate limit: 6 req / 1m. |
| get_transactionsA | Retrieve paginated history of account transactions (deposits, withdrawals, fees, transfers). Each entry includes: amount, currency, timestamp, reference ID, and type. Rate limit: 6 req / 1m. |
| request_csv_reportA | Initiate async generation of a CSV report for a date range. Choose which data to include: orders, dividends, transactions, interest. Returns a reportId — use get_reports to poll status and get the download link when finished. Rate limit: 1 req / 30s. |
| get_reportsA | Retrieve a list of all requested CSV reports and their current status (Queued, Processing, Running, Finished, Failed, Canceled). When status is 'Finished', the downloadLink field contains a URL to download the CSV file. Rate limit: 1 req / 1m. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/senjoyee/trading212-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server