Skip to main content
Glama
mambalabsdev

Public Company Reporting Window Finder

by mambalabsdev

Qualify Company

qualify_company
Read-onlyIdempotent

Check if a company is publicly listed using identifiers like ticker, domain, or CIK. Filter to keep only listed companies or exclude them to target private businesses.

Instructions

Answer whether a company is publicly listed. Takes the same identifiers as resolve_company and returns a listed status verdict per input. Set listed_only to keep only the companies proven to be listed, or suppress_listed to remove them, which is what you want when selling only into private companies. By default an unmatched company returns is_listed null rather than false, because a non match may mean the company is private OR that the dataset does not hold its domain; set assume_unmatched_is_private to true to opt into reading a non match as private. Charged per company row returned. Requires an APIFY_TOKEN and consumes Apify credits. Read only.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
ciksNoSEC Central Index Keys, with or without leading zeros.
leisNo20 character Legal Entity Identifiers.
isinsNo12 character ISINs.
regionsNoShorthand for a set of venues and countries: us, uk, eu. Widens an explicit exchange or country filter rather than replacing it.
sectorsNoSEC SIC descriptions, e.g. Pharmaceutical Preparations. Populated on roughly 65 percent of the publishable universe.
tickersNoExchange tickers, e.g. NWLG. Matched against the primary ticker and every venue listing.
cadencesNoquarterly, semiannual, annual, unknown.
listed_onlyNoqualify mode. Keep only rows proven to be publicly listed.
company_namesNoLegal or trading names. Matched on a normalized name. Former names are not available: the alias table carries tickers and ISINs only.
country_codesNoISO 3166-1 alpha-2, e.g. US, GB, FR.
company_domainNoA single bare domain, e.g. stripe.com. The Clay column shape. Used by resolve, qualify and timing.
exchange_codesNoISO 10383 MICs. 18 venues are covered.
security_typesNoordinary_shares, depositary_receipt, preferred_shares.
company_domainsNoMany domains at once. Used by resolve, qualify and timing.
suppress_listedNoqualify mode. Remove companies proven to be publicly listed, for anyone selling only into private companies. It removes what we can prove is listed; it does not warrant that the remainder is private.
public_float_bandsNomicro, small, mid, large, mega, unknown. Size runs on public float because market capitalization is not populated anywhere in this dataset.
us_registrant_onlyNoKeep only companies carrying an SEC CIK.
exclude_share_alikeNoDrop rows derived from CC BY-SA sources, whose share alike condition may not suit a closed product.
exclude_blank_checksNoDrop pre deal SPACs. Separate from the operating company filter: a blank check shell is flagged as an operating company and passes every ordinary firmographic filter.
fiscal_year_end_monthsNoIntegers 1 to 12. Fiscal year end is effectively a United States field in this dataset.
foreign_private_issuerNoFilter on foreign private issuer status.
operating_companies_onlyNoDrop funds, trusts and other non operating entities. Sent as a string for Clay compatibility.
exclude_name_only_matchesNoDrop rows whose identity link rests on a name and country agreeing rather than on an identifier. Use this wherever a wrong identity link matters.
min_provenance_confidenceNoSet to high to exclude rows whose source terms were never read.
assume_unmatched_is_privateNoqualify mode. By default an unmatched company returns is_listed null, because a non match may mean the company is private OR that we do not hold its domain. Set true to opt into reading a non match as private, which sets is_listed false.
exclude_december_fiscal_year_endNoKeep only companies whose fiscal year ends in a month other than December, the accounts whose budget cycle is out of phase with a calendar quarter.

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. First observedv1.0.0

TDQS

A4.4/5.0
Behavior5/5

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

The description discloses key behavioral traits beyond the annotations: the default null vs false for unmatched companies, the opt-in behavior with assume_unmatched_is_private, the cost model ('Charged per company row returned'), and authentication requirements ('Requires an APIFY_TOKEN'). The annotations already provide readOnlyHint, openWorldHint, idempotentHint, and destructiveHint, and the description adds valuable context without contradiction.

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 front-loaded with the core purpose and uses five sentences to cover purpose, identifiers, mode parameters, unmatched behavior, and cost/auth. Every sentence is informative and earns its place. Given the tool's complexity (26 parameters), this is efficient and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite the tool having 26 parameters, the description only explains the three mode parameters and the unmatched behavior. The role of the other 23 parameters (sectors, regions, exchange_codes, etc.) is not mentioned. The description does not clarify how these filter parameters relate to the 'qualify' action, leaving a significant gap in context for an agent. No output schema is provided, and the description only vaguely mentions 'returns a listed status verdict per input' without specifying the return shape.

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 the baseline is 3. The description adds meaning by explaining the three 'qualify mode' parameters (listed_only, suppress_listed, assume_unmatched_is_private) in the context of the tool's objective, and clarifies the default behavior for unmatched inputs. This provides extra guidance beyond the individual parameter descriptions in the 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 starts with 'Answer whether a company is publicly listed.' which is a specific verb+resource. It distinguishes from the sibling 'resolve_company' by stating it returns a 'listed status verdict' and uses the same identifiers. This clearly conveys the unique purpose.

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

Usage Guidelines4/5

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

The description provides explicit guidance on when to use the listed_only and suppress_listed modes ('when selling only into private companies'), and explains the default behavior of unmatched companies. It references the sibling resolve_company for identifiers, giving context for usage. However, it does not explicitly state when not to use this tool or compare to other siblings, so a 4 is appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/mambalabsdev/mcp-public-company-reporting-window-finder'

If you have feedback or need assistance with the MCP directory API, please join our Discord server