
Polish company financial statements for AI agents: revenue, profit, assets, rankings, benchmarks.
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.
Count KRS companies matching given filters. Returns a single number — no company list. Does not count JDG in this tool (full CEIDG is in Compabase; listing is RODO-gated). Sparse or zero counts in JDG-dominated PKDs include a `hint`.
KRS number of the company in the Polish National Court Register (10 digits).
Polish company tax number (NIP) of the business, 10 digits.
Primary PKD code prefix, e.g. '46.90.Z' or '46'.
City name — KRS uses uppercase.
Company name, used when the KRS or NIP is not known.
Filter to companies whose latest financial_period_to falls within this calendar year. Use only for sector/ranking browse — omit when looking up a company by name, KRS, or NIP.
County / powiat (lowercase).
Voivodeship (lowercase).
Match any PKD code in the company's activity list (not just primary).
true = only companies with email on record. Omit otherwise.
true = active only, false = closed only. Omit for all.
Maximum EBITDA in PLN.
Minimum EBITDA in PLN.
Legal form fragment.
Maximum net profit in PLN.
Minimum net profit in PLN.
Maximum share capital in PLN.
Minimum share capital in PLN.
true = only companies with website on record. Omit otherwise.
Maximum total revenue in PLN.
Minimum total revenue in PLN.
Maximum total assets in PLN.
Minimum total assets in PLN.
Maximum Ohlson estimated equity value in PLN.
Minimum Ohlson estimated equity value in PLN.
Maximum operating profit in PLN.
Minimum operating profit in PLN.
Latest KRS registration date, YYYY-MM-DD (inclusive).
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.
Count KRS companies matching given filters. Returns a single number — no company list. Does not count JDG in this tool (full CEIDG is in Compabase; listing is RODO-gated). Sparse or zero counts in JDG-dominated PKDs include a `hint`.
| 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 uses uppercase. |
| 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. Use only for sector/ranking browse — omit when looking up a company by name, KRS, or NIP. |
| county | string | County / powiat (lowercase). |
| region | string | Voivodeship (lowercase). |
| all_pkd | string | Match any PKD code in the company's activity list (not just primary). |
| has_email | boolean | true = only companies with email on record. Omit otherwise. |
| is_active | boolean | true = active only, false = closed only. Omit for all. |
| ebitda_max | number | Maximum EBITDA in PLN. |
| ebitda_min | number | Minimum EBITDA in PLN. |
| legal_form | string | Legal form fragment. |
| profit_max | number | Maximum net profit in PLN. |
| profit_min | number | Minimum net profit in PLN. |
| capital_max | number | Maximum share capital in PLN. |
| capital_min | number | Minimum share capital in PLN. |
| has_website | boolean | true = only companies with website on record. Omit otherwise. |
| revenue_max | number | Maximum total revenue in PLN. |
| revenue_min | number | Minimum total revenue in PLN. |
| total_assets_max | number | Maximum total assets in PLN. |
| total_assets_min | number | Minimum total assets in PLN. |
| 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 in PLN. |
| profit_operating_min | number | Minimum operating profit in PLN. |
| 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 uses uppercase."
},
"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. Use only for sector/ranking browse — omit when looking up a company by name, KRS, or NIP."
},
"county": {
"type": "string",
"description": "County / powiat (lowercase)."
},
"region": {
"type": "string",
"description": "Voivodeship (lowercase)."
},
"all_pkd": {
"type": "string",
"description": "Match any PKD code in the company's activity list (not just primary)."
},
"has_email": {
"type": "boolean",
"description": "true = only companies with email on record. Omit otherwise."
},
"is_active": {
"type": "boolean",
"description": "true = active only, false = closed only. Omit for all."
},
"ebitda_max": {
"type": "number",
"description": "Maximum EBITDA in PLN."
},
"ebitda_min": {
"type": "number",
"description": "Minimum EBITDA in PLN."
},
"legal_form": {
"type": "string",
"description": "Legal form fragment."
},
"profit_max": {
"type": "number",
"description": "Maximum net profit in PLN."
},
"profit_min": {
"type": "number",
"description": "Minimum net profit in PLN."
},
"capital_max": {
"type": "number",
"description": "Maximum share capital in PLN."
},
"capital_min": {
"type": "number",
"description": "Minimum share capital in PLN."
},
"has_website": {
"type": "boolean",
"description": "true = only companies with website on record. Omit otherwise."
},
"revenue_max": {
"type": "number",
"description": "Maximum total revenue in PLN."
},
"revenue_min": {
"type": "number",
"description": "Minimum total revenue in PLN."
},
"total_assets_max": {
"type": "number",
"description": "Maximum total assets in PLN."
},
"total_assets_min": {
"type": "number",
"description": "Minimum total assets in PLN."
},
"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 in PLN."
},
"profit_operating_min": {
"type": "number",
"description": "Minimum operating profit in PLN."
},
"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."
}
}
}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 a company's revenue rank positions within its industry (PKD), region (voivodeship), and all of Poland. Returns rows from company_financial_rankings — one row per scope (pkd_full, pkd_division, pkd_section, region, country). Use for questions like: where does company X rank in Poland / its industry / its region?
| 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. |
| scope_type | string | Optional. Filter to a single scope. Omit to get all scopes. |
{
"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."
},
"scope_type": {
"enum": [
"pkd_full",
"pkd_division",
"pkd_section",
"region",
"country"
],
"type": "string",
"description": "Optional. Filter to a single scope. Omit to get all scopes."
}
}
}Secured liabilities from the latest financial-statement notes (period ending 2025+): mortgages (hipoteki), registered / financial pledges (zastawy), transfers of ownership, assignments — with creditor, amount, secured debt, asset and land-register (KW) numbers. Keyed by KRS; null when nothing is disclosed.
| 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 precomputed aggregate financial statistics for a sector, region, PKD branch, or country. Returns median, p25/p75/p90, winsorized mean, mean, total, n_companies, min/max. Use for questions like: what is the median revenue / average profit / assets in industry X or region Y? Prefer median or winsor_mean over mean. cost_wages is PLN-only.
| Argument | Type | Description |
|---|---|---|
| metric | string | Financial metric. Omit to return all metrics. |
| currency | string | Currency (default: PLN). cost_wages is PLN-only. |
| dimension_key | string | Key for the dimension, e.g. 'PL', 'G', '46', '46.90.Z', 'mazowieckie'. Prefix match applied. |
| dimension_type | string | Granularity: 'country'=Poland; 'pkd_section'=A–U; 'pkd_division'=2-digit; 'pkd_full'=full code; 'region'=voivodeship; etc. |
{
"type": "object",
"properties": {
"metric": {
"enum": [
"revenue_total",
"profit_net",
"total_assets",
"cost_wages"
],
"type": "string",
"description": "Financial metric. Omit to return all metrics."
},
"currency": {
"enum": [
"PLN",
"EUR",
"USD"
],
"type": "string",
"description": "Currency (default: PLN). cost_wages is PLN-only."
},
"dimension_key": {
"type": "string",
"description": "Key for the dimension, e.g. 'PL', 'G', '46', '46.90.Z', 'mazowieckie'. Prefix match applied."
},
"dimension_type": {
"enum": [
"country",
"pkd_section",
"pkd_division",
"pkd_class",
"pkd_full",
"region",
"county",
"city"
],
"type": "string",
"description": "Granularity: 'country'=Poland; 'pkd_section'=A–U; 'pkd_division'=2-digit; 'pkd_full'=full code; 'region'=voivodeship; etc."
}
}
}Get full financial statement metrics per fiscal period — all entity_financial_metrics columns. Includes cash_and_equivalents, inventories, receivables, liabilities, equity, cost breakdown, revenue lines. 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. |
| year_to | integer | Latest fiscal year to include (e.g. 2023). |
| year_from | integer | Earliest fiscal year to include (e.g. 2019). |
{
"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."
},
"year_to": {
"type": "integer",
"description": "Latest fiscal year to include (e.g. 2023)."
},
"year_from": {
"type": "integer",
"description": "Earliest fiscal year to include (e.g. 2019)."
}
}
}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. |
| 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."
}
}
}