Skip to main content
Glama

Secedgar Company Search

secedgar_company_search
Read-onlyIdempotent

Find companies and retrieve entity info with optional recent filings. Entry point for most EDGAR workflows — resolves tickers, names, or CIKs to entity details, with accession numbers in the result feeding secedgar_get_filing for document content. When a date or form filter carries the scan past the recent submissions window, the full filtered filing history is also staged as df_ — inspect it with secedgar_dataframe_describe, then analyze it with secedgar_dataframe_query.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
formsNoFilter filings to specific form types (e.g., ["10-K", "10-Q", "8-K"]), matched exactly (case-insensitive) — list an amendment such as "10-K/A" to include it. Without this, returns all form types.
queryYesCompany ticker symbol (e.g., "AAPL", "VOO"), name (e.g., "Apple"), or CIK number (e.g., "320193"). Ticker is the fastest lookup and works for equities, ETFs, and mutual funds; a multi-class share ticker resolves in either form ("BRK-B" or "BRK.B"). Name search matches current and former names, preferring a name the query matches exactly over one it only starts or appears in. The corporate suffix (Inc, Corp, Co, Ltd, PLC, LLC, LP, N.V., S.A., AG, SE) can be left off ("Apple" finds "Apple Inc."; "Rio Tinto" lists both the Ltd and the PLC) or spelled out ("Beacon Financial Corporation" finds "Beacon Financial Corp"), but a suffix you include must match — Corp, Inc, Co, and Ltd stay distinct from each other, since separate registrants differ only by which one they use.
filed_afterNoOnly include filings filed on or after this date (YYYY-MM-DD). A date filter routes the scan into the older submissions archive pages, so it reaches filings that predate the recent window — the last year or 1,000 filings, whichever holds more (e.g. a company's 2005 10-K).
filed_beforeNoOnly include filings filed on or before this date (YYYY-MM-DD). Use alone or with filed_after; together they bound the archive-page scan.
filing_limitNoMaximum number of filings to return in the inline list.
include_filingsNoInclude recent filings in the response. Set to false for entity-info-only lookups.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
capNoThe `filing_limit` that was applied.
cikNoCentral Index Key, zero-padded to 10 digits.
sicNoSIC industry code.
nameNoSEC-conformed company name.
errorNoPresent when the call failed. Absent on success.
shownNoNumber of filings returned inline.
noticeNoGuidance when no filings matched the forms filter, or when filing_limit withheld some.
datasetNoDataframe of the full filtered history (recent window plus archive pages), staged only when the scan went past the recent window and the history exceeds filing_limit.
filingsNoRecent filings, filtered by forms if specified.
tickersNoAssociated ticker symbols.
class_idNoSEC fund class ID (e.g. "C000092055"), present alongside series_id.
exchangesNoExchanges where listed.
series_idNoSEC fund series ID (e.g. "S000002839"), when the query resolved via a fund ticker (ETF or mutual fund).
truncatedNoTrue when more filings matched than `filing_limit` allowed into the inline list.
total_filingsNoFilings matching the filter across everything scanned; can exceed filing_limit.
fiscal_year_endNoFiscal year end (MM-DD, e.g. "09-26"). Absent when SEC records none (e.g., private or pre-IPO entities).
sic_descriptionNoHuman-readable SIC description.
state_of_incorporationNoState of incorporation (US two-letter code, e.g. "DE"). Absent for many foreign filers and individuals.
history_scanned_throughNoOldest filing date the scan reached (YYYY-MM-DD); nothing older was examined. Archive pages past the recent window (last year or 1,000 filings) are read only for a date filter or an under-filled form filter. Absent when nothing was scanned.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed13 schema fields changed
    • changedInput schema / properties / query / description
      Previous value: -"Company ticker symbol (e.g., \"AAPL\", \"VOO\"), name (e.g., \"Apple\"), or CIK number (e.g., \"320193\"). Ticker is the fastest lookup and works for equities, ETFs, and mutual funds; a multi-class share ticker resolves in either form (\"BRK-B\" or \"BRK.B\"). Name search matches current and former names, and the corporate suffix does not have to match the registry's form (\"Beacon Financial Corporation\" finds \"Beacon Financial Corp\") — but Corp, Inc, Co, and Ltd stay distinct from each other, since separate registrants differ only by which one they use."New value: +"Company ticker symbol (e.g., \"AAPL\", \"VOO\"), name (e.g., \"Apple\"), or CIK number (e.g., \"320193\"). Ticker is the fastest lookup and works for equities, ETFs, and mutual funds; a multi-class share ticker resolves in either form (\"BRK-B\" or \"BRK.B\"). Name search matches current and former names, preferring a name the query matches exactly over one it only starts or appears in. The corporate suffix (Inc, Corp, Co, Ltd, PLC, LLC, LP, N.V., S.A., AG, SE) can be left off (\"Apple\" finds \"Apple Inc.\"; \"Rio Tinto\" lists both the Ltd and the PLC) or spelled out (\"Beacon Financial Corporation\" finds \"Beacon Financial Corp\"), but a suffix you include must match — Corp, Inc, Co, and Ltd stay distinct from each other, since separate registrants differ only by which one they use."
    • changedOutput schema / properties / class_id / description
      Previous value: -"SEC fund class ID (e.g. \"C000092055\"). Present when the query resolved via a fund ticker (ETF or mutual fund)."New value: +"SEC fund class ID (e.g. \"C000092055\"), present alongside series_id."
    • changedOutput schema / properties / dataset / description
      Previous value: -"Canvas dataframe holding the full filtered filing history (recent + archive pages), registered only when the scan reached beyond the recent window and the history exceeds filing_limit. Query the complete history — filings by form by year — with secedgar_dataframe_query; the inline `filings` list stays capped at filing_limit."New value: +"Dataframe of the full filtered history (recent window plus archive pages), staged only when the scan went past the recent window and the history exceeds filing_limit."
    • changedOutput schema / properties / dataset / properties / name / description
      Previous value: -"Dataframe handle (df_XXXXX_XXXXX) — inspect its columns with secedgar_dataframe_describe, then query it with secedgar_dataframe_query."New value: +"Dataframe handle (df_XXXXX_XXXXX) for secedgar_dataframe_describe, then secedgar_dataframe_query."
    • changedOutput schema / properties / dataset / properties / truncated / description
      Previous value: -"True when the archive scan hit its page cap before exhausting the manifest — older matching filings exist beyond the dataframe."New value: +"True when the archive scan hit its page cap, so older matching filings exist beyond the dataframe."
    • changedOutput schema / properties / filings / items / properties / accession_number / description
      Previous value: -"Filing accession number, dash format (e.g., 0000320193-23-000106). Pass to secedgar_get_filing."New value: +"Accession number, dash format (e.g., 0000320193-23-000106). Pass to secedgar_get_filing."
    • changedOutput schema / properties / filings / items / properties / report_date / description
      Previous value: -"Period of report (YYYY-MM-DD). Absent for filings without a reporting period (proxy statements, ownership reports)."New value: +"Period of report (YYYY-MM-DD). Absent for forms without one (proxy statements, ownership reports)."
    • changedOutput schema / properties / fiscal_year_end / description
      Previous value: -"Fiscal year end (MM-DD format, e.g., \"09-26\"). Absent for filers SEC records no fiscal year end for (e.g. private or pre-IPO entities)."New value: +"Fiscal year end (MM-DD, e.g. \"09-26\"). Absent when SEC records none (e.g., private or pre-IPO entities)."
    • changedOutput schema / properties / history_scanned_through / description
      Previous value: -"Oldest filing date reached by the scan (YYYY-MM-DD). Filings older than this were not examined: the recent window holds the last year or 1,000 filings, whichever is more, and older filings live in archive pages fetched only when a date filter or an under-filled form filter requires them. Absent when no filings were scanned."New value: +"Oldest filing date the scan reached (YYYY-MM-DD); nothing older was examined. Archive pages past the recent window (last year or 1,000 filings) are read only for a date filter or an under-filled form filter. Absent when nothing was scanned."
    • changedOutput schema / properties / notice / description
      Previous value: -"Guidance when include_filings=true but no filings matched the forms filter, or when filing_limit withheld some."New value: +"Guidance when no filings matched the forms filter, or when filing_limit withheld some."
    • changedOutput schema / properties / series_id / description
      Previous value: -"SEC fund series ID (e.g. \"S000002839\"). Present when the query resolved via a fund ticker (ETF or mutual fund)."New value: +"SEC fund series ID (e.g. \"S000002839\"), when the query resolved via a fund ticker (ETF or mutual fund)."
    • changedOutput schema / properties / state_of_incorporation / description
      Previous value: -"State of incorporation (US two-letter code, e.g. \"DE\"). Omitted for some entities, including many foreign filers and individuals."New value: +"State of incorporation (US two-letter code, e.g. \"DE\"). Absent for many foreign filers and individuals."
    • changedOutput schema / properties / total_filings / description
      Previous value: -"Total filings matching the filter across everything scanned (recent window + any archive pages), which may exceed filing_limit and the inline list."New value: +"Filings matching the filter across everything scanned; can exceed filing_limit."
  2. Changed2 schema fields changed
    • changedInput schema / properties / filed_after / description
      Previous value: -"Only include filings filed on or after this date (YYYY-MM-DD). A date filter routes the scan into the older submissions archive pages, so it reaches filings that predate the ~1000-filing recent window (e.g. a company's 2005 10-K)."New value: +"Only include filings filed on or after this date (YYYY-MM-DD). A date filter routes the scan into the older submissions archive pages, so it reaches filings that predate the recent window — the last year or 1,000 filings, whichever holds more (e.g. a company's 2005 10-K)."
    • changedOutput schema / properties / history_scanned_through / description
      Previous value: -"Oldest filing date reached by the scan (YYYY-MM-DD). Filings older than this were not examined: the recent window caps at ~1000 filings, and older filings live in archive pages fetched only when a date filter or an under-filled form filter requires them. Absent when no filings were scanned."New value: +"Oldest filing date reached by the scan (YYYY-MM-DD). Filings older than this were not examined: the recent window holds the last year or 1,000 filings, whichever is more, and older filings live in archive pages fetched only when a date filter or an under-filled form filter requires them. Absent when no filings were scanned."
  3. Changed6 schema fields changed
    • removedInput schema / properties / form_types
      Removed value: -{
      -  "description": "Filter filings to specific form types (e.g., [\"10-K\", \"10-Q\", \"8-K\"]). Without this, returns all form types.",
      -  "items": {
      -    "type": "string"
      -  },
      -  "type": "array"
      -}
    • addedInput schema / properties / forms
      Added value: +{
      +  "description": "Filter filings to specific form types (e.g., [\"10-K\", \"10-Q\", \"8-K\"]), matched exactly (case-insensitive) — list an amendment such as \"10-K/A\" to include it. Without this, returns all form types.",
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • changedOutput schema / properties / error / properties / data / properties / reason / description
      Previous value: -"Machine-readable failure mode. Declared by this tool: `no_match`: No company matches the query `multiple_matches`: Query is ambiguous and matches several companies Other values are possible when a failure originates below the handler."New value: +"Machine-readable failure mode. Declared by this tool: `no_match`: No company matches the query. `multiple_matches`: Query is ambiguous and matches several companies. `rate_limited`: SEC is rate-limiting this server's IP — SEC answered 429, or the call was refused without being sent while the cool-down after one runs. Other values are possible when a failure originates below the handler."
    • changedOutput schema / properties / error / properties / data / properties / reason / examples
      Previous value: -[
      -  "no_match",
      -  "multiple_matches"
      -]New value: +[
      +  "no_match",
      +  "multiple_matches",
      +  "rate_limited"
      +]
    • changedOutput schema / properties / filings / description
      Previous value: -"Recent filings, filtered by form_types if specified."New value: +"Recent filings, filtered by forms if specified."
    • changedOutput schema / properties / notice / description
      Previous value: -"Guidance when include_filings=true but no filings matched the form_types filter, or when filing_limit withheld some."New value: +"Guidance when include_filings=true but no filings matched the forms filter, or when filing_limit withheld some."
  4. Changed1 schema field changed
    • changedOutput schema / properties / dataset / properties / name / description
      Previous value: -"Dataframe handle (df_XXXXX_XXXXX) — pass to secedgar_dataframe_query."New value: +"Dataframe handle (df_XXXXX_XXXXX) — inspect its columns with secedgar_dataframe_describe, then query it with secedgar_dataframe_query."
  5. Changed1 schema field changed
    • changedInput schema / properties / query / description
      Previous value: -"Company ticker symbol (e.g., \"AAPL\", \"VOO\"), name (e.g., \"Apple\"), or CIK number (e.g., \"320193\"). Ticker is the fastest lookup and works for equities, ETFs, and mutual funds. Name search matches current and former names."New value: +"Company ticker symbol (e.g., \"AAPL\", \"VOO\"), name (e.g., \"Apple\"), or CIK number (e.g., \"320193\"). Ticker is the fastest lookup and works for equities, ETFs, and mutual funds; a multi-class share ticker resolves in either form (\"BRK-B\" or \"BRK.B\"). Name search matches current and former names, and the corporate suffix does not have to match the registry's form (\"Beacon Financial Corporation\" finds \"Beacon Financial Corp\") — but Corp, Inc, Co, and Ltd stay distinct from each other, since separate registrants differ only by which one they use."
  6. Changed10 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": [
      +      "cik",
      +      "name",
      +      "tickers",
      +      "exchanges",
      +      "sic",
      +      "sic_description"
      +    ]
      +  },
      +  {
      +    "required": [
      +      "error"
      +    ]
      +  }
      +]
    • addedOutput schema / properties / cap
      Added value: +{
      +  "description": "The `filing_limit` that was applied.",
      +  "type": "number"
      +}
    • 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. Declared by this tool: `no_match`: No company matches the query `multiple_matches`: Query is ambiguous and matches several companies Other values are possible when a failure originates below the handler.",
      +          "examples": [
      +            "no_match",
      +            "multiple_matches"
      +          ],
      +          "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"
      +}
    • changedOutput schema / properties / notice / description
      Previous value: -"Guidance when include_filings=true but no filings matched the form_types filter."New value: +"Guidance when include_filings=true but no filings matched the form_types filter, or when filing_limit withheld some."
    • addedOutput schema / properties / shown
      Added value: +{
      +  "description": "Number of filings returned inline.",
      +  "type": "number"
      +}
    • addedOutput schema / properties / truncated
      Added value: +{
      +  "description": "True when more filings matched than `filing_limit` allowed into the inline list.",
      +  "type": "boolean"
      +}
    • removedOutput schema / required
      Removed value: -[
      -  "cik",
      -  "name",
      -  "tickers",
      -  "exchanges",
      -  "sic",
      -  "sic_description"
      -]
  7. Changed6 schema fields changed
    • addedInput schema / properties / filed_after
      Added value: +{
      +  "anyOf": [
      +    {
      +      "const": "",
      +      "type": "string"
      +    },
      +    {
      +      "description": "YYYY-MM-DD",
      +      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      +      "type": "string"
      +    }
      +  ],
      +  "description": "Only include filings filed on or after this date (YYYY-MM-DD). A date filter routes the scan into the older submissions archive pages, so it reaches filings that predate the ~1000-filing recent window (e.g. a company's 2005 10-K)."
      +}
    • addedInput schema / properties / filed_before
      Added value: +{
      +  "anyOf": [
      +    {
      +      "const": "",
      +      "type": "string"
      +    },
      +    {
      +      "description": "YYYY-MM-DD",
      +      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      +      "type": "string"
      +    }
      +  ],
      +  "description": "Only include filings filed on or before this date (YYYY-MM-DD). Use alone or with filed_after; together they bound the archive-page scan."
      +}
    • changedInput schema / properties / filing_limit / description
      Previous value: -"Maximum number of filings to return."New value: +"Maximum number of filings to return in the inline list."
    • addedOutput schema / properties / dataset
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "Canvas dataframe holding the full filtered filing history (recent + archive pages), registered only when the scan reached beyond the recent window and the history exceeds filing_limit. Query the complete history — filings by form by year — with secedgar_dataframe_query; the inline `filings` list stays capped at filing_limit.",
      +  "properties": {
      +    "expires_at": {
      +      "description": "ISO 8601 expiry timestamp.",
      +      "type": "string"
      +    },
      +    "name": {
      +      "description": "Dataframe handle (df_XXXXX_XXXXX) — pass to secedgar_dataframe_query.",
      +      "type": "string"
      +    },
      +    "row_count": {
      +      "description": "Rows materialized in the dataframe.",
      +      "type": "number"
      +    },
      +    "truncated": {
      +      "description": "True when the archive scan hit its page cap before exhausting the manifest — older matching filings exist beyond the dataframe.",
      +      "type": "boolean"
      +    }
      +  },
      +  "required": [
      +    "name",
      +    "row_count",
      +    "expires_at",
      +    "truncated"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / history_scanned_through
      Added value: +{
      +  "description": "Oldest filing date reached by the scan (YYYY-MM-DD). Filings older than this were not examined: the recent window caps at ~1000 filings, and older filings live in archive pages fetched only when a date filter or an under-filled form filter requires them. Absent when no filings were scanned.",
      +  "type": "string"
      +}
    • changedOutput schema / properties / total_filings / description
      Previous value: -"Total filings matching the filter (may exceed filing_limit)."New value: +"Total filings matching the filter across everything scanned (recent window + any archive pages), which may exceed filing_limit and the inline list."
  8. Changed5 schema fields changed
    • changedInput schema / properties / query / description
      Previous value: -"Company ticker symbol (e.g., \"AAPL\"), name (e.g., \"Apple\"), or CIK number (e.g., \"320193\"). Ticker is the fastest lookup. Name search does fuzzy matching."New value: +"Company ticker symbol (e.g., \"AAPL\", \"VOO\"), name (e.g., \"Apple\"), or CIK number (e.g., \"320193\"). Ticker is the fastest lookup and works for equities, ETFs, and mutual funds. Name search matches current and former names."
    • addedOutput schema / properties / class_id
      Added value: +{
      +  "description": "SEC fund class ID (e.g. \"C000092055\"). Present when the query resolved via a fund ticker (ETF or mutual fund).",
      +  "type": "string"
      +}
    • changedOutput schema / properties / fiscal_year_end / description
      Previous value: -"Fiscal year end (MM-DD format, e.g., \"09-26\" for September 26)."New value: +"Fiscal year end (MM-DD format, e.g., \"09-26\"). Absent for filers SEC records no fiscal year end for (e.g. private or pre-IPO entities)."
    • addedOutput schema / properties / series_id
      Added value: +{
      +  "description": "SEC fund series ID (e.g. \"S000002839\"). Present when the query resolved via a fund ticker (ETF or mutual fund).",
      +  "type": "string"
      +}
    • changedOutput schema / required
      Previous value: -[
      -  "cik",
      -  "name",
      -  "tickers",
      -  "exchanges",
      -  "sic",
      -  "sic_description",
      -  "fiscal_year_end"
      -]New value: +[
      +  "cik",
      +  "name",
      +  "tickers",
      +  "exchanges",
      +  "sic",
      +  "sic_description"
      +]
  9. Changed1 schema field changed
    • addedOutput schema / properties / notice
      Added value: +{
      +  "description": "Guidance when include_filings=true but no filings matched the form_types filter.",
      +  "type": "string"
      +}
  10. Changed1 schema field changed
    • changedOutput schema / properties / fiscal_year_end / description
      Previous value: -"Fiscal year end (MMDD format)."New value: +"Fiscal year end (MM-DD format, e.g., \"09-26\" for September 26)."
  11. Changed4 schema fields changed
    • changedOutput schema / properties / filings / items / properties / accession_number / description
      Previous value: -"Filing accession number."New value: +"Filing accession number, dash format (e.g., 0000320193-23-000106). Pass to secedgar_get_filing."
    • changedOutput schema / properties / filings / items / properties / description / description
      Previous value: -"Filing description."New value: +"SEC-provided filing description. Absent when SEC published none."
    • changedOutput schema / properties / filings / items / properties / filing_date / description
      Previous value: -"Date filed."New value: +"Date the filing was submitted (YYYY-MM-DD)."
    • changedOutput schema / properties / filings / items / properties / report_date / description
      Previous value: -"Period of report."New value: +"Period of report (YYYY-MM-DD). Absent for filings without a reporting period (proxy statements, ownership reports)."
  12. Changed1 schema field changed
    • changedOutput schema / properties / state_of_incorporation / description
      Previous value: -"State of incorporation."New value: +"State of incorporation (US two-letter code, e.g. \"DE\"). Omitted for some entities, including many foreign filers and individuals."
  13. Changed1 schema field changed
    • addedOutput schema / properties / filings / items / description
      Added value: +"One filing record with form type, dates, and primary document."
  14. First observed

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, and openWorld, so the safety profile is covered. The description adds real behavioral context beyond that: it discloses the side-effect of staging full filtered filing history as df_<id> when date/form filters push the scan past the recent window. It stops short of describing rate limits or error behavior, so a 4 rather than 5.

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?

Three sentences, well front-loaded with the core purpose first and routing details after. Dense but each clause carries information; the only mild cost is sentence length that requires careful reading.

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 values needn't be explained. The description covers the identity of the tool, its downstream connections, and the conditional dataframe-staging behavior — everything an agent needs to invoke it correctly.

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 description coverage is 100%, so structured fields already document the parameters and baseline is 3. The description adds meaning by tying the date and form filters to a behavioral consequence (archive-page scan, df_<id> staging), which clarifies what those parameters actually trigger.

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 and resource ('Find companies and retrieve entity info with optional recent filings') and explicitly positions itself as 'the entry point for most EDGAR workflows.' This lets an agent distinguish it from siblings like secedgar_search_filings and secedgar_get_filing without opening a 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 routes the agent: accession numbers in the result feed secedgar_get_filing for document content, and staged df_<id> output is inspected with secedgar_dataframe_describe then analyzed with secedgar_dataframe_query. It names the when (entry point, ticker/name/CIK resolution) and the downstream alternatives.

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.