Skip to main content
Glama

Valuein — SEC EDGAR Fundamentals & Smart-Money Data

Search Companies

search_companies
Read-onlyIdempotent

Search for US public companies by name, ticker symbol, CIK (SEC identifier), or SIC industry code. Returns ticker, company name, sector, industry, exchange, and current S&P 500 membership status. Use this tool to resolve a company name to ticker/CIK before calling get_company_fundamentals, get_valuation_metrics, or other tools that require a ticker — they do not fuzzy-match company names.

Use this tool — NOT get_pit_universe — when the user asks about CURRENT S&P 500 members. To list current S&P 500 members, call search_companies({ is_sp500: true }) (the is_sp500 filter is itself a valid search parameter, so no other input is required). This returns the live snapshot as of query time. Example: "List 5 current S&P 500 members" → call search_companies({ is_sp500: true, limit: 5 }).

Use get_pit_universe ONLY when the user explicitly needs a survivorship-free historical universe as of a specific past date (e.g. "S&P 500 members as of March 2018"). If the user says "current," "today," "now," or gives no date, use search_companies instead.

One ticker can return two rows. A CIK identifies a registrant, not a company, so a reincorporation or holdco reorganisation moves the ticker to a NEW CIK while the filing history stays under the old one. Both rows are real. Use is_active to tell them apart: true is the current listing, false is the superseded one and carries listed_until. Prefer is_active over statusstatus is an entity-level flag that is unreliable in both directions.

Data details: sic_code is the 4-digit SIC; industry is the human-readable label. sector is SIC-derived with GICS-style labels — NOT licensed GICS, so industrial conglomerates may map differently from official GICS (e.g. 3M → 'Health Care' by SIC vs Industrials by GICS). S&P 500 membership is sourced from index_membership.parquet (current SP500 = index_name='SP500' AND removal_date IS NULL). Available on all plans.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
cikNoSEC CIK identifier (exact match). E.g. '0000320193' for Apple.
limitNoMaximum number of results to return (1–50). Defaults to 25.
queryNoFree-text search over company name and ticker. Case-insensitive. E.g. 'Apple', 'AAPL', 'Microsoft', 'semiconductor'.
is_sp500NoFilter to current S&P 500 members only.
sic_codeNo4-digit SIC industry code. E.g. '7372' for Prepackaged Software.
is_activeNoFilter on whether the LISTING is current. true = currently trading; false = superseded listings only (delisted, or a ticker that moved to a new registrant). Omit to return both.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
_metaYesProvenance envelope — data lineage for every MCP response
queryYes
companiesYes
results_returnedYes

TDQS

A5/5.0
Behavior5/5

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

Beyond the readOnly/idempotent annotations, it discloses that one ticker can yield two rows due to CIK vs registrant semantics, explains is_active vs status reliability, and exposes SIC vs GICS sector mapping caveats. Also states the data source for S&P 500 membership, adding context the annotations do not provide.

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?

Long but well-structured with bolded headers and front-loaded purpose. Every paragraph covers essential guidance—usage boundaries, edge cases, and data semantics—with no filler. The length is justified by the tool's complexity and sibling ambiguity.

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 and sibling ambiguity, the description is exceptionally complete: it covers return values, edge cases, parameter semantics, sibling differentiation, and data provenance. The output schema exists, so the description can focus on non-obvious semantics rather than return format.

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?

Schema covers 100% of parameters, but the description adds critical operational meaning: `is_sp500` can be used alone as a complete search, `is_active` distinguishes superseded listings, and `sic_code` vs `industry` vs `sector` relationships are clarified. This goes well beyond the schema's field-level descriptions.

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 clearly states it searches US public companies by name, ticker, CIK, or SIC code, and specifies the return fields. It explicitly distinguishes itself from get_pit_universe by positioning itself as the tool for current S&P 500 members, while the sibling handles historical universes.

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?

Provides explicit when-to-use guidance: resolve a company name to ticker before calling dependent tools, and directly instructs to use this tool for current S&P 500 membership while reserving get_pit_universe for historical survivorship-free universes. Includes a concrete example call with `is_sp500` and `limit` parameters.

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.

TDQS

A4/5.0
Disambiguation5/5

Each tool has a distinct purpose with detailed descriptions that clarify differences. Overlaps like get_peer_comparables vs screen_universe are well-differentiated by scope (single company vs cross-sectional). Similarly, get_insider_sentiment vs get_smart_money_flow are clearly distinguished by data sources and methodology.

Naming Consistency5/5

All tool names follow a consistent verb_noun snake_case pattern (e.g., create_report, get_financial_ratios, delete_alert). No mixing of conventions or inconsistent verbs.

Tool Count2/5

With 69 tools, the count far exceeds the 25+ threshold for 'too many'. While the domain is broad, the sheer volume likely overwhelms agents and increases selection complexity.

Completeness4/5

The tool set covers a wide range of SEC filings, ratios, smart-money data, alerts, reports, and more. Minor gaps exist (e.g., no options or detailed debt data), but most analyst workflows are supported.