Polish Public Tenders
Server Details
Polish public procurement for AI agents: BZP and TED tenders, awards, buyers and contractors.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- ContentWriterco/Polish-Public-Tenders-MCP
- GitHub Stars
- 0
TDQS
Score is being calculated.
Available Tools
9 toolsget_companyGet Company ProfileRead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| krs | No | KRS number of the company in the Polish National Court Register (10 digits). | |
| nip | No | Polish company tax number (NIP) of the business, 10 digits. | |
| name | No | Company name, used when the KRS or NIP is not known. |
get_company_eu_fundsGet EU Funds ProjectsRead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| krs | No | KRS number of the company in the Polish National Court Register (10 digits). | |
| nip | No | Polish company tax number (NIP) of the business, 10 digits. | |
| name | No | Company name, used when the KRS or NIP is not known. |
get_company_eu_grantsGet EU Grants from the European CommissionRead-onlyIdempotentInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| krs | No | KRS number of the company in the Polish National Court Register (10 digits). | |
| nip | No | Polish company tax number (NIP) of the business, 10 digits. | |
| name | No | Company name, used when the KRS or NIP is not known. |
get_company_eu_tendersGet EU Tenders Daily (TED)Read-onlyIdempotentInspect
Get TED EU-threshold public procurement — full awards as contractor and notices as buyer. Keyed by NIP. Identify company by name, KRS, or NIP.
| Name | Required | Description | Default |
|---|---|---|---|
| krs | No | KRS number of the company in the Polish National Court Register (10 digits). | |
| nip | No | Polish company tax number (NIP) of the business, 10 digits. | |
| name | No | Company name, used when the KRS or NIP is not known. |
get_company_public_aidGet Public Aid (SUDOP)Read-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| krs | No | KRS number of the company in the Polish National Court Register (10 digits). | |
| nip | No | Polish company tax number (NIP) of the business, 10 digits. | |
| name | No | Company name, used when the KRS or NIP is not known. |
get_company_public_tendersGet Public Procurement Bulletin (BZP)Read-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| krs | No | KRS number of the company in the Polish National Court Register (10 digits). | |
| nip | No | Polish company tax number (NIP) of the business, 10 digits. | |
| name | No | Company name, used when the KRS or NIP is not known. |
get_usageGet Account Usage & QuotaARead-onlyIdempotentInspect
Get current billing period usage and remaining quota — mcp_queries, api_requests, export_companies, ask_ai_credits, watchlist_companies. Includes limits and reset date.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so safety is covered. The description adds value beyond that by spelling out the exact metrics returned plus the inclusion of limits and reset date, which is the key behavioral context for a quota tool and is especially useful given there is no output schema.
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?
One front-loaded sentence naming the resource, then an em-dash list of metrics and a short clause on limits and reset date. No filler, and the highest-value information (usage + remaining quota) comes first.
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?
With no output schema, the description carries the return-value burden and does so by listing the metric keys, limits, and reset date. What remains missing is scope (which account/workspace the usage applies to) and the relationship to get_plan, both minor for a no-arg read tool.
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?
The tool takes zero parameters, so the baseline is 4. The description cannot add parameter meaning, and none is needed; the enumeration of metrics describes the response rather than inputs, which is a reasonable substitute.
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 ('Get') and resource ('current billing period usage and remaining quota') and enumerates the five metric buckets returned. It is clear what the tool does, but it never differentiates itself from the related sibling get_plan, so an agent must infer the boundary between 'usage/quota' and 'plan'.
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 phrase 'current billing period' implies a reporting context, but there is no statement of when to call this versus get_plan, get_financials, or the key-listing tools, and no mention of prerequisites or account scope. Usage is left entirely to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_companiesSearch Polish CompaniesRead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| krs | No | KRS number of the company in the Polish National Court Register (10 digits). | |
| nip | No | Polish company tax number (NIP) of the business, 10 digits. | |
| pkd | No | Primary PKD code prefix, e.g. '46.90.Z' or '46'. | |
| city | No | City name — KRS records use uppercase, e.g. 'WARSZAWA', 'POZNAŃ'. | |
| name | No | Company name, used when the KRS or NIP is not known. | |
| year | No | 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 | No | Max results (default: 10, max: 50). | |
| county | No | County / powiat (lowercase). | |
| fields | No | 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 | No | Voivodeship (lowercase), e.g. 'mazowieckie', 'wielkopolskie'. | |
| all_pkd | No | Match any PKD code in the company's activity list (not just primary). | |
| sort_by | No | Sort field (default: revenue_total). registration_date + sort_dir=desc lists the newest registrations first. | |
| currency | No | Currency for monetary filters. Default: pln. | |
| sort_dir | No | Sort direction (default: desc). | |
| has_email | No | true = only companies with email on record. Matching rows include contacts.email. Omit otherwise. | |
| is_active | No | true = active only, false = closed only. Omit for all. | |
| ebitda_max | No | Maximum EBITDA. | |
| ebitda_min | No | Minimum EBITDA. | |
| legal_form | No | Legal form fragment, e.g. 'spółka z o.o.' or 'akcyjna'. | |
| profit_max | No | Maximum net profit. | |
| profit_min | No | Minimum net profit. | |
| capital_max | No | Maximum share capital. | |
| capital_min | No | Minimum share capital. | |
| has_website | No | true = only companies with website on record. Matching rows include contacts.website. Omit otherwise. | |
| postal_code | No | Postal code prefix, e.g. '00-9' or '61-'. | |
| revenue_max | No | Maximum total revenue. | |
| revenue_min | No | Minimum total revenue. | |
| total_assets_max | No | Maximum total assets. | |
| total_assets_min | No | Minimum total assets. | |
| estimated_value_max | No | Maximum Ohlson estimated equity value in PLN. | |
| estimated_value_min | No | Minimum Ohlson estimated equity value in PLN. | |
| profit_operating_max | No | Maximum operating profit (PLN). Omit if unused. | |
| profit_operating_min | No | Minimum operating profit (PLN). Negative allowed. Omit if unused. | |
| registration_date_max | No | Latest KRS registration date, YYYY-MM-DD (inclusive). | |
| registration_date_min | No | 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. |
search_tendersSearch Polish public tendersRead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | Buyer city, e.g. Warszawa. | |
| kind | No | Contract type. | |
| page | No | Result page (20 per page). | |
| region | No | Voivodeship of the buyer. | |
| source | No | national (BZP) or eu (TED). Default: both. | |
| status | No | open (default) or awarded notices. | |
| currency | No | Currency for value filters and output. Default PLN. | |
| industry | No | it, construction, medicine, or a 2-digit CPV division code (e.g. 72, 45, 33). | |
| value_max | No | Maximum estimated/awarded value. | |
| value_min | No | Minimum estimated/awarded value. |
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
9 tool updates
- First observed
get_company - First observed
get_company_eu_funds - First observed
get_company_eu_grants - First observed
get_company_eu_tenders - First observed
get_company_public_aid - First observed
get_company_public_tenders - First observed
get_usage - First observed
search_companies - First observed
search_tenders
Related MCP Connectors
Polish public tenders (przetargi): hybrid search, AI SWZ summaries, buyers, contractors, CPV stats.
141EU public tenders for AI agents: open tenders, award history, competitors and bid intelligence.
Government tender search for AI agents. UK, EU and US procurement opportunities.
UK public procurement data for AI agents: tenders, contracts, buyer and supplier profiles.
Related MCP Servers
- FlicenseAqualityCmaintenanceEnables searching and analyzing Polish public procurement tenders from BZP and TED, including filtering, tender details and timelines, offers and contract values, buyer/contractor profiles, CPV code lookup, and regional statistics, with optional AI-summary endpoints.121-
- AlicenseNot gradedqualityCmaintenanceFind, analyze, and score Polish public tenders (BZP): parsed requirements, deadlines, certificates, and bid-fit scoring against your company profile.6 npmMIT
- AlicenseAqualityDmaintenanceSearch 800 000+ Polish public tenders (BZP + TED) from Claude Desktop, Cursor, Continue. Provides 8 tools for tender search, buyer/contractor profiles by NIP, market statistics, plus a glossary of 90+ Polish public procurement terms.8107 npm3MIT
- AlicenseAqualityBmaintenanceExposes French and EU public procurement data (BOAMP + TED) as MCP tools for AI agents, enabling search for tenders, awards, and winner intelligence via typed filters.4226 PyPIMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.