MCP server for Trading 212 API - portfolio, orders, pies, dividends, and analytics
Connect your AI assistant to your Trading 212 brokerage account. Ask questions about your portfolio, place trades, manage pies, and analyze dividends - all through natural language.
Works with Claude Desktop, Claude Code, ChatGPT, Gemini, Cursor, Windsurf, and any client that supports the Model Context Protocol (MCP).
ENVIRONMENT=demo to test with virtual money first| Category | Tools | Examples |
|---|---|---|
| Analytics | Portfolio summary, performance, dividends, activity | "Show me my portfolio P&L" |
| Trading | Market, limit, stop, stop-limit orders | "Buy 5 shares of AAPL" |
| Portfolio | Positions, cash balance, account info | "What's my cash balance?" |
| Pies | Create, update, duplicate, delete pies | "Show my pie allocations" |
| Market Data | Instrument search, exchange schedules | "Search for Tesla" |
| History | Past orders, dividends, transactions, CSV exports | "Show my dividend history" |
These combine multiple API calls into single high-level responses:
fetch_portfolio_summary - Complete snapshot: total value, P&L, cash, top holdings, allocationfetch_portfolio_performance - Per-position returns with dividends, best/worst performersfetch_dividend_summary - Income analysis grouped by ticker and monthfetch_recent_activity - Combined timeline of trades and transactionsuvx trading212-mcp-server
Or via pip:
pip install trading212-mcp-server
From the Trading 212 app: Settings > API (Beta). You need both the API Key and Secret - the server uses Basic Auth.
Add to claude_desktop_config.json (Windows: %APPDATA%\Claude\, Mac: ~/Library/Application Support/Claude/):
{
"mcpServers": {
"trading212": {
"command": "uvx",
"args": ["trading212-mcp-server"],
"env": {
"TRADING212_API_KEY": "<your-api-key>",
"TRADING212_API_SECRET": "<your-api-secret>",
"ENVIRONMENT": "live"
}
}
}
}
claude mcp add trading212 -- uvx trading212-mcp-server
Then set the environment variables in your shell or .env file.
Same command and env vars - configure per your client's MCP docs. Set ENVIRONMENT to demo for paper trading.
git clone https://github.com/KyuRish/trading212-mcp-server.git
cd trading212-mcp-server
cp .env.example .env # fill in your API keys
uv sync
uv run -m trading212_mcp_server.server
claude_desktop_config.json for source installs{
"mcpServers": {
"trading212": {
"command": "uv",
"args": ["run", "--directory", "<path-to-repo>", "-m", "trading212_mcp_server.server"],
"env": {
"TRADING212_API_KEY": "<your-api-key>",
"TRADING212_API_SECRET": "<your-api-secret>",
"ENVIRONMENT": "live"
}
}
}
}
| Tool | Description |
|---|---|
fetch_portfolio_summary | Complete portfolio snapshot with P&L and allocations |
fetch_portfolio_performance | Per-position returns, dividends, best/worst performers |
fetch_dividend_summary | Dividend income by ticker and month |
fetch_recent_activity | Combined timeline of trades and transactions |
| Tool | Description |
|---|---|
fetch_account_info | Account metadata (currency, ID) |
fetch_account_cash | Cash balance, invested value, P&L |
fetch_all_open_positions | All portfolio positions with live prices |
search_specific_position_by_ticker | Single position lookup by ticker |
| Tool | Description |
|---|---|
place_market_order | Buy/sell at current market price |
place_limit_order | Buy/sell at specified price or better |
place_stop_order | Trigger order at stop price |
place_stop_limit_order | Stop trigger with limit execution |
fetch_all_orders | List all pending orders |
fetch_order | Get specific order by ID |
cancel_order | Cancel a pending order |
| Tool | Description |
|---|---|
fetch_pies | List all investment pies |
fetch_a_pie | Pie details with instrument allocations |
create_pie | Create a new pie with target weights |
update_pie | Update pie settings and allocations |
duplicate_pie | Clone an existing pie |
delete_pie | Remove a pie |
| Tool | Description |
|---|---|
search_instrument | Search tradeable instruments by ticker or name |
search_exchange | Search available exchanges |
| Tool | Description |
|---|---|
fetch_historical_order_data | Past orders with pagination |
fetch_paid_out_dividends | Dividend payment history |
fetch_transaction_list | Deposits and withdrawals |
fetch_exports_list | List CSV export reports |
request_csv_export | Request a new CSV export |
Tested with these MCP clients:
| Client | Status |
|---|---|
| Claude Desktop | Supported |
| Claude Code | Supported |
| Cursor | Supported |
| Windsurf | Supported |
| Any MCP-compatible client | Supported |
Built by Rishabh Dogra.
If this server saves you time, a coffee would mean a lot.
MIT
Source-derived launch command. Check the maintainer’s required arguments and credentials before running:
uvx trading212-mcp-serverMerge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.
{
"mcpServers": {
"io-github-kyurish-trading212-mcp-server": {
"command": "uvx",
"args": [
"trading212-mcp-server"
]
}
}
}Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.
Claude Desktop setup referencetrading212-mcp-serverpypiio.github.KyuRish/trading212-mcp-server works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.
~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.~/.cursor/mcp.jsonRestart Cursor for changes to take effect..vscode/mcp.jsonReload VS Code window for changes to take effect.~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect..mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.