Skip to main content
Glama
slemos

eToro MCP Server

by slemos

Get eToro positions and pending orders

etoro_get_portfolio_breakdown
Read-onlyIdempotent

Open positions (with position ids, instrument symbol, units, open rate, stop loss and take profit), pending orders and available credit for the demo account.

Instructions

Open positions (with position ids, instrument symbol, units, open rate, stop loss and take profit), pending orders and available credit for the demo account. The default view is compact; copied traders' positions are in the 'mirror' view, paged with limit and offset. Position ids from here are what etoro_prepare_close_position needs. For current profit/loss per position use etoro_get_pnl; for an account overview use etoro_get_portfolio.

Input Schema

NameRequiredDescriptionDefault
viewNosummary: compact own positions plus a summary of each copied trader (no copied positions). mirror: the positions of one copied trader (needs mirrorId). raw: eToro's full JSON (very large with copy trading; arrays are shortened to fit).summary
limitNoPositions per page.
offsetNoPositions to skip, for paging.
mirrorIdNoCopy-trading relationship to open when view is 'mirror'. Listed in the summary view.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changedv0.10.0
    • addedInput schema / properties / limit
      Added value: +{
      +  "default": 50,
      +  "description": "Positions per page.",
      +  "maximum": 200,
      +  "minimum": 1,
      +  "type": "integer"
      +}
    • addedInput schema / properties / mirrorId
      Added value: +{
      +  "description": "Copy-trading relationship to open when view is 'mirror'. Listed in the summary view.",
      +  "exclusiveMinimum": 0,
      +  "maximum": 9007199254740991,
      +  "type": "integer"
      +}
    • addedInput schema / properties / offset
      Added value: +{
      +  "default": 0,
      +  "description": "Positions to skip, for paging.",
      +  "maximum": 9007199254740991,
      +  "minimum": 0,
      +  "type": "integer"
      +}
    • addedInput schema / properties / view
      Added value: +{
      +  "default": "summary",
      +  "description": "summary: compact own positions plus a summary of each copied trader (no copied positions). mirror: the positions of one copied trader (needs mirrorId). raw: eToro's full JSON (very large with copy trading; arrays are shortened to fit).",
      +  "enum": [
      +    "summary",
      +    "mirror",
      +    "raw"
      +  ],
      +  "type": "string"
      +}
  2. First observedv0.1.0

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so safety is covered. The description adds genuinely new behavioral context: the default view is compact, copy-trader positions live in the mirror view and are paged, and the raw view is 'very large' with shortened arrays.

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?

Front-loaded with the returned payload, then follows with view semantics and sibling routing in a tight block with no filler. The parenthetical field list replaces a longer enumeration that would otherwise sprawl.

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?

With no output schema, the description carries the burden of describing returns and does so by listing the position fields, pending orders and available credit. The demo-account scope and the view-dependent behavior are both stated, leaving nothing essential unstated for a 4-param, zero-required read 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 coverage is 100%, so the schema already explains view, limit, offset and mirrorId, including the mirrorId-is-in-summary-view dependency. The description largely restates the paging behavior rather than adding syntax or format detail beyond the schema, so the 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 names the specific resources returned (open positions, pending orders, available credit) and enumerates the position fields, so an agent knows exactly what comes back. It also distinguishes itself from siblings etoro_get_pnl and etoro_get_portfolio by name.

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

Usage Guidelines5/5

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

It routes the agent explicitly: use etoro_get_pnl for current P/L per position and etoro_get_portfolio for an account overview, and it flags the downstream dependency that position ids feed etoro_prepare_close_position. The mirror-view prerequisite (mirrorId from the summary view) is also called out.

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