Skip to main content
Glama

Search Grants & Contracts (Combined)

search_grants_and_procurement
Read-onlyIdempotent

MIXED search across all 35,264 opportunities from 231 sources — combines grants AND procurement/contracts in one query. This mixes funding types which can create noisy results.

ROUTING — use the specialized tool instead: • User wants grants/funding/fellowships/prizes → search_grantsplus • User wants contracts/RFPs/procurement/bids → search_procurement • User explicitly wants BOTH types → search_grants_and_procurement • Intent unclear → ASK the user first

Use search_grantsplus or search_procurement for cleaner, more relevant results. Free tier: 10 searches/month, full results. Paid plans add higher monthly limits. Paid plans show new listings the day they open; the free plan reaches the same listings after 10 days. Counts toward your monthly searches.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNoMax results (default: 10)
queryNoNatural language search query
sinceNoStateless alternative to posted_within_days/new_within_days: ISO 8601 instant. Only opportunities ingested at/after this instant. Store the previous response newSince.newest and pass it here to manage your own watermark.
cursorNoPagination cursor from previous response
sourceNoFilter by source domain or dataSource (e.g., "grants.gov" or "tier0-sam.gov")
statusNoFilter by status
compactNoReturn compact results (default: true). Compact results include essential fields: id, title, organization, category, url, deadline, deadlineType, daysUntilDeadline, deadlineLabel, lastRoundClosedAt, status, qualityScore, and snippet. Set to false for full details including eligibility, amounts, and match explanations.
categoryNoFilter by category
min_qualityNoMinimum quality threshold (default: medium)
organizationNoFilter by organization or funder name
user_contextNoUser context for better filtering
new_within_daysNoBackwards-compatible alias for posted_within_days. Only opportunities WE ADDED (ingested) in the last N days for recurring/delta checks ("what is new since my last check"). Additive to all other filters. In queryless browse mode without a single source, the recency window is sampled across sources round-robin by ingest recency so one bulk harvester cannot own the digest; each source remains newest first. The response includes newSince and windowCoverage: sourcesSampled counts distinct sources returned by the grouped provider query before MCP quality, judge, recency-withhold, and page filters; it is absent when no grouped sample was available, including when sampling was not attempted, and 0 means the grouped query succeeded but returned no sourced rows; sourcesServed counts distinct sources delivered on this page. windowCoverage.order is "recency" for the queryless browse digest or "relevance" when a query is present. windowIncomplete/incompleteReason is separate from ceilingTruncated, which is true only when the 2,000-row ceiling excluded records; ceilingTruncated and hardCeiling are present only when order is "recency" and are omitted entirely under "relevance" (query mode never walks past a single bounded fetch, so no ceiling logic runs). Not the opportunity posted date or deadline.
procurement_typeNoFilter SAM.gov contracts by industry type. professional_services = consulting, engineering, R&D (NAICS 54xxxx, excludes manufacturing/construction noise). it_services = software, IT systems (NAICS 5415xx). construction = building projects (NAICS 23xxxx). manufacturing = production (NAICS 31-33xxxx). Use this to avoid irrelevant commodity results like "O-RING" or "VALVE" when searching for service contracts.
posted_within_daysNoPreferred alias for new_within_days: only opportunities WE ADDED (ingested) in the last N days. In queryless browse mode without a single source, the recency window is sampled across sources round-robin by ingest recency so one bulk harvester cannot own the digest; each source remains newest first. In windowCoverage, sourcesSampled counts distinct sources returned by the grouped provider query before MCP quality, judge, recency-withhold, and page filters; it is absent when no grouped sample was available, including when sampling was not attempted, and 0 means the grouped query succeeded but returned no sourced rows; sourcesServed counts distinct sources delivered on this page. windowCoverage.order is "recency" for the queryless browse digest or "relevance" when a query is present. windowIncomplete/incompleteReason is separate from ceilingTruncated, which is true only when the 2,000-row ceiling excluded records; ceilingTruncated and hardCeiling are present only when order is "recency" and are omitted entirely under "relevance" (query mode never walks past a single bounded fetch, so no ceiling logic runs). Uses the same ingest freshness field as newSince/recurring checks; not the opportunity posted date or deadline. If both posted_within_days and new_within_days are supplied, posted_within_days wins.
deadline_within_daysNoOnly opportunities closing within N days

TDQS

A4.5/5.0
Behavior5/5

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

Annotations already cover readOnly, idempotent, and non-destructive behavior; the description adds meaningful behavioral context beyond that. It discloses rate limits ('Free tier: 10 searches/month'), quota consumption ('Counts toward your monthly searches'), a data-delay policy ('free plan reaches the same listings after 10 days'), and the noise caveat ('can create noisy results'). None of this contradicts 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 front-loaded with scope, then routing, then plan constraints, and is information-dense for a tool with 15 parameters. It loses the top score because 'Use search_grantsplus or search_procurement for cleaner, more relevant results' partially restates the routing bullets, and the ALL-CAPS labels add visual noise.

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 complex combined search tool, the description supplies essential context: data scale, noise risk, routing logic, and usage quotas. The schema handles parameter semantics and even exposes result fields through the compact parameter description, so the missing output schema is a manageable gap. However, the description itself does not mention the at-least-one-of query/source/organization requirement, so it is not fully complete in isolation.

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% and the input schema documents every parameter in detail, including the anyOf requirement, NAICS filters, cursor pagination, and compact result fields. The description adds only high-level context for the query parameter rather than per-parameter detail, which is acceptable given the high schema coverage.

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 opens with a specific verb and resource: 'MIXED search across all 35,264 opportunities from 231 sources' and explicitly says it 'combines grants AND procurement/contracts in one query.' It also differentiates itself from search_grantsplus and search_procurement, making the sibling distinction clear.

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 ROUTING section gives explicit conditions: grants/funding/fellowships/prizes go to search_grantsplus, contracts/RFPs/procurement/bids go to search_procurement, explicit both-intent goes to this tool, and unclear intent should prompt the agent to ask the user. It also recommends the specialized tools for cleaner results, leaving no ambiguity about selection.

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.

TDQS

A4.1/5.0
Disambiguation4/5

Most tools have clear distinct purposes. Some overlap exists (e.g., search_grantsplus and search_foundations both return foundations, but descriptions clarify the distinction). Also batch_ variants are comprehensive versions of the standard searches. Overall, agents can differentiate well.

Naming Consistency4/5

Tool names predominantly follow verb_noun pattern in snake_case (e.g., search_grantsplus, get_opportunity, list_saved_searches). Minor deviation with 'whats_new' (no underscore) and 'check_connection' (different verb form). Otherwise consistent.

Tool Count4/5

26 tools is slightly above the typical 3-15 range but still reasonable for a comprehensive funding landscape server covering grants, procurement, foundations, saved searches, account management, and utilities. Each tool serves a clear purpose.

Completeness4/5

The tool surface covers core search, detail retrieval, saved search management, account information, and feedback. Missing are profile management or direct payment modification tools (only links provided). Minor gaps but overall complete for the domain.

Resources