massa
Server Details
Massa de teste brasileira válida: CPF, CNPJ, cartão, conta e mais, em CSV, JSON, SQL ou Excel.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 5 tools
Validar_documento, listar_tipos, and importar_ddl each target clearly distinct actions (validation, discovery, conversion). The main overlap is between gerar (schema-based bulk generation) and gerar_documento (single document type generation), which could be confused since both produce data and gerar can also emit cpf/cnpj fields.
All tools use snake_case with Portuguese verb forms (gerar, gerar_documento, importar_ddl, listar_tipos, validar_documento), giving a predictable verb_noun shape. The bare verb 'gerar' without a noun is a minor deviation from the otherwise consistent pattern.
Five tools is well-scoped: generation, single-document generation, DDL import, type listing, and validation. Each covers a distinct facet of the test-data workflow with no filler.
The surface covers the full workflow of the domain: discover types, build a schema (manually or via DDL import), generate data, generate individual documents, and validate numbers. Minor gaps exist (e.g., no schema validation tool or direct schema authoring helper), but agents can work around them.
Available Tools
5 toolsgerarGerar massa de testeARead-onlyInspect
Gera massa de teste a partir de um schema JSON do massa e devolve o arquivo como texto (csv, json ou script sql). Até 100 linhas por chamada; acima disso nada é gerado e a resposta traz o schema e um curl para a API (/api/generate), que gera o volume todo. Com formato xlsx (Excel), devolve um link que baixa o arquivo, sem o teto de linhas: mostre o link ao usuário exatamente como veio. Sem seed no schema, uma é sorteada e devolvida: com a mesma seed e o mesmo schema, o resultado é idêntico. Schema inválido volta como erro com as mensagens campo a campo.
| Name | Required | Description | Default |
|---|---|---|---|
| schema | Yes | o schema JSON do massa, como objeto | |
| tabela | No | nome da tabela dos INSERT, só com formato sql (aceita esquema.tabela; padrão massa) | |
| dialeto | No | banco do script, só com formato sql: mysql, oracle ou sqlserver. Vazio é SQL padrão (Postgres) | |
| formato | No | csv (padrão), json, sql ou xlsx (Excel: volta um link para baixar o arquivo, que não entra no contexto) |
Output Schema
| Name | Required | Description |
|---|---|---|
| curl | No | comando que gera o volume todo pela API, só acima do teto |
| link | No | só xlsx: endereço que baixa o arquivo Excel; mostre-o ao usuário sem alterar nada |
| seed | Yes | seed usada; repita-a para obter o mesmo resultado |
| teto | No | |
| aviso | No | |
| linhas | Yes | linhas pedidas no schema |
| schema | No | o schema com a seed fixada, só acima do teto |
| formato | Yes | |
| conteudo | No | o arquivo gerado, como texto |
| acima_do_teto | No | true quando as linhas passam do teto por chamada e nada foi gerado |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint/openWorldHint; the description adds the real behavioral payload: the 100-row hard stop and what the response contains when it trips, the xlsx download-link special case with a handling instruction, seed determinism guarantees, and the field-by-field error shape for invalid schemas. This is information no annotation or schema conveys.
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?
Purpose is front-loaded and every sentence carries a distinct rule (row cap, fallback, xlsx link, seed, errors) with no filler. The single dense paragraph is somewhat heavy, but nothing is redundant.
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 4-parameter tool with nested schema and an output schema present, the description covers everything an agent needs to call it correctly: size limits, format-specific return behavior, seed semantics, and error handling. Return-value detail is legitimately delegated to the output schema.
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%, so the baseline is 3, but the description adds meaning beyond the schema: it explains why seed matters (identical output with the same seed and schema; a random one is drawn and returned when absent) and ties the row ceiling to the rows parameter. It adds real semantic value without documenting every field.
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?
Opens with a specific verb and resource ('Gera massa de teste a partir de um schema JSON do massa') and immediately states the output forms (csv, json, sql, xlsx link). An agent can distinguish this from importar_ddl or validar_documento without opening any schema.
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?
Gives concrete operating conditions: up to 100 rows per call, nothing is generated above that and the response falls back to the /api/generate curl path, and xlsx bypasses the row ceiling. It does not name sibling tools (listar_tipos only appears inside the schema), so it stops just short of explicit alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gerar_documentoGerar documento avulsoARead-onlyInspect
Gera de 1 a 100 documentos válidos de um tipo: cpf, cnpj, cartao (número, validade e CVV), conta (banco, agência e conta com DV) ou senha. Os dígitos verificadores são calculados, não inventados. Cada tipo aceita só as suas opções (uf no cpf, alfanumerico no cnpj, bandeira no cartao, banco na conta, as regras de tamanho e caracteres na senha); opção que não vale para o tipo é erro. Devolve também a seed usada.
| Name | Required | Description | Default |
|---|---|---|---|
| uf | No | só cpf: sigla do estado de emissão (define o 9º dígito); vazio sorteia | |
| seed | No | semente do sorteio; omitida, o servidor sorteia uma e a devolve | |
| tipo | Yes | cpf, cnpj, cartao, conta ou senha | |
| banco | No | só conta: código do banco (001, 033, 041, 104, 237, 341); vazio sorteia | |
| mascara | No | com pontuação: cpf, cnpj, cartao (espaços) e conta (hífen no DV). Não vale para senha | |
| bandeira | No | só cartao: visa, mastercard, elo, amex, hipercard ou diners; vazio sorteia | |
| especiais | No | só senha: caracteres especiais aceitos (padrão !@#$%&*-_+=?) | |
| quantidade | No | quantos gerar, de 1 a 100 (padrão 1) | |
| min_numeros | No | só senha: mínimo de números; 0 não usa o tipo (padrão 1) | |
| tamanho_max | No | só senha: tamanho máximo, até 128 (padrão 16) | |
| tamanho_min | No | só senha: tamanho mínimo (padrão 12) | |
| alfanumerico | No | só cnpj: formato alfanumérico novo (IN RFB 2.229/2024) | |
| min_especiais | No | só senha: mínimo de especiais; 0 não usa o tipo (padrão 1) | |
| min_maiusculas | No | só senha: mínimo de maiúsculas; 0 não usa o tipo (padrão 1) | |
| min_minusculas | No | só senha: mínimo de minúsculas; 0 não usa o tipo (padrão 1) |
Output Schema
| Name | Required | Description |
|---|---|---|
| seed | Yes | seed usada; repita-a para obter os mesmos documentos |
| tipo | Yes | |
| itens | Yes | |
| quantidade | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, openWorldHint=false and idempotentHint=false; the description goes beyond them by explaining the randomness/seed contract ('omitida, o servidor sorteia uma e a devolve') and the error semantics for type-inapplicable options. That is real behavioral context, though it does not discuss volume/rate considerations or what a partial failure across 'quantidade' documents looks like.
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 tight sentences, front-loaded with the action and count range, then the type list, then the constraint/error rule and the seed return. Every sentence carries new information and nothing is padded.
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?
With an output schema present, return values need not be enumerated, and the description still adds the non-obvious seed-return fact. For a 15-parameter tool with full schema coverage and clear annotations, the type/option interaction and error behavior are the only real gaps an agent would face, and both are covered.
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 already 100%, so the baseline is 3. The description adds value by summarizing the cross-parameter constraint matrix (uf only for cpf, alfanumerico only for cnpj, bandeira only for cartao, banco only for conta, size/character rules only for senha) and by declaring that a mismatched option is an error rather than being ignored.
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 precise verb+resource+scope: generates 1 to 100 valid documents of one of five enumerated types (cpf, cnpj, cartao, conta, senha), and adds a differentiating guarantee that check digits are computed rather than fabricated. It never names a sibling, so an agent gets no help distinguishing it from the 'gerar' or 'validar_documento' tools from the text alone.
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?
Usage guidance is implied through the per-type option matrix ('cada tipo aceita só as suas opções') and the explicit error rule for mismatched options, which tells an agent how to combine parameters. However, there is no statement of when to choose this tool over the sibling 'gerar' or 'validar_documento', and no prerequisites are described.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
importar_ddlImportar CREATE TABLEARead-onlyInspect
Converte um CREATE TABLE (Postgres, MySQL, Oracle ou SQL Server) num schema do massa: o tipo de cada coluna sai do nome (nr_cpf vira cpf), do CHECK ou do tipo SQL. Devolve o schema, o nome da tabela, o dialeto e avisos de colunas a revisar. Passe o schema a gerar (com tabela e dialeto) para obter os INSERT.
| Name | Required | Description | Default |
|---|---|---|---|
| ddl | Yes | texto do CREATE TABLE (a primeira tabela é importada) |
Output Schema
| Name | Required | Description |
|---|---|---|
| avisos | Yes | colunas a revisar; bloqueia indica coluna que o banco recusaria |
| schema | Yes | o schema do massa, com 100 linhas; ajuste rows e passe a gerar |
| tabela | Yes | |
| dialeto | No | mysql, oracle ou sqlserver, conforme o DDL; vazio é SQL padrão. Passe-o a gerar |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=false and idempotentHint=false, so the safety profile is covered. The description adds real behavioral context beyond that: type inference is heuristic (from the column name, CHECK constraint, or SQL type) and it emits warnings for columns needing review, which tells the agent results may be imperfect and need validation.
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 dense sentences that lead with the conversion and end with the next-step instruction; every sentence carries information. It is slightly packed with inference detail mid-sentence, but nothing is wasted or redundant.
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?
An output schema exists, so return values need not be spelled out, and the description still gives the useful shape (schema, table name, dialect, warnings). Together with the annotations and full parameter coverage, an agent has enough to invoke it correctly, with only minor gaps around limits (e.g. only-first-table handling is in the schema, not the description).
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?
There is a single parameter with 100% schema description coverage, so the schema already documents it, including 'a primeira tabela é importada'. The description's only added value is implying the dialect is auto-detected rather than supplied as a parameter, which is marginal over the structured fields.
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 precise verb+resource (imports/converts a CREATE TABLE into a 'massa' schema) and enumerates the supported dialects (Postgres, MySQL, Oracle, SQL Server). It also explains how column types are derived, which separates it from the sibling generation tools that consume the resulting schema.
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?
It gives a clear workflow condition: pass the resulting schema to 'gerar' (with table and dialect) to obtain INSERTs, implying this tool is the first step and 'gerar' the second. It lacks an explicit when-not or a statement about what to do with an already-validated schema, so it stops short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
listar_tiposListar tipos de campoARead-onlyInspect
Lista os tipos de campo que o massa gera (nome, cpf, cnpj, cartao_credito, agencia, data_nascimento, senha…), com grupo, descrição e parâmetros de cada um, e o formato do schema JSON que a ferramenta gerar recebe. Chame antes de montar um schema.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| tipos | Yes | |
| exemplo | Yes | um schema de exemplo, pronto para a ferramenta gerar |
| formato | Yes | como montar o schema que a ferramenta gerar recebe |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description usefully adds what the payload contains (groups, descriptions, per-type parameters, JSON schema format), but it adds no cost/auth/rate-limit context and an output schema already documents the return shape.
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?
One compact sentence that front-loads the resource and the enumeration, followed by a short imperative. Slightly dense but nothing is wasted and the call-to-action is last, which is appropriate.
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 zero-parameter, read-only discovery tool with an output schema and clear annotations, the description says enough: what it returns and when to call it. No open questions remain that would block a correct invocation.
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?
The tool takes zero parameters, so per the rubric the baseline is 4. The description correctly implies no input filtering is required beyond the call itself.
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 (Lista) and resource (tipos de campo) and even enumerates concrete examples (nome, cpf, cnpj, cartao_credito...), plus what each entry contains (grupo, descrição, parâmetros). It does not explicitly contrast with the generation/validation siblings, but the discovery role is unmistakable.
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?
"Chame antes de montar um schema" gives an explicit precondition for calling the tool, which is exactly the sequencing an agent needs. It stops short of naming alternatives or when not to call it, so it lands at 4 rather than 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validar_documentoValidar documentoARead-onlyInspect
Confere se um número é válido pela regra oficial: cpf, cnpj (inclusive alfanumérico), cnh, pis, cns, rg (SP), titulo_eleitor, cartao (bandeira, tamanho e Luhn; devolve a bandeira), agencia (precisa do banco) e conta (precisa do banco e da agência). Aceita com ou sem máscara. Não gera nada.
| Name | Required | Description | Default |
|---|---|---|---|
| tipo | Yes | cpf, cnpj, cnh, pis, cns, rg, titulo_eleitor, cartao, agencia ou conta | |
| banco | No | código do banco (001, 033, 041, 104, 237, 341); obrigatório em agencia e conta | |
| valor | Yes | o número a conferir, com ou sem máscara | |
| agencia | No | agência da conta; obrigatória em conta |
Output Schema
| Name | Required | Description |
|---|---|---|
| tipo | Yes | |
| valido | Yes | |
| bandeira | No | só cartao válido: código da bandeira |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=false and idempotentHint=false. Beyond those, the description adds that input may carry or omit masks and that nothing is generated, which is genuinely useful side-effect context for a validator.
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?
Front-loaded purpose sentence followed by two short supporting sentences; the long type enumeration is dense but necessary to convey coverage. No filler sentences, though the enumeration makes the single sentence heavy.
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?
An output schema exists so return values need no explanation, and annotations cover the safety profile. The description supplies the type list, conditional parameter dependencies and mask tolerance, leaving only minor gaps such as format expectations for banco codes.
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 description coverage is 100%, so all four parameters (tipo, valor, banco, agencia) are already documented in the schema, including the conditional requirements. The description only restates the banco/agência dependencies and adds the cartao return detail, 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 ('Confere se um número é válido') and resource, enumerates every supported document type, and clarifies scope with 'pela regra oficial'. The closing 'Não gera nada' cleanly separates it from the sibling gerar_documento.
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?
Gives per-type conditions for use ('agencia precisa do banco', 'conta precisa do banco e da agência') and implicitly rules out generation via 'Não gera nada'. It never names an alternative tool explicitly nor states when validation is inappropriate, so it stops short of full when/when-not guidance.
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.
1 tool update
- Changed
gerar3 fields changed- changed
Input schema / properties / formato / descriptionPrevious value: -"csv (padrão), json ou sql"New value: +"csv (padrão), json, sql ou xlsx (Excel: volta um link para baixar o arquivo, que não entra no contexto)" - changed
Input schema / properties / formato / enumPrevious value: -[ - "csv", - "json", - "sql" -]New value: +[ + "csv", + "json", + "sql", + "xlsx" +] - added
Output schema / properties / linkAdded value: +{ + "description": "só xlsx: endereço que baixa o arquivo Excel; mostre-o ao usuário sem alterar nada", + "type": "string" +}
2 tool updates
- Changed
gerar_documento1 field changed- changed
Input schema / properties / banco / descriptionPrevious value: -"só conta: código do banco (001, 033, 104, 237, 341…); vazio sorteia"New value: +"só conta: código do banco (001, 033, 041, 104, 237, 341); vazio sorteia"
- Changed
validar_documento1 field changed- changed
Input schema / properties / banco / descriptionPrevious value: -"código do banco (001, 033, 104, 237, 341…); obrigatório em agencia e conta"New value: +"código do banco (001, 033, 041, 104, 237, 341); obrigatório em agencia e conta"
5 tool updates
- First observed
gerar - First observed
gerar_documento - First observed
importar_ddl - First observed
listar_tipos - First observed
validar_documento
Related MCP Connectors
Generate realistic relational test data — 156 field types, 22 locales, JSON/CSV/SQL, free previews.
Format-true synthetic test data for 90 countries — IBANs, SWIFT/BIC, IDs, cards, all certified.
Brazil CNPJ, CEP, Selic/IPCA/PTAX, holidays, banks/ISPB for agents. Pay per call in USDC (x402).
Brazilian company data, CNPJ/CPF validation and KYB risk score. Pay per call via x402 (USDC).
Related MCP Servers
- AlicenseAqualityBmaintenanceDados brasileiros reais (CNPJ, CEP, taxas, CPF) via MCP, pagos em USDC por chamada (x402).546 npm1MIT

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- AlicenseBqualityDmaintenanceGenerates realistic mock data using Faker.js for database seeding, API testing, and development environments. Supports person/company data, custom patterns, multi-locale generation, and structured datasets with referential integrity.484 npm7MIT
- FlicenseAqualityCmaintenanceExposes Brazilian public data — postal codes (CEP), company registrations (CNPJ), CPF/CNPJ validation, banks, national holidays, municipalities, and DDD area codes — as MCP tools and resources, backed by BrasilAPI, ViaCEP, and IBGE with caching, fallback, and rate limiting. Any MCP client such as Claude Desktop or Claude Code can query and validate this reference and registration data through natural language or programmatic calls.1-
Glama MCP Gateway
Add one secure layer between your agents and this server.