Skip to main content
Glama

Secedgar Search Concepts

secedgar_search_concepts
Read-onlyIdempotent

Search supported XBRL financial concepts by keyword, statement group, or taxonomy. Use before secedgar_get_financials, secedgar_compare_companies, or secedgar_fetch_frames to discover the right friendly name, or pass a raw XBRL tag (e.g., "NetIncomeLoss") to reverse-lookup which friendly names map to it. Empty search with no filters returns the full catalog.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
groupNoFilter to a single financial statement group. income_statement covers P&L items; balance_sheet covers position items (use instant periods in secedgar_fetch_frames); cash_flow covers CF statement items; per_share covers EPS and the diluted share count it divides by; entity_info covers DEI items like shares outstanding.
searchNoCase-insensitive substring matched against friendly name, label, and XBRL tags. Examples: "cash" finds cash and operating_cash_flow; "earnings" finds eps_basic and eps_diluted; "NetIncomeLoss" reverse-maps to net_income. Omit to list all concepts.
taxonomyNoFilter to a single XBRL taxonomy. us-gaap for US filers, ifrs-full for foreign filers, dei for entity info.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
errorNoPresent when the call failed. Absent on success.
totalNoNumber of concepts matching the filters.
noticeNoGuidance when no concepts matched — echoes the search term and suggests alternatives.
conceptsNoMatching concepts, ordered by group then alphabetical by name.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed5 schema fields changed
    • changedOutput schema / properties / concepts / items / properties / group / description
      Previous value: -"Statement section this concept belongs to: income_statement, balance_sheet, cash_flow, per_share, or entity_info."New value: +"Statement section: income_statement, balance_sheet, cash_flow, per_share, or entity_info."
    • changedOutput schema / properties / concepts / items / properties / ifrs_tags / description
      Previous value: -"XBRL tags this friendly name resolves to under taxonomy \"ifrs-full\", tried in order — a different element set from tags, not a synonym list. Each one is confirmed present in a live 20-F filing. Absent when the concept has no IFRS equivalent, in which case taxonomy \"ifrs-full\" does not resolve it."New value: +"Tags under taxonomy \"ifrs-full\", tried in order; a different element set from tags, each seen in a live 20-F. Absent when there is no IFRS equivalent."
    • changedOutput schema / properties / concepts / items / properties / related_tags / description
      Previous value: -"Alternate-DEFINITION tags (different meaning from `tags`, not historical synonyms) that a meaningful share of filers report this metric under instead — surfaced by secedgar_fetch_frames as `related_tags`. Present only when the concept has a known high-coverage alternate (e.g. cash → restricted-cash-inclusive total, equity → NCI-inclusive total). Query these separately; do not blindly union them with the base tag."New value: +"Alternate-definition tags (not synonyms) many filers report this metric under, as secedgar_fetch_frames flags them (e.g., cash including restricted cash). Query them separately, never blindly unioned. Absent when none is known."
    • changedOutput schema / properties / concepts / items / properties / tags / description
      Previous value: -"XBRL tags this friendly name resolves to under us-gaap, tried in order. Multiple tags cover historical naming changes (e.g., pre- vs post-ASC 606 revenue) and can include a tag SEC has since retired, kept as a last-resort fallback for filers whose history predates its replacement."New value: +"XBRL tags under us-gaap, tried in order; several cover historical renames (pre- and post-ASC 606 revenue), possibly a retired tag as last resort."
    • changedOutput schema / properties / concepts / items / properties / unit / description
      Previous value: -"Unit of measure (USD, USD/shares, shares, pure). secedgar_fetch_frames accepts both slash and dashed forms."New value: +"Unit of measure (USD, USD/shares, shares, pure); secedgar_fetch_frames also takes the dashed form."
  2. Changed2 schema fields changed
    • changedInput schema / properties / group / description
      Previous value: -"Filter to a single financial statement group. income_statement covers P&L items; balance_sheet covers position items (use instant periods in secedgar_fetch_frames); cash_flow covers CF statement items; per_share covers EPS; entity_info covers DEI items like shares outstanding."New value: +"Filter to a single financial statement group. income_statement covers P&L items; balance_sheet covers position items (use instant periods in secedgar_fetch_frames); cash_flow covers CF statement items; per_share covers EPS and the diluted share count it divides by; entity_info covers DEI items like shares outstanding."
    • changedOutput schema / properties / concepts / items / properties / name / description
      Previous value: -"Friendly name to pass as the concept argument to secedgar_get_financials or secedgar_fetch_frames."New value: +"Friendly name to pass as `concept` to secedgar_get_financials or secedgar_fetch_frames, or in `concepts` to secedgar_compare_companies."
  3. Changed6 schema fields changed
    • changedInput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • addedInput schema / additionalProperties
      Added value: +false
    • changedOutput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • addedOutput schema / anyOf
      Added value: +[
      +  {
      +    "not": {
      +      "required": [
      +        "error"
      +      ]
      +    },
      +    "required": [
      +      "total",
      +      "concepts"
      +    ]
      +  },
      +  {
      +    "required": [
      +      "error"
      +    ]
      +  }
      +]
    • addedOutput schema / properties / error
      Added value: +{
      +  "additionalProperties": {},
      +  "description": "Present when the call failed. Absent on success.",
      +  "properties": {
      +    "code": {
      +      "description": "JSON-RPC error code for this failure.",
      +      "maximum": 9007199254740991,
      +      "minimum": -9007199254740991,
      +      "type": "integer"
      +    },
      +    "data": {
      +      "additionalProperties": {},
      +      "properties": {
      +        "reason": {
      +          "description": "Machine-readable failure mode.",
      +          "type": "string"
      +        },
      +        "recovery": {
      +          "additionalProperties": {},
      +          "description": "Actionable next step for the caller.",
      +          "properties": {
      +            "hint": {
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "hint"
      +          ],
      +          "type": "object"
      +        },
      +        "retryable": {
      +          "description": "Whether retrying may succeed.",
      +          "type": "boolean"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "message": {
      +      "description": "Human-readable description of what went wrong.",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "code",
      +    "message"
      +  ],
      +  "type": "object"
      +}
    • removedOutput schema / required
      Removed value: -[
      -  "total",
      -  "concepts"
      -]
  4. Changed2 schema fields changed
    • addedOutput schema / properties / concepts / items / properties / ifrs_tags
      Added value: +{
      +  "description": "XBRL tags this friendly name resolves to under taxonomy \"ifrs-full\", tried in order — a different element set from tags, not a synonym list. Each one is confirmed present in a live 20-F filing. Absent when the concept has no IFRS equivalent, in which case taxonomy \"ifrs-full\" does not resolve it.",
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • changedOutput schema / properties / concepts / items / properties / tags / description
      Previous value: -"XBRL tags this friendly name resolves to, tried in order. Multiple tags cover historical naming changes (e.g., pre- vs post-ASC 606 revenue)."New value: +"XBRL tags this friendly name resolves to under us-gaap, tried in order. Multiple tags cover historical naming changes (e.g., pre- vs post-ASC 606 revenue) and can include a tag SEC has since retired, kept as a last-resort fallback for filers whose history predates its replacement."
  5. Changed1 schema field changed
    • addedOutput schema / properties / concepts / items / properties / related_tags
      Added value: +{
      +  "description": "Alternate-DEFINITION tags (different meaning from `tags`, not historical synonyms) that a meaningful share of filers report this metric under instead — surfaced by secedgar_fetch_frames as `related_tags`. Present only when the concept has a known high-coverage alternate (e.g. cash → restricted-cash-inclusive total, equity → NCI-inclusive total). Query these separately; do not blindly union them with the base tag.",
      +  "items": {
      +    "additionalProperties": false,
      +    "description": "One alternate-definition tag and the reason it differs.",
      +    "properties": {
      +      "note": {
      +        "description": "How this tag differs in definition from the mapped tags.",
      +        "type": "string"
      +      },
      +      "tag": {
      +        "description": "Alternate-definition XBRL tag some filers use as their primary line.",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "tag",
      +      "note"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
  6. Changed3 schema fields changed
    • changedInput schema / properties / group / description
      Previous value: -"Filter to a single financial statement group. income_statement covers P&L items; balance_sheet covers position items (use instant periods in secedgar_compare_metric); cash_flow covers CF statement items; per_share covers EPS; entity_info covers DEI items like shares outstanding."New value: +"Filter to a single financial statement group. income_statement covers P&L items; balance_sheet covers position items (use instant periods in secedgar_fetch_frames); cash_flow covers CF statement items; per_share covers EPS; entity_info covers DEI items like shares outstanding."
    • changedOutput schema / properties / concepts / items / properties / name / description
      Previous value: -"Friendly name to pass as the concept argument to secedgar_get_financials or secedgar_compare_metric."New value: +"Friendly name to pass as the concept argument to secedgar_get_financials or secedgar_fetch_frames."
    • changedOutput schema / properties / concepts / items / properties / unit / description
      Previous value: -"Unit of measure (USD, USD/shares, shares, pure). secedgar_compare_metric accepts both slash and dashed forms."New value: +"Unit of measure (USD, USD/shares, shares, pure). secedgar_fetch_frames accepts both slash and dashed forms."
  7. Changed1 schema field changed
    • addedOutput schema / properties / notice
      Added value: +{
      +  "description": "Guidance when no concepts matched — echoes the search term and suggests alternatives.",
      +  "type": "string"
      +}
  8. Changed1 schema field changed
    • changedInput schema / properties / group / description
      Previous value: -"Filter to a single financial statement group. income_statement covers P&L items; balance_sheet covers position items (use instant periods in compare_metric); cash_flow covers CF statement items; per_share covers EPS; entity_info covers DEI items like shares outstanding."New value: +"Filter to a single financial statement group. income_statement covers P&L items; balance_sheet covers position items (use instant periods in secedgar_compare_metric); cash_flow covers CF statement items; per_share covers EPS; entity_info covers DEI items like shares outstanding."
  9. Changed3 schema fields changed
    • changedOutput schema / properties / concepts / items / properties / group / description
      Previous value: -"Financial statement group."New value: +"Statement section this concept belongs to: income_statement, balance_sheet, cash_flow, per_share, or entity_info."
    • changedOutput schema / properties / concepts / items / properties / taxonomy / description
      Previous value: -"XBRL taxonomy."New value: +"XBRL taxonomy this concept lives in: us-gaap (US filers), ifrs-full (foreign filers), or dei (entity info)."
    • changedOutput schema / properties / concepts / items / properties / unit / description
      Previous value: -"Unit of measure (USD, USD/shares, shares, pure). Note: secedgar_compare_metric expects the dashed form USD-per-shares."New value: +"Unit of measure (USD, USD/shares, shares, pure). secedgar_compare_metric accepts both slash and dashed forms."
  10. Changed1 schema field changed
    • addedOutput schema / properties / concepts / items / description
      Added value: +"One XBRL concept mapping with its friendly name, tags, and grouping."
  11. Added

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and openWorldHint=false, so the safety profile is covered. The description adds genuinely useful behavior beyond that: an empty search with no filters returns the full catalog, and the tool supports reverse-mapping from raw tags. It does not mention result size or pagination for that full-catalog case, which keeps it from a 5.

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?

Two sentences, front-loaded with the core action, followed by workflow routing and the edge-case behavior. Every clause carries information; nothing is restated from the title.

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?

An output schema exists, so return-value documentation is unnecessary. With annotations covering safety, 100% parameter coverage, and the empty-search/catalog behavior disclosed, an agent has everything needed to invoke this correctly.

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 coverage is 100% and the schema itself carries rich enum descriptions and per-parameter examples, so the baseline is 3. The description reinforces the search semantics (case-insensitive across friendly name, label, and XBRL tags) but adds no syntax or format details the schema lacks.

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?

States a specific verb (Search) and resource (supported XBRL financial concepts) with three filtering axes, and names the sibling consumers it feeds (get_financials, compare_companies, fetch_frames). An agent can distinguish this discovery tool from the data-retrieval siblings without opening any schema.

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?

Explicitly prescribes when to use it: 'Use before secedgar_get_financials, secedgar_compare_companies, or secedgar_fetch_frames to discover the right friendly name.' It also documents the alternate reverse-lookup mode (raw XBRL tag → friendly names), so both entry conditions are covered.

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.