Skip to main content
Glama

Compare companies

compare_companies
Read-only

Compare key financial metrics across 2–5 Japanese listed companies using their latest annual securities report (有価証券報告書) filings. Returns a matrix of revenue, net income, total assets, equity, operating income, and period_end so mismatched fiscal year-ends are visible. Every value is a CONSOLIDATED figure for that filing's own period: non-consolidated (parent-only) and segment-dimensional values are never reported or substituted, so peer rows are always like-for-like. Concept matching reaches per-company taxonomy extensions and the five-year 主要な経営指標等の推移 (SummaryOfBusinessResults) families as well as the standard JP-GAAP, IFRS and US-GAAP concepts, so filers whose consolidated statements use no standard concept are still comparable. A metric with no consolidated current-period fact is null and carries an omission_reason (no_consolidated_context, no_current_period_fact, reported_nil, no_numeric_value, owners_equity_not_established, not_applicable_to_statement_format, no_total_concept_in_format, concept_absent) in the per-company metrics object, which also exposes each metric's own concept_id, context_ref and resolved period — the latter can differ from the row's period_end, which is the document's. Equity is always equity attributable to owners of the parent. J-GAAP filers report no single concept for it, so it is DERIVED as the owner components (株主資本 + 評価・換算差額等) of 純資産, checked to reconcile with the reported total: a derived metric carries derived: true, concept_id null, and a derivation object listing the reconciled_against total (which includes non-controlling interests and is NOT the value) and every component with its role (owner or non_owner), value and context_ref. Metrics read from a single fact carry neither field. Every metric also carries unit and decimals (the XBRL unit and precision of the value). Revenue does NOT always mean net sales. A resolved revenue metric carries basis and basis_label (en/ja); basis_label states the meaning, which can differ from the concept name and its taxonomy label. net_sales: 売上高 / revenue of a general filer. operating_revenue: 営業収益 of a general filer. ordinary_revenue_bank and ordinary_revenue_insurance: 経常収益, the GROSS top line of a Japanese-GAAP bank or insurer (interest, fees, premiums, investment revenue). It is revenue, NOT profit, even though its concept is named OrdinaryIncome... and EDINET's English label says 'Ordinary income'; 経常利益 (ordinary profit) is a different line and is never reported as revenue. operating_revenue_securities: gross 営業収益 of a securities firm, before 金融費用. operating_revenue_finance: 営業収益 of a finance, commodity-futures, investment-management or construction-guarantee filer. insurance_revenue_ifrs: IFRS 17 insurance revenue of an IFRS insurer, which excludes investment and other revenue. revenue_financial_filer_unverified: a bank, insurer or securities firm not filing Japanese GAAP whose revenue line's meaning is not established; it is not comparable with net sales. statement_format reports the EDINET industry format (general, bank, insurance, insurance_life, insurance_nonlife, securities, ...), the DEI industry code and accounting standard as filed. operating_margin_denominator is the figure operating margin must divide by: the revenue metric for most filers, but 純営業収益 (basis net_operating_revenue_securities) for a securities firm, whose gross revenue includes interest later deducted as 金融費用. Omission reason not_applicable_to_statement_format: the filing's format has no such line (a Japanese-GAAP bank or insurer has no operating income, current assets or current liabilities, so no operating margin or current ratio); no other subtotal is substituted, and it is not missing data. no_total_concept_in_format: the format tags only component lines for the metric and the filer reported no total. Source: EDINET (https://disclosure2.edinet-fsa.go.jp/), PDL 1.0 (https://www.digital.go.jp/resources/open_data/public_data_license_v1.0). Data is processed by Kabuken, not raw unprocessed FSA data. Figures are calculated by Kabuken from EDINET filings, not reported directly by EDINET. Not investment advice.

Input Schema

NameRequiredDescriptionDefault
entity_codesYesList of 2 to 5 EDINET entity codes to compare (e.g. ['E02144', 'E00076']).

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4/5.0
Behavior5/5

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

Annotations declare readOnlyHint, openWorldHint, and destructiveHint, but the description adds extensive behavioral context: null handling with omission_reason values, derivation of equity for J-GAAP filers, revenue basis distinctions, omission reasons like not_applicable_to_statement_format, and data provenance. This goes far beyond what annotations cover.

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

Conciseness2/5

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

The description is extremely long and dense, forming a single paragraph with many nested details. While the purpose is front-loaded, the remainder is a wall of text that could be organized into clearer sections, making it hard to scan and absorb quickly.

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?

Despite the lack of an output schema, the description thoroughly explains return values (matrix of metrics, period_end, per-company metrics object with concept_id, context_ref, derived fields, omission_reason), revenue basis labels, and data limitations. It is complete for a complex financial comparison tool.

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?

Only one parameter (entity_codes) exists and the schema description coverage is 100%, fully documenting it as a list of 2–5 EDINET entity codes. The description adds no additional semantics about the parameter, so the baseline of 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 states a specific verb (Compare) and resource (key financial metrics across 2–5 Japanese listed companies) using latest annual securities report filings. It clearly distinguishes itself from single-company tools like get_company_financials by emphasizing comparison across multiple entities and the matrix return format.

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

Usage Guidelines3/5

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

The purpose implies when to use the tool (multi-company comparison), but it never explicitly states when to choose this over siblings such as get_company_financials or screen_companies. No exclusions or alternative conditions are provided, leaving usage inference to the agent.

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.