Skip to main content
Glama

Ffiec Call Reports

Company Facts

company_facts
Read-onlyIdempotent

TYPED, DETERMINISTIC financial facts for a US public company for an EXPLICITLY NAMED reporting period — "Apple revenue for fiscal 2023", "Walmart net income FY2026 Q3", "Microsoft cash at the end of fiscal 2024". PREFER OVER entity_profile / get_company_financials whenever the period matters: those answer "the most recent figures" and will happily hand back FY2025 when you asked about FY2019, and neither separates a discrete quarter from a year-to-date figure. This one refuses instead — it NEVER substitutes the latest period for the period requested, NEVER returns 0 for missing data, NEVER lets a 9-month YTD number answer a quarterly question, and NEVER converts a currency. Every answer carries the exact us-gaap concept it came from, what that concept MEASURES (NetIncomeLoss excludes non-controlling interests, ProfitLoss includes them — not synonyms), the accession number and a link to the filing on sec.gov, the restatement trail of any superseded figures, and a contract + derivation version to pin against. Fiscal periods are the FILER'S OWN, anchored on their fiscal-year end, so Walmart's year ending 2026-01-31 is FY2026 and Apple's ending 2025-09-27 is FY2025. Attributes in v1: revenue, net_income, cash. Every non-answer is a named status — unavailable (the filer did not report it for that period; the periods that DO exist are listed, without values), unsupported (outside what v1 covers — a non-us-gaap filer, an unknown attribute, a non-USD unit), ambiguous (the company name matched two filers equally well; both are named), conflicting (two filings the same day disagree; both are returned and neither is picked), partial (a value with no accession behind it). Source: SEC EDGAR XBRL companyconcept, one publisher read once — see corroboration. Same response is served at POST https://gateway.pipeworx.io/v1/facts for non-MCP callers.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
basisNoOnly "consolidated" in v1. Segment and product-level figures are XBRL-dimensioned and are not reachable through this contract at any concept.
periodYesThe reporting period, stated explicitly. There is no default and no "latest" — that is the point of this tool.
companyYesTicker ("AAPL"), 10-digit CIK ("0000320193"), or company name. A name that matches two filers equally well returns status "ambiguous" with both named rather than guessing — pass a ticker or CIK to be certain.
attributeYesWhich figure. "revenue" = total consolidated revenue; "net_income" = net income (loss); "cash" = cash and cash equivalents at the period end.
restatementNoDefault "as_amended" — the latest filed figure for the period, with everything it superseded listed. "as_originally_reported" takes the first filing instead.
exclude_publishersNoPublisher ids forbidden for fact retrieval: sec, fmp, alphavantage. Case and surrounding whitespace are normalized; unknown ids are refused. Excluding sec currently leaves no eligible fact source and returns unavailable/sources_excluded with the selection reasons. Identity and fiscal-calendar lookups may still use SEC; no excluded financial concept is fetched.

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 declare readOnlyHint=true and idempotentHint=true, and the description adds rich behavioral guarantees: it NEVER substitutes the latest period, NEVER returns 0 for missing data, NEVER lets a 9-month YTD answer a quarterly question, and NEVER converts currency. It also describes the full response contents (us-gaap concept, accession number, filing link, restatement trail) and the meaning of each non-answer status, going far beyond the annotations.

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 long and uses ALL CAPS and em-dashes heavily, which slightly hurts readability. However, it is front-loaded with purpose and examples, and every sentence carries substantial information about behavior, statuses, and source. Given the tool's complexity (6 params, nested objects, no output schema), the length is mostly justified, though a structured layout would improve conciseness.

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 no output schema, this description is remarkably complete: it explains the period model (filer's own fiscal year), the attribute set, each non-answer status in detail, the data source (SEC EDGAR XBRL companyconcept), and even the alternative REST endpoint. An agent can determine when and how to call it correctly without additional context.

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 baseline is 3. The description adds illustrative examples (Apple revenue, Walmart net income) and clarifies the annual vs quarterly distinction, but the schema already documents these semantics in detail (e.g., 'quarterly' = ONE discrete quarter). The description adds marginal value beyond the schema, so 3 is appropriate.

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 opens with a specific verb and resource: 'TYPED, DETERMINISTIC financial facts for a US public company for an EXPLICITLY NAMED reporting period', and gives concrete examples. It explicitly contrasts with entity_profile / get_company_financials, stating those return 'the most recent figures' and may hand back the wrong fiscal year, which clearly distinguishes it 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 states 'PREFER OVER entity_profile / get_company_financials whenever the period matters' and explains why those tools fail (fiscal-year substitution, quarter vs YTD confusion). It also details the named statuses (unavailable, unsupported, ambiguous, etc.) which further clarifies when this tool is appropriate and what to expect otherwise.

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.