Romania MCP

Dados públicos romenos: verificações de empresas ANAF por CUI, demonstrações financeiras, casos judiciais, taxas BNR e verificações IBAN. Sem chaves de API.

Documentação

romania-mcp

tests PyPI

Servidor MCP para dados públicos romenos. Permite que o Claude (ou qualquer cliente MCP) consulte uma empresa na ANAF, leia suas demonstrações financeiras, encontre seus processos judiciais, obtenha as taxas de câmbio do BNR, valide IBANs e junte tudo isso para dizer se uma loja online parece golpe. Sem chaves de API, tudo vem de fontes públicas oficiais.

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?”.

Ferramentas

ferramentao que fazfonte
shop_checkesta loja online é legítima? lê o CUI do site, verifica a empresa, suas finanças, casos de insolvência e a idade do site, retorna bandeiras vermelhas / avisos / bons sinaistudo abaixo + Wayback Machine
company_lookupsituação de até 500 empresas por CUI: nome, endereço, número Reg. Com., CAEN, cancelada, registrada para IVA, IVA na cobrança, IVA dividido, fiscalmente inativa, registro e-Factura. opcionalmente em uma data passadaANAF
company_financialsbalanços apresentados ano a ano: receita, lucro/prejuízo, funcionários, dívidas, patrimônio líquido, caixaANAF
court_casesprocessos em todos os tribunais romenos por nome da parte ou número do caso: fase, partes e papéis, resultado mais recente, próxima audiência, insolvência como devedorPortal Just
exchange_ratetaxa de referência do BNR para qualquer dia desde 2005, com conversãoBNR
iban_checkum IBAN é bem formado, qual banco romeno o emitiu, é uma conta do Tesourooffline

Instalação

Requer Python 3.10+.

pip install romania-mcp-server

ou se você usa uv, não precisa instalar nada, basta apontar o cliente para uvx (veja abaixo).

Claude Desktop

Adicione isto a claude_desktop_config.json:

{
  "mcpServers": {
    "romania": {
      "command": "uvx",
      "args": ["romania-mcp-server"]
    }
  }
}

Se você instalou com pip, "command": "romania-mcp-server" sem argumentos também funciona.

Claude Code

claude mcp add romania -- uvx romania-mcp-server

Cursor, Windsurf etc. aceitam o mesmo JSON do Claude Desktop.

Exemplos de prompts

  • "e țeapă magazinul ăsta? https://..."
  • "aqui estão os CUIs dos meus 40 fornecedores, quais estão fiscalmente inativos ou cancelados?"
  • "o RO18547290 era registrado para IVA em 15.03.2016?"
  • "como foi o desempenho de 14399840 nos últimos 5 anos? receita, lucro, funcionários"
  • "a Foo Trade SRL tem algum caso de insolvência? quando é a próxima audiência?"
  • "cât fac 2.450 EUR în lei la cursul BNR din 14 martie 2025?"
  • "este IBAN está correto? RO49 AAAA 1B31 0075 9384 0000"

Como o shop_check decide

É uma lista de sinais, não um veredito divino:

  • bandeiras vermelhas (risco = alto): nenhum CUI em qualquer lugar do site, CUI desconhecido pela ANAF, empresa cancelada ou fiscalmente inativa, empresa é a devedora em um caso de insolvência
  • avisos (dois ou mais = médio): empresa ou site mais novos que alguns meses, nunca arquivado pela Wayback Machine, sem demonstrações financeiras, receita ou funcionários zerados, patrimônio líquido negativo, sem link da ANPC, o nome da empresa que a ANAF retorna nunca aparece no site (lojas de golpe às vezes copiam o CUI de uma empresa real)
  • bons sinais: empresa e site existem há anos, receita e funcionários reais, links da ANPC presentes

Não consegue ver avaliações, prazos de entrega ou se os produtos existem, então um "baixo" não significa que a loja é boa, apenas que a empresa por trás dela é verificada.

Cache

As respostas são armazenadas em cache em sqlite em ~/.cache/romania-mcp/cache.sqlite3 para que a ANAF e outros não sejam consultados duas vezes pela mesma coisa: situação da empresa 6h, finanças 24h, processos judiciais 3h, taxas de câmbio atuais 1h, taxas de anos anteriores 30 dias.

ROMANIA_MCP_CACHE=off           # disable
ROMANIA_MCP_CACHE_PATH=/tmp/x.db

Notas

  • A ANAF só pesquisa por CUI, não por nome da empresa. Pesquisa por nome exigiria o conjunto de dados da ONRC, talvez depois.
  • A ANAF pede no máximo uma requisição por segundo. O servidor espaça as requisições, então 500 CUIs levam cerca de 5 segundos e 5 anos de finanças cerca de 5.
  • As demonstrações financeiras de um ano são apresentadas até meados do ano seguinte, e algumas empresas só têm dados a partir de cerca de 2020.
  • A API do Portal Just só responde por http simples (o https deles está quebrado) e limita uma pesquisa a 1000 casos.
  • Os domínios .ro não têm RDAP público e os termos de whois da ROTLD proíbem consultas automatizadas, então para lojas .ro a idade do site vem apenas da Wayback Machine.
  • iban_check conhece os principais bancos romenos. Um IBAN válido não prova quem é o dono da conta.

Desenvolvimento

git clone https://github.com/robyroro/romania-mcp
cd romania-mcp
pip install -e . pytest
pytest

Os testes não acessam a rede, as chamadas HTTP são simuladas.

Para testar com o inspetor MCP:

npx @modelcontextprotocol/inspector romania-mcp

Seja razoável

Tudo isso são dados públicos, mas registros judiciais citam pessoas reais. Use para verificar empresas com as quais você faz negócios, não para investigar indivíduos.

Licença

MIT © Robert Vind-Gardoș (@robyroro)