Skip to main content
Glama
gabrielcerutti

eToro MCP Server

eToro MCP Server

Connect any MCP-compatible AI assistant (Claude, Cursor, and others) to your eToro account for portfolio analysis, market research, and trading.

CI DeepWiki Node.js TypeScript MCP SDK License: MIT

OverviewInstallationConfigurationTools


Overview

MCP server wrapping the eToro public API, exposing 35 tools for AI assistants (Claude Desktop, Cursor, Claude Code, etc.). Built for investment research and portfolio analysis — assess positions, research instruments and themes, vet popular investors for copy-trading, backtest DCA strategies against historical data. Trading is fully supported, but use care: letting an AI agent place real-money orders is genuinely risky, and you should treat it as such.

Related MCP server: IBKR-MCP-Server

What Can You Do With It?

The server is built around research workflows first. The examples below show real multi-tool conversations — the assistant chains several etoro_* calls together to answer a single question. Numbers are representative; actual responses draw from live eToro data.

1. Portfolio health check

The assistant calls etoro_get_portfolio to pull your open positions, then etoro_get_instruments to resolve instrument IDs to names and sectors, and etoro_get_rates for live prices. It assembles a full snapshot from the raw data.

You: How is my portfolio doing? Break it down by sector and flag any trouble spots.

Assistant: I pulled your portfolio (98 open positions), resolved each instrument, and fetched live rates. Here's the picture:

  • Cash: $22,265 • Invested: $45,782 • Positions: 98 open

Sector breakdown:

Sector

% of invested

Top holdings

Technology

38%

GOOG, META, MSFT, NVDA, AMZN

ETFs & Index

22%

VOO, QQQ, SOXX, ARGT, IEUR

Crypto

15%

BTC, ETH

Healthcare

10%

UNH

Financials

8%

SAP

Other

7%

LDO + others

Trouble spot: Your tech sleeve is 38% of invested capital and concentrated in 5 mega-caps. A single sector drawdown hits hard — consider whether the ETF overlap (QQQ, SOXX) is intentional diversification or accidental doubling-down.

Tools used: etoro_get_portfolioetoro_get_instrumentsetoro_get_rates


2. Instrument research

Search is keyword-based — etoro_search_instruments finds instruments by ticker or company name, then you chain etoro_get_instruments for full details and etoro_get_candles for price history.

You: Pull up NVDA — I want the current price and a weekly chart for the last month.

Assistant: Searching for "NVDA" and pulling candle data:

  • NVIDIA Corporation (NVDA) — InstrumentID 1545

  • Live rate: Bid $208.14 / Ask $208.40

  • Exchange: NASDAQ • Type: Stock • Sector: Semiconductors

Weekly candles (last 5 weeks):

Week of

Open

High

Low

Close

Mar 22

$172.65

$181.20

$167.01

$167.61

Mar 29

$165.26

$177.47

$162.95

$176.72

Apr 5

$176.12

$189.98

$173.66

$188.53

Apr 12

$184.15

$201.69

$183.98

$201.64

Apr 19

$199.02

$210.92

$197.23

$208.26

NVDA rallied +27% off the March low ($162.95 → $208.26), with each weekly candle printing a higher low. Momentum is strong but the move is getting extended.

Tools used: etoro_search_instrumentsetoro_get_instrumentsetoro_get_ratesetoro_get_candles


3. Copy-trading due diligence

Vet popular investors using real public data. The assistant calls etoro_get_user_profile for identity and stats, then etoro_get_user_performance for the full yearly return history.

You: Vet user jeppekirkbonde for a long-term copy allocation. I want the honest risk picture.

Assistant: Here's what the data says on jeppekirkbonde:

  • Name: Jeppe Kirk Bonde • PI Level: 6 (highest tier)

  • Copiers: 25,000+ • AUM: $200M+

  • Background: MSc Finance, Copenhagen Business School

Year-by-year performance (real data):

Year

Return

Year

Return

2013

+8.9%

2020

+36.9%

2014

−14.3%

2021

+15.9%

2015

+22.4%

2022

−19.2%

2016

+81.1%

2023

+23.9%

2017

+150.9%

2024

+21.0%

2018

−10.9%

2025

+37.7%

2019

+45.1%

Average annual return: +30.7% across 13 full years. Three down years (2014, 2018, 2022) with a max drawdown of −19.2% in the 2022 tech selloff.

What you should know:

  1. This is a concentrated, long-only US tech strategy. The +150.9% in 2017 and +81.1% in 2016 are outliers — don't expect those every year.

  2. Down years are real: 2022 cost −19.2%. If you can't stomach a 20% paper loss, this isn't the right copy.

  3. 25K+ copiers and $200M+ AUM means his moves have market impact in smaller names. Slippage is a factor.

Reasonable for multi-year capital if you accept the volatility. Not appropriate for money you need inside 18 months.

Tools used: etoro_get_user_profileetoro_get_user_performance


4. Watchlist management

The full watchlist lifecycle — create, populate, rename, and curate — all through natural language.

You: Create a "Semiconductor" watchlist and add NVDA, AMD, ASML, TSM, and AVGO to it.

Assistant: Done:

  1. Created watchlist "Semiconductor" (ID: 48291)

  2. Searched and resolved all 5 tickers to instrument IDs

  3. Added: NVDA (1545), AMD (2842), ASML (5765), TSM (3901), AVGO (6192)

Your watchlists now:

Watchlist

Items

Recently Invested

38

My Watchlist

34

Stocks pre-screening

69

ETFs

54

Semiconductor ← new

5

People & Smart Portfolios

26

Crypto

6

Commodities

5

Tools used: etoro_create_watchlistetoro_search_instrumentsetoro_add_watchlist_itemsetoro_get_watchlists


5. DCA backtest with historical candles

Use etoro_get_candles to pull years of OHLCV data, then simulate a dollar-cost averaging strategy — no orders placed, pure research.

You: Backtest a $500/month DCA into QQQ over the last 3 years. What would I have today?

Assistant: Pulling weekly QQQ candles (156 weeks) and simulating $500 on the first trading day of each month:

  • Total invested: $18,000 (36 months × $500)

  • Units accumulated: ~38.2 QQQ

  • Current value: $25,365 (at $664.01/share)

  • Gain: +$7,365 (+40.9% on invested capital)

  • Approx. IRR: ~12.8%/year

Worst stretch: Nov 2022 – Mar 2023, paper drawdown of −22% on the accumulated stack. You bought through it — those discounted shares are now your biggest winners.

No orders placed. This is research only.

Tools used: etoro_get_candlesetoro_get_rates (for current price)


6. Macro-aware portfolio review

Combine portfolio data with the assistant's general knowledge to get a risk assessment tied to your actual holdings.

You: My portfolio is heavy on tech. Flag any risks from this week's macro calendar.

Assistant: Your tech exposure totals ~$17,400 (38% of invested capital) across GOOG, META, MSFT, NVDA, AMZN and the SOXX/QQQ ETFs. This week's watch-list:

  • Wed — CPI print (core consensus +0.3% MoM). A hot number re-prices rate-cut odds → tech multiples compress first.

  • Thu — Fed speakers (Williams, Waller). Hawkish language strengthens USD, pressuring mega-cap international revenue.

  • Fri — NVDA earnings (after close). Binary event for your largest single-stock position.

What this means for you:

  • A hot CPI + hawkish Fed combo could knock 3–5% off your tech sleeve short-term.

  • NVDA earnings will drive ~8% of your portfolio's week-over-week change. Know your thesis before it prints.

Tools used: etoro_get_portfolioetoro_get_instrumentsetoro_get_rates (+ assistant's macro knowledge)


⚠️ Letting an AI execute real-money trades is risky. The same natural-language interface that makes research fast also makes it easy to misinterpret intent — a typo, an ambiguous number, a stale context from earlier in the conversation. Mitigations: start in ETORO_TRADING_MODE=demo, use read-only API keys for anything that doesn't need write access, and require explicit confirmation in your conversation before any real order.

All examples above are research-only. When you're ready to execute, the same interface places orders. Orders always respect the configured ETORO_TRADING_MODE (demo for paper, real for live).

You: Buy $500 of NVDA at market.

Assistant: Confirmed — opening a market position:

  • Instrument: NVDA (1545)

  • Amount: $500

  • Rate: $208.40 (ask)

  • Mode: demo

Position opened — ID 3418072. This is a demo trade, no real money involved.

Full trading coverage includes: open position by amount or units (etoro_open_position), close or partially close (etoro_close_position), limit/entry orders (etoro_place_limit_order), cancel pending orders (etoro_cancel_order), and listing pending orders (etoro_get_orders).


Composing with Other MCP Servers

MCP servers are designed to be composed. The eToro server handles portfolio data, live rates, candles, and trading — but an AI assistant can call tools from multiple servers in a single conversation, filling in the gaps that no single API covers.

Example: earnings risk check across two servers

With eToro + a financial data server (e.g. Financial Datasets, Alpha Vantage, or similar):

You: Do any of my open positions have earnings this week? Flag the ones I should watch.

Assistant: Pulling your portfolio from eToro (98 positions), then checking the earnings calendar:

  • NVDA — reports Thursday after close. Your position: $4,200 (9.2% of invested). This is a binary event — expect ±8% move.

  • GOOGL — reports Tuesday after close. Your position: $3,100 (6.8%). Consensus is +12% YoY revenue; ad revenue mix is the swing factor.

  • UNH — reported Monday pre-market (already priced in). Beat on EPS, slight miss on membership growth.

The rest of your holdings have no earnings this week. Your biggest event risk is NVDA Thursday — it's your largest single-stock position.

This isn't possible with the eToro server alone — it knows your positions but not the earnings calendar. The financial data server knows the calendar but not your portfolio. Together, the assistant connects both.

Natural pairings

Pair with

What it adds

Example workflow

Research & ratings (Morningstar)

Analyst research, fair value estimates, moat ratings, fund data

"What's Morningstar's fair value for my tech holdings?" — pull portfolio, fetch ratings

News & web search (Brave Search, Tavily)

Breaking news, sentiment, event context

"Any news on my holdings today?" — pull portfolio, search each ticker

Financial data (Financial Datasets, Alpha Vantage)

Fundamentals, earnings, SEC filings, economic calendar

"Show me P/E ratios for my tech positions" — pull holdings, fetch fundamentals

Market data (Polygon.io, Twelve Data, Massive)

Real-time streaming, options chains, screener universes

"Screen the S&P 500 for momentum setups, then add the top 5 to my watchlist"

Free alternative (Yahoo Finance)

Prices, financials, options, market news (no API key needed)

"Compare earnings growth for NVDA vs AMD over the last 4 quarters"

Configuration

Just add multiple servers to your MCP config — the assistant sees all tools from all servers:

{
  "mcpServers": {
    "etoro": {
      "command": "npx",
      "args": ["-y", "etoro-mcp-server"],
      "env": {
        "ETORO_API_KEY": "your-api-key",
        "ETORO_USER_KEY": "your-user-key",
        "ETORO_TRADING_MODE": "demo"
      }
    },
    "financial-data": {
      "command": "npx",
      "args": ["-y", "financial-datasets-mcp-server"],
      "env": {
        "FINANCIAL_DATASETS_API_KEY": "your-key"
      }
    },
    "news": {
      "command": "npx",
      "args": ["-y", "tavily-mcp-server"],
      "env": {
        "TAVILY_API_KEY": "your-key"
      }
    }
  }
}

The assistant will automatically chain tools across servers when a question requires it — no extra wiring needed.


Installation

Download the latest .mcpb file from the Releases page and drag it into Claude Desktop:

Extensions → drag etoro-{version}.mcpb into the window

You'll be prompted for your API Key, User Key, and trading mode. That's it.

TIP

Get your keys ateToro → Settings → Trading → Create New Key. Choose your environment (Demo or Real) and the permissions you need (Read or Write).


Via npm (Claude Code, Cursor, Continue, Cody, …)

Add this to your client's MCP config — it'll launch the server from the published npm package on demand, no local install needed:

{
  "mcpServers": {
    "etoro": {
      "command": "npx",
      "args": ["-y", "etoro-mcp-server"],
      "env": {
        "ETORO_API_KEY": "your-api-key",
        "ETORO_USER_KEY": "your-user-key",
        "ETORO_TRADING_MODE": "demo"
      }
    }
  }
}

For Claude Code, the equivalent CLI command:

claude mcp add etoro \
  -e ETORO_API_KEY=your-api-key \
  -e ETORO_USER_KEY=your-user-key \
  -e ETORO_TRADING_MODE=demo \
  -- npx -y etoro-mcp-server

Pin a specific version with etoro-mcp-server@1.1.0 in the args if you want stability over auto-updates.


From source (developers)

If you want to hack on the server locally, clone the repo and build:

npm install
npm run build

Then point your MCP client at the built file (dist/index.js):

claude mcp add etoro-mcp \
  -e ETORO_API_KEY=your-api-key \
  -e ETORO_USER_KEY=your-user-key \
  -e ETORO_TRADING_MODE=demo \
  -- node /path/to/etoro-mcp/dist/index.js

Or in claude_desktop_config.json / equivalent:

{
  "mcpServers": {
    "etoro-mcp": {
      "command": "node",
      "args": ["/path/to/etoro-mcp/dist/index.js"],
      "env": {
        "ETORO_API_KEY": "your-api-key",
        "ETORO_USER_KEY": "your-user-key",
        "ETORO_TRADING_MODE": "demo"
      }
    }
  }
}

MCP Registry

This server is listed on the MCP Registry under the name io.github.gabrielcerutti/etoro-mcp-server. The registry is the public index of MCP servers — think of it as a package registry for AI tools, analogous to what npm is for JavaScript libraries. MCP-compatible clients use it to discover and install servers programmatically without users having to hand-copy configuration.

Each tagged release of this repository is auto-published to the registry by GitHub Actions (via OIDC), so the entry always tracks the latest npm version.


Configuration

Setting

Env var

CLI arg

Default

API Key

ETORO_API_KEY

--api-key

(none)

User Key

ETORO_USER_KEY

--user-key

(none)

Trading Mode

ETORO_TRADING_MODE

--trading-mode

demo

Trading mode: demo routes all trading calls through eToro's virtual account. Set to real only when you're ready to trade with real money.

WARNING

trading_mode must match the environment of your API key. A demo key used with real mode (or vice versa) will cause authentication errors.


Tools (35 total)

All tools are prefixed with etoro_ for namespace isolation when composed with other MCP servers.

Market Data (8)

Tool

Description

etoro_search_instruments

Search instruments by keyword (e.g. "AAPL", "Bitcoin") or exact ticker

etoro_get_instruments

Get full instrument details by IDs (1–100)

etoro_get_instrument_types

List all instrument types (stocks, crypto, ETFs…)

etoro_get_industries

List industry classifications

etoro_get_exchanges

List stock exchanges

etoro_get_candles

Get OHLCV candle data for technical analysis and backtesting

etoro_get_closing_prices

Get historical daily closing prices

etoro_get_rates

Get live bid/ask rates

Portfolio & Trading (7)

Tool

Description

etoro_get_portfolio

Get portfolio + P&L: positions, unrealized P&L, exposure summary, longest holding

etoro_get_orders

List all pending orders (limit / entry)

etoro_get_trade_history

Closed-trade history (entry/exit, P&L, duration). Primary source for performance research

etoro_open_position

Open position by USD amount or units (unified tool)

etoro_close_position

Close an open position fully, or partially via unitsToDeduct

etoro_place_limit_order

Place a limit / entry order

etoro_cancel_order

Cancel a pending order

User & Discovery (7)

Tool

Description

etoro_get_current_user

Get the authenticated user's identity (GCID, real / demo CIDs)

etoro_get_user_profile

Get a user's public profile

etoro_get_user_performance

Get performance summary (optionally by time period)

etoro_get_user_trades

Get a user's trade info for a period

etoro_get_user_portfolio

Get a user's live public portfolio holdings

etoro_discover_users

Discover popular investors filtered by gain, risk score, period

etoro_get_copiers

Get info about users copying your portfolio

Watchlists (9)

Tool

Description

etoro_get_watchlists

List your watchlists

etoro_create_watchlist

Create a watchlist

etoro_delete_watchlist

Delete a watchlist

etoro_rename_watchlist

Rename a watchlist

etoro_add_watchlist_items

Add instruments to a watchlist

etoro_remove_watchlist_item

Remove an instrument from a watchlist

etoro_set_default_watchlist

Set default watchlist

etoro_get_curated_lists

Get eToro's curated lists

etoro_get_public_watchlists

Browse a user's public watchlists

Social Feeds (4)

Tool

Description

etoro_get_instrument_feed

Get social feed for an instrument

etoro_get_user_feed

Get social feed for a user

etoro_create_post

Create a social feed post

etoro_create_comment

Comment on a post


Disclaimer

This project is an unofficial, community-built integration. It is not affiliated with, endorsed by, or supported by eToro. Use it at your own risk.

  • Not financial advice. Nothing in this server, its documentation, or its example outputs constitutes investment advice, a recommendation, or a solicitation to buy or sell any financial instrument.

  • You are responsible for your trades. The server can place real-money orders when configured in real mode. Verify every order before confirming, and understand that AI assistants can misinterpret intent.

  • API changes may break things. This server depends on eToro's public API, which can change without notice. Always pin a version in production.

  • Demo first. Start with ETORO_TRADING_MODE=demo and only switch to real after you're confident in your setup.


Contributing

Contributions are welcome — bug reports, feature requests, and pull requests.

The DeepWiki page gives an auto-generated overview of the codebase architecture — useful starting point before diving in.

  1. Fork the repo and create a branch from main

  2. Run npm install && npm run build to verify your changes compile

  3. Run npm test to make sure existing tests pass

  4. Open a PR with a clear description of what changed and why


License

MIT — use it, fork it, build on it.

Available Tools

35 tools
etoro_add_watchlist_itemsAdd items to watchlistA
Idempotent

Add one or more instruments to an existing watchlist.

ParametersJSON Schema
NameRequiredDescriptionDefault
watchlistIdYesWatchlist ID
instrumentIdsYesInstrument IDs to add (1–100)

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The idempotentHint annotation already declares idempotency. The description adds no behavioral context beyond what the annotation provides, such as side effects or rate limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One sentence with no wasted words, efficiently conveying the tool's purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with annotations and no output schema, the description is adequate but could mention that the watchlist must exist or provide error handling hints.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already explains both parameters. The description adds no additional meaning beyond the schema fields.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (add), resource (instruments to an existing watchlist), and scope (one or more). It distinguishes from sibling tools like create_watchlist and remove_watchlist_item.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use (adding items to a watchlist) but does not explicitly state when not to use or provide alternatives. No prerequisites are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

etoro_cancel_orderCancel pending orderA
DestructiveIdempotent

Cancel a pending limit or market order before it executes.

ParametersJSON Schema
NameRequiredDescriptionDefault
orderIdYesThe order ID to cancel

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare idempotentHint=true and destructiveHint=true. The description adds only the timing constraint ('before it executes'), but does not clarify behavior for invalid or already-executed orders, or any other side effects beyond cancellation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence with no unnecessary words or repetition. It efficiently conveys the tool's purpose and scope.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple 1-parameter tool with no output schema, the description is adequate. It covers the main action and conditions. However, it could mention typical success/error behavior to avoid ambiguity, but given the low complexity, it is mostly complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema_description_coverage is 100%, so baseline is 3. The description does not add any additional meaning beyond the schema's parameter description. It does not explain how to obtain the orderId or any constraints beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'cancel' and the resource 'pending limit or market order', with a specific condition 'before it executes'. This distinguishes it from sibling tools like etoro_close_position, which closes an executed position.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for pending orders only ('before it executes'), but does not explicitly mention when not to use it or suggest alternatives like etoro_get_orders for obtaining orderId. No exclusions or context on order lifecycle is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

etoro_close_positionClose positionA
Destructive

Close an open position (fully or partially). Pass unitsToDeduct to close only part of the position; omit it to close fully.

ParametersJSON Schema
NameRequiredDescriptionDefault
positionIdYesThe position ID to close
instrumentIdNoInstrument ID of the position (optional; will be looked up from portfolio if omitted)
unitsToDeductNoNumber of units to close for partial close. Omit for full close.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark destructiveHint=true. The description adds useful behavioral context about partial close functionality and that omitting unitsToDeduct results in full close. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences, front-loaded with purpose, followed by parameter usage. No unnecessary text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and simple mutation, the description adequately explains how to use the tool. It lacks return value info but is sufficient for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers 100% of parameters with descriptions. The description adds value only for unitsToDeduct by clarifying its omission for full close. Baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the action ('Close an open position') and the two modes (fully or partially), clearly distinguishing from sibling tools like etoro_open_position or etoro_cancel_order.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use the tool (when you want to close a position) and mentions optional partial close. It doesn't explicitly state when not to use it, but the context of open position vs order is clear from sibling names.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

etoro_create_commentComment on a postA

Add a comment to an existing post on the eToro social feed.

ParametersJSON Schema
NameRequiredDescriptionDefault
postIdYesID of the post to comment on
contentYesComment content / text

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations set destructiveHint=false and openWorldHint=true, and the description's 'Add a comment' aligns with non-destructive write behavior. However, the description does not add behavioral traits beyond what annotations already provide, such as rate limits, visibility, or moderation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, focused sentence that efficiently communicates the tool's purpose with no redundancy or unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the absence of an output schema, the description is adequate for basic understanding but does not cover potential error responses, preconditions, or side effects that an agent might need for robust invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and both parameters have clear descriptions in the schema. The tool description adds no additional meaning beyond the schema, so baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (add a comment), the resource (existing post), and the context (eToro social feed). It distinguishes itself from sibling tools like etoro_create_post by specifying commenting on existing content.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use (when you have a post to comment on) but lacks explicit guidance on alternatives or when not to use this tool. No mention of prerequisites or comparisons with similar sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

etoro_create_postCreate feed postA

Create a new post on the eToro social feed. Optionally tag an instrument.

ParametersJSON Schema
NameRequiredDescriptionDefault
contentYesPost content / text
instrumentIdNoOptional instrument ID to tag in the post

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide openWorldHint=true and destructiveHint=false. The description adds no extra behavioral context (e.g., authentication needs, rate limits, or side effects), offering minimal added value beyond what annotations convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One concise sentence that efficiently conveys the core purpose and an optional feature. No wasted words; information is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with 2 parameters and no output schema, the description covers basic purpose and optional feature. However, it omits return value expectations and any additional constraints (e.g., character limits), leaving some gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents parameters well. The description's phrase 'Optionally tag an instrument' slightly reinforces, but adds no new meaning beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Create') and the resource ('post on the eToro social feed'), with an additional note on optional instrument tagging. It distinguishes itself from sibling tools like etoro_create_comment.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use versus when not to use, nor any prerequisites. The description implies a use case (creating a social feed post) but lacks direction on alternatives or conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

etoro_create_watchlistCreate watchlistA

Create a new watchlist with the given name.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesName for the new watchlist (max 100 chars)

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=false, indicating it's not destructive. The description does not add behavioral context beyond the creation action, such as validation rules or outcomes for duplicate names. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, focused sentence (8 words) that directly communicates the tool's purpose with no extraneous information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple create operation with one parameter and no output schema, the description is adequate but lacks information about return value or behavior on duplicate names. Minimalist but functional.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and already describes the 'name' parameter with constraints. The description simply restates the parameter reference without adding new meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the action ('Create') and the resource ('a new watchlist') with a specific condition ('with the given name'). It effectively distinguishes from siblings like etoro_delete_watchlist and etoro_rename_watchlist.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives such as renaming or deleting watchlists. The description only states what it does without contextual usage tips.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

etoro_delete_watchlistDelete watchlistB
DestructiveIdempotent

Delete a watchlist by its ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
watchlistIdYesWatchlist ID to delete

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotation already declares destructiveHint=true and idempotentHint=true, which the description does not contradict. The description adds no additional behavioral context such as irreversibility or permission requirements, but it is consistent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise at 6 words, containing no unnecessary information. While structure is minimal, it is effective for a simple operation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple delete tool with one parameter and clear annotations, the description is adequately complete. It does not need to explain return values as there is no output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for the single parameter, which is already described as 'Watchlist ID to delete'. The description adds no further meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (delete) and resource (watchlist) and specifies the identification method (by ID). However, it does not differentiate from sibling tools like etoro_remove_watchlist_item or etoro_create_watchlist.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives such as etoro_remove_watchlist_item for removing individual items or etoro_get_watchlists for listing. No exclusions or prerequisites are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

etoro_discover_usersDiscover popular investorsA
Read-only

Discover popular investors / traders on eToro filtered by performance, risk, and popularity.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number (default 1)
periodYesPerformance period to filter by
gainMaxNoMaximum gain percentage
gainMinNoMinimum gain percentage
pageSizeNoResults per page (default 20)
popularInvestorNoFilter to popular investors (eligible for copy) only
maxDailyRiskScoreMaxNoMax daily risk score (1–10, lower = safer)
maxMonthlyRiskScoreMaxNoMax monthly risk score (1–10, lower = safer)

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and openWorldHint. The description adds context on filtering dimensions but does not disclose behavioral traits like pagination, ordering, or result limits beyond what annotations imply.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence of 14 words, front-loaded with verb and resource. No unnecessary information, every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the 8 parameters, no output schema, and read-only annotations, the description adequately covers the essence. It omits pagination behavior and default sorting, but schema details compensate. Slightly incomplete for complex discovery tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 100% description coverage for all 8 parameters, so the description adds minimal value. It groups parameters under 'performance, risk, popularity' but provides no extra semantics beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Discover' and the resource 'popular investors/traders', with specific filtering dimensions (performance, risk, popularity) that distinguish it from sibling tools like get_user_profile or search_instruments.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use versus alternatives. The description implies usage for discovering top investors but lacks direct context on when not to use or mention of alternative tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

etoro_get_candlesGet OHLCV candlesA
Read-onlyIdempotent

Fetch OHLCV candle data for an instrument. Useful for technical analysis and historical price research.

ParametersJSON Schema
NameRequiredDescriptionDefault
countNoNumber of candles to return (default 10, max 1000)
periodYesCandle period
directionNoSort: 'asc' (oldest first) or 'desc' (newest first). Default: desc
instrumentIdYesInstrument ID

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate read-only and idempotent behavior. The description adds that the data is historical and for analysis, but does not disclose additional behavioral traits like rate limits or output format.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences that front-load the purpose ('Fetch OHLCV candle data') and include a secondary use-case sentence. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is adequate for a simple read-only tool with full schema documentation. It could mention the return format (array of candles) but is otherwise complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for all 4 parameters. The description does not add any extra meaning beyond the schema, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly specifies the verb 'Fetch' and the resource 'OHLCV candle data for an instrument', distinguishing it from sibling tools like get_closing_prices. It also provides context for use in technical analysis.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description only vaguely suggests use for 'technical analysis and historical price research' without explicitly stating when to use this tool versus alternatives such as get_closing_prices or get_rates.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

etoro_get_closing_pricesGet daily closing pricesA
Read-onlyIdempotent

Fetch historical closing prices across all instruments.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate read-only and idempotent behavior. The description adds 'historical' and 'all instruments' but does not disclose additional behavioral traits like date range or rate limits. With annotations present, the description is adequate but not enriching.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, no wasted words, front-loaded with action and resource. Highly concise and structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with no parameters and no output schema, the description is mostly complete. It could specify what 'historical' means (e.g., time range) or the format of closing prices, but it is sufficient for basic understanding.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema is empty (0 parameters), so schema coverage is 100% trivially. Baseline for 0 parameters is 4, and the description adds no additional parameter information, which is acceptable.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states action (fetch), resource (historical closing prices), and scope (across all instruments). This differentiates it from sibling tools like etoro_get_candles which are instrument-specific.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use (when needing closing prices for all instruments) but does not explicitly mention when not to use or alternatives. Since there are no parameters, usage is straightforward, but guidance could be improved.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

etoro_get_copiersGet my copiersA
Read-only

Get information about users currently copying the authenticated user's portfolio (country, club, copy duration, amount category).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the read-only nature is clear. The description adds value by specifying the types of information returned (country, club, duration, amount category), which helps the agent understand the output format beyond the fact it's read-only.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-structured sentence that immediately states the action and the returned data fields. No unnecessary words, perfectly front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description lists the fields returned (country, club, copy duration, amount category), which provides a good overview despite the lack of an output schema. It adequately covers the tool's simple functionality, though it could specify the data types or structure more precisely.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are no parameters, so schema coverage is trivially 100%. The description adds context by explaining what data the tool returns, which compensates for the lack of parameter documentation and helps the agent understand the tool's purpose.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves information about users copying the authenticated user's portfolio, specifying the kind of data (country, club, copy duration, amount category). It distinguishes from siblings like get_portfolio and get_user_performance by focusing specifically on copiers.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the use case of checking who is copying the user, but does not explicitly state when to use it over alternatives like get_user_performance or get_portfolio. No exclusion criteria or when-not-to-use guidance is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

etoro_get_curated_listsGet curated listsB
Read-onlyIdempotent

Get eToro's curated / featured instrument lists.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and idempotentHint, covering the safety profile. The description adds that the lists are 'curated / featured,' which provides modest behavioral context. However, it does not disclose anything else (e.g., whether the returned data is static or dynamic). With annotations present, the description adds some value but not a lot, garnering a 3.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence of only 6 words, which is extremely concise and front-loaded. However, it could benefit from a bit more context (e.g., what these lists contain), but it earns a 4 for being succinct without being underspecified.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (no parameters, no output schema, no nested objects), the description is minimal but sufficient to convey the basic purpose. It does not elaborate on the return format or potential use cases, which would be helpful for an AI agent. A score of 3 reflects adequate but not comprehensive completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, and the input schema is empty with 100% coverage. According to the rubric, for 0 parameters the baseline is 4. The description does not need to add parameter semantics, but it correctly implies no input is needed. A score of 4 is justified.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the purpose: retrieving eToro's curated/featured instrument lists. The verb 'Get' and resource 'curated/featured instrument lists' are specific. It implicitly differentiates from other get tools like get_instruments or get_watchlists, but does not explicitly distinguish them, so a score of 4 is appropriate.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus siblings. The many sibling tools that also retrieve lists (e.g., get_instruments, get_watchlists) would benefit from usage context, which is entirely absent. A score of 2 reflects this lack of guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

etoro_get_current_userGet authenticated user identityA
Read-onlyIdempotent

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and idempotentHint=true. The description adds the specific IDs returned but no additional behavioral traits beyond what annotations provide. Adequate but not rich in extra context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences: first states core functionality and output, second provides usage guidance. No unnecessary words, front-loaded with key information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no parameters, no output schema, and annotations covering safety, the description fully explains what the tool returns and when to use it. Complete for a simple identity retrieval tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist, schema coverage is 100% (empty). Baseline for 0 params is 4. Description does not need to add parameter info.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the verb 'get' and the resource 'authenticated user identity' with specific fields (GCID, real CID, demo CID). Distinguishes from sibling tools by noting its use for self-referential queries and username resolution.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states it is 'useful for self-referential queries and for resolving your own username,' providing clear context. Lacks explicit when-not-to-use or comparison with alternatives, but the narrow scope makes this sufficient.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

etoro_get_exchangesList exchangesA
Read-onlyIdempotent

List all stock exchanges eToro supports.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnlyHint and idempotentHint, so the description does not need to add much. It simply says 'list', which is consistent. No additional behavioral info is provided beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no unnecessary words. It is front-loaded with the verb and resource.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has no parameters and no output schema, the description is nearly complete. It could potentially mention that the output is a list of exchange names, but it's not strictly necessary.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are no parameters, and the schema coverage is 100%. The description adds no parameter info, but with zero parameters, the baseline is 4. It states 'all stock exchanges', which is sufficient.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it lists stock exchanges supported by eToro. It uses a specific verb ('List') and resource ('stock exchanges'), and it's distinct from sibling tools which focus on other entities like watchlists, orders, or positions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. There is no mention of context, prerequisites, or when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

etoro_get_industriesList industriesA
Read-onlyIdempotent

List all industry classifications used for stock instruments.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint and idempotentHint, so the description's minimal addition about industries and stock instruments does not add significant behavioral insight beyond what annotations convey. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that is front-loaded with the verb and resource. Every word earns its place, with no extraneous information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (no parameters, no output schema), the description adequately explains the purpose. However, it lacks details about the return format, which could be helpful but is not critical for a list tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, and the schema description coverage is 100% (empty schema). According to guidelines, baseline score is 4; the description does not add parameter info because none exist.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('List') and the resource ('industry classifications used for stock instruments'). It differentiates from sibling tools like etoro_get_instruments or etoro_get_exchanges by focusing specifically on industry classifications.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not provide any guidance on when to use this tool versus alternatives like related 'get' tools. For a simple list, the context is implicit, but explicit guidelines are missing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

etoro_get_instrument_feedGet instrument feedA
Read-only

Get the social feed (posts, discussions) for a specific instrument.

ParametersJSON Schema
NameRequiredDescriptionDefault
takeNoNumber of posts to retrieve (default 20, max 100)
offsetNoNumber of posts to skip (default 0)
instrumentIdYesInstrument ID

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so description's disclosure of read operation is redundant. It adds that the feed contains 'posts, discussions', providing some behavioral context but not beyond what annotations and schema imply.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single concise sentence front-loading the purpose with no unnecessary words or structure. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, description could clarify typical return structure (e.g., 'list of posts'). However, for a simple read tool with fully documented parameters and annotations, it provides enough context for basic use. Lacks mention of sorting or result count.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with clear descriptions for all parameters (instrumentId, take, offset). Description adds no extra semantic meaning beyond restating 'for a specific instrument'. Baseline 3 holds.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly uses specific verb 'Get' and resource 'social feed (posts, discussions)' scoped to 'a specific instrument', distinguishing it from sibling tools like etoro_get_user_feed (user feed) and etoro_get_candles (price data).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives (e.g., etoro_get_user_feed for user-specific feed, or other feed/listing tools). Agent must infer usage from context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

etoro_get_instrumentsGet instrument detailsA
Read-onlyIdempotent

Get full details for one or more instruments by their IDs.

ParametersJSON Schema
NameRequiredDescriptionDefault
instrumentIdsYesArray of instrument IDs (1–100)

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and idempotentHint=true. Description adds 'full details' but no further behavioral context (e.g., return format or failure handling). No contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One sentence with no wasted words, front-loading the key action and resource.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple getter with one parameter and no output schema, the description is mostly complete. It could mention behavior when IDs are invalid or missing, but not essential.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with a well-described parameter (instrumentIds array with constraints). Description adds no additional meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool retrieves full details for instruments by IDs, using a specific verb and resource. It distinguishes from siblings like `etoro_search_instruments` which searches by criteria.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Description implies usage when you have instrument IDs but provides no explicit guidance on when to use this versus alternatives like search_instruments. Sibling tools are listed but not compared.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

etoro_get_instrument_typesList instrument typesA
Read-onlyIdempotent

List all instrument types eToro supports (stocks, crypto, ETFs, etc.).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and idempotentHint, so the safety profile is clear. The description adds that it lists instrument types with examples, but does not disclose return format, ordering, or pagination. Adequate but not exceptional beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, front-loaded with action and resource, no extraneous words. Perfectly concise for a simple no-parameter tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given zero parameters and no output schema, the description covers the core functionality adequately. It could mention whether the list is exhaustive or how to interpret the types, but for a straightforward listing tool, it's mostly complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist, so baseline is 4 per guidelines. The description provides examples of what instrument types are, adding value beyond the empty schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('List all instrument types') and the resource ('eToro supports'), with examples (stocks, crypto, ETFs). This distinguishes it from siblings like etoro_get_instruments (specific instruments) and etoro_search_instruments (searching rather than listing types).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives. Since there are many sibling tools, the description should mention contexts like filtering by instrument type or combining with other tools. Implied usage is straightforward but undocumented.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

etoro_get_ordersList pending ordersA
Read-onlyIdempotent

List all pending orders (limit orders, entry orders, etc.) for the current account.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint and idempotentHint, so safety is covered. Description adds that it lists 'all pending orders' and scope 'current account'. Additional detail on ordering or pagination would be helpful but not critical given the simplicity.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence with only 9 words, extremely concise and front-loaded. No unnecessary information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with zero parameters and no output schema, the description is complete. It clearly defines the scope and data returned. Minor improvement would be mentioning that it only lists pending, not historical orders, but that is clear from the title.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters in input schema, so schema coverage is 100%. Description adds no parameter info because none exist. Baseline for zero parameters is 4, and the description satisfactorily covers the tool's no-filter functionality.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states verb 'list', resource 'pending orders', and scope 'for the current account'. Mentions examples like limit orders and entry orders, differentiating from sibling tools like etoro_get_user_trades.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives (e.g., etoro_get_trade_history for executed orders). The description implies usage for pending orders but does not exclude other tools or provide context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

etoro_get_portfolioGet portfolio + P&LA
Read-only

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so safety is clear. Description adds useful behavioral context by detailing the data returned (credit, positions, P&L, exposure) and noting demo/real mode compliance.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single, well-structured sentence. Purpose is front-loaded: 'Get the current account's portfolio with P&L'. Every part adds value without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a parameterless read-only tool with no output schema, the description completely covers what the tool does and its behavior (respects demo/real mode). No gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema has no parameters (0 params). Description does not need to explain parameters; baseline for 0 params is 4. It clearly states what the tool returns without parameter details.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description explicitly states it retrieves the current account's portfolio with P&L, listing specific data items (credit, open positions, unrealized P&L, etc.). It differentiates from sibling tools like etoro_get_user_portfolio by specifying 'current account'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Description indicates what the tool does but lacks guidance on when to use vs alternatives. It mentions respecting demo/real mode, but no exclusions or comparisons to other tools are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

etoro_get_public_watchlistsGet user's public watchlistsA
Read-only

Get publicly shared watchlists from a specific user.

ParametersJSON Schema
NameRequiredDescriptionDefault
userIdYesUser ID whose public watchlists to retrieve

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark tool as read-only, and description aligns with 'get'. No additional behavioral details such as pagination, rate limits, or what happens if user has no public watchlists. With annotations covering safety, description adds minimal extra transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence with no wasted words. Front-loaded with key information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read retrieval with one parameter and no output schema, the description is fairly complete. It lacks output description but is acceptable given the tool's simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single parameter userId is fully described in the schema. Description does not add meaning beyond what schema provides. Baseline 3 due to high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the action (Get) and resource (publicly shared watchlists) and specifies it is for a specific user. It distinguishes from siblings like etoro_get_watchlists by emphasizing 'public' and 'from a specific user'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for retrieving another user's public watchlists but does not explicitly differentiate from etoro_get_watchlists or provide guidance on when to use each. No exclusions or alternatives mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

etoro_get_ratesGet live ratesA
Read-only

Get live bid/ask rates for one or more instruments.

ParametersJSON Schema
NameRequiredDescriptionDefault
instrumentIdsYesArray of instrument IDs (1–100)

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotation 'readOnlyHint: true' already indicates a read-only operation. The description adds that the tool returns bid/ask rates, which is helpful but does not go beyond what annotations provide. It does not disclose additional behavioral aspects like rate limits or data freshness, but given the annotation coverage, this is acceptable.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that conveys the core functionality without unnecessary words. However, it could be slightly more structured by mentioning that it retrieves rates for an array of IDs, but it remains efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (1 parameter, no output schema), the description is adequate but not thorough. It does not explain the structure of the response (e.g., mapping of instrument IDs to rates) or any constraints like maximum number of IDs. For a tool with such low complexity, it meets a minimum viable standard.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema covers 100% of the single parameter (instrumentIds) with a clear description. The tool description does not add any extra meaning beyond the schema, resulting in a baseline score of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves live bid/ask rates for one or more instruments. It uses a specific verb ('Get') and resource ('live bid/ask rates'), and it distinguishes itself from sibling tools like 'etoro_get_candles' or 'etoro_get_closing_prices' by focusing on current rates.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for live rate retrieval but does not provide explicit guidance on when to use this tool versus alternatives. For example, it does not mention that it is preferred over 'etoro_get_candles' for current rates or that it is not for historical data. This lack of explicit context leaves room for ambiguity.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

etoro_get_trade_historyGet closed-trade historyA
Read-onlyIdempotent

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number (default 1)
minDateYesStart date (YYYY-MM-DD). Required by the API.
pageSizeNoResults per page (default 100)

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark the tool as read-only and idempotent. The description adds behavioral context about pagination support and the types of data returned (P&L, fees, duration), which is valuable beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no wasted words. The first sentence delivers the core function and key details; the second provides valuable context for the AI agent. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers purpose, pagination, and typical use cases. It lacks mention of return format or sorting, but the schema details page size max. For a simple list-fetching tool with good annotations and full schema coverage, it is mostly complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the existing parameter descriptions are sufficient. The tool's description adds minimal extra meaning beyond stating 'Supports pagination', which relates to page/pageSize. No additional semantic details are provided for parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Fetch'), the resource ('history of closed trades'), and includes specific data fields (entry/exit, P&L, fees, duration). The title reinforces 'closed-trade history', distinguishing it from siblings like etoro_get_user_trades (open trades).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly identifies the tool as the 'primary data source for performance analysis, win-rate, and drawdown research', guiding when to use it. It does not name alternatives or state when not to use, but the context is clear given sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

etoro_get_user_feedGet user feedA
Read-only

Get the social feed (posts, discussions) for a specific user by their eToro username.

ParametersJSON Schema
NameRequiredDescriptionDefault
takeNoNumber of posts to retrieve (default 20, max 100)
offsetNoNumber of posts to skip (default 0)
usernameYeseToro username

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, which matches the 'Get' verb. Description adds no additional behavioral context (e.g., pagination limits, rate limits, or what constitutes a post/discussion).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single, front-loaded sentence with no superfluous content. Every word contributes to understanding the tool's purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple nature of the tool (read, 3 documented parameters, no output schema), the description is sufficient. It could briefly mention the feed structure (e.g., posts vs discussions) but is otherwise complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% (all parameters documented). The tool description does not add any extra meaning beyond what the schema already provides, so baseline score applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the action (Get), resource (social feed, posts, discussions), and target (specific user by username). Distinct from siblings like etoro_get_instrument_feed.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit when-to-use or when-not-to-use guidance. Purpose is inferred from description but no alternatives or exclusions are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

etoro_get_user_performanceGet user performanceA
Read-onlyIdempotent

Get a user's trading performance (returns, risk score). Pass period for time-windowed performance; omit for lifetime/default summary.

ParametersJSON Schema
NameRequiredDescriptionDefault
periodNoOptional performance period. Omit for the default lifetime summary.
usernameYeseToro username

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and idempotentHint. The description adds value by specifying the returned data (returns, risk score) and the effect of the period parameter. No contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences, front-loaded with the core purpose. No extraneous words; every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simplicity (2 parameters, no output schema), the description sufficiently covers what the tool does and the key parameter behavior. Could slightly expand on possible additional return details, but overall complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions. The description adds meaning by explaining the consequence of passing vs. omitting 'period', enhancing understanding beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Get', the resource 'user's trading performance', and specifies outputs 'returns, risk score'. It effectively distinguishes from sibling tools focused on other aspects like portfolios or trades.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear guidance on using the 'period' parameter (pass for time-windowed, omit for default). However, no mention of when to use this tool versus alternatives like etoro_get_user_portfolio or etoro_get_user_trades.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

etoro_get_user_portfolioGet user public portfolioA
Read-only

Get a user's live public portfolio holdings (instruments, allocation).

ParametersJSON Schema
NameRequiredDescriptionDefault
usernameYeseToro username

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide 'readOnlyHint: true', so the description is not burdened with that. It adds context ('live', 'public') but does not disclose additional behavioral traits like rate limits or caching. This is adequate given the safety annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, front-loaded sentence with no wasted words. Every word adds value: 'Get', 'live public portfolio holdings', and the parenthetical 'instruments, allocation' define the output scope.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one parameter and a read-only operation, the description sufficiently covers the input (username) and output (holdings with allocation). No output schema exists, but the description hints at what to expect. The sibling context is broad but the tool is self-contained.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 100% coverage with a clear description for 'username' ('eToro username'). The description does not add further semantics beyond what the schema provides, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Get'), the resource ('user's live public portfolio holdings'), and what it returns ('instruments, allocation'). It distinguishes from sibling tools like 'etoro_get_portfolio' (likely for own portfolio) and 'etoro_get_user_performance' (performance metrics).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for retrieving a specific user's public holdings but does not explicitly compare to similar tools (e.g., 'etoro_get_portfolio') or state when not to use it. No exclusions or alternatives are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

etoro_get_user_profileGet user profileB
Read-onlyIdempotent

Get an eToro user's public profile by username.

ParametersJSON Schema
NameRequiredDescriptionDefault
usernameYeseToro username

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and idempotentHint, and the description does not add context about rate limits, authentication, or response structure. It is consistent but not additive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence succinctly conveys the tool's purpose with no extraneous information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple lookup with sufficient schema and annotations, the description is mostly complete. However, it could mention that the profile is public and not private.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with a basic description for the username parameter. The tool description adds no additional semantic value beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves a user's public profile by username. It is specific and actionable, but lacks explicit differentiation from sibling tools like etoro_get_current_user.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives, such as etoro_get_current_user for the user's own profile or etoro_get_user_performance for performance data.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

etoro_get_user_tradesGet user trade infoB
Read-onlyIdempotent

Get a user's trade info (averages, win/loss stats) for a specific period.

ParametersJSON Schema
NameRequiredDescriptionDefault
periodYesPeriod to retrieve trade info for
usernameYeseToro username

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark the tool as readOnly and idempotent, so the description does not need to reiterate safety. However, it adds minimal extra behavioral context beyond the input schema. The description is adequate but not enriched.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, focused sentence that front-loads the verb. No unnecessary words. Perfectly concise for the information conveyed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has only two parameters and no output schema, the description provides sufficient high-level context. However, it could be improved by hinting at the return format or providing an example of what 'trade info' includes beyond averages and win/loss.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds meaning by mentioning 'averages, win/loss stats' but does not further explain parameters beyond what the schema provides. Acceptable.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Get' and resource 'user's trade info' with specifics like averages and win/loss stats. However, it does not explicitly differentiate from similar sibling tools like etoro_get_trade_history or etoro_get_user_performance, missing an opportunity for clarity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives. The description does not provide any context about prerequisites or scenarios where this tool is appropriate, which is a significant gap given the number of similar sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

etoro_get_watchlistsList watchlistsA
Read-onlyIdempotent

Get all watchlists for the current user.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true and idempotentHint=true. The description adds no extra behavioral context such as rate limits, pagination, or what happens with no watchlists.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, front-loaded sentence efficiently conveys the purpose with no waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Simple tool with 0 parameters; description covers basic purpose but lacks output details or error handling. Adequate for its simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With no parameters and 100% schema coverage, the description need not add parameter info. Baseline of 4 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Get all watchlists for the current user,' specifying the verb, resource, and scope. It distinguishes from siblings like etoro_get_public_watchlists.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use for the current user's watchlists, but it does not explicitly state when to use this tool versus alternatives like etoro_get_public_watchlists.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

etoro_open_positionOpen positionA
Destructive

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
isBuyYestrue = Buy/Long, false = Sell/Short
unitsNoNumber of units / shares / coins (mutually exclusive with `amount`)
amountNoInvestment amount in USD (mutually exclusive with `units`)
leverageNoLeverage multiplier (1, 2, 5, 10, etc.; max 400)
instrumentIdYesInstrument ID to trade
stopLossRateNoStop-loss price
takeProfitRateNoTake-profit price

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate destructive/world-changing behavior. The description adds that it respects configured trading mode (demo/real), providing useful behavioral context beyond what annotations offer. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two succinct sentences, front-loaded with the primary action. Every word serves a purpose; no fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

While the description covers the main operation, it omits expected return value (e.g., trade confirmation) and does not mention potential fees or constraints, leaving some gaps for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with clear descriptions. The description reiterates the mutual exclusivity of amount/units, which is already in the schema, adding minimal new semantic value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Open') and resource ('position on an instrument'), clearly distinguishing it from siblings like 'place_limit_order' or 'close_position'. It also adds context about trading mode.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a key constraint ('Provide exactly one of amount or units') and mentions trading mode, but does not explicitly compare to alternative tools like limit orders or specify when to use this market order type versus others.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

etoro_place_limit_orderPlace limit orderB
Destructive

Place a limit / entry order that executes when the market reaches the specified price.

ParametersJSON Schema
NameRequiredDescriptionDefault
rateYesLimit price at which the order should execute
isBuyYestrue = Buy/Long, false = Sell/Short
amountYesInvestment amount in USD
leverageNoLeverage multiplier (default 1)
instrumentIdYesInstrument ID
stopLossRateNoStop-loss price
takeProfitRateNoTake-profit price

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate destructiveHint: true, so the description's addition of execution-on-price condition is useful but minimal. No disclosure of order lifecycle, pending state, or cancellation possibilities. With annotations, the bar is lower, but the description could add more behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence with no fluff, clearly stating the core action and trigger condition. Front-loaded with the verb and object. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (7 parameters, destructive hint, no output schema), the description lacks completeness. It doesn't explain return values (e.g., order ID), order lifecycle (pending, cancelled), or prerequisites. More context is needed for safe financial transactions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with detailed descriptions for each parameter (e.g., rate as limit price, amount as USD). The description adds no additional parameter meaning beyond what the schema already provides, meeting the baseline expectation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Place'), the object ('limit / entry order'), and the condition ('executes when the market reaches the specified price'). It distinguishes itself from sibling 'etoro_open_position' by specifying limit order behavior.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives like 'etoro_open_position' for market orders or 'etoro_cancel_order' for cancellations. The description only states its functionality without usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

etoro_remove_watchlist_itemRemove item from watchlistA
DestructiveIdempotent

Remove an instrument from a watchlist.

ParametersJSON Schema
NameRequiredDescriptionDefault
watchlistIdYesWatchlist ID
instrumentIdYesInstrument ID to remove

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint as true and idempotentHint as true. The description simply states 'Remove an instrument' which aligns with destructive behavior but adds no further behavioral context beyond what annotations provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence with no unnecessary words. Every word serves the purpose, making it highly concise and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple removal tool with full schema coverage and clear annotations, the description is adequate. It could mention idempotency or that the action is destructive, but those are already in annotations. No output schema exists, so no need to describe return values.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the schema already describes both parameters ('Watchlist ID' and 'Instrument ID to remove'). The description adds no additional parameter meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Remove') and the resource ('instrument from a watchlist'), which exactly matches the tool's purpose and distinguishes it from sibling tools like etoro_add_watchlist_items or etoro_delete_watchlist.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. It does not mention prerequisites, conditions, or when not to use it, leaving the agent without context about tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

etoro_rename_watchlistRename watchlistB
Idempotent

Rename an existing watchlist.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesNew name for the watchlist (max 100 chars)
watchlistIdYesWatchlist ID to rename

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotation 'idempotentHint: true' is provided, indicating safe repetition. The description does not contradict this, but adds no additional behavioral context (e.g., side effects, error conditions).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single, clear sentence with no filler. Perfectly concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple rename operation with full schema and annotation, the description is minimally adequate. However, it lacks details about return values or error handling (e.g., behavior if watchlist not found).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and parameters are described in the schema (e.g., maxLength, minLength). The description does not add extra meaning beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states 'Rename an existing watchlist', indicating a specific verb and resource. It distinguishes from sibling tools like create_watchlist or delete_watchlist, but could be more detailed about the action's effect.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives (e.g., when to rename vs. create or delete). The description only states what it does, not the context or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

etoro_search_instrumentsSearch instrumentsA
Read-only

Search eToro instruments (stocks, crypto, ETFs, etc.) by keyword or exact ticker.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number (default 1)
queryYesSearch keyword (e.g. 'AAPL', 'Bitcoin', 'Tesla')
pageSizeNoResults per page (default 10, max 100)
exactSymbolNoIf true, match by exact ticker symbol (e.g. 'AAPL') instead of free-text

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true and openWorldHint=true. The description adds that it searches specific types (stocks, crypto, ETFs) and by exact ticker, which provides some extra context beyond annotations, but does not disclose pagination or result format details.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that is concise, front-loaded with the core action, and contains no extraneous information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (4 parameters, no output schema), the description is adequate but lacks information on how results are structured (e.g., fields returned) and pagination behavior. Annotations provide some context but not full completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, with each parameter having a description in the schema. The tool description reiterates the concepts of keyword and exact ticker but adds no significant new meaning beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (search) and resource (eToro instruments) with specific mentions of keyword and exact ticker, and lists instrument types. However, it does not explicitly differentiate from sibling tools like get_instruments, which could also list instruments.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for searching by keyword/ticker but provides no explicit guidance on when to use this tool versus alternatives (e.g., get_instruments). No when-not-to-use or alternative tool names are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

etoro_set_default_watchlistSet default watchlistB
Idempotent

Mark a watchlist as the user's default.

ParametersJSON Schema
NameRequiredDescriptionDefault
watchlistIdYesWatchlist ID to set as default

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description states the core action but adds no behavioral details beyond what the idempotentHint annotation already conveys. It doesn't mention that setting a new default unmarks the previous one or any authorization needs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single concise sentence efficiently conveys the tool's purpose with no unnecessary words. While brief, it earns its space.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description does not mention return values or confirm what happens on success/failure. For a simple setter with no output schema, it lacks completeness but is minimally adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the input schema already describes the parameter as 'Watchlist ID to set as default'. The description does not add additional meaning beyond that.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Mark a watchlist as the user's default' clearly states the action (mark/set) and the resource (a watchlist as default). It effectively distinguishes from sibling tools like create, delete, or rename watchlist.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It does not specify prerequisites (e.g., watchlist must exist) or side effects (e.g., overriding previous default).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 35 tool updatesv1.1.4
    • First observedetoro_add_watchlist_items
    • First observedetoro_cancel_order
    • First observedetoro_close_position
    • First observedetoro_create_comment
    • First observedetoro_create_post
    • First observedetoro_create_watchlist
    • First observedetoro_delete_watchlist
    • First observedetoro_discover_users
    • First observedetoro_get_candles
    • First observedetoro_get_closing_prices
    • First observedetoro_get_copiers
    • First observedetoro_get_curated_lists
    • First observedetoro_get_current_user
    • First observedetoro_get_exchanges
    • First observedetoro_get_industries
    • First observedetoro_get_instrument_feed
    • First observedetoro_get_instrument_types
    • First observedetoro_get_instruments
    • First observedetoro_get_orders
    • First observedetoro_get_portfolio
    • First observedetoro_get_public_watchlists
    • First observedetoro_get_rates
    • First observedetoro_get_trade_history
    • First observedetoro_get_user_feed
    • First observedetoro_get_user_performance
    • First observedetoro_get_user_portfolio
    • First observedetoro_get_user_profile
    • First observedetoro_get_user_trades
    • First observedetoro_get_watchlists
    • First observedetoro_open_position
    • First observedetoro_place_limit_order
    • First observedetoro_remove_watchlist_item
    • First observedetoro_rename_watchlist
    • First observedetoro_search_instruments
    • First observedetoro_set_default_watchlist

TDQS

A3.8/5.0

Scored across 35 tools

Disambiguation5/5

Each tool targets a distinct resource and action, from watchlist management to trading operations, social features, and data retrieval. There is no ambiguity even among similar-looking tools like etorro_get_portfolio and etorro_get_user_portfolio, as their descriptions clearly differentiate them.

Naming Consistency5/5

All tools follow a consistent 'etoro_verb_noun' pattern using snake_case, with verbs like get, create, delete, and open applied uniformly. No mixing of conventions or irregular names.

Tool Count4/5

With 35 tools, the count is slightly high but justified for a comprehensive trading platform covering multiple domains (watchlists, trading, social, data, profiles). The scope is broad enough to need this many tools.

Completeness4/5

The toolset covers most core functionalities: portfolio, trading, watchlists (full CRUD), social feed, and market data. Minor gaps like position modification (e.g., stop loss adjustment) are absent, but the set is largely complete for the intended operations.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • F
    license
    A
    quality
    D
    maintenance
    A security-hardened MCP server that wraps the eToro public API, enabling AI assistants to trade, access market data, manage portfolios, and interact with social feeds via 34 tools.
    6
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP server for Interactive Brokers TWS API that enables AI assistants to retrieve portfolio, account information, and real-time market prices.
    23
    Apache 2.0
  • A
    license
    Not graded
    quality
    C
    maintenance
    A read-only MCP server that connects Claude to your eToro account, enabling queries about your portfolio, P\&L, balances, watchlists, live prices, and price history.
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to interact with Interactive Brokers through 48 tools for market data, orders, account management, and more, via the MCP protocol.
    MIT