Skip to main content
Glama

Oc Tender Search

oc_tender_search
Read-onlyIdempotent

Search international public procurement — government tenders, contract notices, and contract awards published under the OCDS Open Contracting Data Standard. Covers 18 national and subnational publishers across developing countries and Europe: Africa (Kenya, Nigeria, Ghana, Zambia, Liberia, Rwanda, Tanzania), Latin America (Uruguay, Honduras, Guatemala, Peru, Dominican Republic, Mexico/Oaxaca), the Balkans (Albania, Kosovo, Croatia), Thailand (Bangkok), and Italy (ANAC anti-corruption authority). Free-text query matches tender title, buyer (procuring government entity), and description, and works in English even though most publishers file their text in Spanish, Albanian, Croatian, Italian or Thai: the query is searched alongside its equivalents in the language of the country you filter to, so "Ministry of Health" also finds "MINISTERIO DE SALUD". The response echoes every spelling it searched in query_match. Filter by country, status (e.g. tender, award, complete), category (works | goods | services), min_value (tender value floor), and days (recently released). Returns one row per contracting process (latest release) with buyer, value, procurement method, deadlines, and award details when present. Data is refreshed weekly from official OCDS publications (OCP Data Registry). Use oc_coverage first to see which countries have data and how fresh it is.

Input Schema

NameRequiredDescriptionDefault
daysNoOnly releases published within this many days.
limitNoMax results (1-100, default 20).
queryNoFree-text matched (case-insensitive) against tender title, buyer, and description, e.g. "road construction", "medical supplies", "ministry of health".
statusNoContracting process status, e.g. "tender", "award", "complete".
countryNoCountry name, forgiving match (e.g. "Thailand", "mexico", "kosovo"). One of: Albania | Argentina | Croatia | Dominican Republic | Ghana | Guatemala | Honduras | Italy | Kenya | Kosovo | Liberia | Mexico | Nigeria | Peru | Rwanda | Tanzania | Thailand | Uruguay | Zambia.
categoryNoMain procurement category. One of: works | goods | services.
min_valueNoOnly processes whose tender value is at or above this (in the publisher's currency).

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / examples
      Previous value: -[
      -  {
      -    "country": "Kenya",
      -    "limit": 20,
      -    "query": "road construction",
      -    "status": "tender"
      -  },
      -  {
      -    "category": "goods",
      -    "country": "Peru",
      -    "days": 30,
      -    "limit": 10,
      -    "min_value": 50000,
      -    "query": "medical supplies"
      -  }
      -]New value: +[
      +  {
      +    "country": "Dominican Republic",
      +    "limit": 5,
      +    "query": "Ministry of Health"
      +  },
      +  {
      +    "country": "Croatia",
      +    "limit": 3,
      +    "query": "Ministry of Defence"
      +  },
      +  {
      +    "country": "Kenya",
      +    "limit": 5,
      +    "query": "road construction"
      +  },
      +  {
      +    "category": "goods",
      +    "country": "Peru",
      +    "days": 30,
      +    "limit": 10,
      +    "min_value": 50000,
      +    "query": "medical supplies"
      +  }
      +]
  2. Changed1 schema field changed
    • addedInput schema / examples
      Added value: +[
      +  {
      +    "country": "Kenya",
      +    "limit": 20,
      +    "query": "road construction",
      +    "status": "tender"
      +  },
      +  {
      +    "category": "goods",
      +    "country": "Peru",
      +    "days": 30,
      +    "limit": 10,
      +    "min_value": 50000,
      +    "query": "medical supplies"
      +  }
      +]
  3. Changed1 schema field changed
    • changedInput schema / properties / country / description
      Previous value: -"Country name, forgiving match (e.g. \"Thailand\", \"mexico\", \"kosovo\"). One of: Albania | Croatia | Dominican Republic | Ghana | Guatemala | Honduras | Italy | Kenya | Kosovo | Liberia | Mexico | Nigeria | Peru | Rwanda | Tanzania | Thailand | Uruguay | Zambia."New value: +"Country name, forgiving match (e.g. \"Thailand\", \"mexico\", \"kosovo\"). One of: Albania | Argentina | Croatia | Dominican Republic | Ghana | Guatemala | Honduras | Italy | Kenya | Kosovo | Liberia | Mexico | Nigeria | Peru | Rwanda | Tanzania | Thailand | Uruguay | Zambia."
  4. Changed1 schema field changed
    • changedInput schema / properties / country / description
      Previous value: -"Country name, forgiving match (e.g. \"Thailand\", \"mexico\", \"kosovo\"). One of: Albania | Croatia | Ghana | Honduras | Italy | Kenya | Kosovo | Liberia | Mexico (Oaxaca) | Nigeria | Thailand (Bangkok) | Uruguay | Zambia."New value: +"Country name, forgiving match (e.g. \"Thailand\", \"mexico\", \"kosovo\"). One of: Albania | Croatia | Dominican Republic | Ghana | Guatemala | Honduras | Italy | Kenya | Kosovo | Liberia | Mexico | Nigeria | Peru | Rwanda | Tanzania | Thailand | Uruguay | Zambia."
  5. First observed

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already carry readOnly/openWorld/idempotent hints, and the description adds substantial non-obvious behavior: the query is auto-translated 'alongside its equivalents in the language of the country you filter to,' the response 'echoes every spelling it searched in query_match,' and results are deduplicated to 'one row per contracting process (latest release).' It also discloses the weekly refresh cadence, giving the agent an accurate staleness expectation.

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 long but every sentence earns its place: purpose, geographic scope, multilingual behavior, filter list, return shape, freshness, and sibling guidance are each covered once with no filler. The core purpose is front-loaded in the first clause, and the most decision-relevant facts (coverage, freshness, alternative tool) come last in a natural order.

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 stating exactly what is returned: 'One row per contracting process (latest release) with buyer, value, procurement method, deadlines, and award details when present.' For a 7-parameter, all-optional, no-output-schema tool, the description covers selection, invocation, result interpretation, and data caveats — nothing essential is missing.

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 baseline is 3; the description adds value by explaining the interaction between query and country (language-equivalent searching) and clarifying min_value as a 'tender value floor' and days as 'recently released.' Most filter names are reiterated rather than deepened, but the multilingual query behavior is genuinely additive semantics.

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 — 'Search international public procurement — government tenders, contract notices, and contract awards published under the OCDS Open Contracting Data Standard' — and narrows scope via the publisher list and countries covered. It also distinguishes itself from a sibling by telling the agent to 'Use oc_coverage first,' so an agent can tell it apart from related OCDS 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 for when to call it (querying tenders/awards with filters across 18 publishers) and explicitly routes the agent to a sibling: 'Use oc_coverage first to see which countries have data and how fresh it is.' It does not, however, state exclusions or mention sibling tools oc_process_history and oc_recent, so it stops short of covering the full when/when-not picture.

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.