lente-b2b
Server Details
Empresas de TI do Brasil por CNPJ ou domínio: porte, cidade, Fit e tecnologias (só dados públicos).
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 2 tools
The two tools are cleanly separated by input key and cardinality: one resolves a single company from a CNPJ, the other returns multiple companies linked to a domain/URL/e-mail. Descriptions make the boundary explicit (singular company vs. domain-based discovery of CNPJs), so misselection is unlikely.
Both names follow the same Portuguese '<resource>_por_<chave>' pattern in snake_case, which is predictable. The only nit is the singular/plural shift (empresa vs. empresas), which is semantically meaningful but requires a moment of attention.
Two tools is thin even for a lookup-only service, and the surface is essentially a single lookup primitive with two entry keys. Each tool earns its place, but the set is borderline minimal rather than well-scoped.
Lookups require either a known CNPJ or a known domain, so an agent with only a company name, city, CNAE, or size has no entry point — no search, list, or filter operation exists. Contact/decisor data is also explicitly absent, leaving notable dead ends for the apparent B2B prospecting purpose.
Available Tools
2 toolsempresa_por_cnpjARead-onlyIdempotentInspect
Dados públicos de uma empresa de TI brasileira pelo CNPJ (14 dígitos, com ou sem pontuação): razão social, porte, CNAE, cidade, Fit (0-100, prioridade de abordagem), site e tecnologias. Não traz contato nem decisor.
| Name | Required | Description | Default |
|---|---|---|---|
| cnpj | Yes | CNPJ, ex.: 54.517.628/0001-98 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and openWorldHint=false, so the description does not need to re-establish safety. It adds useful scope context by listing the returned fields and explicitly stating 'Não traz contato nem decisor', which tells the agent what data is absent and prevents over-expecting contact details. It stops short of describing error behavior for invalid or not-found CNPJs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single compact sentence is front-loaded with the lookup key, followed by the returned fields and then the negative scope. Every clause earns its place and there is no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read-only lookup with full schema coverage and annotations covering safety and idempotency, the description supplies the returned fields, input format, and the important limitation that no contact or decision-maker data is included. An agent has enough to decide to call it and interpret the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema already gives an example with punctuation. The description still adds meaning by specifying 14 digits and that punctuation is optional, clarifying accepted formats beyond the single example. That is marginal but genuinely useful parameter clarification.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource and retrieval method: public data of a Brazilian IT company by CNPJ, and enumerates the returned fields (razão social, porte, CNAE, cidade, Fit, site, tecnologias). The 'pelo CNPJ' scope clearly distinguishes it from the sibling empresas_por_dominio, which looks companies up by domain.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The CNPJ-based lookup scope implies when to use it versus the domain-based sibling, and the required '14 dígitos, com ou sem pontuação' format is explicit. It does not explicitly state exclusions or say 'use empresas_por_dominio instead when...', so it falls short of a full when/when-not statement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
empresas_por_dominioARead-onlyIdempotentInspect
Empresas de TI brasileiras ligadas a um domínio (aceita URL ou e-mail). Só vínculos de confiança alta ou média. Útil para descobrir o CNPJ de um site.
| Name | Required | Description | Default |
|---|---|---|---|
| dominio | Yes | Domínio, URL ou e-mail, ex.: linx.com.br |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, closed-world), so the bar is lower. The description adds real behavioral context beyond them: results are filtered to high/medium confidence links only, meaning the agent should expect partial or empty coverage rather than exhaustive matches.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences with the resource named first, then the input formats, then the confidence filter, then the use case — well front-loaded. The input-format parenthetical is mildly redundant with the schema, a minor waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter lookup with annotations and no output schema, the definition covers scope (IT companies only), input flexibility, confidence filtering, and the intended outcome (CNPJ discovery). Only the relationship to the CNPJ-based sibling is left unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single parameter already documents 'Domínio, URL ou e-mail, ex.: linx.com.br'. The description's parenthetical repeats that accepted-format fact rather than extending it (no normalization rules, no subdomain behavior), so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: Brazilian IT companies tied to a domain, accepting URL or email. The scope restriction ('Empresas de TI') and the stated goal of discovering a CNPJ make the direction of the lookup clear, implicitly the inverse of the sibling empresa_por_cnpj, though the sibling is never named.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Útil para descobrir o CNPJ de um site' gives a concrete use case, which is more than nothing. However, it never says when to prefer the sibling empresa_por_cnpj (the CNPJ→company direction) over this domain→CNPJ direction, so routing is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
2 tool updates
- First observed
empresa_por_cnpj - First observed
empresas_por_dominio
Related MCP Connectors
Empresas do Google Maps no Brasil com telefone, e-mail, site e CNPJ da Receita Federal.
Empresas, sócios e conexões por CNPJ. Brazilian company data, ownership and corporate networks.
Consulta oficial de empresas ativas da Receita Federal do Brasil, CNAEs, sócios e contatos B2B.
Diretório de dados de empresas brasileiras para agentes de IA.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceConsulta dados cadastrais de CNPJ (razão social, sócios, CNAE) e descobre processos judiciais da empresa e sócios no Diário de Justiça Eletrônico Nacional.1MIT

apipj MCP serverofficial
AlicenseNot gradedqualityCmaintenanceEnables lookup and validation of Brazilian companies by CNPJ, returning registration status, address, CNAE activities, Simples Nacional/MEI status, and partners from monthly Receita Federal open data, plus validation of numeric or alphanumeric CNPJ check digits and search of active companies by activity and municipality.MIT- AlicenseBqualityBmaintenanceEnables querying Brazil's official CNPJ company registry data, counting and listing establishments by municipality, state, CNAE activity, size, or status, with caveats about official dump limitations such as non-IBGE municipality codes and secondary activities.4MIT
- AlicenseNot gradedqualityAmaintenanceEnables AI agents and terminal users to search, count, detail, and export Brazilian companies by CNAE, region, and other filters using local Receita Federal CNPJ open data.1MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.