eToro MCP
The eToro Public API, as a Model Context Protocol server.
Point your MCP client at this URL and sign in with your eToro account. Five tools open the Public API — three to discover what it can do, two to call it — eight more answer the common questions about your account in a single round trip, and nine handle trading, real and demo, by preparing each request for your approval and tracking it, rather than executing anything themselves.
Connect
{
"mcpServers": {
"etoro": {
"url": "https://mcp.etoro.com"
}
}
}
Authentication is OAuth. Your client opens an eToro sign-in the first time it calls a tool that needs one, and you can review and revoke that access from your eToro settings at any time. There is no API key to paste and no secret to keep.
Tools
| Tool | What it does |
|---|---|
get-tags |
The catalog's groups and how many routes each holds. The cheap first call when you are orienting. |
get-all-routes |
Every route with a one-line explanation, filterable by keyword or group. |
get-route-spec |
The full OpenAPI spec for one route: parameters, request body, responses, required scopes and rate limit. |
execute-read |
Runs a read — every GET, plus the handful of POST routes that only use the body to carry a query. |
execute-write |
Runs a state-changing request, for routes this server serves. |
get-my-portfolio-summary |
Your portfolio: positions, exposure and P&L, resolved to instrument names. |
get-my-balances |
Every account you hold and what is in it. |
get-my-positions-and-orders |
Open positions and pending orders, real or demo. |
get-my-trading-history |
Closed positions over a period. |
get-my-watchlists |
Your watchlists and what is on them. |
get-my-profile-and-scopes |
Who you are signed in as, and what this connection is allowed to do. |
get-instruments-overview |
Prices, quotes and trading rules for a batch of instruments. |
get-trader-profile-summary |
A public investor's performance, risk and portfolio. |
prepare-place-order |
Checks an order against your eligibility, a live quote, the costs and your balance — on the real or the demo account — and shows exactly what you would be agreeing to. Places nothing. |
prepare-cancel-order |
Checks a pending order — to open a position, or to close one — can still be cancelled (a filled one cannot) and shows what cancelling would release. |
prepare-edit-position |
Checks a new stop-loss or take-profit against the market, and shows the current levels beside the proposed ones. |
prepare-close-position |
Checks a full or partial close against the open position, and shows the units and the P&L it would realize. |
prepare-copy-trader |
Runs eToro's own copy eligibility check for an investor and an amount. |
prepare-stop-copying |
Finds the copy and shows what closing (or detaching) it would do. |
confirm-task |
Sends a prepared request to eToro once you have explicitly confirmed it. eToro executes it only as you have approved it in your eToro account, and only after its own eligibility, risk and compliance checks. |
get-task / list-tasks |
What happened to a submitted request, and your recent ones. |
How trading works here
This server cannot place a trade. It has no tool that executes one, and the trading routes — real and demo — cannot be called through it directly.
What it can do is draft a request you asked for: check it against live data, show you
exactly what you would be agreeing to, and — only once you say yes to one question that restates
it, such as “Send to eToro: buy $10 of BTC on your real account?” — send it to eToro. You stay the
decision-maker: eToro executes a request only as you have approved it in your eToro account, and only
after its own eligibility, risk and compliance checks; it may reject one. You control that approval in
eToro, including switching trading tasks from AI connectors off — the prepare tools then say so and
draft nothing. get-task tells you how a request went, and nothing is reported as done until
it actually is.
Everything that reads works directly: portfolios, positions, market data, rankings, watchlists and the social feed.
How it decides
The eToro Public API labels each route with whether calling it moves real funds. This server serves only the routes labelled as not doing so. A route the API has not labelled at all is withheld too: an unclassified route that changes state is treated as though it moves money, so a route added upstream tomorrow is never exposed here by accident.
The trading routes are withheld whatever their label, demo included. They are not reachable by naming a path — the only way to them is a request you prepared, reviewed and approved.