@pipeworx/poland-tenders
Connect: https://pipeworx.io/mcp — every tool in the catalog, including @pipeworx/poland-tenders’s. Install: one-click buttons
Connect to just the @pipeworx/poland-tenders pack
https://gateway.pipeworx.io/poland-tenders/mcp — only @pipeworx/poland-tenders’s own tools, nothing else in the catalog.
No MCP client? Skip the connection: POST https://gateway.pipeworx.io/v1/tools/search_packs {"query":"..."} to find a tool below, GET /v1/tools/<name> for its schema, POST the same URL with arguments for the data — see For AI agents.
Tools: 3
Polish government procurement notices (zamówienia publiczne) — recent, keyword/CPV, and buyer-filtered search over the national BZP bulletin.
Tools
pl_tender_recent(days?, limit?)— the most recently published Polish contract notices.pl_tender_search(query, date_from?, date_to?, limit?)— keyword/CPV search over notices in a publish-date window.pl_tender_by_buyer(buyer, date_from?, date_to?, limit?)— notices published by a given contracting authority.
Auth
Keyless. The notice-read endpoint is the public surface of the platform and needs no registration or integration procedure.
Data sources
- Urząd Zamówień Publicznych (Poland Public Procurement Office), Biuletyn Zamówień Publicznych notice bulletin, served via the official e-Zamówienia platform.
Notes for the next person
The upstream notice API has two quirks that shape every tool here:
PageNumberis accepted but silently ignored — asking for page 1, 2, or 3 of the same date-range query returns byte-identical results. There is no working server-side pagination, verified live.- Within one date range the API returns notices OLDEST-FIRST, hard-capped at
PageSize<=500. Daily volume runs ~450-500 notices, so a multi-day window risks the 500 cap silently truncating away the NEWEST notices (at the end of ascending order) rather than the oldest — the opposite of what a caller would expect from “the window got too big.”
Because of both, every tool here fetches one calendar day per HTTP call (never a multi-day range in one request) and merges/sorts client-side — newest-day-first, so a per-call day cap drops the oldest days rather than hiding the newest ones. There is no server-side keyword/buyer/CPV filter either, so matching is done client-side over the fetched days.
Each raw notice embeds a large htmlBody field (the full rendered notice
page, tens of KB) which is discarded during shaping and never returned to a
caller.
Tools
- pl_tender_recent — The latest Polish public-sector tenders, from the official e-Zamówienia / BZP platform.
- pl_tender_search — Keyword search over POLISH government tender notices — Poland public procurement / zamówienia publiczne — published in the Biuletyn Zamówień Publicznych via the official e-Zamówienia platform (ezamowi
- pl_tender_by_buyer — List POLISH government tenders published by a specific contracting authority (zamawiający) — e.g. a city office, a hospital, a ministry — via the official e-Zamówienia / BZP platform (ezamowienia.gov.
Tools
pl_tender_by_buyer— List POLISH government tenders published by a specific contracting authority (zamawiający) — e.g. a city office, a hospital, a ministry — via the official e-Zamówienia / BZP platform (ezamowienia.gov.pl_tender_recent— The latest Polish public-sector tenders, from the official e-Zamówienia / BZP platform.pl_tender_search— Keyword search over POLISH government tender notices — Poland public procurement / zamówienia publiczne — published in the Biuletyn Zamówień Publicznych via the official e-Zamówienia platform (ezamowi