
Polish public procurement for AI agents: BZP and TED tenders, awards, buyers and contractors.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Optional: Bearer mcpk_… key from https://compabase.com/integrations?tab=mcp. Clients with OAuth support can sign in instead.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Get the registry profile of one Polish company: name, legal form, address, industry (PKD), share capital, representation rules, recent registry changes, VAT status and headline financials for the latest filed period. Identify the company by name, KRS number or company tax number (NIP). For earlier years or full statements use get_financials.
KRS number of the company in the Polish National Court Register (10 digits).
Polish company tax number (NIP) of the business, 10 digits.
Company name, used when the KRS or NIP is not known.
Get the registry profile of one Polish company: name, legal form, address, industry (PKD), share capital, representation rules, recent registry changes, VAT status and headline financials for the latest filed period. Identify the company by name, KRS number or company tax number (NIP). For earlier years or full statements use get_financials.
| Argument | Type | Description |
|---|---|---|
| krs | string | KRS number of the company in the Polish National Court Register (10 digits). |
| nip | string | Polish company tax number (NIP) of the business, 10 digits. |
| name | string | Company name, used when the KRS or NIP is not known. |
{
"type": "object",
"properties": {
"krs": {
"type": "string",
"description": "KRS number of the company in the Polish National Court Register (10 digits)."
},
"nip": {
"type": "string",
"description": "Polish company tax number (NIP) of the business, 10 digits."
},
"name": {
"type": "string",
"description": "Company name, used when the KRS or NIP is not known."
}
}
}Get European Funds (Fundusze Europejskie) projects for a company — official MFiPR lists, EU co-financing, programme and dates. Keyed by NIP. Identify company by name, KRS, or NIP. Cohesion/shared-management funds; not TED procurement, not FTS Commission grants, and not SUDOP state aid.
| Argument | Type | Description |
|---|---|---|
| krs | string | KRS number of the company in the Polish National Court Register (10 digits). |
| nip | string | Polish company tax number (NIP) of the business, 10 digits. |
| name | string | Company name, used when the KRS or NIP is not known. |
{
"type": "object",
"properties": {
"krs": {
"type": "string",
"description": "KRS number of the company in the Polish National Court Register (10 digits)."
},
"nip": {
"type": "string",
"description": "Polish company tax number (NIP) of the business, 10 digits."
},
"name": {
"type": "string",
"description": "Company name, used when the KRS or NIP is not known."
}
}
}Get European Commission grants awarded directly to a Polish company (Horizon Europe, LIFE, Erasmus+ and other EU programmes from the EU Financial Transparency System). Identify the company by name, KRS number or company tax number (NIP).
| Argument | Type | Description |
|---|---|---|
| krs | string | KRS number of the company in the Polish National Court Register (10 digits). |
| nip | string | Polish company tax number (NIP) of the business, 10 digits. |
| name | string | Company name, used when the KRS or NIP is not known. |
{
"type": "object",
"properties": {
"krs": {
"type": "string",
"description": "KRS number of the company in the Polish National Court Register (10 digits)."
},
"nip": {
"type": "string",
"description": "Polish company tax number (NIP) of the business, 10 digits."
},
"name": {
"type": "string",
"description": "Company name, used when the KRS or NIP is not known."
}
}
}Get TED EU-threshold public procurement — full awards as contractor and notices as buyer. Keyed by NIP. Identify company by name, KRS, or NIP.
| Argument | Type | Description |
|---|---|---|
| krs | string | KRS number of the company in the Polish National Court Register (10 digits). |
| nip | string | Polish company tax number (NIP) of the business, 10 digits. |
| name | string | Company name, used when the KRS or NIP is not known. |
{
"type": "object",
"properties": {
"krs": {
"type": "string",
"description": "KRS number of the company in the Polish National Court Register (10 digits)."
},
"nip": {
"type": "string",
"description": "Polish company tax number (NIP) of the business, 10 digits."
},
"name": {
"type": "string",
"description": "Company name, used when the KRS or NIP is not known."
}
}
}Get SUDOP public aid / grants for a company — full case list with amounts, grantor, measure, purpose. Keyed by NIP. Identify company by name, KRS, or NIP.
| Argument | Type | Description |
|---|---|---|
| krs | string | KRS number of the company in the Polish National Court Register (10 digits). |
| nip | string | Polish company tax number (NIP) of the business, 10 digits. |
| name | string | Company name, used when the KRS or NIP is not known. |
{
"type": "object",
"properties": {
"krs": {
"type": "string",
"description": "KRS number of the company in the Polish National Court Register (10 digits)."
},
"nip": {
"type": "string",
"description": "Polish company tax number (NIP) of the business, 10 digits."
},
"name": {
"type": "string",
"description": "Company name, used when the KRS or NIP is not known."
}
}
}Get BZP public procurement data — full awards as contractor and notices as buyer, with award values. Keyed by NIP. Identify company by name, KRS, or NIP.
| Argument | Type | Description |
|---|---|---|
| krs | string | KRS number of the company in the Polish National Court Register (10 digits). |
| nip | string | Polish company tax number (NIP) of the business, 10 digits. |
| name | string | Company name, used when the KRS or NIP is not known. |
{
"type": "object",
"properties": {
"krs": {
"type": "string",
"description": "KRS number of the company in the Polish National Court Register (10 digits)."
},
"nip": {
"type": "string",
"description": "Polish company tax number (NIP) of the business, 10 digits."
},
"name": {
"type": "string",
"description": "Company name, used when the KRS or NIP is not known."
}
}
}Get current billing period usage and remaining quota — mcp_queries, api_requests, export_companies, ask_ai_credits, watchlist_companies. Includes limits and reset date.
No arguments.
{
"type": "object",
"properties": {}
}Search and filter Polish KRS companies (spółki). Compabase also holds the full CEIDG/JDG register; this tool does not browse JDG — those without a public contact email are hidden because of RODO. Default `fields=summary` returns a compact row (name, NIP, KRS, location, PKD, latest financials, email/phone/website) — small enough for MCP clients. `fields=contacts_only` is name/NIP/KRS/city/email/phone/website only. `fields=full` returns every company_search column plus contacts and may exceed client size limits. Use for rankings, sector filters, city/county/region browsing, name search, or NIP/KRS lookup. When a PKD is mostly JDG, a sparse result includes a `hint` (full CEIDG is in the database; listing is RODO-gated). Do not call export_companies just to get a handful of emails or phones.
| Argument | Type | Description |
|---|---|---|
| krs | string | KRS number of the company in the Polish National Court Register (10 digits). |
| nip | string | Polish company tax number (NIP) of the business, 10 digits. |
| pkd | string | Primary PKD code prefix, e.g. '46.90.Z' or '46'. |
| city | string | City name — KRS records use uppercase, e.g. 'WARSZAWA', 'POZNAŃ'. |
| name | string | Company name, used when the KRS or NIP is not known. |
| year | integer | Filter to companies whose latest financial_period_to falls within this calendar year (e.g. 2024). Use only for sector/ranking browse — omit when looking up a company by name, KRS, or NIP. |
Search Polish public procurement notices from BZP (national) and TED (EU): open calls with deadlines or awarded contracts. Filter by industry (it, construction, medicine, or a 2-digit CPV division such as 72), region, buyer city, kind and value. Returns title, buyer, CPV codes, publication date, deadline, estimated or awarded value and a link to the notice.
| Argument | Type | Description |
|---|---|---|
| city | string | Buyer city, e.g. Warszawa. |
| kind | string | Contract type. |
| page | integer | Result page (20 per page). |
| region | string | Voivodeship of the buyer. |
| source | string | national (BZP) or eu (TED). Default: both. |
| status | string | open (default) or awarded notices. |
| currency | string | Currency for value filters and output. Default PLN. |
| industry | string | it, construction, medicine, or a 2-digit CPV division code (e.g. 72, 45, 33). |
| value_max |
| limit | integer | Max results (default: 10, max: 50). |
| county | string | County / powiat (lowercase). |
| fields | string | Response size. Default summary (name, NIP, KRS, location, PKD, latest financials, email/phone/website). contacts_only: name, NIP, KRS, city, email, phone, website. full: every company_search column plus contacts — often too large for MCP clients. |
| region | string | Voivodeship (lowercase), e.g. 'mazowieckie', 'wielkopolskie'. |
| all_pkd | string | Match any PKD code in the company's activity list (not just primary). |
| sort_by | string | Sort field (default: revenue_total). registration_date + sort_dir=desc lists the newest registrations first. revenue_growth_pct + sort_dir=desc lists the fastest-growing companies (y/y revenue growth from KRS financial statements; combine with revenue_min to skip small companies). |
| currency | string | Currency for monetary filters. Default: pln. |
| sort_dir | string | Sort direction (default: desc). |
| has_email | boolean | true = only companies with email on record. Matching rows include contacts.email. Omit otherwise. |
| is_active | boolean | true = active only, false = closed only. Omit for all. |
| ebitda_max | number | Maximum EBITDA. |
| ebitda_min | number | Minimum EBITDA. |
| legal_form | string | Legal form fragment, e.g. 'spółka z o.o.' or 'akcyjna'. |
| profit_max | number | Maximum net profit. |
| profit_min | number | Minimum net profit. |
| capital_max | number | Maximum share capital. |
| capital_min | number | Minimum share capital. |
| has_website | boolean | true = only companies with website on record. Matching rows include contacts.website. Omit otherwise. |
| postal_code | string | Postal code prefix, e.g. '00-9' or '61-'. |
| revenue_max | number | Maximum total revenue. |
| revenue_min | number | Minimum total revenue. |
| total_assets_max | number | Maximum total assets. |
| total_assets_min | number | Minimum total assets. |
| estimated_value_max | number | Maximum Ohlson estimated equity value in PLN. |
| estimated_value_min | number | Minimum Ohlson estimated equity value in PLN. |
| profit_operating_max | number | Maximum operating profit (PLN). Omit if unused. |
| profit_operating_min | number | Minimum operating profit (PLN). Negative allowed. Omit if unused. |
| registration_date_max | string | Latest KRS registration date, YYYY-MM-DD (inclusive). |
| registration_date_min | string | Earliest KRS registration date, YYYY-MM-DD (inclusive). For newly registered companies use today's date for both registration_date_min and registration_date_max. |
{
"type": "object",
"properties": {
"krs": {
"type": "string",
"description": "KRS number of the company in the Polish National Court Register (10 digits)."
},
"nip": {
"type": "string",
"description": "Polish company tax number (NIP) of the business, 10 digits."
},
"pkd": {
"type": "string",
"description": "Primary PKD code prefix, e.g. '46.90.Z' or '46'."
},
"city": {
"type": "string",
"description": "City name — KRS records use uppercase, e.g. 'WARSZAWA', 'POZNAŃ'."
},
"name": {
"type": "string",
"description": "Company name, used when the KRS or NIP is not known."
},
"year": {
"type": "integer",
"description": "Filter to companies whose latest financial_period_to falls within this calendar year (e.g. 2024). Use only for sector/ranking browse — omit when looking up a company by name, KRS, or NIP."
},
"limit": {
"type": "integer",
"maximum": 50,
"minimum": 1,
"description": "Max results (default: 10, max: 50)."
},
"county": {
"type": "string",
"description": "County / powiat (lowercase)."
},
"fields": {
"enum": [
"contacts_only",
"summary",
"full"
],
"type": "string",
"description": "Response size. Default summary (name, NIP, KRS, location, PKD, latest financials, email/phone/website). contacts_only: name, NIP, KRS, city, email, phone, website. full: every company_search column plus contacts — often too large for MCP clients."
},
"region": {
"type": "string",
"description": "Voivodeship (lowercase), e.g. 'mazowieckie', 'wielkopolskie'."
},
"all_pkd": {
"type": "string",
"description": "Match any PKD code in the company's activity list (not just primary)."
},
"sort_by": {
"enum": [
"revenue_total",
"profit_net",
"total_assets",
"profit_operating",
"ebitda",
"capital_total",
"estimated_value",
"registration_date",
"revenue_growth_pct"
],
"type": "string",
"description": "Sort field (default: revenue_total). registration_date + sort_dir=desc lists the newest registrations first. revenue_growth_pct + sort_dir=desc lists the fastest-growing companies (y/y revenue growth from KRS financial statements; combine with revenue_min to skip small companies)."
},
"currency": {
"enum": [
"pln",
"usd",
"eur"
],
"type": "string",
"description": "Currency for monetary filters. Default: pln."
},
"sort_dir": {
"enum": [
"asc",
"desc"
],
"type": "string",
"description": "Sort direction (default: desc)."
},
"has_email": {
"type": "boolean",
"description": "true = only companies with email on record. Matching rows include contacts.email. Omit otherwise."
},
"is_active": {
"type": "boolean",
"description": "true = active only, false = closed only. Omit for all."
},
"ebitda_max": {
"type": "number",
"description": "Maximum EBITDA."
},
"ebitda_min": {
"type": "number",
"description": "Minimum EBITDA."
},
"legal_form": {
"type": "string",
"description": "Legal form fragment, e.g. 'spółka z o.o.' or 'akcyjna'."
},
"profit_max": {
"type": "number",
"description": "Maximum net profit."
},
"profit_min": {
"type": "number",
"description": "Minimum net profit."
},
"capital_max": {
"type": "number",
"description": "Maximum share capital."
},
"capital_min": {
"type": "number",
"description": "Minimum share capital."
},
"has_website": {
"type": "boolean",
"description": "true = only companies with website on record. Matching rows include contacts.website. Omit otherwise."
},
"postal_code": {
"type": "string",
"description": "Postal code prefix, e.g. '00-9' or '61-'."
},
"revenue_max": {
"type": "number",
"description": "Maximum total revenue."
},
"revenue_min": {
"type": "number",
"description": "Minimum total revenue."
},
"total_assets_max": {
"type": "number",
"description": "Maximum total assets."
},
"total_assets_min": {
"type": "number",
"description": "Minimum total assets."
},
"estimated_value_max": {
"type": "number",
"description": "Maximum Ohlson estimated equity value in PLN."
},
"estimated_value_min": {
"type": "number",
"description": "Minimum Ohlson estimated equity value in PLN."
},
"profit_operating_max": {
"type": "number",
"description": "Maximum operating profit (PLN). Omit if unused."
},
"profit_operating_min": {
"type": "number",
"description": "Minimum operating profit (PLN). Negative allowed. Omit if unused."
},
"registration_date_max": {
"type": "string",
"description": "Latest KRS registration date, YYYY-MM-DD (inclusive)."
},
"registration_date_min": {
"type": "string",
"description": "Earliest KRS registration date, YYYY-MM-DD (inclusive). For newly registered companies use today's date for both registration_date_min and registration_date_max."
}
}
}| number |
| Maximum estimated/awarded value. |
| value_min | number | Minimum estimated/awarded value. |
{
"type": "object",
"properties": {
"city": {
"type": "string",
"description": "Buyer city, e.g. Warszawa."
},
"kind": {
"enum": [
"supplies",
"services",
"works"
],
"type": "string",
"description": "Contract type."
},
"page": {
"type": "integer",
"maximum": 50,
"minimum": 0,
"description": "Result page (20 per page)."
},
"region": {
"enum": [
"dolnośląskie",
"kujawsko-pomorskie",
"lubelskie",
"lubuskie",
"łódzkie",
"małopolskie",
"mazowieckie",
"opolskie",
"podkarpackie",
"podlaskie",
"pomorskie",
"śląskie",
"świętokrzyskie",
"warmińsko-mazurskie",
"wielkopolskie",
"zachodniopomorskie"
],
"type": "string",
"description": "Voivodeship of the buyer."
},
"source": {
"enum": [
"national",
"eu"
],
"type": "string",
"description": "national (BZP) or eu (TED). Default: both."
},
"status": {
"enum": [
"open",
"awarded"
],
"type": "string",
"description": "open (default) or awarded notices."
},
"currency": {
"enum": [
"PLN",
"EUR",
"USD"
],
"type": "string",
"description": "Currency for value filters and output. Default PLN."
},
"industry": {
"type": "string",
"description": "it, construction, medicine, or a 2-digit CPV division code (e.g. 72, 45, 33)."
},
"value_max": {
"type": "number",
"description": "Maximum estimated/awarded value."
},
"value_min": {
"type": "number",
"description": "Minimum estimated/awarded value."
}
},
"additionalProperties": false
}