Romanian public data: ANAF company status, financials, court cases, BNR rates, shop checks
Runs on your machine from its package; the steps are below.
Not assessed yet.
Odel charges nothing per call. The publisher may charge for its own service.
Runs locally over stdio
This server isn't hosted — your MCP client launches it from a package registry. Use one of the commands below, or drop the config into your client (e.g. Claude Desktop).
Run
uvx romania-mcp-server
MCP client config
{
"mcpServers": {
"romania": {
"command": "uvx",
"args": [
"romania-mcp-server"
]
}
}
}MCP server for Romanian public data. Lets Claude (or any MCP client) check a company at ANAF, read its financial statements, find its court cases, get BNR exchange rates, validate IBANs, and put all of it together to tell you if an online shop looks like a scam. No API keys, everything comes from official public sources.
Pe scurt: verifici o firmă după CUI (activă, radiată, inactivă fiscal, plătitoare de TVA), îi vezi bilanțurile, dosarele din instanță și cursul BNR, direct din Claude. Și îl poți întreba „e țeapă magazinul ăsta?”.
| tool | what it does | source |
|---|---|---|
shop_check | is this online shop legit? reads the CUI off the site, checks the company, its financials, insolvency cases and how old the site is, returns red flags / warnings / good signs | everything below + Wayback Machine |
company_lookup | status of up to 500 companies by CUI: name, address, Reg. Com. number, CAEN, deregistered, VAT registered, VAT on collection, split VAT, fiscally inactive, e-Factura registry. optionally as of a past date | ANAF |
company_financials | filed balance sheets year by year: revenue, profit/loss, employees, debts, equity, cash | ANAF |
court_cases | cases in every Romanian court by party name or case number: stage, parties and roles, latest outcome, next hearing, insolvency as debtor | Portal Just |
exchange_rate | BNR reference rate for any day since 2005, with conversion | BNR |
iban_check | is an IBAN well formed, which Romanian bank issued it, is it a Treasury account | offline |
Needs Python 3.10+.
pip install romania-mcp-server
or if you use uv you don't need to install anything, just point the client at uvx (see below).
Add this to claude_desktop_config.json:
{
"mcpServers": {
"romania": {
"command": "uvx",
"args": ["romania-mcp-server"]
}
}
}
If you installed with pip, "command": "romania-mcp-server" with no args works too.
claude mcp add romania -- uvx romania-mcp-server
Cursor, Windsurf etc. take the same JSON as Claude Desktop.
shop_check decidesIt's a list of signals, not a verdict from above:
It can't see reviews, delivery times or whether the products exist, so a "low" doesn't mean the shop is good, just that the company behind it checks out.
Responses are cached in sqlite at ~/.cache/romania-mcp/cache.sqlite3 so ANAF and friends don't get asked the same thing twice: company status 6h, financials 24h, court cases 3h, current exchange rates 1h, past years' rates 30 days.
ROMANIA_MCP_CACHE=off # disable
ROMANIA_MCP_CACHE_PATH=/tmp/x.db
.ro domains have no public RDAP and ROTLD's whois terms forbid automated queries, so for .ro shops the site age comes from the Wayback Machine only.iban_check knows the main Romanian banks. A valid IBAN doesn't prove who owns the account.git clone https://github.com/robyroro/romania-mcp
cd romania-mcp
pip install -e . pytest
pytest
Tests don't hit the network, HTTP calls are mocked.
To poke at it with the MCP inspector:
npx @modelcontextprotocol/inspector romania-mcp
All of this is public data, but court records name real people. Use it to vet companies you do business with, not to dig into individuals.
MIT © Robert Vind-Gardoș (@robyroro)