eToro MCP Server
NPM · ETORO-MCP-SERVER · SCANNED AUG 3
Connect AI assistants to eToro for portfolio analysis, market research, and trading.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score →
Supply Chain Security87
- No malware found by supply-chain analysis.Pass
- Only part of the dependency tree could be resolved (95 of 96), so this covers what we could see, not the whole tree.Partial
- No install/post-install scripts declared.Pass
- Only part of the dependency tree could be resolved (95 of 96), so this covers what we could see, not the whole tree. View diagnostics → Partial
Provenance & Transparency97
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Cryptographically verified build provenance (signed, bound to gabrielcerutti/etoro-mcp-server). View diagnostics → Pass
- Clear OSI-approved license (MIT).Pass
- Actively maintained (last published 97 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability77
- AI-judged instruction clarity (excellent).Pass
- Tool/resource definitions use about 1989 tokens (~56/item across 35 items; 35 tools + 0 resources), lean.Pass
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management0
- Stability not yet verified: not enough scan history yet (needs a 30-day window).Unverified
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Unverified: 1 category
A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.
Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.
npm · etoro-mcp-server
claude mcp add gabrielcerutti-etoro-mcp-server -- npx -y etoro-mcp-server
codex mcp add gabrielcerutti-etoro-mcp-server -- npx -y etoro-mcp-server
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"gabrielcerutti-etoro-mcp-server": {
"type": "local",
"command": [
"npx",
"-y",
"etoro-mcp-server"
],
"enabled": true
}
}
} openclaw mcp add gabrielcerutti-etoro-mcp-server --command npx --arg -y --arg etoro-mcp-server
mcp_servers:
gabrielcerutti-etoro-mcp-server:
command: "npx"
args: ["-y", "etoro-mcp-server"] {
"mcpServers": {
"gabrielcerutti-etoro-mcp-server": {
"command": "npx",
"args": [
"-y",
"etoro-mcp-server"
]
}
}
} Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 2 Aug 26 +40
- Install scripts: unverified → pass ▲ security
- Provenance: unverified → pass ▲ security
- Known CVEs: unverified → partial ▲ security
- Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window). security
- The attested source repository moved: gabrielcerutti/etoro-mcp-server security
- MCP protocol: unverified → pass ▲ functional
- Schema quality: unverified → excellent ▲ functional
- License: unverified → pass ▲ functional
- Dependency health: unverified → partial ▲ functional
- Maintenance: unverified → pass ▲ functional
- Licence: MIT functional
- 1 Aug 26 +8
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 31 Jul 26 −18
- Malware scan: pass → unverified ▼ security
- 28 Jul 26 +22
- Tool coverage: unverified → 100 ▲ functional
- First check of Schema quality: unverified functional
- First check of Tool coverage: 100 functional
- First check of Schema quality: fail functional
- First check of Schema quality: pass functional
- 27 Jul 26 24
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 3 Aug 2026 · Analysed npm/[email protected]
Provenance verified
Ecosystem: npm · Outcome: verified
Reason: verified
- Source repo:
- gabrielcerutti/etoro-mcp-server
- Certificate issuer:
- https://token.actions.githubusercontent.com
- Certificate SAN:
- https://github.com/gabrielcerutti/etoro-mcp-server/.github/workflows/build-mcpb.yml@refs/heads/main
- Rekor log index:
- 1393418968
- Predicate type:
- https://slsa.dev/provenance/v1
- Subject digest:
- sha512:703228ed919e69ed890525f372b860e58912a063c808461c01b682bf2d6acc439cde3ff1fafa418706857cd84be89d371ab5b6e25a95478f5c6246184
- Discovery method:
- attestation_endpoint
Dependencies 95 packages
95 packages in the resolved dependency tree · 95 deprecated · 29 stale.
The dependency tree was only partially resolved, so these counts may be incomplete.
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.
etoro_add_watchlist_items Add items to watchlist ~51
Add one or more instruments to an existing watchlist.
| Name | Type | Req | Description |
|---|---|---|---|
| instrumentIds | array | yes | Instrument IDs to add (1–100) |
| watchlistId | integer | yes | Watchlist ID |
No output schema declared.
No examples provided.
etoro_cancel_order Cancel pending order ~34
Cancel a pending limit or market order before it executes.
| Name | Type | Req | Description |
|---|---|---|---|
| orderId | integer | yes | The order ID to cancel |
No output schema declared.
No examples provided.
etoro_close_position Close position ~101
Close an open position (fully or partially). Pass `unitsToDeduct` to close only part of the position; omit it to close fully.
| Name | Type | Req | Description |
|---|---|---|---|
| instrumentId | integer | — | Instrument ID of the position (optional; will be looked up from portfolio if omitted) |
| positionId | integer | yes | The position ID to close |
| unitsToDeduct | number | — | Number of units to close for partial close. Omit for full close. |
No output schema declared.
No examples provided.
etoro_create_comment Comment on a post ~50
Add a comment to an existing post on the eToro social feed.
| Name | Type | Req | Description |
|---|---|---|---|
| content | string | yes | Comment content / text |
| postId | string | yes | ID of the post to comment on |
No output schema declared.
No examples provided.
etoro_create_post Create feed post ~54
Create a new post on the eToro social feed. Optionally tag an instrument.
| Name | Type | Req | Description |
|---|---|---|---|
| content | string | yes | Post content / text |
| instrumentId | integer | — | Optional instrument ID to tag in the post |
No output schema declared.
No examples provided.
etoro_create_watchlist Create watchlist ~39
Create a new watchlist with the given name.
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | yes | Name for the new watchlist (max 100 chars) |
No output schema declared.
No examples provided.
etoro_delete_watchlist Delete watchlist ~33
Delete a watchlist by its ID.
| Name | Type | Req | Description |
|---|---|---|---|
| watchlistId | integer | yes | Watchlist ID to delete |
No output schema declared.
No examples provided.
etoro_discover_users Discover popular investors ~154
Discover popular investors / traders on eToro filtered by performance, risk, and popularity.
| Name | Type | Req | Description |
|---|---|---|---|
| gainMax | number | — | Maximum gain percentage |
| gainMin | number | — | Minimum gain percentage |
| maxDailyRiskScoreMax | number | — | Max daily risk score (1–10, lower = safer) |
| maxMonthlyRiskScoreMax | number | — | Max monthly risk score (1–10, lower = safer) |
| page | integer | — | Page number (default 1) |
| pageSize | integer | — | Results per page (default 20) |
| period | string | yes | Performance period to filter by |
| popularInvestor | boolean | — | Filter to popular investors (eligible for copy) only |
No output schema declared.
No examples provided.
etoro_get_candles Get OHLCV candles ~100
Fetch OHLCV candle data for an instrument. Useful for technical analysis and historical price research.
| Name | Type | Req | Description |
|---|---|---|---|
| count | integer | — | Number of candles to return (default 10, max 1000) |
| direction | string | — | Sort: 'asc' (oldest first) or 'desc' (newest first). Default: desc |
| instrumentId | integer | yes | Instrument ID |
| period | string | yes | Candle period |
No output schema declared.
No examples provided.
etoro_get_closing_prices Get daily closing prices ~20
Fetch historical closing prices across all instruments.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
etoro_get_copiers Get my copiers ~33
Get information about users currently copying the authenticated user's portfolio (country, club, copy duration, amount category).
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
etoro_get_curated_lists Get curated lists ~22
Get eToro's curated / featured instrument lists.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
etoro_get_current_user Get authenticated user identity ~49
Get the identity of the currently authenticated user: Global Customer ID (GCID), real account CID, demo account CID. Useful for self-referential queries and for resolving your own username.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
etoro_get_exchanges List exchanges ~19
List all stock exchanges eToro supports.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
etoro_get_industries List industries ~21
List all industry classifications used for stock instruments.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
etoro_get_instrument_feed Get instrument feed ~72
Get the social feed (posts, discussions) for a specific instrument.
| Name | Type | Req | Description |
|---|---|---|---|
| instrumentId | integer | yes | Instrument ID |
| offset | integer | — | Number of posts to skip (default 0) |
| take | integer | — | Number of posts to retrieve (default 20, max 100) |
No output schema declared.
No examples provided.
etoro_get_instrument_types List instrument types ~28
List all instrument types eToro supports (stocks, crypto, ETFs, etc.).
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
etoro_get_instruments Get instrument details ~39
Get full details for one or more instruments by their IDs.
| Name | Type | Req | Description |
|---|---|---|---|
| instrumentIds | array | yes | Array of instrument IDs (1–100) |
No output schema declared.
No examples provided.
etoro_get_orders List pending orders ~28
List all pending orders (limit orders, entry orders, etc.) for the current account.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
etoro_get_portfolio Get portfolio + P&L ~55
Get the current account's portfolio with P&L: credit, open positions (with current rates), unrealized P&L, total invested, exposure summary, and longest-held position. Respects demo/real mode.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
etoro_get_public_watchlists Get user's public watchlists ~38
Get publicly shared watchlists from a specific user.
| Name | Type | Req | Description |
|---|---|---|---|
| userId | integer | yes | User ID whose public watchlists to retrieve |
No output schema declared.
No examples provided.
etoro_get_rates Get live rates ~38
Get live bid/ask rates for one or more instruments.
| Name | Type | Req | Description |
|---|---|---|---|
| instrumentIds | array | yes | Array of instrument IDs (1–100) |
No output schema declared.
No examples provided.
etoro_get_trade_history Get closed-trade history ~95
Fetch the history of closed trades (entry/exit, P&L, fees, duration). Supports pagination. Primary data source for performance analysis, win-rate, and drawdown research.
| Name | Type | Req | Description |
|---|---|---|---|
| minDate | string | yes | Start date (YYYY-MM-DD). Required by the API. |
| page | integer | — | Page number (default 1) |
| pageSize | integer | — | Results per page (default 100) |
No output schema declared.
No examples provided.
etoro_get_user_feed Get user feed ~76
Get the social feed (posts, discussions) for a specific user by their eToro username.
| Name | Type | Req | Description |
|---|---|---|---|
| offset | integer | — | Number of posts to skip (default 0) |
| take | integer | — | Number of posts to retrieve (default 20, max 100) |
| username | string | yes | eToro username |
No output schema declared.
No examples provided.
etoro_get_user_performance Get user performance ~67
Get a user's trading performance (returns, risk score). Pass `period` for time-windowed performance; omit for lifetime/default summary.
| Name | Type | Req | Description |
|---|---|---|---|
| period | string | — | Optional performance period. Omit for the default lifetime summary. |
| username | string | yes | eToro username |
No output schema declared.
No examples provided.
etoro_get_user_portfolio Get user public portfolio ~35
Get a user's live public portfolio holdings (instruments, allocation).
| Name | Type | Req | Description |
|---|---|---|---|
| username | string | yes | eToro username |
No output schema declared.
No examples provided.
etoro_get_user_profile Get user profile ~31
Get an eToro user's public profile by username.
| Name | Type | Req | Description |
|---|---|---|---|
| username | string | yes | eToro username |
No output schema declared.
No examples provided.
etoro_get_user_trades Get user trade info ~54
Get a user's trade info (averages, win/loss stats) for a specific period.
| Name | Type | Req | Description |
|---|---|---|---|
| period | string | yes | Period to retrieve trade info for |
| username | string | yes | eToro username |
No output schema declared.
No examples provided.
etoro_get_watchlists List watchlists ~20
Get all watchlists for the current user.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
etoro_open_position Open position ~170
Open a new position on an instrument. Provide exactly one of `amount` (USD) or `units` (share/coin count). Respects the configured trading mode (demo or real).
| Name | Type | Req | Description |
|---|---|---|---|
| amount | number | — | Investment amount in USD (mutually exclusive with `units`) |
| instrumentId | integer | yes | Instrument ID to trade |
| isBuy | boolean | yes | true = Buy/Long, false = Sell/Short |
| leverage | integer | — | Leverage multiplier (1, 2, 5, 10, etc.; max 400) |
| stopLossRate | number | — | Stop-loss price |
| takeProfitRate | number | — | Take-profit price |
| units | number | — | Number of units / shares / coins (mutually exclusive with `amount`) |
No output schema declared.
No examples provided.
etoro_place_limit_order Place limit order ~120
Place a limit / entry order that executes when the market reaches the specified price.
| Name | Type | Req | Description |
|---|---|---|---|
| amount | number | yes | Investment amount in USD |
| instrumentId | integer | yes | Instrument ID |
| isBuy | boolean | yes | true = Buy/Long, false = Sell/Short |
| leverage | integer | — | Leverage multiplier (default 1) |
| rate | number | yes | Limit price at which the order should execute |
| stopLossRate | number | — | Stop-loss price |
| takeProfitRate | number | — | Take-profit price |
No output schema declared.
No examples provided.
etoro_remove_watchlist_item Remove item from watchlist ~44
Remove an instrument from a watchlist.
| Name | Type | Req | Description |
|---|---|---|---|
| instrumentId | integer | yes | Instrument ID to remove |
| watchlistId | integer | yes | Watchlist ID |
No output schema declared.
No examples provided.
etoro_rename_watchlist Rename watchlist ~50
Rename an existing watchlist.
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | yes | New name for the watchlist (max 100 chars) |
| watchlistId | integer | yes | Watchlist ID to rename |
No output schema declared.
No examples provided.
etoro_search_instruments Search instruments ~112
Search eToro instruments (stocks, crypto, ETFs, etc.) by keyword or exact ticker.
| Name | Type | Req | Description |
|---|---|---|---|
| exactSymbol | boolean | — | If true, match by exact ticker symbol (e.g. 'AAPL') instead of free-text |
| page | integer | — | Page number (default 1) |
| pageSize | integer | — | Results per page (default 10, max 100) |
| query | string | yes | Search keyword (e.g. 'AAPL', 'Bitcoin', 'Tesla') |
No output schema declared.
No examples provided.
etoro_set_default_watchlist Set default watchlist ~37
Mark a watchlist as the user's default.
| Name | Type | Req | Description |
|---|---|---|---|
| watchlistId | integer | yes | Watchlist ID to set as default |
No output schema declared.
No examples provided.