Skip to main content
Glama

Browse industry and product codes

browse_codes
Read-onlyIdempotent

Browse what the government buys, with contract spend. kind: psc (products and services) | naics (industries). No group and no query -> the groups (PSC: services by letter, e.g. D = IT services, R = professional support; products by 2 digits, e.g. 84 = clothing and individual equipment; NAICS: 2-digit sectors), largest first. group -> the codes in it. query -> codes whose name contains the words. Default year: last complete fiscal year. Use a code or its name in a plan's psc / naics filter.

Input Schema

NameRequiredDescriptionDefault
kindNopsc (products and services) or naics (industries).psc
groupNoA group to list the codes in: a PSC letter or 2-character group (e.g. "D", "84") or a 2-digit NAICS sector (e.g. "54").
limitNoMost rows to return, 1-200.
queryNoWords in a code's name, e.g. "body armor", "janitorial".
fiscal_yearNoFederal fiscal year (October-September), e.g. 2025; default the last complete one.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already cover readOnly/idempotent/non-destructive, so the description earns credit for adding behavioral detail beyond them: default fiscal year is the last complete one, results are ordered largest first, and the three modes behave differently. It doesn't mention pagination or what fields each row carries.

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?

Front-loaded and dense: the resource, the mode dispatch, and the default are covered in a few sentences with no filler. The telegraphic quasi-syntax ('kind: psc ... | naics') is compact but slightly cryptic on first read.

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

Completeness4/5

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

With no output schema, the description still conveys what rows look like (groups, or codes with contract spend, sorted largest first) and what the default period is. An agent can call it correctly and interpret results without opening anything else; only row field details are missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so every parameter is already documented, which sets the baseline at 3. The description adds genuine value on parameter interaction (group vs query precedence) and gives PSC group examples ('D = IT services', '84 = clothing'), but largely restates the schema's own enum and group semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/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 ('Browse what the government buys, with contract spend') and immediately scopes it to two code systems via kind. It's clear what the tool returns, though it never names siblings like search_codes or naics_finder to differentiate the browse-vs-search split.

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?

Explicitly maps input combinations to outcomes: no group and no query -> groups, group -> codes in it, query -> name matches. That's actionable routing logic. It lacks any negative guidance (when NOT to use this versus search_codes), which keeps it below a 5.

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.

Resources