{"name":"io.github.bnovarini/cnpj-mcp","slug":"bnovarini-cnpj-mcp","title":"Brazil CNPJ company registry","description":"Brazil's open CNPJ registry: filter and count companies by sector, place, size, MEI, partners.","url":"https://mcp.market/server/bnovarini-cnpj-mcp","rating":null,"grade":"A","score":91,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":20,"stars":0,"forks":0,"downloads_week":null,"last_push_at":"2026-10-09T02:18:18.000Z","license":"MIT"},"uptime":{"percent":100,"checks":28,"ok":28,"last_checked_at":"2026-11-04T06:35:25.628Z","last_ok_at":"2026-11-04T06:35:25.628Z","latency_ms":83},"claimed":false,"transport":"remote","callable_via_gateway":true,"default_price_micros":0,"repository":"https://github.com/bnovarini/cnpj-mcp","website":null,"version":"0.1.0","remotes":[{"type":"streamable-http","url":"https://cnpj-mcp.fly.dev/mcp"}],"packages":[],"tools":[{"name":"companies_at_address","description":"Establishments registered at one address, by CEP (8 digits), optionally narrowed by street text, number, municipio or uf. Use it to find companies sharing an address.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"cep":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Cep"},"logradouro_contains":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Logradouro Contains"},"numero":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Numero"},"municipio":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Municipio"},"uf":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Uf"},"situacao":{"anyOf":[{"type":"string"},{"type":"null"}],"default":"ativa","title":"Situacao"},"limit":{"default":50,"title":"Limit","type":"integer"},"offset":{"default":0,"title":"Offset","type":"integer"}},"title":"companies_at_addressArguments"}},{"name":"count_companies","description":"Count companies or establishments, optionally grouped by one or two fields. Filters (all optional, combined with AND): cnae (CNAE code or prefix, e.g. '4711' or '47', list ok; add include_secondary to also match secondary activities), cnae_secao (letter A-U), uf, municipio (name as in Receita, accents ignored), municipio_codigo, situacao (ativa, baixada, suspensa, inapta, nula), matriz_only, porte (micro = ME, pequeno = EPP, demais, nao_informado), natureza_juridica (code prefix like '2062' or text like 'sociedade limitada'), capital_min/capital_max (BRL), opened_from/opened_to (data_inicio_atividade, YYYY-MM or YYYY-MM-DD), closed_from/closed_to (data da baixa), mei, simples (true/false), name_contains (razao social or nome fantasia), cep, partner_name (a partner's name contains this text). group_by options: uf, municipio, cnae_principal, cnae_divisao, cnae_secao, natureza_juridica, porte, situacao, ano_abertura, mes_abertura, ano_baixa, mes_baixa, mei, simples, matriz_filial, motivo_situacao. unit='estabelecimentos' (default) counts every CNPJ incl. filiais; unit='empresas' counts companies (matriz only). metric='sum_capital' sums declared capital social (BRL, companies only). Examples: MEIs opened per month in a state, active agro companies per municipality, closures by year.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"group_by":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"title":"Group By"},"unit":{"default":"estabelecimentos","title":"Unit","type":"string"},"metric":{"default":"count","title":"Metric","type":"string"},"cnae":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"title":"Cnae"},"cnae_secao":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Cnae Secao"},"include_secondary":{"default":false,"title":"Include Secondary","type":"boolean"},"uf":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Uf"},"municipio":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Municipio"},"municipio_codigo":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Municipio Codigo"},"situacao":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Situacao"},"matriz_only":{"default":false,"title":"Matriz Only","type":"boolean"},"porte":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Porte"},"natureza_juridica":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Natureza Juridica"},"capital_min":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"title":"Capital Min"},"capital_max":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"title":"Capital Max"},"opened_from":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Opened From"},"opened_to":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Opened To"},"closed_from":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Closed From"},"closed_to":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Closed To"},"mei":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"title":"Mei"},"simples":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"title":"Simples"},"name_contains":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Name Contains"},"cep":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Cep"},"partner_name":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Partner Name"},"order":{"default":"count_desc","title":"Order","type":"string"},"limit":{"default":25,"title":"Limit","type":"integer"}},"title":"count_companiesArguments"}},{"name":"dataset_info","description":"What data is loaded: source, snapshot month, row counts, field meanings and caveats. Call first if unsure what the tools cover.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"title":"dataset_infoArguments"}},{"name":"get_company","description":"One company by CNPJ (14 digits, with or without punctuation; or the 8-digit root to get the matriz): registration, company data, Simples/MEI, address and contacts, secondary CNAEs, partners (with names), and how many establishments the company has.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"cnpj":{"title":"Cnpj","type":"string"}},"required":["cnpj"],"title":"get_companyArguments"}},{"name":"list_partners","description":"Partners (socios) of one company by CNPJ root or full CNPJ: names, type, role (qualificacao), entry date, age band. CPFs are masked by Receita. faixa_etaria: 1 = 0-12, 2 = 13-20, 3 = 21-30, 4 = 31-40, 5 = 41-50, 6 = 51-60, 7 = 61-70, 8 = 71-80, 9 = over 80, 0 = not applicable.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"cnpj":{"title":"Cnpj","type":"string"}},"required":["cnpj"],"title":"list_partnersArguments"}},{"name":"lookup_codes","description":"Look up Receita's code tables by text or code. kind: cnae (activity), natureza_juridica (legal form), municipio, motivo (reason for status), qualificacao (partner role), pais. Use it to find the CNAE code for a sector, or the municipio name Receita uses, before filtering.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"kind":{"title":"Kind","type":"string"},"text":{"title":"Text","type":"string"},"limit":{"default":25,"title":"Limit","type":"integer"}},"required":["kind","text"],"title":"lookup_codesArguments"}},{"name":"search_companies","description":"Find companies/establishments matching filters. Filters (all optional, combined with AND): cnae (CNAE code or prefix, e.g. '4711' or '47', list ok; add include_secondary to also match secondary activities), cnae_secao (letter A-U), uf, municipio (name as in Receita, accents ignored), municipio_codigo, situacao (ativa, baixada, suspensa, inapta, nula), matriz_only, porte (micro = ME, pequeno = EPP, demais, nao_informado), natureza_juridica (code prefix like '2062' or text like 'sociedade limitada'), capital_min/capital_max (BRL), opened_from/opened_to (data_inicio_atividade, YYYY-MM or YYYY-MM-DD), closed_from/closed_to (data da baixa), mei, simples (true/false), name_contains (razao social or nome fantasia), cep, partner_name (a partner's name contains this text). Returns up to 100 rows per page, ordered by opening date (newest first) unless order_by is capital_social or razao_social. Use count_companies for 'how many' questions. Set include_contacts to add email, phones, full address and a registry_contact_quality block (0-100 score of how likely the REGISTERED email/phone from Receita is a real direct contact, with the signals behind it; it says nothing about the website) and, when the company's own website was crawled, a separate website_contacts block (WhatsApp, phones, emails, social profiles found on its public pages, each with source_url). min_contact_score keeps only companies whose REGISTERED contact (the email and phones on the Receita record, not the website) scores at or above it. Pass an integer 0-100, or a tier name: 'high' = 85, 'medium' = 50, 'low' = 0 (e.g. min_contact_score=50 or 'medium' for medium and high).  The filter is applied after the page is read, so a call scans at most 2000 candidates and returns pagination.next_offset to continue.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"cnae":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"title":"Cnae"},"cnae_secao":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Cnae Secao"},"include_secondary":{"default":false,"title":"Include Secondary","type":"boolean"},"uf":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Uf"},"municipio":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Municipio"},"municipio_codigo":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Municipio Codigo"},"situacao":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Situacao"},"matriz_only":{"default":false,"title":"Matriz Only","type":"boolean"},"porte":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Porte"},"natureza_juridica":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Natureza Juridica"},"capital_min":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"title":"Capital Min"},"capital_max":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"title":"Capital Max"},"opened_from":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Opened From"},"opened_to":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Opened To"},"closed_from":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Closed From"},"closed_to":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Closed To"},"mei":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"title":"Mei"},"simples":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"title":"Simples"},"name_contains":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Name Contains"},"cep":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Cep"},"partner_name":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Partner Name"},"order_by":{"default":"data_inicio_atividade","title":"Order By","type":"string"},"include_contacts":{"default":false,"title":"Include Contacts","type":"boolean"},"min_contact_score":{"anyOf":[{"type":"integer"},{"type":"string"},{"type":"null"}],"default":null,"title":"Min Contact Score"},"limit":{"default":25,"title":"Limit","type":"integer"},"offset":{"default":0,"title":"Offset","type":"integer"}},"title":"search_companiesArguments"}},{"name":"search_partners","description":"Find the companies a person or entity is a partner of, by name. Exact (accent-insensitive, case-insensitive) match on the partner name by default; set contains=true for a substring match. Optionally narrow with cpf_middle (the 6 digits Receita publishes, e.g. '240659') because the same name can belong to different people. Returns company name, status and role.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"name":{"title":"Name","type":"string"},"contains":{"default":false,"title":"Contains","type":"boolean"},"cpf_middle":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Cpf Middle"},"uf":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Uf"},"limit":{"default":25,"title":"Limit","type":"integer"},"offset":{"default":0,"title":"Offset","type":"integer"}},"required":["name"],"title":"search_partnersArguments"}}],"scan":{"score":91,"grade":"A","scanned_at":"2026-10-09T19:00:02.001Z","report":{"scannerVersion":"0.1.10","scannedAt":"2026-10-09T19:00:01.979Z","components":{"code":{"score":-1,"max":25,"notes":["remote-only server, no package to scan"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 555ms"]},"poisoning":{"score":15,"max":15,"notes":["8 tool descriptions checked"]},"auth":{"score":10,"max":15,"notes":["open endpoint, read-only tools"]},"maintenance":{"score":15,"max":15,"notes":["last push 1 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[],"inputs":{"probes":[{"url":"https://cnpj-mcp.fly.dev/mcp","reachable":true,"authRequired":false,"latencyMs":555,"serverInfo":{"name":"cnpj-mcp","version":"1.30.0"}}],"packages":[],"repo":{"found":true,"owner":"bnovarini","repo":"cnpj-mcp","archived":false,"pushedAt":"2026-10-09T02:18:18Z","stars":0,"forks":0,"openIssues":0,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/49925472?v=4","ownerCreatedAt":"2019-04-23T21:59:17Z","license":"MIT"},"icon":{"url":"https://avatars.githubusercontent.com/u/49925472?v=4&s=128","source":"github"},"presence":{"stars":0,"forks":0,"downloadsWeek":null,"license":"MIT","lastPushAt":"2026-10-09T02:18:18.000Z","score":20}}}},"grade_history":[],"reviews":[]}