Skip to main content
Glama

Gao Protests Search

gao_protests_search
Read-onlyIdempotent

Search accumulated GAO bid-protest decisions by protester (company) name, e.g. "has been cited in a bid protest" or "which GAO protests did Boeing file". Case-insensitive partial match. Only searches decisions already in this pack's rolling accumulation (see gao_protests_coverage) — not a full-text search of GAO's archive, which is not reachable from here.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNoMax rows (1-100, default 25).
protesterYesProtester/company name or partial name, e.g. "Guernsey" or "FCN".

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so safety is covered. The description adds meaningful behavioral context: case-insensitive partial matching, the limitation of only searching the pack's accumulation, and that the GAO archive is not reachable. This goes beyond the annotations without contradicting them.

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?

Two sentences, no fluff, with the core purpose and key limitation front-loaded. It avoids repetition and stays compact while conveying all necessary search behavior and scope.

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?

For a search tool with no output schema and full annotation coverage, the description is complete. It covers scope (accumulated decisions), matching behavior (case-insensitive partial), and the boundary (not full archive), while pointing to a sibling for coverage. It doesn't mention result format, but that is not required given the read-only nature and schema-documented limit.

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 description coverage is 100%, so both protester and limit are documented in the schema. The description adds case-insensitivity and clarifies protester is a company name, but these are minor additions. It does not explain limit beyond the schema, but the schema already handles it. Baseline 3 is appropriate.

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 clearly states the tool searches accumulated GAO bid-protest decisions by protester name, with concrete examples and an explicit case-insensitive partial match. It distinguishes itself from siblings like gao_protests_coverage and gao_protests_recent by specifying the resource (accumulated decisions) and the search key (protester).

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?

It gives clear context: searches only within the pack's rolling accumulation, not the full GAO archive, and points to gao_protests_coverage for coverage details. It explicitly states what it is not (full-text search of GAO's archive), though it doesn't directly compare to other search siblings like gao_protest or gao_protests_recent, the limitation is well defined.

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.