Skip to main content
Glama

Explain a tender

get_tender_details
Read-only

Use this when the user asks about one tender, framework or standing offer, by notice ID, buyer reference or from earlier results: the deadline, the portal to submit through, lots, value, conditions, award criteria and what the buyer wants, in plain English. It also reads the competition: who holds the work now, what the buyer paid before, how many bids it drew, and whether the tender is worth chasing. Not for finding tenders (use search_tenders). Example: {"tender_reference":"012345-2026"}

Input Schema

NameRequiredDescriptionDefault
more_referencesNoMore tenders to read in the same call, by the same kind of reference, e.g. to compare a shortlist: up to 19, for 20 in all. Saves a call for each.
tender_referenceYesThe notice ID, procurement identifier, solicitation number or the buyer's own reference, e.g. "012345-2026" on Find a Tender, "WS4851234567" on CanadaBuys or "140D0427Q0879" on SAM.gov.

Output Schema

NameRequiredDescriptionDefault
lotsNo
buyerNo
codesNo
foundYes
rulesNo
awardsNo
creditNo
tenderNoThe same facts as a search_tenders result.
summaryYes
tendersNoWith more_references: each tender's own answer, in the order asked.
keyDatesNo
notFoundNoThe references asked for that Winquill has no notice for.
conditionsNo
howItIsRunNo
competitionNo
whatTheyWantNo
howItIsScoredNo
notInTheNoticeNo
publishedDocumentsNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • changedOutput schema / properties / competition / properties / read / description
      Previous value: -"Tenda's read of the competition, from the rules in why: never odds."New value: +"Winquill's read of the competition, from the rules in why: never odds."
    • changedOutput schema / properties / notFound / description
      Previous value: -"The references asked for that Tenda has no notice for."New value: +"The references asked for that Winquill has no notice for."
    • changedOutput schema / properties / tenders / items / properties / competition / properties / read / description
      Previous value: -"Tenda's read of the competition, from the rules in why: never odds."New value: +"Winquill's read of the competition, from the rules in why: never odds."
  2. Changed3 schema fields changed
    • addedInput schema / properties / more_references
      Added value: +{
      +  "description": "More tenders to read in the same call, by the same kind of reference, e.g. to compare a shortlist: up to 19, for 20 in all. Saves a call for each.",
      +  "items": {
      +    "description": "The notice ID, procurement identifier, solicitation number or the buyer's own reference, e.g. \"012345-2026\" on Find a Tender, \"WS4851234567\" on CanadaBuys or \"140D0427Q0879\" on SAM.gov.",
      +    "minLength": 3,
      +    "type": "string"
      +  },
      +  "maxItems": 19,
      +  "type": "array"
      +}
    • addedOutput schema / properties / notFound
      Added value: +{
      +  "description": "The references asked for that Tenda has no notice for.",
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / tenders
      Added value: +{
      +  "description": "With more_references: each tender's own answer, in the order asked.",
      +  "items": {
      +    "additionalProperties": {},
      +    "properties": {
      +      "awards": {
      +        "items": {
      +          "additionalProperties": {},
      +          "properties": {
      +            "date": {
      +              "type": "string"
      +            },
      +            "ends": {
      +              "type": "string"
      +            },
      +            "suppliers": {
      +              "items": {
      +                "type": "string"
      +              },
      +              "type": "array"
      +            },
      +            "value": {
      +              "type": "string"
      +            }
      +          },
      +          "type": "object"
      +        },
      +        "type": "array"
      +      },
      +      "buyer": {
      +        "additionalProperties": {},
      +        "properties": {
      +          "contact": {
      +            "type": "string"
      +          },
      +          "locality": {
      +            "type": "string"
      +          },
      +          "name": {
      +            "type": "string"
      +          },
      +          "type": {
      +            "type": "string"
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "codes": {
      +        "items": {
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "competition": {
      +        "additionalProperties": {},
      +        "properties": {
      +          "bidsReceived": {
      +            "additionalProperties": {},
      +            "description": "How many bids similar contracts drew: the median, and how many notices gave a count.",
      +            "properties": {
      +              "notices": {
      +                "type": "number"
      +              },
      +              "typical": {
      +                "type": "number"
      +              }
      +            },
      +            "required": [
      +              "typical",
      +              "notices"
      +            ],
      +            "type": "object"
      +          },
      +          "history": {
      +            "description": "The buyer's similar past contracts the read is from, newest first.",
      +            "items": {
      +              "additionalProperties": {},
      +              "properties": {
      +                "awardedAt": {
      +                  "type": "string"
      +                },
      +                "bidsReceived": {
      +                  "type": "number"
      +                },
      +                "contractEnd": {
      +                  "type": "string"
      +                },
      +                "contractStart": {
      +                  "type": "string"
      +                },
      +                "reference": {
      +                  "type": "string"
      +                },
      +                "suppliers": {
      +                  "items": {
      +                    "additionalProperties": {},
      +                    "properties": {
      +                      "companyNumber": {
      +                        "type": "string"
      +                      },
      +                      "name": {
      +                        "type": "string"
      +                      }
      +                    },
      +                    "required": [
      +                      "name"
      +                    ],
      +                    "type": "object"
      +                  },
      +                  "type": "array"
      +                },
      +                "tenderId": {
      +                  "type": "string"
      +                },
      +                "title": {
      +                  "type": "string"
      +                },
      +                "url": {
      +                  "type": "string"
      +                },
      +                "value": {
      +                  "additionalProperties": {},
      +                  "properties": {
      +                    "amount": {
      +                      "type": "number"
      +                    },
      +                    "currency": {
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "amount",
      +                    "currency"
      +                  ],
      +                  "type": "object"
      +                },
      +                "valuePerYear": {
      +                  "type": "number"
      +                }
      +              },
      +              "required": [
      +                "tenderId",
      +                "title",
      +                "reference",
      +                "awardedAt",
      +                "suppliers"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "holder": {
      +            "additionalProperties": {},
      +            "description": "Who holds the work now: the winner of the buyer's latest similar contract that hasn't ended, or ended within the last 12 months. Dates in ISO 8601.",
      +            "properties": {
      +              "companyNumber": {
      +                "type": "string"
      +              },
      +              "contractEnds": {
      +                "type": "string"
      +              },
      +              "name": {
      +                "type": "string"
      +              },
      +              "since": {
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "name",
      +              "since"
      +            ],
      +            "type": "object"
      +          },
      +          "read": {
      +            "description": "Tenda's read of the competition, from the rules in why: never odds.",
      +            "enum": [
      +              "worth chasing",
      +              "open contest",
      +              "long shot"
      +            ],
      +            "type": "string"
      +          },
      +          "valueRange": {
      +            "additionalProperties": {},
      +            "description": "What similar contracts were worth a year, lowest and highest, in one currency.",
      +            "properties": {
      +              "contracts": {
      +                "type": "number"
      +              },
      +              "currency": {
      +                "type": "string"
      +              },
      +              "high": {
      +                "type": "number"
      +              },
      +              "low": {
      +                "type": "number"
      +              }
      +            },
      +            "required": [
      +              "low",
      +              "high",
      +              "currency",
      +              "contracts"
      +            ],
      +            "type": "object"
      +          },
      +          "why": {
      +            "description": "The facts behind the read, in plain words.",
      +            "items": {
      +              "type": "string"
      +            },
      +            "type": "array"
      +          }
      +        },
      +        "required": [
      +          "read",
      +          "why",
      +          "history"
      +        ],
      +        "type": "object"
      +      },
      +      "conditions": {
      +        "items": {
      +          "additionalProperties": {},
      +          "properties": {
      +            "mandatory": {
      +              "type": "boolean"
      +            },
      +            "requirement": {
      +              "type": "string"
      +            },
      +            "source": {
      +              "type": "string"
      +            },
      +            "words": {
      +              "type": "string"
      +            }
      +          },
      +          "type": "object"
      +        },
      +        "type": "array"
      +      },
      +      "credit": {
      +        "type": "string"
      +      },
      +      "found": {
      +        "type": "boolean"
      +      },
      +      "howItIsRun": {
      +        "type": "string"
      +      },
      +      "howItIsScored": {
      +        "items": {
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "keyDates": {
      +        "additionalProperties": {},
      +        "properties": {
      +          "bidsClose": {
      +            "type": "string"
      +          },
      +          "clarificationsClose": {
      +            "type": "string"
      +          },
      +          "contractEnds": {
      +            "type": "string"
      +          },
      +          "contractStarts": {
      +            "type": "string"
      +          },
      +          "expressionsOfInterestClose": {
      +            "type": "string"
      +          },
      +          "latestEndWithExtensions": {
      +            "type": "string"
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "lots": {
      +        "items": {
      +          "additionalProperties": {},
      +          "properties": {
      +            "id": {
      +              "type": "string"
      +            },
      +            "suitableForSme": {
      +              "type": "boolean"
      +            },
      +            "title": {
      +              "type": "string"
      +            },
      +            "value": {
      +              "type": "string"
      +            }
      +          },
      +          "type": "object"
      +        },
      +        "type": "array"
      +      },
      +      "notInTheNotice": {
      +        "type": "string"
      +      },
      +      "publishedDocuments": {
      +        "items": {
      +          "additionalProperties": {},
      +          "properties": {
      +            "title": {
      +              "type": "string"
      +            },
      +            "url": {
      +              "type": "string"
      +            }
      +          },
      +          "type": "object"
      +        },
      +        "type": "array"
      +      },
      +      "rules": {
      +        "type": "string"
      +      },
      +      "summary": {
      +        "type": "string"
      +      },
      +      "tender": {
      +        "additionalProperties": {},
      +        "description": "The same facts as a search_tenders result.",
      +        "properties": {
      +          "buyer": {
      +            "type": "string"
      +          },
      +          "closesAt": {
      +            "type": "string"
      +          },
      +          "currency": {
      +            "type": "string"
      +          },
      +          "id": {
      +            "type": "string"
      +          },
      +          "ocid": {
      +            "type": "string"
      +          },
      +          "reference": {
      +            "type": "string"
      +          },
      +          "title": {
      +            "type": "string"
      +          },
      +          "url": {
      +            "type": "string"
      +          },
      +          "valueAmount": {
      +            "type": "number"
      +          }
      +        },
      +        "required": [
      +          "id",
      +          "ocid",
      +          "reference",
      +          "title",
      +          "buyer"
      +        ],
      +        "type": "object"
      +      },
      +      "whatTheyWant": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "summary",
      +      "found"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
  3. First observed

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the description doesn't need to argue safety; instead it spends its words on what the agent actually receives, including the less obvious competitive-intelligence payload (current holder, prior price paid, bid count). It doesn't discuss missing/not-found references or multi-reference partial failures, which is the only real 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 the trigger condition, then the payoff list, then the exclusion, then the example — a sound order. The single long opening sentence carries a lot of enumerations and the phrase "whether the tender is worth chasing" is a touch editorial, but no sentence is filler.

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?

An output schema exists, so return formatting is rightly omitted, and the description covers the trigger, the reference formats and the sibling boundary. The one omission is the batch path via more_references, which matters for the compare-a-shortlist use case the schema explicitly advertises.

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% and the schema already documents both parameters with identical example references, so the description's inline example adds little beyond it. The second parameter (more_references, up to 19 for batch comparison) is never mentioned in the description, leaving batching discoverable only through the schema. Baseline 3 is appropriate.

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 (explain/read one tender) and enumerates exactly what comes back: deadline, portal, lots, value, conditions, award criteria, plus incumbent/price/bid-count intelligence. It also names the boundary against search_tenders, so an agent can pick it without opening the sibling schema.

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 triggers (user asks about one tender, framework or standing offer; by notice ID, buyer reference, or from earlier results) and an explicit exclusion with the alternative: "Not for finding tenders (use search_tenders)." Nothing is left to inference.

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