private_age_distribution
Get business age distribution — how many entities are 0-4, 5-9, 10-14, 15-19, 20-29, 30-39, 40+ years old. Optionally filter by state.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| state | No | Filter by state: FL, NY |
Get business age distribution — how many entities are 0-4, 5-9, 10-14, 15-19, 20-29, 30-39, 40+ years old. Optionally filter by state.
| Name | Required | Description | Default |
|---|---|---|---|
| state | No | Filter by state: FL, NY |
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the transparency burden. The description does convey that this is a read/aggregation operation (computing distributions), which implies non-destructive behavior. However, it doesn't disclose details like whether entities with unknown/zero age are excluded, how the state filter interacts with the default national scope, or whether results include totals. Basic but not rich behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single efficient sentence that loads the core purpose (age distribution for entities) and bucket ranges, then adds the optional filter in a second clause. It's compact with no wasted words, though the explicit bucket enumeration slightly lengthens it—justified by being essential context the agent needs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (1 optional param, no output schema), so the description covers the key inputs and purpose. However, for an aggregation tool like this, the absence of any description of the output shape (e.g., does it return counts per bucket, percentages?) is a gap, since there's no output schema to fill that in. The age bucket definition is provided, which is helpful, but output semantics are unclear.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the state parameter documented as 'Filter by state: FL, NY'. The description reinforces this by mentioning the optional state filter and lists the two valid states. However, it doesn't clarify whether omitting state implies nationwide aggregation or a default state, so the description adds marginal value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool aggregates age/business-age distribution for entities, listing specific bucket ranges. It distinguishes itself from siblings (e.g., private_type_breakdown and private_geography) by focusing on age cohorts. However, it doesn't explicitly contrast its scope against private_type_breakdown's type-based breakdown, so differentiation is implied rather than explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description says to optionally filter by state, providing usage context. It doesn't explicitly state when to choose this over alternatives like private_stats or private_type_breakdown, nor does it mention any prerequisites or states beyond FL/NY. The intended use is reasonably implied but lacks explicit when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Add one secure layer between your agents and this server.
Most tools have clearly distinct purposes: search vs resolve vs browse vs officer vs entity records are well-separated. However, private_browse and private_search overlap in intent (both find companies by criteria/name), and the description explicitly cross-references private_list which doesn't exist as a tool, adding confusion. private_ceo_search and private_officer_search are distinguished mainly by title scope, which is reasonable but could be misselected.
Tools consistently use the private_ prefix with snake_case verb_noun names (private_browse, private_search, private_resolve, private_ceo_search, private_officer_search). The convention is uniform and predictable. Minor deviation: private_entity is a noun-only tool name rather than verb_noun, but all others follow the pattern well.
11 tools is well-scoped for a company data server. Each tool covers a distinct data-access pattern (browse, search, resolve, officer find, entity record, aggregates), and none feel redundant or ornamental.
The surface covers identification (search/resolve), full records (private_entity), officer/executive lookups, people-to-company mapping, and data-availability introspection (private_stats). Minor gaps: there's no dedicated tool for fetching physical addresses or contact info beyond the entity record, and no filtered officer search by state/industry combining criteria with private_browse. But core lifecycle needs are covered.