Skip to main content
Glama

Quantic Finance

How your portfolio has done

get_performance
Read-only

How the signed-in user's portfolio has actually done — an annualized money-weighted return (XIRR) in their preferred currency, including dividends received and any sales, next to what the same money moved on the same days would have made in broad index funds.

Money-weighted, not time-weighted: it counts when each amount went in, so money invested before a good year earns more of the credit than money added at the end. Every flow is converted at the exchange rate published on its own date, so currency movement is part of the answer — unlike get_realized, which deliberately never converts because it measures a position rather than a portfolio.

status says whether a number was produced:

  • "ok"rate_pct and the comparison are present.

  • "insufficient_ledger" — no holding has any trades behind it, so there is nothing to measure a return on. Ask the user to import their broker's trades.

  • "awaiting_rates" — historical exchange rates for the years the ledger spans are still being fetched; they arrive shortly.

coverage matters when reporting this. Holdings whose shares were typed in by hand have no purchase behind them, so they are excluded from both the flows and the value: the rate describes only the part with trade history, and coverage.value_pct says how much of the portfolio that is. Say so rather than presenting the figure as the whole portfolio's.

Benchmarks are accumulating funds, whose price already includes reinvested dividends, so both sides are total return. They are priced monthly, so treat the comparison as a direction rather than a decimal. Private to the caller.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
portfolioNo

TDQS

A4.3/5.0
Behavior5/5

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

Annotations already mark the tool as readOnlyHint=true, and the description adds substantial behavioral detail beyond that: per-date currency conversion, status semantics, exclusion of hand-entered holdings from the calculation, monthly benchmark pricing, total-return treatment, and privacy for the caller. There is no contradiction with the read-only annotation.

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?

Although the description is long, every sentence contributes essential interpretation or caveat information. The content is front-loaded with the core definition, then organized into clear paragraphs and bullet-style status details, making it scannable despite its length.

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 one simple parameter, the description is remarkably complete: it explains the metric, edge cases, status values, benchmark limitations, and reporting caveats. The only meaningful gap is the meaning of the portfolio parameter, which would be necessary for an agent to invoke the tool with full confidence.

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

Parameters1/5

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

The input schema has one parameter, portfolio, with a string type and no description, and schema description coverage is 0%. The description never explains what the portfolio parameter should contain, whether it is an ID, name, or optional selector, or what happens when it is omitted. Since the description must compensate for the absence of schema coverage and does not, the parameter semantics are effectively missing.

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 states a precise verb and resource: it measures how the signed-in user's portfolio has actually done, defined as an annualized money-weighted return (XIRR) including dividends and sales, with a benchmark comparison. It also explicitly distinguishes itself from get_realized, making the tool's scope easy to separate from siblings.

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?

The description provides actionable usage guidance: it explains the money-weighted vs time-weighted distinction, calls out get_realized as the alternative for position-level measurement, and gives explicit handling instructions for the statuses such as asking the user to import trades when the ledger is insufficient. It also warns how to report coverage rather than overstating the return as portfolio-wide.

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.

TDQS

A4.1/5.0
Disambiguation4/5

Tools are mostly distinct: get_stock vs get_stock_research, get_portfolio vs get_holdings/get_valuation, and the screen/list/search tools are individually well-scoped with cross-references. The main ambiguity is that get_portfolio aggregates data also available via focused tools, but descriptions explicitly steer agents to the focused variants.

Naming Consistency4/5

Names overwhelmingly follow a lowercase snake_case verb_noun pattern (get_*, list_*, screen_*, compare_stocks, search_stocks). The single outlier is dividend_calendar, which lacks the get_ prefix, making the pattern not perfectly uniform.

Tool Count3/5

At 21 tools this sits in the 16–25 range that feels heavy for an MCP surface, though the breadth of the finance domain justifies most of them. It is above the ideal 3–15 range, so agents face a large surface to learn even if each tool is purposeful.

Completeness4/5

The set covers the major read-side workflows: stock lookup/research, screening, comparison, portfolio holdings/valuation, income analysis, dividend history, options, tax report, and radar. Obvious gaps are limited to write/update operations and a per-stock historical dividend calendar, which are workable around or outside the server's apparent read-only scope.

Resources