eToro Trading MCP

io.github.n-kostadinovPublished by GitHub account n-kostadinovv1.0.1Updated Oct 26, 2026

197 eToro API tools for agents: market data, watchlists, feeds, demo and real trading.

VerifiedSTDIODesktop onlyFinanceDeveloper Tools

Overview

AI-generated overview

Local MCP server exposing eToro's public API as 156 generated tools for market data, watchlists, feeds, and demo or real trading.

What you can do
  • Read market data, rankings, top assets, price alerts and portfolio search
  • Manage watchlists, clubs, notifications and user or portfolio statistics
  • Inspect balances, cash accounts, sub-accounts and agent portfolios
  • Place and manage demo trades, and copy-trading in demo mode
  • Place real-money trades, copy-trading, transfers and sub-account operations when both safety gates are enabled
  • List and validate configuration locally without contacting eToro
When to use it
Useful when an assistant should work with an eToro account through its API: pulling market and portfolio data, managing watchlists, or running demo trading. Real-money trading is only meant for users who deliberately enable those toolsets and the extra opt-in.
Requirements
Runs locally via npx on Node.js 22 or newer over stdio. Needs eToro API credentials: either the key pair ETORO_API_KEY and ETORO_USER_KEY, or an OAuth bearer token in ETORO_ACCESS_TOKEN, never both. Toolsets are off by default and must be enabled through ETORO_ENABLED_TOOLSETS or a config file. Network access to eToro is required.
Before you install
Credentials are supplied as environment variables (ETORO_API_KEY, ETORO_USER_KEY, ETORO_ACCESS_TOKEN) and grant access to a financial account; start with a demo key. Real-money mutations in the trading-real, copy-trading, transfer and sub-accounts-etoro-trading toolsets require both enabling the tools and setting ETORO_ALLOW_REAL_MONEY=true, and can lose real money. Enabling a toolset enables every tool in it, including write operations. Unofficial project, not affiliated with eToro.

Installation

In SourceWeft

  1. Open eToro Trading MCP in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

eToro Trading MCP

Local Model Context Protocol server for eToro's public Swagger UI API. Its main purpose is configuration for AI agents: you register it once in an MCP client and enable exactly the toolsets your agent needs. The command line exists only for local inspection (tools list, config validate), not for day-to-day use.

This MCP is scanning the eToro APIs for updates daily: an automated daily job downloads eToro's current OpenAPI documents, detects upstream changes, and opens a pull request with fully regenerated and verified tools—nothing is merged or published automatically.

[npm] [CI] [Release] [License: MIT] [Node]

Install with an AI agent

Give this one instruction to your coding or desktop agent:

text
Install and configure this MCP server by following https://github.com/n-kostadinov/etoro-trading-mcp/blob/main/INSTALL.md

The agent-facing guide is also available as raw Markdown.

What you get

  • 156 fine-grained MCP tools generated from eToro Swagger UI—one tool per REST operation.
  • 26 toolsets, all disabled by default: listing toolsets or tools in configuration is the only way to enable them. Enabling a toolset enables every tool in it.
  • Demo-safe example configuration: ETORO_ENABLED_TOOLSETS=market-data,trading-demo enables 28 tools (11 market-data tools and 17 current demo-trading tools) without touching real money.
  • Real-money mutations stay hidden unless you enable their tools and set ETORO_ALLOW_REAL_MONEY=true.
  • Legacy operations remain available only through an explicit includeDeprecated opt-in.
  • TypeScript, Node.js 22+, stdio transport, and one npx command—no global install.
  • Automatic request IDs, shared rate-limit tracking, conservative retries, structured HTTP responses, and credential redaction.

Quick look: configure your agent

All toolsets are disabled by default. A typical, demo-safe MCP client entry:

json
{  "mcpServers": {    "etoro": {      "command": "npx",      "args": ["-y", "[email protected]"],      "env": {        "ETORO_API_KEY": "<user-supplied-application-key>",        "ETORO_USER_KEY": "<user-supplied-user-key>",        "ETORO_ENABLED_TOOLSETS": "market-data,trading-demo",        "ETORO_ALLOW_REAL_MONEY": "false"      }    }  }}

Credentials are environment-only. An API key pair and user key, or an OAuth bearer token, can be used—never both and never a portal password.

Where to find x-api-key and x-user-key

The key pair comes from eToro's API Key Management page—open the annotated screenshot to see exactly which value is which:

  • x-api-key — the Public Key shown at the top of the page. It identifies your application and is supplied to this server as ETORO_API_KEY.
  • x-user-key — one of the keys you create with Create Your API Key; it appears in the Generated Keys list, identifies your eToro user, and is supplied as ETORO_USER_KEY.

Every authenticated request sends both headers together. Start with a Demo key with Read & Write permissions; see INSTALL.md for the full walkthrough.

How to enable tools

PurposeEnvironment variableJSON file property
Enable toolsets (every tool in each toolset)ETORO_ENABLED_TOOLSETS=market-data,trading-demo"enabledToolsets": ["market-data", "trading-demo"]
Enable individual toolsETORO_ENABLED_TOOLS=getRates,getMe"enabledTools": ["getRates", "getMe"]
Permit legacy toolsETORO_INCLUDE_DEPRECATED=true"includeDeprecated": true
Permit real-money mutationsETORO_ALLOW_REAL_MONEY=true"allowRealMoney": true

Environment lists are comma-separated; JSON properties take arrays. Precedence is built-in defaults < JSON file (ETORO_CONFIG) < environment < CLI flags, with higher layers replacing (not merging) lists. The same example as an explicit JSON file (ETORO_CONFIG=/absolute/path/to/etoro-mcp.config.json):

json
{  "$schema": "https://raw.githubusercontent.com/n-kostadinov/etoro-trading-mcp/main/schemas/config.schema.json",  "enabledToolsets": ["market-data", "trading-demo"],  "includeDeprecated": false,  "allowRealMoney": false}

See Configuration for every setting.

Two safety gates stay separate from selection: legacy tools additionally require includeDeprecated, and real-money mutations additionally require allowRealMoney. Real-money mutations live in four toolsets—trading-real, copy-trading, transfer, and sub-accounts-etoro-trading—so enabling those toolsets exposes live-funds operations only when the second gate is also set.

Available toolsets (26)

ToolsetCurrentLegacyToolsetCurrentLegacy
agent-portfolios73price-alerts40
app-data10rankings70
balances60sso-applications50
cash-accounts10sso-scopes10
clubs10sub-accounts20
copy-trading ⚠️50sub-accounts-etoro-trading ⚠️60
copy-trading-demo50top-assets10
data50trading-demo176
identity10trading-real ⚠️176
market-data110transfer ⚠️70
notifications20user-stats40
pi-data10users-info60
portfolio-search10watchlists180

⚠️ marks toolsets containing real-money mutations (gated by allowRealMoney regardless of selection). "Current" tools are enabled with the toolset; "legacy" tools additionally need includeDeprecated. Every operation ID is listed in the tool reference; the toolset breakdown is in toolsets.

Local inspection (secondary)

The CLI never contacts eToro for these commands and works without credentials:

bash
npx -y [email protected] tools list --all    # every operation and its statenpx -y [email protected] config validate     # effective settings and warnings

Documentation

  • INSTALL — complete agent and manual setup guide
  • Configuration — file/environment/CLI precedence and every setting
  • Toolsets — all 26 toolsets with counts
  • Tool reference — every generated tool, request, scope alternative, and replacement
  • Trading — demo versus real money, scopes, asynchronous orders, and safety
  • Security — credentials, local files, diagnostics, and untrusted content
  • Troubleshooting — startup, authentication, limits, and configuration issues

Safety and project status

This is an independent, unofficial project. It is not affiliated with, endorsed by, or sponsored by eToro. eToro names and trademarks belong to eToro. Nothing in this repository is investment advice. Demo trading uses virtual funds; real trading can lose real money and requires two explicit opt-ins.

Current release: 1.3.0, generated from eToro Swagger UI v1.405.0. Daily automation opens a review pull request when eToro's published API changes; it never automatically merges, tags, or publishes.

Contribute

MIT licensed. See CONTRIBUTING.md, CHANGELOG.md, and SECURITY.md for development, release history, and reporting guidance.

Source: README.md at commit b9c0c15

Tools

0
SourceWeft started this package once in an isolated sandbox, without credentials, to list its tools. That failed: the server did not complete the MCP handshake.

Version history

1
  1. v1.0.1LatestOct 26, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts