Skip to main content
Glama
govconapi

io.github.govconapi/govconapi

Official

Find NAICS Codes

find_naics_codes
Read-onlyIdempotent

Discover NAICS codes by federal spending and small-business set-aside leverage. Filter by sector, prefix, or keywords to identify the right code when you don't already know it.

Instructions

Discover NAICS codes by current federal spending and small-business set-aside leverage, use this when you don't already know which NAICS code to look at.

Market Research tool, the entry point into the NAICS/Market Pulse tools below.

- sector: 2-digit NAICS sector prefix (e.g. "54")
- prefix: any-length NAICS prefix (e.g. "5415")
- min_market: minimum FY2025+ obligated dollars
- max_competitors: maximum distinct winning firms (a low number = a thin, less-contested market)
- set_aside_family: total_small_business | 8a | sdvosb | wosb | hubzone | veteran | native
- keywords: matches the NAICS description text
- sort_by: market (size) | competitors | setaside_pct (aggregate small-business share
  across ALL families; when set_aside_family is also set, sorts by THAT family's own
  share instead, read each row's `family_share_pct` for the honest per-family number,
  populated only when set_aside_family is set)

Returns each matching code's `naics_code`, pass that to get_naics_market,
get_naics_positioning, get_naics_simplified_acquisition, or get_naics_competition for
the deeper reads below. 503 briefly if the market index is still building.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNo
offsetNo
prefixNo
sectorNo
sort_byNomarket
keywordsNo
min_marketNo
sort_orderNodesc
max_competitorsNo
set_aside_familyNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes
Behavior5/5

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

Annotations already establish read-only, open-world, idempotent, non-destructive behavior. The description goes beyond them by disclosing the transient 503 state, the conditionality of family_share_pct, and the behavior of sort_by when set_aside_family is combined with it.

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 purpose is front-loaded, the parameters are organized as a scannable bullet list, and the downstream usage and error caveat are placed at the end. Each section earns its place without redundant filler.

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?

For a 10-parameter discovery tool with output schema and rich annotations, the description covers the entry-point position, filter semantics, result handoff to deeper tools, and a known transient failure mode. The only omissions are generic pagination fields, which do not materially impair an agent's ability to invoke the tool 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?

With 0% schema description coverage, the description carries the burden and does document the non-obvious parameters: sector, prefix, min_market, max_competitors, set_aside_family, keywords, and sort_by, including value lists and edge semantics. It omits only limit, offset, and sort_order, which are generic pagination/sorting parameters.

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 opens with a specific verb and resource ('Discover NAICS codes') and states the distinguishing selection criterion: use when you don't already know which code to look at. It also frames the tool as the entry point into the NAICS/Market Pulse family, separating it from the get_naics_* siblings.

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?

It explicitly says 'use this when you don't already know which NAICS code to look at' and explains that the returned naics_code should be passed to get_naics_market, get_naics_positioning, get_naics_simplified_acquisition, or get_naics_competition. This gives both the triggering condition 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.

Other Tools

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/govconapi/govconapi-mcp'

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