Skip to main content
Glama
myfinancialria

MyFinancial Market Data MCP

Financial Statements

get_financials
Read-onlyIdempotent

Get financial statements for a company: quarterly/annual profit/loss, balance sheet, cash flow, ratios. Specify section and periods; availability dates avoid look-ahead bias in backtests.

Instructions

Get financial statements for one company. Sections: quarterly (quarterly P&L, ~13 quarters), profit_loss (annual P&L), balance_sheet, cash_flow, ratios (all annual). Pass section for one statement with every period we hold; omit it to get all sections trimmed to the latest 5 periods each (use periods to widen, e.g. {"symbol":"TCS","section":"quarterly","periods":12}). Each section carries periods (oldest first), data {row: {period: value}}, pct_changes, row_order, and an availability array giving the point-in-time available_from date per period (the real result-declaration date where known, basis:\"reported\", otherwise a regulatory-lag estimate, basis:\"estimated\"). Use available_from for backtests to avoid look-ahead bias. NOTE: available_from reflects original declaration timing only; the values are the latest reported figures and may include later restatements. One symbol per call; for many companies call once per symbol (get_batch_quotes is prices only). ETFs, index funds and bonds have no financial statements.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
symbolNoREQUIRED. The stock symbol, e.g. "RELIANCE" or "TCS".
tickerNoAlias for `symbol`.
periodsNoLatest N periods per section (max 40). Default: all periods when a section is named, 5 per section when it is not.
sectionNoOne of: quarterly, profit_loss, balance_sheet, cash_flow, ratios. `quarterly` is the quarterly P&L; the other four are annual. Omit for all sections.
quartersNoAlias for `periods`.
identifierNoAlias for `symbol`.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.0

TDQS

A5/5.0
Behavior5/5

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

Annotations declare readOnlyHint and idempotentHint, but the description adds critical behavioral detail: the default trimming to 5 periods when section is omitted, the structure of each section (periods, data, pct_changes, row_order, availability), and the meaning of available_from (point-in-time declaration date) plus the caveat about restatements. This goes well beyond the annotations and is essential for correct backtesting usage.

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, dense paragraph with front-loaded purpose and no fluff. Every sentence contributes: purpose, section definitions, default behavior, period control, data structure, availability semantics, caveat, and usage constraint. It is long but proportionate to the tool's complexity, and each clause earns its place.

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 tool with six parameters, no output schema, and rich behavioral nuances, the description covers all essential operational details: sections, period defaults and limits (max 40), aliases, one-symbol-per-call rule, and the full response structure including the availability array and its backtest relevance. It also flags unsupported asset types. Nothing an agent needs to call it correctly is missing.

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 per-parameter descriptions, but the description enriches semantics further: it explains that omitting section yields latest 5 periods per section, while naming a section yields all periods (unless periods is given), defines the aliases (ticker for symbol, quarters for periods), and clarifies that quarterly is the only quarterly P&L while the other four are annual. The example (symbol TCS, section quarterly, periods 12) demonstrates correct usage.

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?

States the exact function: 'Get financial statements for one company' and enumerates the sections (quarterly, profit_loss, balance_sheet, cash_flow, ratios). It distinguishes from get_batch_quotes (prices only) and explicitly notes that ETFs/index funds/bonds have no financial statements, so the agent knows precisely what this tool is for and what it is not.

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?

Provides explicit when-to-use guidance: one symbol per call, and for multiple companies call per symbol, referencing get_batch_quotes as the price-only alternative. It also states that ETFs/index funds/bonds are unsupported, and explains how to control period coverage (omit section for latest 5, use periods to widen), with a concrete example (TCS quarterly with 12 periods).

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