Skip to main content
Glama
NectiaAutomation

Polish Public Tenders (e-Zamówienia/BZP) MCP

README.md
# Polish Public Tenders (e-Zamówienia/BZP) MCP

**Find, analyze, and score Polish public tenders with your AI agent.** This server searches
Poland's national public-procurement notice board — the **Biuletyn Zamówień Publicznych
(BZP)**, published via the e-Zamówienia platform — and parses each structured notice into
clean, ready-to-use data: requirements, deadlines, certificates, evaluation criteria, and
even a deterministic bid-fit score against your own company profile.

> Example: *"Find road-works tenders in region PL32 under the EU threshold, closing in the
> next three weeks, and tell me if my company is a good fit."* → the agent searches BZP
> contract notices, filters by CPV/region/deadline, and returns a scored shortlist with the
> factor breakdown behind each score.

This package is a lightweight, open **bridge** that connects any MCP client (Claude Desktop,
etc.) to the hosted, maintained Polish Public Tenders MCP server on Apify. The bridge holds
no data logic — it forwards your requests to the hosted service, which does the real work
(BZP notice search, structured parsing, and scoring) and meters usage to your own Apify
account.

## Tools

| Tool | What it does |
|------|--------------|
| `find_relevant_tenders` | Search open BZP contract notices by CPV code, keywords, region (NUTS/województwo), order type, publication/deadline window, below-EU threshold. Pass a `profile` to rank results by bid-fit score. |
| `analyze_tender` | Full structured breakdown of one tender: subject, buyer, CPV, deadlines, typed participation requirements, exclusion grounds, required documents, detected certificates, weighted evaluation criteria, submission language, bid-bond/security flags. |
| `score_bid_opportunity` | Score one tender against a company profile (0–100) with a transparent factor breakdown, matches, gaps (e.g. missing certificates), and risks (short deadline, Polish-only, wadium). Unknown data is scored neutrally, never faked. |
| `find_previous_winners` | Search awarded tenders (BZP result notices) by CPV, keywords, or buyer — competitive intelligence before bidding. |
| `monitor_tender_changes` | Fetch all published versions of one tender and return a structured diff of what changed: deadline, evaluation criteria, requirements, CPV. Stateless — re-call to keep watching. |

Polish national (BZP) tenders only in v1 — no EU-wide TED notices.

## Setup

### 1. Get access + an Apify API token

This bridge calls a **hosted, paid Actor** on Apify. You need your own Apify account and
API token:

1. Open the Actor on the Apify Store: **https://apify.com/nectia/ezamowienia-tenders-mcp**
2. Subscribe / rent the Actor (billed per call — pay only for what you use).
3. Copy your token from **Apify Console → Settings → Integrations → API token**.

### 2. Add it to your MCP client

**Claude Desktop** (`claude_desktop_config.json`):

```json
{
  "mcpServers": {
    "ezamowienia-tenders": {
      "command": "npx",
      "args": ["-y", "ezamowienia-tenders-mcp-server"],
      "env": {
        "APIFY_API_TOKEN": "PASTE_YOUR_APIFY_TOKEN_HERE"
      }
    }
  }
}
```

Restart your client. No build step, no other keys.

## How it works

```
Your MCP client  ──stdio──►  ezamowienia-tenders-mcp-server (this bridge)  ──HTTPS──►  Hosted Actor on Apify  ──►  BZP / e-Zamówienia API
```

The bridge authenticates to the hosted Actor with your `APIFY_API_TOKEN` and transparently
proxies the tools. Your token stays on your machine; Apify meters the calls to your account.

## Data & attribution

Data from Poland's **Biuletyn Zamówień Publicznych (BZP)**, published via the
[e-Zamówienia](https://ezamowienia.gov.pl/) platform operated by the Public Procurement
Office (**Urząd Zamówień Publicznych, UZP**), Polish public-sector open data. This project is
an independent tool and is not affiliated with, endorsed by, or sponsored by UZP or
e-Zamówienia.

## License

MIT © Nectia Automation. The bridge code is open source; the hosted Actor is a commercial
service.