Leadgen ONRC Romania
Measured conclusion: Alive, not deep-tested. L2 outcome: not_attempted.
Romanian company data for agents: 4.2M ONRC firms, ANAF status, financials 2008–2025. Free key.
| Author | com.adrianhomelab |
|---|---|
| Access | remote |
| Publisher key required | No |
| Measured state | Alive, not deep-tested |
| L1 liveness | alive |
| L1 latency | 473 ms |
| Last measured | 2026-10-26 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"Leadgen ONRC Romania": {
"url": "https://leadgen-mcp.adrianhomelab.com/mcp?src=mcp-registry",
"transport": "streamable-http"
}
}
}
Measured tools (17)
lookup_businessread-onlyLook up a Romanian company by name or CUI (tax code) in the official ONRC registry of 4.2M firms. Diacritic-insensitive ('paval' finds 'PAVAL'); a CUI matches exactly. The first call for a named Romanian company. Ranked with a score: live firms first (exact name, then words), closed ones after; county lifts. For 'firms that do X in Y', use lookup_by_category (an empty result may carry a hint naming it).
Parameters:
query(required) — string — Company name or CUI (tax ID) to search for. Names are diacritic-insensitive ('paval' finds PAVĂL); a CUI ('2816464', 'RO2816464') matches exactly.county— Optional county hint (diacritic-insensitive): firms registered there rank higher. Not a filter.fields— Optional: keep only these company fields in each row, comma-separated (companyName,cui,county,risk; dotted paths such as risk.level work). Without it the full record is returned.compact— boolean — Optional: true keeps a short preset per row (name, CUI, county, city, legal form, risk level and what it did not check, phone, website, latest revenue and headcount, record url).max_results— integer — Maximum number of companies to return (1-100, default 10).
Hints: read-only yes · destructive no · idempotent yes · open-world no
lookup_companiesread-onlyLook up many Romanian companies by CUI in one call (up to 100): one result per input, in input order, each with found true/false and the company record. Each row is one lookup; rows past today's allowance come back not_processed (partial: true, remaining: rows to resend after the reset). fields or compact trims each record.
Parameters:
cuis(required) — Up to 100 CUIs, as a list or one comma-separated string ('RO', spaces and leading zeros accepted, as in lookup_business).fields— Optional: keep only these company fields in each row, comma-separated (companyName,cui,county,risk; dotted paths such as risk.level work). Without it the full record is returned.compact— boolean — Optional: true keeps a short preset per row (name, CUI, county, city, legal form, risk level and what it did not check, phone, website, latest revenue and headcount, record url).
Hints: read-only yes · destructive no · idempotent yes · open-world no
find_company_by_domainread-onlyFind the Romanian firm behind a website domain (dedeman.ro). Uses the registry's website field, else reads the site's home and legal/contact pages for the CUI or registration number it shows (matchedOn: registry_website, site_cui). Without one, it says so and offers name candidates from the page title or the domain name, each with a confidence (at most 0.7, never a match). One lookup.
Parameters:
domain(required) — string — The website's domain ('dedeman.ro'); a URL or a www. host is reduced to it. Public domains only.fields— Optional: keep only these company fields in each row, comma-separated (companyName,cui,county,risk; dotted paths such as risk.level work). Without it the full record is returned.compact— boolean — Optional: true keeps a short preset per row (name, CUI, county, city, legal form, risk level and what it did not check, phone, website, latest revenue and headcount, record url).
Hints: read-only yes · destructive no · idempotent yes · open-world yes
match_companiesread-onlyMatch a list of up to 500 records (name, optional county, domain or CUI) to Romanian firms: each row gets match {cui, companyName, confidence, matchedOn} and the record, or no_match with up to 3 candidates. A valid CUI wins (confidence 1.0). Each row is one lookup; rows past today's allowance come back not_processed (partial: true, remaining: rows to resend after the reset).
Parameters:
rows(required) — array — Up to 500 records, each {name, county, domain, cui, ref} (any of them; ref is your own id, echoed back), or a bare string (a CUI, a domain or a name).fields— Optional: keep only these company fields in each row, comma-separated (companyName,cui,county,risk; dotted paths such as risk.level work). Without it the full record is returned.compact— boolean — Optional: true keeps a short preset per row (name, CUI, county, city, legal form, risk level and what it did not check, phone, website, latest revenue and headcount, record url).
Hints: read-only yes · destructive no · idempotent yes · open-world no
lookup_by_categoryread-onlyFind companies by what they do, not by name: a curated topic ('software', 'retail'), plain words ('dentists', a CAEN class title; see matched) or CAEN codes ('4321,4322'; 6201 also finds Rev.3 6210). Narrow by county; qualify by revenue, headcount, VAT, main activity. active_only (default) drops dead and ANAF-inactive firms.
Parameters:
topic(required) — string — What the firms do: a curated topic ('software', 'retail'), plain words for a trade ('dentists', 'stomatologie'), a CAEN class title in Romanian or English, or CAEN codes ('6201' or '4321,4322'). Case-, space- and diacritic-insensitive. A number that names another activity in each revision takes a suffix: '4781r3' (Rev.3) or '4781r2' (Rev.2).sort— string — Order of the results: 'newest' registrations first (default), 'revenue' (latest filing's turnover, biggest first) or 'employees' (headcount, biggest first); firms without a filing come last.county— Optional county to narrow to (diacritic-insensitive: 'bucuresti', 'cluj'; a county town such as 'Cluj-Napoca' or a Bucharest sector is read as its county); omit for nationwide. An unknown county is an error (unknown_county) with suggestions, not 0 firms.fields— Optional: keep only these company fields in each row, comma-separated (companyName,cui,county,risk; dotted paths such as risk.level work). Without it the full record is returned.compact— boolean — Optional: true keeps a short preset per row (name, CUI, county, city, legal form, risk level and what it did not check, phone, website, latest revenue and headcount, record url).vat_payer— Optional: true keeps VAT-registered firms only, false only non-VAT payers (ANAF data). Omit for both.legal_form— Optional legal form(s) to keep, comma-separated, case-insensitive: 'SRL', 'SA', 'PFA', 'II', or 'SRL,SA' (companies, no sole traders). Default: any form.active_only— boolean — Default true: drop firms that are not a lead (struck off, dissolving, in liquidation, insolvent or bankrupt, activity suspended, or ANAF fiscally inactive). false returns every firm.has_website— boolean — true keeps only firms with a website on file in the registry (default false).max_results— integer — Maximum number of companies to return (1-100, default 10).max_revenue— Optional maximum net turnover in RON on the latest filing.min_revenue— Optional minimum net turnover in RON on the latest filing (FY2025, else FY2024). Firms without a filing never match a band.max_employees— Optional maximum average headcount on the latest filing.min_employees— Optional minimum average headcount on the latest filing.main_activity_only— boolean — Default false: a firm matches when the code is ANY of its authorised activities (ONRC lists a dozen per firm, most never practised). true keeps only firms whose DECLARED main activity is one of the codes (ANAF main CAEN, else the CAEN on the latest filing): fewer, more relevant firms. The Leadgen app's lists use true by default.
Hints: read-only yes · destructive no · idempotent yes · open-world no
lookup_directorread-onlyFind Romanian companies by the name of a director or legal representative (ONRC). Diacritic-insensitive. Whole words: 'pop maria' finds POP MARIA, not POPA MARIANA; prefix=true matches prefixes. The registry has no personal ID, so one name can be several people: homonyms and byCounty say so. Use this when you know a person rather than a firm.
Parameters:
name(required) — string — Director / representative name to search for (e.g. 'Ion Popescu'); diacritic-insensitive, each word a whole word of the name.fields— Optional: keep only these company fields in each row, comma-separated (companyName,cui,county,risk; dotted paths such as risk.level work). Without it the full record is returned.prefix— boolean — true matches each word as a prefix ('pop' also finds POPA, POPESCU); default false (whole words).compact— boolean — Optional: true keeps a short preset per row (name, CUI, county, city, legal form, risk level and what it did not check, phone, website, latest revenue and headcount, record url).max_results— integer — Maximum number of companies to return (1-100, default 10).
Hints: read-only yes · destructive no · idempotent yes · open-world no
extract_contactsread-onlyCrawl a company website and extract emails, phone numbers and social profiles. Accepts a bare domain or a full URL; max_pages (1-20, default 5) bounds the crawl.
Parameters:
website(required) — string — The website to crawl: a bare domain ('example.com') or a full URL ('https://example.com').max_pages— integer — Maximum number of pages to crawl (1-20, default 5).
Hints: read-only yes · destructive no · idempotent yes · open-world yes
enrich_companyread-onlyA whole-firm profile in one call: the ONRC registry record plus the contacts discovered on that firm's website, each labelled with a confidence and a source. Prefer this over lookup_business followed by extract_contacts when you want everything about one company. cui is its tax code; website overrides the registered one; max_pages bounds the crawl; refresh=true crawls now instead of answering from the cache.
Parameters:
cui(required) — string — Romanian tax identification number (CUI), e.g. '2816464'; 'RO' and leading zeros are accepted.refresh— boolean — true crawls now even if a cached result exists (default false: answer from the cache when there is one).website— Optional website override (domain or URL). When omitted, the firm's registered website is used (an error if none is on file).max_pages— integer — Maximum number of pages to crawl (1-20, default 5).
Hints: read-only yes · destructive no · idempotent yes · open-world yes
lookup_domainread-onlyWHOIS plus DNS records (A, MX, NS, TXT) and an SPF/DMARC email-security audit for a domain. Use it to profile a company's web estate or check its email posture. include_dns and include_security toggle the two halves.
Parameters:
domain(required) — string — Domain name to look up (e.g. 'example.com'); a URL is reduced to its host.include_dns— boolean — Include DNS records (A, AAAA, MX, NS, TXT, SOA); default true.include_security— boolean — Include the SPF/DMARC email-security check; default true.
Hints: read-only yes · destructive no · idempotent yes · open-world yes
lookup_financialsread-onlyAnnual financial statements for a Romanian company from Ministry of Finance filings, every fiscal year on record since 2008: revenue, profit, headcount and balance-sheet lines in RON with each year's ratios (growth, margins, equity ratio, liquidity), plus a summary (3/5/10-year CAGR, loss years, health score). Resolve the firm with lookup_business first if you only have a name.
Parameters:
cui(required) — string — Romanian tax identification number (CUI), e.g. '2816464'; 'RO' and leading zeros are accepted.
Hints: read-only yes · destructive no · idempotent yes · open-world no
lookup_financial_ratiosread-onlyFinancial analysis of a Romanian company: multi-year revenue trend (YoY, 3/5/10-year CAGR), margins, headcount, solvency and liquidity ratios, a 0–100 health score with its rule-by-rule breakdown, red flags, and peer percentiles within the same CAEN activity and county. Verdict: 'growing', 'stable' or 'distressed'. Use lookup_financials for the raw figures.
Parameters:
cui(required) — string — Romanian tax identification number (CUI), e.g. '2816464'; 'RO' and leading zeros are accepted.
Hints: read-only yes · destructive no · idempotent yes · open-world no
watch_companyRegister a company (by CUI) to monitor. Stores a fingerprint of its current registry record as the baseline; poll_watchlist then reports changes between monthly ONRC snapshots - a new director, a new CAEN activity, an address or status change - and when ANAF declares it fiscally inactive or its VAT status flips.
Parameters:
cui(required) — string — Romanian tax identification number (CUI) of the firm to watch, e.g. '2816464'. Watching a firm you already watch changes nothing.
Hints: read-only no · destructive no · idempotent yes · open-world no
watch_caenWatch a CAEN activity code, optionally scoped to one county, for newly registered firms. A registration-date cutoff is the baseline: only firms registered after it are reported, and poll_watchlist slides the cutoff forward so each new firm surfaces once. A retired CAEN Rev.2 code (6201) also watches its Rev.3 successor (6210), with a warning.
Parameters:
code(required) — string — CAEN activity code to watch (e.g. '6210'); a retired Rev.2 code also watches its Rev.3 successor.county— Optional county name to scope the watch to (diacritic-insensitive); omit to watch nationwide.
Hints: read-only no · destructive no · idempotent yes · open-world no
poll_watchlistCollect everything the watch tools have found: call it to drain the changeset for every watch owned by your API key, most severe first. Company watches return an 'updated' entry with the changed fields and risk; CAEN and county watches return the 'new' firms registered since the last poll (200 a poll, the rest next).
Hints: read-only no · destructive no · idempotent no · open-world no
unwatchdestructiveStop watching a company (cui) or a CAEN activity code (code, plus the county it was watched in, if any), on your API key: the watch and its baseline are removed. Unwatching something you do not watch changes nothing (removed: 0). poll_watchlist lists your active watches.
Parameters:
cui— CUI of a watched firm (e.g. '2816464'); give this or code.code— A watched CAEN activity code (e.g. '6210'); give this or cui.county— With code: the county the code was watched in (diacritic-insensitive); omit for a nationwide watch.
Hints: read-only no · destructive yes · idempotent yes · open-world no
get_usageread-onlyShow your own allowance: plan, daily limit, lookups used today, how many remain, when it resets (00:00 UTC) and any credit balance. Free and never counted as a lookup. Limits: 30 anonymous MCP calls a day, 50 with a free API key from https://leadgen.adrianhomelab.com/start (an email address, no payment).
Hints: read-only yes · destructive no · idempotent yes · open-world no
report_issueReport to the person who runs Leadgen what is missing or wrong: a missing field, firm or source (kind 'gap'), a wrong company record ('wrong_record', pass its cui), a bug, an idea. Free, never counted as a lookup. contact is optional (an address for a reply); nothing is mailed to it automatically. Registry records are corrected at the source (ONRC) and arrive with the next snapshot.
Parameters:
message(required) — string — The report, in plain words: what is missing or wrong.cui— Optional CUI of the firm the report is about (for 'wrong_record').kind— string — One of 'gap' (a missing field, firm or source; the default), 'wrong_record' (pass its cui), 'bug', 'idea', 'other'.contact— Optional email address for a reply; nothing is mailed to it automatically.
Hints: read-only no · destructive no · idempotent no · open-world no
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.