Skip to main content
Glama

Tapetide - Indian Stock Market MCP

Financial Statements

get_financials
Read-onlyIdempotent

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

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 observed

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already establish read-only, idempotent, safe behavior, but the description adds rich context about the return shape (section objects with `periods`, `data`, `pct_changes`, `row_order`, `availability`), the meaning of `available_from` and its `basis` values, the look-ahead bias use case, and the critical caveat that values may include later restatements. This goes well 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.

Conciseness4/5

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

The description is front-loaded with a clear one-sentence purpose, then packs in necessary detail. It is dense but nearly every sentence contributes useful information, though a bulleted structure would improve readability given the volume of return-shape details.

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 full burden of explaining return values, and it does so thoroughly: section layout, ordering, change fields, availability metadata, and caveats. It also covers symbol cardinality and unsupported asset types, making the definition complete 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 description coverage is 100%, so the schema already documents `section` values, `periods` defaults, and the alias parameters. The description mostly restates those same defaults and section semantics, adding only a brief example; it does not explain the alias fields (`ticker`, `quarters`, `identifier`) or other nuances 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 states a specific verb and resource ('Get financial statements for one company'), enumerates all supported sections, and explicitly excludes ETFs, index funds, and bonds. It also distinguishes itself from get_batch_quotes, so an agent can identify what this tool does and does not cover.

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 explicitly tells the agent when to pass `section` versus omit it, how `periods` interacts with each mode, how to handle multiple companies (one symbol per call, with get_batch_quotes noted as prices-only), and how to use `available_from` for backtests. It also states the disqualifying case (ETFs, funds, bonds), leaving no ambiguity about when to use this tool.

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.