Leadgen MCP

루마니아 비즈니스 레지스트리 조회(공식 ONRC 데이터), 임원 검색, 웹사이트 연락처 추출, AI 에이전트용 WHOIS/DNS/SPF-DMARC 도메인 감사 기능을 제공합니다.

문서

Leadgen — Romanian ONRC Business Registry (API + MCP)

Free, read-only access to Romania's official business registry (ONRC): every registered company, its CAEN activities, legal representatives, status, and 2025 financial statements — built from the state's own open-data dump and exposed over a tiny HTTP API and an MCP server.

  • 4,196,860 companies
  • 19.3M CAEN activity records
  • 3.68M legal representatives
  • 4.64M status entries
  • 2025 financial statements loaded

Live endpoints (free, no auth)

REST APIhttps://onrc-api.adrianhomelab.com

EndpointDescription
GET /lookup_business?query=<name|CUI>&max_results=NSearch companies by name or tax code (CUI).
GET /lookup_director?name=<name>&max_results=NFind companies by director / legal-representative name.
GET /docsInteractive OpenAPI docs (Swagger UI).
GET /healthLiveness check.

The landing page at https://onrc-api.adrianhomelab.com/ documents the schema with a worked example.

MCP serverhttps://hermes.adrianhomelab.com/mcp (Streamable HTTP). Point any MCP client at that URL. Tools: lookup_business, lookup_director, lookup_financials, extract_contacts, lookup_domain.

Try it

# search by company name
curl "https://onrc-api.adrianhomelab.com/lookup_business?query=DEDEMAN&max_results=3"

# search by CUI (tax code)
curl "https://onrc-api.adrianhomelab.com/lookup_business?query=2816464"

# find companies by director name
curl "https://onrc-api.adrianhomelab.com/lookup_director?name=popescu"
{
  "query": "DEDEMAN",
  "total": 2,
  "results": [
    {
      "companyName": "DEDEMAN SRL",
      "cui": "2816464",
      "registrationCode": "J1992002621040",
      "legalForm": "SRL",
      "county": "Bacău",
      "website": "www.dedeman.ro",
      "caenActivities": [ { "code": "0125", "activity": "…" } ],
      "directors": [ "PAVĂL I. DRAGOŞ", "PAVĂL ADRIAN" ],
      "status": [ { "code": "1048", "name": "funcțiune" } ]
    }
  ]
}

Where the data comes from

The registry is built from the official ONRC snapshot published on data.gov.ro — no scraping, no third-party vendor. The loaders stream the CKAN CSVs into SQLite and build an FTS5 full-text index with diacritic-insensitive folding, so popescu matches Popéscu and PAVĂL matches paval.

Repository layout

FilePurpose
api.pyFastAPI wrapper — the read-only public REST surface (+ landing page).
server.pyMCP server (Streamable HTTP) with all five tools.
monetization.pyTelemetry + a dormant freemium/rate-limit scaffold.
load_onrc.pyDownload + load the ONRC CSV snapshot into SQLite.
load_nomenclatoare.pyDecode CAEN / status code tables.
load_financiare.pyLoad the 2025 financial statements.
server.jsonMCP Registry metadata (published as io.github.darksider4all/leadgen-mcp).
smithery.yamlSmithery deployment config.

Run locally

python -m venv venv
venv/bin/pip install -r requirements.txt

# load the data (downloads the official snapshots — several GB)
venv/bin/python load_onrc.py --data-dir ./data --db ./data/onrc.db

# start the REST API
ONRC_DB=./data/onrc.db venv/bin/python api.py

# start the MCP server
ONRC_DB=./data/onrc.db venv/bin/python server.py --transport streamable-http --port 8766

Then hit http://127.0.0.1:8767/docs.

Notes on the data

  • Diacritic-insensitive search — Romanian ă â î ș ț are folded to their ASCII forms on both the index and the query.
  • CUI vs registration code — a numeric query is matched against the CUI (tax code) first, then the registration code.
  • Read-only — the public surface only exposes lookups; there are no write paths.

License

MIT — see LICENSE.