Stipple — Government Tenders
Server Details
Search AU/NZ government tenders and rank a shortlist against company capabilities.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- Sketchjar/stipple-mcp
- GitHub Stars
- 0
- Server Listing
- stipple-mcp
TDQS
Scored across 5 tools
Each tool targets a distinct function: buyer_awards for buyer-specific history, find_signals for upcoming opportunities, find_tenders for open tender search, match_tenders for company fit ranking, and tender_sources for data provenance. No two tools overlap in purpose, making misselection unlikely.
Names mix conventions: 'find_*' and 'match_*' use verb-noun, while 'buyer_awards' and 'tender_sources' are noun-noun phrases. This is not chaotic but lacks a single predictable pattern, which could cause minor hesitation in choosing the right tool.
With 5 tools, the server is well-scoped for the domain of government tenders. Each tool covers a core workflow (search, signals, buyer analysis, matching, source transparency) without redundancy, fitting the ideal 3-15 range.
The surface covers the primary lifecycle: discovering tenders, identifying upcoming opportunities, analyzing buyers, and matching to companies. Minor gaps exist, such as lack of a direct 'get_tender_by_id' endpoint, but search returns sufficient detail. Overall, no dead ends for typical user queries.
Available Tools
5 toolsbuyer_awardsContract awards and signals for a buyerARead-onlyInspect
What a buyer has awarded, what is ending, and what they plan. FREE.
USE THIS WHEN someone asks about a specific buyer before a bid: "who holds Transport for
NSW's work", "what is ending soon at Queensland Health", "what does this agency usually
pay". Give buyer (the organisation name as published) or buyer_key (from a tender's
buyer, or a previous answer).
Returns {buyer, expiring[], planned[], recent_awards[], top_suppliers[], open_tenders[], computed_at, sources}: the nightly rollup (awards in the window, value quartiles as
published, median response window), contracts ending within 12 months with the incumbent,
planned procurements with their quarter and spend band, the suppliers who win from them
(name and share), and open tenders under the same name.
ANONYMOUS CALLERS SEE COUNTS, VALUES, DATES AND BUYERS; supplier and incumbent names are
withheld and withheld_reason says so. Relay that sentence as it is. Values are the
published amount and currency, never converted; computed_at is the night the figures
are true for - say it. Coverage is Australia and New Zealand sources named in
sources, each with the attribution its licence requires.
| Name | Required | Description | Default |
|---|---|---|---|
| buyer | No | ||
| buyer_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only carry readOnlyHint=true, so the description carries most transparency burden; it excels at it. It discloses anonymity for non-authenticated callers, the exact withheld fields and withheld_reason, no currency conversion, computed_at meaning, and source attribution requirements. This is far beyond generic and does not contradict the read-only hint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but well-structured: a one-line summary, then a clearly marked when-to-use block, then response contents, then caveats. The front-loading respects agent scanning. A little redundancy ('what they plan' vs 'planned procurements') is negligible.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter read-only tool, the description is unusually complete: it explains parameter semantics, output fields, anonymity behavior, time semantics, currency handling, and geographic coverage. The presence of an output schema lowers the burden for return-value documentation, and this description still covers it. No critical operational detail is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has no descriptions for either parameter (0% coverage), so the description must compensate and does: it defines buyer as 'the organisation name as published' and buyer_key as coming 'from a tender's buyer, or a previous answer.' It also clarifies that either is acceptable. This is the only real documentation the parameters get.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a plain-language statement of what the tool returns—'What a buyer has awarded, what is ending, and what they plan'—and later names the concrete result object. It distinguishes itself from siblings by framing the use case as 'a specific buyer before a bid,' which is clearly different from generic tender search tools like find_tenders.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit triggering conditions ('USE THIS WHEN someone asks about a specific buyer before a bid') with three realistic example queries. It also tells the caller which parameters to supply and where to get them, but it does not name sibling tools or state when a different tool should be used instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_signalsFind contract expiries and planned procurementsARead-onlyInspect
Signals: what may be tendered before it is. FREE.
USE THIS WHEN someone asks what is coming: "which contracts in Queensland end in the next
six months", "what is planned for ICT next quarter", "what is expiring for this buyer".
kind is one of contract_expiry (a contract ending, with its incumbent),
planned_procurement (a buyer's stated plan with its quarter and spend band as published)
or recurring_tender (derived from our own history, labelled derived). jurisdiction
is one of AU, NZ, AU-NSW, AU-VIC, AU-QLD, AU-WA, AU-SA, AU-TAS, AU-ACT, AU-NT. window_before is an ISO date: signals whose
window starts on or before it. q searches the subject, buyer and incumbent.
Returns {total, results[], computed_at, sources}. Each signal carries confidence
(published or derived - a vocabulary, not a score), its window (never invented: an
expiry's window IS the contract's end date; a planned row with no parseable quarter has
none), evidence_ref and evidence_url. ANONYMOUS CALLERS SEE EVERYTHING BUT THE
INCUMBENT'S NAME; withheld_reason says so - relay it as it is.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | ||
| kind | No | ||
| buyer | No | ||
| limit | No | ||
| jurisdiction | No | ||
| window_before | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint annotation, the description reveals important behaviors: FREE access, anonymous callers receive everything except the incumbent's name and must relay withheld_reason as-is, confidence is a vocabulary not a score, and windows are never invented. This is substantial behavioral disclosure beyond structured annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but information-dense: use-case first, then parameter semantics, then output and auth caveats. No filler sentences; each paragraph earns its place given the 0% schema coverage.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a six-parameter tool with an output schema and readOnly annotation, the description covers the non-obvious behaviors, accepted value formats, output shape, and caller-specific visibility. Missing buyer and limit details are minor because their names/defaults make them self-explanatory.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description compensates well by explaining kind, jurisdiction, window_before, and q semantics. It omits buyer and limit, which are less obvious because buyer could be confused with the q field and limit's effect is only implicit in the output total.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states what the tool returns: upcoming contract expiries, planned procurements, and recurring tenders, framed as 'what may be tendered before it is.' It gives concrete user queries and distinguishes the signal category from current-tender tools, so an agent can identify the tool's job immediately.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives an explicit 'USE THIS WHEN' directive with realistic examples, which is strong selection guidance. It does not explicitly name when-not-to-use cases or alternatives such as find_tenders, though the phrase 'before it is tendered' implies the boundary against current tender search.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_tendersSearch AU/NZ tendersARead-onlyInspect
Search open tenders across Australia and New Zealand. FREE, within the weekly cap.
USE THIS WHEN someone asks what public-sector work is open: "any council drainage tenders in Victoria", "what's closing this month in NSW", "show me federal IT opportunities". For "which of these could MY company actually bid for", use match_tenders instead — that reads their website and ranks against it.
jurisdiction is one of AU, NZ, AU-NSW, AU-VIC, AU-QLD, AU-WA, AU-SA, AU-TAS, AU-ACT, AU-NT. tier is federal, national,
state, council, university or health. closing_before is an ISO date.
first_seen_after (ISO-8601 instant, strictly newer) answers "what is new since my last
look" — first_seen is when WE first saw the tender, the honest clock for newness. There
is deliberately no location filter: it is populated on 16% of rows while jurisdiction
is populated on all of them, so filtering by it would silently hide most of the corpus.
Returns {total, results[], coverage}. Each result carries title, buyer, jurisdiction,
closing_date, categories, a summary, a link, and source_id/source_tag/source_name/
source_url/source_refresh — plus link_is_listing when the portal publishes no
per-tender URL and the link goes to the list it appeared on.
coverage names which sources were searched and which returned nothing. Quote it if
the result is empty: "no match in what we searched" is true, "there are none" is not.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | ||
| tier | No | ||
| limit | No | ||
| source | No | ||
| category | No | ||
| jurisdiction | No | ||
| closing_before | No | ||
| include_closed | No | ||
| first_seen_after | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint annotation, the description discloses meaningful behavioral details: the weekly free cap, the semantic meaning of first_seen (the 'honest clock for newness'), the deliberate absence of a location filter due to data sparsity, and the caveat about coverage when results are empty. This gives the agent more than the annotation alone and prevents misleading conclusions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but front-loaded: purpose first, then usage, then parameter semantics, then return contract and caveats. Each section earns its place, and the dense parameter notes are necessary because the schema offers no descriptions. There is no filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has nine parameters, zero schema descriptions, and only a readOnly annotation, so the description carries a heavy burden. It covers usage guidance, key parameter semantics, output shape, and important caveats like the missing location filter. However, leaving q, source, category, and include_closed undocumented means it is not fully complete for an agent trying to precisely construct a query.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It usefully documents jurisdiction (with the full allowed list), tier, closing_before, and first_seen_after, but it does not explain q, limit, source, category, or include_closed. This is a substantial gap: an agent still cannot fully map user intent to all nine parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 open tenders across Australia and New Zealand.' It goes further by giving concrete example queries and explicitly distinguishing itself from match_tenders, so an agent can immediately tell what this tool does and what it is not for.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly says 'USE THIS WHEN' and then provides representative user intents. It also names the alternative match_tenders and states the condition for choosing that instead ('which of these could MY company actually bid for'), which is clear when-to-use and when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
match_tendersMatch tenders to a companyARead-onlyInspect
Rank open tenders against what a company actually does. Free, inside the weekly cap.
USE THIS WHEN someone asks which opportunities suit a specific business: "what could we
bid for", "is there anything for a civil contractor in Victoria", "find work for
acme.com.au". Give `company_url` — a plain domain is fine, we resolve it — and we read
their site, build a capability profile, and score the shortlist against it.
`example` runs a built-in profile (civil, it, facilities) with no site read, for
demonstrating the shape of the answer.
Returns `{profile, matched, shown, withheld, withheld_reason, matches[], degraded,
score_means, coverage}`. Each match has `score`, `band`, `why[]` — the company's own
stated capabilities this tender needs — and `gaps[]`, things the tender asks for that
their website does not mention. An anonymous call shows the strongest few and says
how many were withheld; relay `withheld_reason` as it is.
TELL THE USER WHAT THE SCORE IS: relative fit within these results, against what their
website says. NOT a probability of winning. And `gaps` is what to check before bidding,
not a list of everything the tender requires — that is in the tender documents.
When `degraded` is true, scoring was unavailable and the order is keyword relevance
only, with no `why`/`gaps`. Say so rather than presenting it as a judged ranking.
| Name | Required | Description | Default |
|---|---|---|---|
| example | No | ||
| company_url | No | ||
| jurisdiction | No | ||
| closing_before | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, and the description adds substantial behavioral context: it is free and within a weekly cap, reads the company website, builds a capability profile, scores tenders, handles degraded mode (keyword-only ordering), and withholds some matches with a reason. It also explains how to interpret the score and gaps, going well beyond the annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but information-dense. It is front-loaded with purpose and usage, then covers parameters, output fields, and caveats in a logical order. Every sentence adds value, and the use of paragraphs and examples keeps it scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (scoring, degraded mode, withheld matches) and the existence of an output schema, the description fully explains the return structure, how to present results, and what caveats to communicate. Nothing an agent needs to call and interpret this tool correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and the description explains `company_url` (plain domain is fine, it is resolved) and `example` (built-in profile, no site read), but it does not explicitly describe `jurisdiction` or `closing_before`. These are inferable from context (e.g., 'Victoria' example implies jurisdiction), but not stated, so the description only partially compensates for the missing schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Rank open tenders against what a company actually does.' It clearly distinguishes from siblings like find_tenders (which likely searches tenders) and check_document by focusing on matching to a company's capabilities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit trigger conditions with concrete examples ('what could we bid for', 'is there anything for a civil contractor in Victoria'), and even explains the `example` mode for demonstration. It tells the agent exactly when to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tender_sourcesList tender data sourcesARead-onlyInspect
Every source we search, what it is allowed to do, and what the last run returned. FREE.
USE THIS WHEN someone asks where the data comes from, whether a particular portal is
covered, or why a search came back empty. It is the honesty surface: it names sources
behind login walls, sources whose robots.txt refuses us, and sources that returned
nothing on the last run and why.
Returns `{sources[], coverage}` — per source: id, tag, name, URL, refresh mode,
jurisdiction, tier, how it is accessed, what its robots.txt says, how many tenders we
hold from it, and its status on the most recent run. Snapshot sources include their
observed date and are not presented as nightly feeds.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes well beyond the readOnlyHint annotation, disclosing that the tool names sources behind login walls, sources blocked by robots.txt, and sources that returned empty on the last run with reasons. It also clarifies that snapshot sources are not presented as nightly feeds, adding important caveats about data freshness.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose, followed by usage, then the return shape. It is longer than minimalist but every section (purpose, triggers, output detail) carries valuable information. A 5 would require tightening the output enumeration, but it is well-organized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no parameters, a readOnly annotation, and an output schema. The description fully explains the return payload (`sources[]` and `coverage`) and the per-source fields, so an agent knows exactly what to expect. No critical usage or behavioral context is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, so the schema is empty and schema description coverage is vacuously 100%. Per the rubric, this earns the baseline 4; there is nothing for the description to add about parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('List') and resource ('tender data sources'), then expands with exactly what is returned: each source, its permissions, and the last run's results. This clearly distinguishes it from the sibling tools find_tenders and match_tenders, which operate on tenders rather than source metadata.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'USE THIS WHEN someone asks where the data comes from, whether a particular portal is covered, or why a search came back empty.' This is clear trigger-based guidance. It doesn't explicitly name alternatives or when-not-to-use, but the sibling names make the exclusion obvious.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
2 tool updates
- Added
buyer_awards - Added
find_signals
1 tool update
- Changed
find_tenders1 field changed- added
Input schema / properties / first_seen_afterAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "First Seen After" +}
3 tool updates
- First observed
find_tenders - First observed
match_tenders - First observed
tender_sources
Related MCP Connectors
Search official UK tenders and create source-linked, deterministic supplier-fit assessments.
Find, score and analyse German and EU public tenders; search docs; draft quotes.
Canadian procurement intelligence: CanadaBuys and Alberta tenders, ranked for your shop.
Government tender search for AI agents. UK, EU and US procurement opportunities.
Related MCP Servers
- AlicenseAqualityFmaintenanceMatch your tech product or consulting service to thousands of live government tenders, RFPs, grants, and frameworks from 25+ official sources worldwide.421 npm6MIT
- AlicenseAqualityBmaintenanceEnables AI agents to find, score, and monitor government contract opportunities across UK, EU, and US with AI-powered relevance scoring.272 npm1MIT
- AlicenseNot gradedqualityCmaintenanceFind, analyze, and score Polish public tenders (BZP): parsed requirements, deadlines, certificates, and bid-fit scoring against your company profile.4 npmMIT
- AlicenseNot gradedqualityBmaintenanceEnables searching and analyzing government tenders, contract awards, and pre-tender pipelines from 21 official sources, with tools for tender search, award intelligence, and detailed notice retrieval.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.