Skip to main content
Glama
shlomico-tr

eToro MCP Server

Official
by shlomico-tr
README.md
# eToro MCP Server

This server provides MCP (Model Context Protocol) tools for interacting with eToro's public API endpoints. It allows you to:

1. Fetch a user's portfolio using their username
2. Look up instrument details by IDs
3. Search for instruments by name prefix (autocomplete)

## Getting Started

1. Install dependencies:
   ```
   npm install
   ```

2. Start the development server:
   ```
   npm run dev
   ```

3. Build for production:
   ```
   npm run build
   ```

4. 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 username
- `authToken` (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 for
- `fields` (optional): Fields to include in the response (defaults to `displayname`, `threeMonthPriceChange`, `oneYearPriceChange`, `lastYearPriceChange`)

### search_instruments

Searches for eToro instruments by name prefix (autocomplete).

**Parameters:**
- `namePrefix`: The prefix to search for in instrument names
- `fields` (optional): Fields to include in the response (defaults to `internalInstrumentId`, `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:

```bash
curl -X POST http://localhost:3000/tools/fetch_etoro_portfolio/execute \
  -H "Content-Type: application/json" \
  -d '{"username": "yoniasia"}'
``` 

TDQS

B3.3/5.0

Scored across 3 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: fetch_etoro_portfolio retrieves user portfolio data, fetch_instrument_details gets details for specific instruments, and search_instruments performs autocomplete searches. There is no overlap in functionality, making tool selection straightforward for an agent.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern with snake_case: fetch_etoro_portfolio, fetch_instrument_details, and search_instruments. The naming is predictable and readable throughout the set.

Tool Count3/5

With only 3 tools, the server feels thin for a financial trading domain like eToro. While the tools cover basic fetching and searching, the scope suggests more operations (e.g., trading actions, account management) would be expected, making the count borderline low.

Completeness2/5

The toolset is significantly incomplete for an eToro server. It lacks core operations such as placing trades, managing orders, viewing account details, or accessing market data beyond instruments. This creates gaps that will likely cause agent failures in real-world trading scenarios.

Maintenance

ActivityInactive
ResponsivenessNo issues