accueil / serveurs / Dev & Code / io.github.bnovarini/cnpj-mcp
io.github.bnovarini/cnpj-mcp
serveur MCP (Model Context Protocol) · cnpj-mcp 1.30.0
Référencé dans l'annuaire. Seul le pentest comportemental fait foi, et il n'a pas encore été exécuté sur ce serveur.
Est-ce que io.github.bnovarini/cnpj-mcp est sûr ?
Au dernier audit MCP Hub, le serveur MCP « io.github.bnovarini/cnpj-mcp » est classé « Non encore testé ». Référencé dans l'annuaire. Seul le pentest comportemental fait foi, et il n'a pas encore été exécuté sur ce serveur. Le verdict est réévalué en continu ; consultez la fiche pour l'état à jour.
Méthode : MCP Hub analyse la description de chaque outil (couche 1) et, pour le verdict fort, exécute le serveur dans une micro-VM isolée avec leurres et réseau bloqué (couche 2). On publie des noms et des compteurs, jamais le contenu brut renvoyé par un outil.
Les 8 outils
- companies_at_address≈ 316 tokens
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.
Paramètres, retour & exemple (8)
Paramètresuf· ? · optionnelcep· ? · optionnellimit· integer · optionnelnumero· ? · optionneloffset· integer · optionnelsituacao· ? · optionnelmunicipio· ? · optionnellogradouro_contains· ? · optionnel
Exemple d'appel{"name": "companies_at_address", "arguments": {"uf": "texte", "cep": "texte", "limit": 1, "numero": "texte", "offset": 1, "situacao": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"result": []}} - count_companies≈ 1062 tokens
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; 3-256 characters and uf required), 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.
Paramètres, retour & exemple (26)
Paramètresuf· ? · optionnelcep· ? · optionnelmei· ? · optionnelcnae· ? · optionnelunit· string · optionnellimit· integer · optionnelorder· string · optionnelporte· ? · optionnelmetric· string · optionnelsimples· ? · optionnelgroup_by· ? · optionnelsituacao· ? · optionnelclosed_to· ? · optionnelmunicipio· ? · optionnelopened_to· ? · optionnelcnae_secao· ? · optionnelcapital_max· ? · optionnelcapital_min· ? · optionnelclosed_from· ? · optionnelmatriz_only· boolean · optionnelopened_from· ? · optionnelpartner_name· ? · optionnelname_contains· ? · optionnelmunicipio_codigo· ? · optionnelinclude_secondary· boolean · optionnelnatureza_juridica· ? · optionnel
Exemple d'appel{"name": "count_companies", "arguments": {"uf": "texte", "cep": "texte", "mei": "texte", "cnae": "texte", "unit": "texte", "limit": 1}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"result": []}} - dataset_info≈ 64 tokens
What data is loaded: source, snapshot month, row counts, field meanings and caveats. Call first if unsure what the tools cover.
Paramètres, retour & exemple (0)
Exemple d'appel{"name": "dataset_info", "arguments": {}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - get_company≈ 110 tokens
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.
Paramètres, retour & exemple (1)
Paramètrescnpj· string · requis
Exemple d'appel{"name": "get_company", "arguments": {"cnpj": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - list_partners≈ 172 tokens
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.
Paramètres, retour & exemple (1)
Paramètrescnpj· string · requis
Exemple d'appel{"name": "list_partners", "arguments": {"cnpj": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"result": []}} - lookup_codes≈ 199 tokens
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.
Paramètres, retour & exemple (3)
Paramètreskind· string · requistext· string · requislimit· integer · optionnel
Exemple d'appel{"name": "lookup_codes", "arguments": {"kind": "texte", "text": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"result": []}} - search_companies≈ 1226 tokens
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; 3-256 characters and uf required), 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). A whatsapp_business block appears only when a WhatsApp Business account was found on one of the registered phones (display name, account type, name_match score, checked_at); phones are checked in the background after a query shows them, so a result can appear on a later call, and its absence says nothing about whether the number is on WhatsApp. 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.
Paramètres, retour & exemple (26)
Paramètresuf· ? · optionnelcep· ? · optionnelmei· ? · optionnelcnae· ? · optionnellimit· integer · optionnelporte· ? · optionneloffset· integer · optionnelsimples· ? · optionnelorder_by· string · optionnelsituacao· ? · optionnelclosed_to· ? · optionnelmunicipio· ? · optionnelopened_to· ? · optionnelcnae_secao· ? · optionnelcapital_max· ? · optionnelcapital_min· ? · optionnelclosed_from· ? · optionnelmatriz_only· boolean · optionnelopened_from· ? · optionnelpartner_name· ? · optionnelname_contains· ? · optionnelinclude_contacts· boolean · optionnelmunicipio_codigo· ? · optionnelinclude_secondary· boolean · optionnelmin_contact_score· ? · optionnelnatureza_juridica· ? · optionnel
Exemple d'appel{"name": "search_companies", "arguments": {"uf": "texte", "cep": "texte", "mei": "texte", "cnae": "texte", "limit": 1, "porte": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - search_partners≈ 242 tokens
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 (uf required). 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.
Paramètres, retour & exemple (6)
Paramètresuf· ? · optionnelname· string · requislimit· integer · optionneloffset· integer · optionnelcontains· boolean · optionnelcpf_middle· ? · optionnel
Exemple d'appel{"name": "search_partners", "arguments": {"name": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]}
C'est votre serveur ?
Revendiquez-le sur l'espace créateur (preuve GitHub, domaine ou npm) pour afficher le badge « propriétaire vérifié » et lancer un pentest comportemental à la demande afin d'obtenir le badge « Vérifié ».