Skip to main content
Glama

EdgarStack

Compare financial metrics across companies

peer_compare
Read-onlyIdempotent

Compare one to six SEC XBRL metrics for 2–15 US companies. Periods are aligned by actual end date (within 183 days for annual or 45 days for quarterly) to handle different fiscal calendars; the reference date and each row's actual period end are returned. Rankings are descending, skip missing values, and use competition ranks for ties. Available metrics: revenue, grossProfit, operatingIncome, netIncome, epsBasic, epsDiluted, totalAssets, currentAssets, totalLiabilities, currentLiabilities, longTermDebt, totalEquity, cashAndEquivalents, operatingCashFlow, capex, rdExpense, sharesOutstanding, dividendsPerShare, dividendsPaid, stockBasedCompensation, deferredRevenue, goodwill, intangibleAssets, depreciationAmortization, costOfGoodsSold, sellingGeneralAndAdministrative, interestExpense, otherNonoperatingIncomeExpense, pretaxIncome, incomeTaxExpense, liabilitiesAndEquity, assetImpairment, shortTermInvestments, weightedAverageDilutedShares, shareRepurchases, accountsReceivable, inventory, accountsPayable, propertyPlantEquipment, investingCashFlow, financingCashFlow, grossInterestIncome, netInterestIncome, noninterestIncome. There's no default metric — if the user's request doesn't name one (e.g. "compare Apple and Microsoft" with no metric specified), ask which they want before calling rather than guessing.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "tickers": "<tickers>",
      "metrics": "<metrics>"
    },
    "name": "peer_compare"
  }
}

Input Schema

NameRequiredDescriptionDefault
periodNoannual
metricsYes
tickersYes

Schema Changelog

Changes observed during successful MCP inspections.

No schema history has been recorded yet.

TDQS

A4.1/5.0
Behavior5/5

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

Annotations already establish readOnly/idempotent/non-destructive, and the description adds substantive behavior on top: period alignment by actual end date within 183 days (annual) or 45 days (quarterly) to accommodate differing fiscal calendars, plus return of the reference date and each row's actual period end. It further discloses ranking semantics — descending, missing values skipped, competition ranks for ties — which an agent cannot infer from any structured field.

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

Conciseness3/5

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

The critical rules — scope, alignment, ranking, and the ask-before-guessing instruction — are front-loaded and well ordered. However, the inline enumeration of ~40 metric names duplicates the input schema enum verbatim and consumes a large share of the description without adding information.

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?

With no output schema, the description does some return-shape work by naming the reference date, per-row period end, and rank ordering. For a comparison tool over 3 parameters this is largely sufficient. The main residual gap is how multiple metrics are laid out in the response for a given company/period.

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 coverage is 0%, so the description carries the load, and it does add meaning for `period` by explaining the annual-vs-quarterly alignment windows. It also states the cardinality bounds on tickers and metrics and the absence of a default metric. It does not specify ticker format (symbol vs CIK) or whether multiple metrics are returned per row or merged, leaving some ambiguity.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource plus hard scope limits: 'Compare one to six SEC XBRL metrics for 2–15 US companies.' That is far more precise than the title alone. It stops short of naming a sibling (e.g. get_financials for single-company pulls) so the differentiation is implied by scope rather than stated.

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

Usage Guidelines4/5

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

It gives a concrete when-not-to-call rule: there is no default metric, so if the request doesn't name one, ask the user before calling rather than guessing. The 1–6 metric and 2–15 ticker bounds also define the usable envelope. It does not point to alternative tools for adjacent cases such as single-company or ratio-based requests.

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.

Resources