Skip to main content
Glama

exact_search

Read-only

Exact match search on a specific field.

Use suggest_contains() first to discover the exact field value, then
pass it here. The API requires exact string matching -- partial matches
return 0 results.

Fields: labor_category, vendor_name, idv_piid (GSA MAS contract number).

For a discovered value containing a colon, GSA's exact-field search can
return only the text before the colon. This tool uses literal keyword
search instead and accepts its statistics only when the complete,
non-approximate requested-field aggregation proves every rate row has
the exact value. If that cannot be verified, it withholds the misleading
population and gives keyword_search recovery guidance. Source statistics
remain unchanged; empty results and thin samples retain their limits.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "field": "<field>",
      "value": "<value>"
    },
    "name": "exact_search"
  }
}

Input Schema

NameRequiredDescriptionDefault
pageNo
sortNoasc
fieldYes
valueYes
orderingNocurrent_price
page_sizeNo
price_maxNo
price_minNo
business_sizeNo
experience_maxNo
experience_minNo
education_levelNo

Output Schema

NameRequiredDescriptionDefault

No arguments

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 the safety profile (readOnly, openWorld, non-destructive), yet the description adds real behavioral detail beyond them: GSA truncating values after a colon, statistics being withheld rather than reported misleadingly, and unchanged source statistics for empty/thin samples. The disclosure is valuable but the sentence describing the verification gate ('non-approximate requested-field aggregation proves every rate row...') is jargon-dense enough that an agent may not fully parse what triggers withholding.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose, prerequisite, and field list are front-loaded and efficient, but the final paragraph is a single dense block that mixes API quirks, tool internals, and disclaimers without breaks. Every sentence has a reason to exist, yet the phrasing could be far tighter.

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?

The output schema excuses it from explaining return values, but for a 12-parameter tool with zero schema descriptions the omission of filter and pagination semantics is a real gap — an agent cannot know how price_min/price_max or business_size interact with the exact-match requirement. The description fully covers matching semantics but under-covers the tool's actual parameter surface.

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

Parameters2/5

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

Schema description coverage is 0% across 12 parameters, so the description carries the full burden — but it only explains the `field` enum values (adding useful meaning to idv_piid as the GSA MAS contract number) and leaves page, sort, ordering, page_size, price_min/max, business_size, and the experience/education filters entirely undiscussed. Nine filter/pagination parameters are undocumented in both places.

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?

States a specific verb and resource ('Exact match search on a specific field') and immediately enumerates the searchable fields (labor_category, vendor_name, idv_piid), which also disambiguates it from keyword_search's substring behavior. An agent can tell exactly which tool performs which style of matching without opening a schema.

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?

Gives an explicit prerequisite — 'Use suggest_contains() first to discover the exact field value' — and a hard failure condition: partial matches return 0 results. It also names the fallback path (keyword_search recovery guidance) for the colon-value case, so when-to-use, when-not, and alternatives are all covered.

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.