Skip to main content
Glama
govconapi

io.github.govconapi/govconapi

Official

Get Price Benchmark

get_price_benchmark
Read-onlyIdempotent

Determine fair market value for a contract by comparing against percentile distributions of comparable contract values, segmented by pricing type and NAICS, to support price negotiation.

Instructions

Get the percentile distribution of comparable contract VALUE for a NAICS, broken out by pricing type. A price-analysis / market-range read for the Negotiate stage, not a win predictor. Factual, not scored.

Bid & Proposal / Negotiate tool, Pro only. Pair with get_price_position to see where YOUR specific value sits, or get_labor_rate_benchmark for the labor-cost input.

  • naics: 6-digit code, required

  • set_aside: exact code, e.g. "8A", "SBA", "SDVOSBC", "WOSB", "HZC", "NONE"

  • psc: 1-4 alphanumeric Product/Service Code, finer scope than NAICS

  • pricing_type: pin one, e.g. "FIRM FIXED PRICE", "TIME AND MATERIALS", a rarer pricing arrangement can surface as a raw, undecoded single-letter FPDS code (e.g. "J", "Y", "Z") instead of a readable name; that's passthrough source data, not an error

  • agency: name / acronym / CGAC code, narrows the comparable set to that agency

  • value_basis: current (default) | potential | obligated

  • date_from/date_to: filters on the FPDS transaction's action_date (when a modification/closeout action was recorded), NOT the award date or period of performance, a years-old contract can appear as a "current" comparable via a recent action on it

IMPORTANT: pricing type shifts the median 8x-3000x within a NAICS, use the per-pricing-type blocks (pricing_types), not combined, for a meaningful comparable. combined is blended context only, not a real number to price against.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
pscNo
naicsYes
agencyNo
date_toNo
date_fromNo
set_asideNo
value_basisNocurrent
pricing_typeNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. First observed

TDQS

A5/5.0
Behavior5/5

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

Beyond the readOnly and idempotent annotations, the description exposes non-obvious behaviors: raw single-letter FPDS codes can appear as passthrough data ('not an error'), date filters apply to action_date rather than award date, and combined is 'blended context only, not a real number to price against.' These are exactly the behavioral quirks an agent needs.

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?

Although long, the description is front-loaded with purpose and usage, then structured parameter guidance, then a critical caveat. Every sentence earns its place; the length is justified by 8 parameters, multiple sibling tools, and important behavioral warnings.

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?

The description is fully complete for a complex, 8-parameter tool with 0% schema coverage. It covers when to use, parameter semantics, data quirks, and interpretation guidance, and the output schema exists to handle return-value details.

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?

With 0% schema description coverage, the description carries the entire parameter-documentation burden and succeeds. Every parameter is explained with formats, examples, and semantics: naics is '6-digit, required', set_aside lists valid codes, pricing_type notes the raw-code edge case, value_basis enumerates options, and date_from/to clarify they filter on FPDS action_date.

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 states a specific verb ('Get') and precise resource ('percentile distribution of comparable contract VALUE for a NAICS'), immediately distinguishing itself from siblings like get_price_position and get_labor_rate_benchmark. It also clarifies what it is not ('not a win predictor').

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?

The description gives explicit context ('Bid & Proposal / Negotiate stage, Pro only') and names complementary tools with their distinct purposes ('Pair with get_price_position to see where YOUR specific value sits, or get_labor_rate_benchmark for the labor-cost input'). The IMPORTANT note tells agents to use pricing-type blocks rather than combined, providing concrete selection guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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