Skip to main content
Glama

BotSpot: AI Trading, Backtests and Bots

Fetch linked account history for a deployment

get_portfolio_series
Read-only

Returns the owned linked-account history plus a fresh direct broker balance through the same canonical source used by Python internal_data.get. This is the whole linked account, not strategy-attributed or cash-flow-adjusted investment performance. Use show_bot_activity first for a current account report; use this reader for a requested historical graph or benchmark comparison. Inspect the executed account rows and select their actual observed endpoints for the requested sessions. Do not look up fabricated midnight or shifted next-day timestamps; a calendar-day label is not the observation clock. Claim a numerical mismatch only when an executed comparison establishes it. Unverified funding or mark timestamps do not prove that returned holding values fail to add up or differ from quantity times matched prices. For whole-account attribution, retain cash in the opening account-value denominator. Explain its dilution of market exposure separately from measured gains; cash has no demonstrated price gain unless a returned cash-interest or other gain record establishes one. An unknown cash gain is not a measured zero. This dataset does not calculate per-holding price contributions. For a portfolio-movement explanation, fetch the matched holding prices and execute the calculation with run_data_analysis; a supplied-input card or mental arithmetic does not execute it. Recover a missing required symbol with dated public search before declaring it unknown, while preserving any known partial subtotal. Supports frequency filtering ('all' retains every observation; 'hour' and 'day' retain the latest observation per UTC bucket). start/end constrain the returned window; limit bounds the newest displayed rows to 1-1000. fullDatasetObservationCount counts the complete registered dataset; count counts only this filtered display. A later analysis execution refreshes its broker endpoint, so derive chart captions and statistics from the rows actually executed, never from a preview count. Copy analysisDatasetId into capabilities.internalData.datasetIds and read it with internal_data.get to register portfolio provenance; never use this tool name as sourceIds or hardcode its rows. Preserve the returned observation/retrieval time basis; neither establishes a market-price timestamp. Broker-read failures are visible tool errors, not permission to label old telemetry current.

Input Schema

NameRequiredDescriptionDefault
endNo
limitNo
startNo
frequencyNo
deploymentIdYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.3/5.0
Behavior4/5

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

With readOnlyHint already set, the description still adds useful behavioral context: broker-read failures are visible tool errors, a later analysis execution refreshes its broker endpoint, and observation/retrieval timestamps are not market-price timestamps. Some sections are workflow instructions rather than direct tool behavior, but the key behavioral constraints are disclosed.

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

Conciseness2/5

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

The purpose is front-loaded, but the definition is a dense wall of caveats, anti-hallucination rules, and downstream workflow instructions. Many sentences govern result interpretation rather than helping select or invoke this tool, so it is not appropriately sized for a tool definition.

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 no output schema and only readOnlyHint, the description covers many important return and provenance details, including observation counts, datasetId registration, timestamp caveats, and broker-read failure behavior. It is not fully complete about the returned row shape, but it provides substantial context for correct use.

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?

Schema description coverage is 0%, so the description must carry parameter meaning. It explains frequency bucket behavior ('all', 'hour', 'day'), start/end window constraints, limit bounds, and the distinction between fullDatasetObservationCount and count, though it omits the expected date format for start/end and does not describe deploymentId beyond the title.

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 first sentence states a specific verb and resource: it returns owned linked-account history plus a fresh direct broker balance. It also explicitly distinguishes this from strategy-attributed or cash-flow-adjusted performance and names show_bot_activity as a sibling alternative.

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 gives explicit routing guidance: use show_bot_activity first for a current account report, and use this reader for a requested historical graph or benchmark comparison. It also points to run_data_analysis for portfolio-movement calculations, naming the alternative tool and condition.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.