eToro MCP Server
Provides Model Context Protocol tools for interacting with eToro's public API endpoints, allowing users to fetch portfolios, look up instrument details, and search for instruments while handling CORS restrictions.
README Documentation
eToro MCP Server
This server provides MCP (Model Context Protocol) tools for interacting with eToro's public API endpoints. It allows you to:
- Fetch a user's portfolio using their username
- Look up instrument details by IDs
- Search for instruments by name prefix (autocomplete)
Getting Started
-
Install dependencies:
npm install
-
Start the development server:
npm run dev
-
Build for production:
npm run build
-
Start the production server:
npm start
Available Tools
fetch_etoro_portfolio
Fetches an eToro user's portfolio using their username. The tool automatically converts the username to a Customer ID (CID) internally.
Parameters:
username
: The eToro usernameauthToken
(optional): Authorization token for authenticated requests
fetch_instrument_details
Fetches details for a list of eToro instruments.
Parameters:
instrumentIds
: List of instrument IDs to fetch details forfields
(optional): Fields to include in the response (defaults todisplayname
,threeMonthPriceChange
,oneYearPriceChange
,lastYearPriceChange
)
search_instruments
Searches for eToro instruments by name prefix (autocomplete).
Parameters:
namePrefix
: The prefix to search for in instrument namesfields
(optional): Fields to include in the response (defaults tointernalInstrumentId
,displayname
,internalClosingPrice
)
CORS Limitations
Note that some of the eToro API endpoints have CORS restrictions and should be called from a server-side environment. The tools in this server handle these requests on the server side to avoid CORS issues.
Usage Example
The server exposes a REST API for accessing these tools, which can be called from any HTTP client:
GET /tools # List all available tools
GET /tools/:name/schema # Get tool schema
POST /tools/:name/execute # Execute a tool
Example of using the fetch_etoro_portfolio
tool:
curl -X POST http://localhost:3000/tools/fetch_etoro_portfolio/execute \
-H "Content-Type: application/json" \
-d '{"username": "yoniasia"}'