@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:

  1. PageNumber is 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.
  2. 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

Regenerated from source · build October 15, 2026