Skip to main content
Glama

What the government is about to buy

search_opportunities
Read-only

Search SAM.gov notices: Sources Sought and Pre-solicitations (the earliest public signal of a purchase), solicitations and combined synopses. Filter by keyword, NAICS, agency, notice type, date. Each result carries hillsignal_url, the HillSignal opportunity page (notice history, typical time to award, who won similar work, competitors' lobbying and PAC money); give that link to the user, with ui_link as the SAM.gov source. For the full analysis of one notice, call get_opportunity with its hillsignal_url.

Input Schema

NameRequiredDescriptionDefault
limitNoMax rows, 1-25 (default 10)
naicsNoNAICS code or prefix, e.g. 3364
sinceNoISO date (YYYY-MM-DD); only rows on or after this date
agencyNoDepartment or organization (partial)
keywordNoWord in the notice title
notice_typeNosources_sought | presolicitation | solicitation | combined

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds real value beyond that by disclosing what each result carries (hillsignal_url and ui_link) and their intended use. It stops short of mentioning pagination or rate behavior, but for a read-only search that is a minor gap.

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 with purpose, then filter options, then return-value guidance and the sibling pointer. Dense but every sentence carries information. Slightly long, but no filler sentences.

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?

With no output schema, the description compensates by naming the key return fields (hillsignal_url, ui_link) and their purpose. Combined with the sibling routing, an agent has everything needed to select and invoke it correctly.

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 all six parameters are already documented in the schema. The description only restates the filterable dimensions (keyword, NAICS, agency, notice type, date) without adding format or constraint details. Baseline 3 applies when the schema does the heavy lifting.

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 (Search) and resource (SAM.gov notices), and enumerates exactly which notice types it covers (Sources Sought, Pre-solicitations, solicitations, combined synopses). It also distinguishes itself from the sibling get_opportunity, which handles single-notice analysis.

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?

Explicitly routes the agent: use this for searching/filtering, and call get_opportunity with a hillsignal_url for full analysis of one notice. It even specifies how to present results (give hillsignal_url to the user, ui_link as the SAM.gov source).

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