Skip to main content
Glama

Server Details

Find federal opportunities, research awards and vendors, and review dated exclusion evidence.

If you are the author of this connector, you can claim ownership with GitHub, an HTTP challenge, or a DNS record. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
99.3% over 37 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
mooshee/govgazette-mcp
GitHub Stars
0
Server Listing
GovGazette MCP Server

TDQS

A3.6/5.0

Scored across 12 tools

Disambiguation4/5

Most tools have clearly distinct purposes, especially the exclusion-related workflows and opportunity research tools. The main overlaps are generic search versus search_exclusions/search_opportunities, and detail versus document, but the descriptions provide enough context to disambiguate.

Naming Consistency3/5

Many tools follow a clear snake_case verb_noun pattern, such as check_exclusions, search_opportunities, and explain_match. However, single-word names like detail, document, freshness, and search break the pattern, and saved_searches uses an adjective_noun form, creating a mixed but still readable convention.

Tool Count5/5

Twelve tools is well within the ideal range for a domain-specific research server. Each tool contributes a distinct capability, from discovery and retrieval to exclusion analysis, provenance reporting, and saved-search management, without feeling bloated or sparse.

Completeness5/5

The tool surface covers the full read-only research lifecycle: searching across entity types, retrieving records and documents, explaining matches, investigating exclusions, checking provenance, and managing saved searches. No critical dead ends are apparent for the stated government-research domain.

Available Tools

12 tools
check_exclusionsCheck possible exclusion matchesA
Read-onlyIdempotent
Inspect

Check up to 20 identities against a dated active SAM snapshot. Exact identifier matches and name-only possible matches remain distinct. No match is not clearance.

ParametersJSON Schema
NameRequiredDescriptionDefault
generationNo
identitiesYes

TDQS

A4/5.0
Behavior5/5

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

Annotations already mark the tool as read-only, open-world, idempotent, and non-destructive, and the description adds valuable behavioral context: the check uses a dated active SAM snapshot, accepts up to 20 identities, keeps exact versus name-only matches distinct, and clarifies that no match is not clearance. This meaningfully extends the annotation coverage.

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 description is three short sentences with no filler. It front-loads the core action, then adds the match-type distinction and an important caveat; every sentence earns its place.

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?

The description covers the essential invocation context: subject, input size, snapshot timing, match categories, and the no-match-is-not-clearance limitation. It is mostly complete for a read-only batch check tool, but the generation parameter remains underspecified and no usage alternatives are mentioned, so it is not fully complete.

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?

The description adds some meaning to the identities parameter by stating the 20-identity limit and explaining exact identifier versus name-only matching. However, schema description coverage is 0%, and the generation parameter is not explained at all in either the schema or the description, so the description only partially compensates.

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 states a specific action — checking up to 20 identities against a dated active SAM snapshot — and adds meaningful distinctions between exact identifier matches and name-only matches. It is clear about the tool's purpose, though it does not explicitly differentiate itself from sibling tools like search_exclusions or search.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The intended use is implied: batch-check exclusion identities against a snapshot. However, no explicit when-to-use versus alternatives, such as search_exclusions or exclusion_changes, is provided, and there is no when-not-to-use guidance.

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

detailRead a federal recordC
Read-onlyIdempotent
Inspect

Retrieve a known public identifier. Supply generation from search for a consistent result.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
collectionYes
generationNo

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already convey readOnly, openWorld, idempotent, and non-destructive behavior. The description adds a useful nuance: supplying the generation from search yields a consistent result, which matters in an open-world context. It does not explain error cases or what happens when generation is null.

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?

The description is two short sentences with no filler, and the operational guidance about generation is front-loaded in the second sentence. It is appropriately terse, though the phrase 'known public identifier' is noticeably opaque.

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?

With zero parameter descriptions, no enums, and no output schema, the description alone is too thin for an agent to confidently populate collection and id. It covers the generation workflow but leaves essential invocation details and return expectations unstated.

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%, so the description carries the full burden of explaining parameters. It explains generation's source and purpose, but collection and id are left essentially undefined beyond the generic phrase 'known public identifier,' leaving required parameters under-specified.

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

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a concrete action ('Retrieve') but the object is framed as 'a known public identifier,' which is vaguer than the title's 'federal record.' It does not distinguish this tool from siblings like document or search, and the resource being retrieved is only indirectly implied.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'Supply generation from search for a consistent result' gives a useful situational cue: use detail after a search and pass the generation value. However, it does not explicitly say when not to use detail, nor does it name an alternative tool for lookup-style tasks.

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

documentRead source textB
Read-onlyIdempotent
Inspect

Read bounded official record text by known identifier. Does not fetch arbitrary URLs or paths.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
lengthNo
offsetNo
collectionYes
generationNo

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnly/idempotent/non-destructive behavior. The description adds a meaningful boundary ('does not fetch arbitrary URLs or paths') and 'bounded', but does not disclose output shape, pagination behavior, or generation semantics. No contradiction with annotations.

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?

Two short sentences, front-loaded with the core behavior and ending with a guardrail. No filler; every word contributes.

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?

Given five parameters, no output schema, and no parameter descriptions, the description is too thin for an agent to invoke correctly. It omits collection semantics, range/pagination parameters, generation behavior, and return format.

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%, so the description must carry parameter meaning. It only implies 'id' via 'known identifier' and 'official record' for collection, leaving length, offset, and generation completely unexplained. This is insufficient for five parameters.

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 uses a specific verb ('Read'), resource ('official record text'), and scope ('by known identifier'), and adds an exclusion for arbitrary URLs/paths. It is clear, though it does not name a sibling alternative like 'detail' to fully differentiate.

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 clearly indicates the intended use case: reading a known official record identifier. It also states when not to use it ('Does not fetch arbitrary URLs or paths'). However, it does not explicitly route to any alternative sibling tool.

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

exclusion_changesReview exclusion changesA
Read-onlyIdempotent
Inspect

Compare two retained snapshots. No longer observed does not mean reinstated; enrichment-only changes are excluded.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
cursorNo
to_generationNo
from_generationYes

TDQS

A3.8/5.0
Behavior5/5

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

Beyond the readOnly/openWorld/idempotent annotations, the description adds crucial non-obvious behavior: 'no longer observed does not mean reinstated' and enrichment-only changes are excluded. This materially prevents misinterpretation of results and is exactly the kind of behavioral context 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?

Two sentences with zero filler. The core action is front-loaded, and the second sentence delivers high-value caveats. Every word earns its place.

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 core concept is clear, but with 4 parameters, 0% schema coverage, and no output schema, the description omits important invocation details: pagination via limit/cursor, default to_generation behavior, and what the returned changes actually look like. This is not complete enough for fully self-contained use.

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?

The schema has 0% description coverage, so the description must compensate. It only indirectly references 'from_generation' and 'to_generation' as 'two retained snapshots' and provides no meaning for 'limit' or 'cursor', nor any default behavior for 'to_generation'. This leaves most parameter semantics to inference.

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 clearly states a specific action ('Compare two retained snapshots') and names the resource being compared. The caveat about enrichment-only changes adds useful semantic precision, though it does not explicitly differentiate the tool from sibling tools like search_exclusions or exclusion_context.

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?

The description gives clear context for when to use the tool: when comparing two retained snapshots. It does not mention alternatives or exclusionary conditions, so it falls short of a 5, but the context is unambiguous enough for an agent to identify the intended use.

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

exclusion_contextRead exclusion evidenceB
Read-onlyIdempotent
Inspect

Retrieve an exclusion with agency explanation, named restriction references, source evidence and supported business links.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
generationNo

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds the specific data scope (agency explanation, named restriction references, source evidence, supported business links), which is useful context beyond just 'retrieve'. However, it does not disclose other behavioral aspects like error handling, pagination, or the meaning of the 'generation' parameter. Since annotations cover the main safety and the description adds some context, a 3 is appropriate.

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 description is a single, efficient sentence that front-loads the action ('Retrieve an exclusion') and then lists the content components without any filler. Every clause contributes value, and the structure is clear and scannable. No waste.

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

Completeness3/5

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

The tool has two parameters (one required) and no output schema. The description lists the data components that will be returned, giving some idea of the output structure, but it does not explain the parameters or clarify the role of 'generation'. Without an output schema, an agent must rely on the description to understand the response, and while the component list helps, it is not enough to fully prepare an agent to call the tool correctly, especially given the lack of parameter semantics. A 3 is appropriate for a retrieval tool with this level of ambiguity.

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%, meaning neither 'id' nor 'generation' has any documentation in the schema. The description does not explain either parameter; it only implies through the tool name that 'id' identifies the exclusion, but it never states that explicitly. The 'generation' parameter is completely unexplained. With zero schema coverage, the description carries the full burden for parameter semantics but fails to compensate.

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 states a specific verb ('Retrieve') and resource ('an exclusion') and enumerates the exact data components returned (agency explanation, named restriction references, source evidence, supported business links). This is clearer than a generic 'get' but does not explicitly differentiate from siblings like 'detail' or 'document', which might also retrieve similar content.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description offers no guidance on when to use this tool versus the many siblings (e.g., check_exclusions, explain_match, detail). It does not state any conditions, exclusions, or alternatives. An agent would have to infer the intended use solely from the name and the data list, which is insufficient given the tool's position among 11 siblings.

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

explain_matchExplain a vendor matchA
Read-onlyIdempotent
Inspect

Explain deterministic primary NAICS overlap between a registered vendor and opportunity. Not an eligibility determination.

ParametersJSON Schema
NameRequiredDescriptionDefault
vendor_idYes
opportunity_idYes

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds meaningful context beyond annotations, namely that the explanation is 'deterministic' and limited to 'primary' NAICS, but it does not disclose output format, error conditions, or prerequisites. This is comparable to the 'date-range' case in calibration, so a 3 is appropriate.

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?

Two short sentences, with the core purpose in the first and a boundary clarification in the second. No filler, every clause earns its place, and the structure is front-loaded and easy to parse.

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

Completeness3/5

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

The tool is simple (2 required string params, no output schema), and the description states the core purpose and a limitation. However, without an output schema, the description does not explain what the returned 'explanation' looks like or what happens if vendor_id is not registered, leaving some ambiguity for an agent deciding whether to call it.

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%, leaving the description to define vendor_id and opportunity_id. The description only implies that vendor_id refers to a 'registered vendor' and opportunity_id to an 'opportunity.' It does not explain ID formats, how to obtain valid IDs, or any constraints, so it only partially compensates for the absent schema documentation.

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 uses a specific verb ('Explain') and resource (deterministic primary NAICS overlap between a registered vendor and opportunity), and the closing clause 'Not an eligibility determination' further distinguishes it from broader judgment tools. This makes the tool's scope immediately identifiable.

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?

The description gives a clear when-not ('Not an eligibility determination') and implies when to use it (needs an explanation of primary NAICS overlap). It does not explicitly name alternative sibling tools, but the exclusion signals the boundary well enough for an agent to route correctly.

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

freshnessCheck source datesA
Read-onlyIdempotent
Inspect

Report actual source dates, coverage, record counts and SHA256 provenance.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior4/5

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

Annotations already establish read-only, idempotent, non-destructive behavior, so the description need not repeat those safety traits. It adds value by naming the exact reporting dimensions (source dates, coverage, record counts, SHA256 provenance), which go beyond what annotations provide.

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?

A single front-loaded sentence that wastes no words; every phrase ('actual source dates,' 'coverage,' 'record counts,' 'SHA256 provenance') adds distinct information.

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 parameterless reporting tool, the description covers the essential facts an agent needs to decide to invoke it. It lacks an explicit output format, but the listed report contents are sufficient given the tool's simplicity and read-only annotations.

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 zero parameters and 100% schema coverage, there are no parameter semantics to document; the baseline for parameterless tools applies. The description is not required to explain inputs and instead clarifies what the tool reports.

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 uses a specific verb ('Report') and enumerates precise output contents: actual source dates, coverage, record counts, and SHA256 provenance. This clearly distinguishes it from sibling tools like search or detail, which do not promise provenance/coverage metrics.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided about when to choose this tool over siblings such as detail, document, or explain_match. There are no scenarios, prerequisites, or exclusions stated, so the agent must infer usage from the name and description alone.

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

research_opportunityResearch an opportunityB
Read-onlyIdempotent
Inspect

Build a cited research brief with retained notice requirements, exact award-number candidates and same-industry comparisons. Does not infer an incumbent or eligibility.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
generationNo

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already declare read-only, idempotent, non-destructive behavior, so the description does not need to restate those. It adds useful boundary context by saying the tool will not infer an incumbent or eligibility, but it stops short of describing the return format or how the 'generation' parameter affects behavior.

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?

Two tight sentences front-load the deliverable and then add one clarifying negation. Every clause carries information, with no repetition or filler.

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?

With no output schema and no parameter-level descriptions in the schema, the description must carry more weight. It explains the nature of the brief, but omits what 'id' and 'generation' mean and provides no mention of the response shape or invocation conditions, leaving it under-specified for reliable autonomous use.

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

Parameters1/5

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

Schema coverage is 0% and the description never names 'id' or 'generation', the only two parameters. An agent cannot tell what identifier to pass or what the nullable 'generation' value controls, making the tool difficult to invoke correctly.

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 ('Build') and a precise deliverable ('cited research brief') with three concrete components: retained notice requirements, award-number candidates, and same-industry comparisons. The negative boundary ('Does not infer an incumbent or eligibility') further differentiates it from sibling tools that might be used for those inferences.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit when-to-use guidance or alternatives are mentioned. The 'Does not infer' clause is a useful boundary but not a clear routing instruction, so an agent gets little help deciding between this tool and siblings like search_opportunities, detail, or document.

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

saved_searchesManage saved searchesA
Destructive
Inspect

Manage private saved opportunity searches: list/create/events/delete/rotate_feed/delete_workspace. Requires Authorization Bearer workspace key configured in the client headers, never tool arguments. Ask before creating or deleting. Public research tools do not require this key.

ParametersJSON Schema
NameRequiredDescriptionDefault
idNo
nameNo
criteriaNo
operationYes

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already flag destructiveHint=true, and the description adds meaningful context beyond that by disclosing the Authorization bearer workspace key requirement, the placement in client headers, and the need to ask before creating or deleting. This is useful behavioral context not present in the annotations.

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?

The description is compact: the main purpose and operation list are front-loaded in the first sentence, and the auth requirement and caution follow quickly. It avoids filler while packing useful details, though the operation list is a little dense.

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?

For a multi-operation dispatch tool with no output schema and low schema coverage, the description should clarify how id, name, and criteria relate to each operation. It covers auth and destructive behavior but leaves the main parameter relationships undefined, so an agent cannot reliably construct calls for all operations.

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%, so the description must compensate for the four parameters. It lists possible operation values, which partially covers the 'operation' parameter, but it never explains the meaning or intended use of id, name, or criteria, leaving significant gaps.

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 uses the generic verb 'Manage' but anchors it to a specific resource, 'private saved opportunity searches,' and enumerates the specific operations: list/create/events/delete/rotate_feed/delete_workspace. It also distinguishes these private saved searches from 'Public research tools', which separates it from sibling search tools.

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?

The description gives clear context: this tool operates on private saved searches and requires a workspace key set in client headers, not tool arguments. It also instructs the agent to ask before creating or deleting and notes that public research tools do not need this key, giving implicit routing guidance.

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

search_exclusionsSearch exclusions
Read-onlyIdempotent
Inspect

Filter active exclusion records by agency, program, classification, geography and dates. Preserve the returned cursor and generation.

ParametersJSON Schema
NameRequiredDescriptionDefault
qNo
limitNo
stateNo
agencyNo
cursorNo
countryNo
programNo
generationNo
effective_toNo
classificationNo
effective_fromNo
search_opportunitiesFind federal opportunities
Read-onlyIdempotent
Inspect

Find official opportunity records by keywords, industry, set-aside, state, agency and source status. Active does not imply the deadline is open.

ParametersJSON Schema
NameRequiredDescriptionDefault
qNo
afterNo
limitNo
naicsNo
stateNo
activeNo
agencyNo
set_asideNo
generationNo

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 7 tool updates
    • Addedcheck_exclusions
    • Addedexclusion_changes
    • Addedexclusion_context
    • Addedresearch_opportunity
    • Addedsaved_searches
    • Addedsearch_exclusions
    • Addedsearch_opportunities
  2. 46 tool updates
    • Removedapply_business_profile_update
    • Removedassess_opportunity_for_business
    • Removedcheck_business_exclusions
    • Addeddetail
    • Addeddocument
    • Addedexplain_match
    • Removedexport_opportunities
    • Removedfind_recompetes
    • Removedfind_recompetes_for_business
    • Addedfreshness
    • Removedget_award
    • Removedget_award_evidence
    • Removedget_business_awards
    • Removedget_business_defaults
    • Removedget_business_market
    • Removedget_business_profile
    • Removedget_market_summary
    • Removedget_opportunity
    • Removedget_opportunity_brief
    • Removedget_opportunity_changes
    • Removedget_opportunity_comps
    • Removedget_opportunity_documents
    • Removedget_opportunity_extracted
    • Removedget_vendor
    • Removedget_vendor_awards
    • Removedget_watch_status
    • Removedlookup_reference
    • Removedpreview_business_profile_update
    • Removedresolve_identifier
    • Removedreview_opportunity
    • Removedsave_opportunity_search
    • Removedsave_recompete_radar
    • Addedsearch
    • Removedsearch_awards
    • Removedsearch_exclusions
    • Removedsearch_extracted_facts
    • Removedsearch_opportunities
    • Removedsearch_opportunities_for_business
    • Removedsearch_vendors
    • Removedtrack_opportunity
    • Removedupdate_award_watch
    • Removedupdate_recompete_radar
    • Removedupdate_saved_search
    • Removedupdate_tracked_opportunity
    • Removedwatch_award
    • Removedwatch_vendor
  3. 2 tool updates
    • Addedexport_opportunities
    • Addedreview_opportunity
  4. 17 tool updates
    • Addedapply_business_profile_update
    • Addedassess_opportunity_for_business
    • Addedcheck_business_exclusions
    • Addedfind_recompetes_for_business
    • Addedget_award_evidence
    • Addedget_business_awards
    • Addedget_business_defaults
    • Addedget_business_market
    • Addedget_business_profile
    • Addedget_opportunity_brief
    • Addedpreview_business_profile_update
    • Addedsave_recompete_radar
    • Addedsearch_opportunities_for_business
    • Addedupdate_award_watch
    • Addedupdate_recompete_radar
    • Addedwatch_award
    • Addedwatch_vendor
  5. 22 tool updates
    • Addedfind_recompetes
    • Addedget_award
    • Addedget_market_summary
    • Changedget_opportunity1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Addedget_opportunity_changes
    • Changedget_opportunity_comps1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Addedget_opportunity_documents
    • Addedget_opportunity_extracted
    • Changedget_vendor1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedget_vendor_awards1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Changedget_watch_status1 field changed
      • addedInput schema / additionalProperties
        Added value: +false
    • Addedlookup_reference
    • Addedresolve_identifier
    • Changedsave_opportunity_search5 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / delivery_channels / default
        Removed value: -[
        -  "email",
        -  "in_app"
        -]
      • removedInput schema / properties / search_spec / additionalProperties
        Removed value: -{}
      • removedInput schema / properties / search_spec / propertyNames
        Removed value: -{
        -  "type": "string"
        -}
      • removedInput schema / properties / search_spec / type
        Removed value: -"object"
    • Addedsearch_awards
    • Addedsearch_exclusions
    • Addedsearch_extracted_facts
    • Changedsearch_opportunities15 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • changedInput schema / properties / agency / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "items": {
        -      "type": "string"
        -    },
        -    "minItems": 1,
        -    "type": "array"
        -  }
        -]New value: +[
        +  {
        +    "minLength": 1,
        +    "type": "string"
        +  },
        +  {
        +    "items": {
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "minItems": 1,
        +    "type": "array"
        +  }
        +]
      • changedInput schema / properties / awarded_contractor_name / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "items": {
        -      "type": "string"
        -    },
        -    "minItems": 1,
        -    "type": "array"
        -  }
        -]New value: +[
        +  {
        +    "minLength": 1,
        +    "type": "string"
        +  },
        +  {
        +    "items": {
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "minItems": 1,
        +    "type": "array"
        +  }
        +]
      • changedInput schema / properties / awardee_cage / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "items": {
        -      "type": "string"
        -    },
        -    "minItems": 1,
        -    "type": "array"
        -  }
        -]New value: +[
        +  {
        +    "minLength": 1,
        +    "type": "string"
        +  },
        +  {
        +    "items": {
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "minItems": 1,
        +    "type": "array"
        +  }
        +]
      • changedInput schema / properties / awardee_uei / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "items": {
        -      "type": "string"
        -    },
        -    "minItems": 1,
        -    "type": "array"
        -  }
        -]New value: +[
        +  {
        +    "minLength": 1,
        +    "type": "string"
        +  },
        +  {
        +    "items": {
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "minItems": 1,
        +    "type": "array"
        +  }
        +]
      • addedInput schema / properties / cursor / minLength
        Added value: +1
      • addedInput schema / properties / deadline_preset / minLength
        Added value: +1
      • changedInput schema / properties / naics / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "items": {
        -      "type": "string"
        -    },
        -    "minItems": 1,
        -    "type": "array"
        -  }
        -]New value: +[
        +  {
        +    "minLength": 1,
        +    "type": "string"
        +  },
        +  {
        +    "items": {
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "minItems": 1,
        +    "type": "array"
        +  }
        +]
      • changedInput schema / properties / notice_type / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "items": {
        -      "type": "string"
        -    },
        -    "minItems": 1,
        -    "type": "array"
        -  }
        -]New value: +[
        +  {
        +    "minLength": 1,
        +    "type": "string"
        +  },
        +  {
        +    "items": {
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "minItems": 1,
        +    "type": "array"
        +  }
        +]
      • addedInput schema / properties / posted_preset / minLength
        Added value: +1
      • changedInput schema / properties / psc / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "items": {
        -      "type": "string"
        -    },
        -    "minItems": 1,
        -    "type": "array"
        -  }
        -]New value: +[
        +  {
        +    "minLength": 1,
        +    "type": "string"
        +  },
        +  {
        +    "items": {
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "minItems": 1,
        +    "type": "array"
        +  }
        +]
      • addedInput schema / properties / q / minLength
        Added value: +1
      • changedInput schema / properties / set_aside / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "items": {
        -      "type": "string"
        -    },
        -    "minItems": 1,
        -    "type": "array"
        -  }
        -]New value: +[
        +  {
        +    "minLength": 1,
        +    "type": "string"
        +  },
        +  {
        +    "items": {
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "minItems": 1,
        +    "type": "array"
        +  }
        +]
      • addedInput schema / properties / sort / minLength
        Added value: +1
      • changedInput schema / properties / state / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "items": {
        -      "type": "string"
        -    },
        -    "minItems": 1,
        -    "type": "array"
        -  }
        -]New value: +[
        +  {
        +    "minLength": 1,
        +    "type": "string"
        +  },
        +  {
        +    "items": {
        +      "minLength": 1,
        +      "type": "string"
        +    },
        +    "minItems": 1,
        +    "type": "array"
        +  }
        +]
    • Addedsearch_vendors
    • Changedtrack_opportunity2 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / delivery_channels / default
        Removed value: -[
        -  "email",
        -  "in_app"
        -]
    • Changedupdate_saved_search8 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / cadence / default
        Removed value: -"daily"
      • removedInput schema / properties / delivery_channels / default
        Removed value: -[
        -  "email",
        -  "in_app"
        -]
      • removedInput schema / properties / enabled / default
        Removed value: -true
      • removedInput schema / properties / search_spec / additionalProperties
        Removed value: -{}
      • removedInput schema / properties / search_spec / propertyNames
        Removed value: -{
        -  "type": "string"
        -}
      • removedInput schema / properties / search_spec / type
        Removed value: -"object"
      • changedInput schema / required
        Previous value: -[
        -  "id",
        -  "name",
        -  "search_spec"
        -]New value: +[
        +  "id"
        +]
    • Changedupdate_tracked_opportunity9 fields changed
      • addedInput schema / additionalProperties
        Added value: +false
      • removedInput schema / properties / alert_cadence / default
        Removed value: -"immediate"
      • removedInput schema / properties / delivery_channels / default
        Removed value: -[
        -  "email",
        -  "in_app"
        -]
      • removedInput schema / properties / enabled / default
        Removed value: -true
      • removedInput schema / properties / next_action / default
        Removed value: -null
      • removedInput schema / properties / next_action_due_at / default
        Removed value: -null
      • removedInput schema / properties / notes / default
        Removed value: -null
      • removedInput schema / properties / pursuit_state / default
        Removed value: -"watching"
      • removedInput schema / properties / source_profile_id / default
        Removed value: -null
  6. 10 tool updates
    • First observedget_opportunity
    • First observedget_opportunity_comps
    • First observedget_vendor
    • First observedget_vendor_awards
    • First observedget_watch_status
    • First observedsave_opportunity_search
    • First observedsearch_opportunities
    • First observedtrack_opportunity
    • First observedupdate_saved_search
    • First observedupdate_tracked_opportunity

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    A
    maintenance
    Enables searching and filtering federal contract opportunities by keyword, agency, set-aside, NAICS, and more from any MCP client. Analyzes solicitations for small-business fit and risk, and provides reference lookups for NAICS codes, set-asides, and federal thresholds.
    9
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Enables agents to search and analyze US federal procurement data across SAM.gov opportunities, FPDS awards, SAM entities, FFATA subawards, exclusions, and full-text solicitation attachments, with 53 tools for market research, opportunity discovery, teaming, pricing, and compliance.
    53
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Federal procurement intelligence toolkit that searches SAM.gov contract opportunities, analyzes agency spending patterns, tracks competitor wins, and monitors small business set-aside programs (8a, HUBZone, SDVOSB, WOSB). 4 tools using SAM.gov and USASpending.gov data.
    3
    -
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to search federal contracts, analyze agency spending, track competitor wins, and monitor small business set-aside opportunities using SAM.gov, USASpending.gov, and FPDS data.
    -
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.