Leadgen MCP
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 API — https://onrc-api.adrianhomelab.com
Endpoint | Description |
| Search companies by name or tax code (CUI). |
| Find companies by director / legal-representative name. |
| Interactive OpenAPI docs (Swagger UI). |
| Liveness check. |
The landing page at https://onrc-api.adrianhomelab.com/ documents the schema
with a worked example.
MCP server — https://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
File | Purpose |
| FastAPI wrapper — the read-only public REST surface (+ landing page). |
| MCP server (Streamable HTTP) with all five tools. |
| Telemetry + a dormant freemium/rate-limit scaffold. |
| Download + load the ONRC CSV snapshot into SQLite. |
| Decode CAEN / status code tables. |
| Load the 2025 financial statements. |
| MCP Registry metadata (published as |
| Smithery 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 8766Then 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
queryis 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.