Skip to main content
Glama

Jma

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.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A5/5.0
Behavior5/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false. The description goes beyond these by detailing exact behavioral guarantees: it never returns 0 for missing data, never lets YTD answer a quarterly question, never converts currency, and provides named statuses for each non-answer type. It also discloses the source (SEC EDGAR XBRL) and the deterministic single-read behavior. This extensively adds context beyond annotations, with no contradictions.

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 long but every sentence earns its place. It opens with a crisp statement of purpose, then systematically covers differentiators, guarantees, statuses, and source. It is front-loaded with the core scope and uses clear paragraph breaks (implied by the flow) to separate concerns. No filler or redundancy.

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?

Given the tool's complexity (5 parameters, nested period object, no output schema), the description is exceptionally complete. It explains parameter semantics in depth, enumerates all possible non-answer statuses, describes the response content (us-gaap concept, accession, restatement trail, contract/derivation version), and even mentions the non-MCP endpoint. An agent has all necessary information to invoke it correctly.

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?

While schema coverage is 100%, the description adds substantial meaning: it explains fiscal period anchoring to the filer's own year-end, the ambiguity handling for company names, the mapping of attributes to specific us-gaap concepts (e.g., net_income vs profit/loss), and the restatement default. It clarifies that 'basis' only supports consolidated and explains the significance of each enum value. This goes far beyond the bare 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 purpose: typed, deterministic financial facts for a US public company for an explicitly named reporting period. It uses strong verbs and clearly distinguishes from siblings by contrasting with entity_profile and get_company_financials, which return the most recent figures. This differentiates the tool's role without ambiguity.

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 gives explicit when-to-use guidance: 'PREFER OVER entity_profile / get_company_financials whenever the period matters' and explains why those alternatives are unsuitable for specific periods. It also enumerates what the tool never does (e.g., never substitutes the latest period) and lists named statuses for non-answers, providing clear operational boundaries.

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.