Skip to main content
Glama

Search past awards and re-tenders

search_contract_awards
Read-only

Use this to find who won public contracts in the UK, Canada, the United States, Germany, France and the rest of the EU, what a buyer paid last time, and which contracts end soon and may be re-tendered. Searches the user's own countries unless they name one. Answers give the total, pass nextCursor back as cursor for more, and summarise says who won most across every match. Not for tenders open now (use search_tenders) or a public body's total spending. Example: {"buyer":"Leeds City Council","query":"cleaning","summarise":"supplier"}

Input Schema

NameRequiredDescriptionDefault
buyerNoPublic body that awarded the contract, e.g. "Leeds City Council".
codesNoOnly contracts with one of these classification codes, or a code under one: CPV in the UK and EU, e.g. "90910000" for cleaning or "909" for all cleaning and sanitation; NAICS or PSC on SAM.gov; UNSPSC or GSIN on CanadaBuys.
limitNoHow many to show, up to 50. Defaults to 10.
queryNoWhat the contract covers, e.g. "IT support" or "school cleaning".
cursorNoThe nextCursor from an earlier answer, with the same search, for its next page.
detailNo"short" for just each result's IDs, title, buyer, value, dates and link, e.g. to go through many pages; "full", the default, for everything.
regionNoWhere the work or delivery happens: a UK nation or English region, e.g. "North West" for Manchester or Liverpool; a Canadian province or territory, e.g. "Ontario" for Toronto; a US state, e.g. "Virginia"; a German Land by its German name, e.g. "Bayern" for Munich; a French region, e.g. "Île-de-France" for Paris; or another EU member state, e.g. "Poland". Omit for nationwide contracts or when the user names no place.
countryNoThe country to look in, when the user names one, e.g. "Canada", "UK" or "Spain" (an EU member state searches the rest of the EU there). Omit to use the user's own countries (the UK when they aren't signed in). Winquill covers the UK, Canada, the United States, Germany, France and the rest of the EU.
supplierNoCompany that holds or won the contract, e.g. a competitor's name.
summariseNoAdds overview, a summary of every matching award, not just this page: "buyer" for who wins a buyer's contracts, "supplier" for what a supplier wins and from which buyers.
awarded_sinceNoOnly contracts awarded on or after this date, e.g. "2026-01-01".
ending_within_monthsNoOnly contracts ending within this many months, e.g. 12 for "coming up for renewal next year".

Output Schema

NameRequiredDescriptionDefault
totalYesHow many awards match in all, across every page.
creditNo
resultsYes
summaryYes
overviewNoWith summarise: a summary of every matching award, not just this page.
countriesNo
nextCursorNoPass it back as cursor, with the same search, for the next page. Absent on the last page.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / country / description
      Previous value: -"The country to look in, when the user names one, e.g. \"Canada\", \"UK\" or \"Spain\" (an EU member state searches the rest of the EU there). Omit to use the user's own countries (the UK when they aren't signed in). Tenda covers the UK, Canada, the United States, Germany, France and the rest of the EU."New value: +"The country to look in, when the user names one, e.g. \"Canada\", \"UK\" or \"Spain\" (an EU member state searches the rest of the EU there). Omit to use the user's own countries (the UK when they aren't signed in). Winquill covers the UK, Canada, the United States, Germany, France and the rest of the EU."
  2. First observed

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare this is a safe, non-destructive read with closed-world scope, so the description focuses on operational traits: the pagination contract (pass nextCursor back as cursor), that summarise spans every match rather than the current page, and the default country fallback for unauthenticated users. It stops short of stating result caps or how filters combine, so a 4 rather than a 5.

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?

Three sentences: purpose and coverage first, default scoping second, pagination/summary semantics third, then the single most valuable exclusion. The trailing example encodes a realistic call. No sentence is filler despite the density.

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 12-param tool with a full schema and an output schema, the description covers the decisions the schema cannot: scope defaults, cross-page summarisation, and the sibling boundary. It omits how filters interact (e.g. query plus codes) and paging behaviour under summarise, leaving mild gaps.

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?

Schema coverage is 100%, so the bar is baseline 3. The description adds value on the two easiest-to-misuse controls: it names the output field (nextCursor) the cursor parameter expects and clarifies that summarise aggregates across all matches, not just the returned page. It also shows a concrete parameter combination in the example.

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 and resource (search contract awards), the geographic coverage, and the three questions it answers: past winners, last price paid, and contracts ending soon. It explicitly separates itself from search_tenders ('Not for tenders open now').

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?

Gives explicit when-to-use framing plus two named exclusions with the alternative tool (search_tenders for open tenders, and it is not for a body's total spending). Also explains the default scope ('Searches the user's own countries unless they name one'), removing the main ambiguity an agent would face with 12 optional filters.

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