massa

Massa de teste brasileira válida: CPF, CNPJ, cartão, conta e mais, em CSV, JSON, SQL ou Excel.

Should I use this

Quality & Safety

B
Description quality
76%
Schema completeness
86%
Naming quality
88%
Poisoning risk
80%
Permission match
100%
Protocol compliance
100%

Findings (5)

  • HIGHTool poisoning patterns detected
  • MEDIUMTool 'gerar' description contains placeholder textin gerar
  • LOWTool 'gerar_documento' description lacks action verbin gerar_documento
  • LOWTool 'validar_documento' description lacks action verbin validar_documento
  • INFOTool description contains placeholder or incomplete textin gerar

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~2,650Tokens (tool definitions)
~4.2 KBTypical response size
Significant attention impact (2.07% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "massa": {
      "url": "https://massa.criando.dev/mcp"
    }
  }
}

Remote endpoints

https://massa.criando.dev/mcpstreamable-http

What it can do

Tool inventory

Tools (5)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢gerar(schema, formato, tabela, dialeto)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "schema": {
      "type": "object",
      "properties": {
        "fields": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "description": "Nome da coluna"
              },
              "type": {
                "type": "string",
                "description": "Tipo de campo (veja listar_tipos)"
              }
            },
            "required": [
              "name",
              "type"
            ]
          },
          "minItems": 1
        },
        "ref_date": {
          "type": "string",
          "description": "Data de referência AAAA-MM-DD para idade e data_nascimento. Omitida, vale o dia da geração"
        },
        "rows": {
          "type": "integer",
          "description": "Quantidade de linhas",
          "minimum": 1
        },
        "seed": {
          "type": "integer",
          "description": "Semente do sorteio. Omitida ou 0, o servidor sorteia uma e a devolve",
          "minimum": 0,
          "maximum": 9007199254740991
        }
      },
      "description": "o schema JSON do massa, como objeto",
      "required": [
        "rows",
        "fields"
      ]
    },
    "formato": {
      "type": "string",
      "description": "csv (padrão), json, sql ou xlsx (Excel: volta um link para baixar o arquivo, que não entra no contexto)",
      "enum": [
        "csv",
        "json",
        "sql",
        "xlsx"
      ]
    },
    "tabela": {
      "type": "string",
      "description": "nome da tabela dos INSERT, só com formato sql (aceita esquema.tabela; padrão massa)"
    },
    "dialeto": {
      "type": "string",
      "description": "banco do script, só com formato sql: mysql, oracle ou sqlserver. Vazio é SQL padrão (Postgres)",
      "enum": [
        "",
        "mysql",
        "oracle",
        "sqlserver"
      ]
    }
  },
  "required": [
    "schema"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "seed": {
      "type": "integer",
      "description": "seed usada; repita-a para obter o mesmo resultado",
      "minimum": 0
    },
    "linhas": {
      "type": "integer",
      "description": "linhas pedidas no schema"
    },
    "formato": {
      "type": "string"
    },
    "conteudo": {
      "type": "string",
      "description": "o arquivo gerado, como texto"
    },
    "acima_do_teto": {
      "type": "boolean",
      "description": "true quando as linhas passam do teto por chamada e nada foi gerado"
    },
    "teto": {
      "type": "integer"
    },
    "aviso": {
      "type": "string"
    },
    "schema": {
      "description": "o schema com a seed fixada, só acima do teto"
    },
    "curl": {
      "type": "string",
      "description": "comando que gera o volume todo pela API, só acima do teto"
    },
    "link": {
      "type": "string",
      "description": "só xlsx: endereço que baixa o arquivo Excel; mostre-o ao usuário sem alterar nada"
    }
  },
  "required": [
    "seed",
    "linhas",
    "formato"
  ],
  "additionalProperties": false
}
🟢gerar_documento(tipo, quantidade, seed, mascara, uf, ...)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "tipo": {
      "type": "string",
      "description": "cpf, cnpj, cartao, conta ou senha",
      "enum": [
        "cpf",
        "cnpj",
        "cartao",
        "conta",
        "senha"
      ]
    },
    "quantidade": {
      "type": "integer",
      "description": "quantos gerar, de 1 a 100 (padrão 1)",
      "minimum": 1,
      "maximum": 100
    },
    "seed": {
      "type": "integer",
      "description": "semente do sorteio; omitida, o servidor sorteia uma e a devolve",
      "minimum": 0,
      "maximum": 9007199254740991
    },
    "mascara": {
      "type": "boolean",
      "description": "com pontuação: cpf, cnpj, cartao (espaços) e conta (hífen no DV). Não vale para senha"
    },
    "uf": {
      "type": "string",
      "description": "só cpf: sigla do estado de emissão (define o 9º dígito); vazio sorteia"
    },
    "alfanumerico": {
      "type": "boolean",
      "description": "só cnpj: formato alfanumérico novo (IN RFB 2.229/2024)"
    },
    "bandeira": {
      "type": "string",
      "description": "só cartao: visa, mastercard, elo, amex, hipercard ou diners; vazio sorteia"
    },
    "banco": {
      "type": "string",
      "description": "só conta: código do banco (001, 033, 041, 104, 237, 341); vazio sorteia"
    },
    "tamanho_min": {
      "type": "integer",
      "description": "só senha: tamanho mínimo (padrão 12)",
      "minimum": 0
    },
    "tamanho_max": {
      "type": "integer",
      "description": "só senha: tamanho máximo, até 128 (padrão 16)",
      "minimum": 0
    },
    "min_maiusculas": {
      "type": "integer",
      "description": "só senha: mínimo de maiúsculas; 0 não usa o tipo (padrão 1)",
      "minimum": 0
    },
    "min_minusculas": {
      "type": "integer",
      "description": "só senha: mínimo de minúsculas; 0 não usa o tipo (padrão 1)",
      "minimum": 0
    },
    "min_numeros": {
      "type": "integer",
      "description": "só senha: mínimo de números; 0 não usa o tipo (padrão 1)",
      "minimum": 0
    },
    "min_especiais": {
      "type": "integer",
      "description": "só senha: mínimo de especiais; 0 não usa o tipo (padrão 1)",
      "minimum": 0
    },
    "especiais": {
      "type": "string",
      "description": "só senha: caracteres especiais aceitos (padrão !@#$%&*-_+=?)"
    }
  },
  "required": [
    "tipo"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "tipo": {
      "type": "string"
    },
    "seed": {
      "type": "integer",
      "description": "seed usada; repita-a para obter os mesmos documentos",
      "minimum": 0
    },
    "quantidade": {
      "type": "integer"
    },
    "itens": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "object",
        "properties": {
          "valor": {
            "type": "string"
          },
          "rotulo": {
            "type": "string",
            "description": "bandeira (cartão) ou banco (conta)"
          },
          "partes": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "object",
              "properties": {
                "rotulo": {
                  "type": "string"
                },
                "valor": {
                  "type": "string"
                }
              },
              "required": [
                "rotulo",
                "valor"
              ],
              "additionalProperties": false
            }
          }
        },
        "required": [
          "valor"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "tipo",
    "seed",
    "quantidade",
    "itens"
  ],
  "additionalProperties": false
}
🟢importar_ddl(ddl)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "ddl": {
      "type": "string",
      "description": "texto do CREATE TABLE (a primeira tabela é importada)"
    }
  },
  "required": [
    "ddl"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "tabela": {
      "type": "string"
    },
    "dialeto": {
      "type": "string",
      "description": "mysql, oracle ou sqlserver, conforme o DDL; vazio é SQL padrão. Passe-o a gerar"
    },
    "schema": {
      "description": "o schema do massa, com 100 linhas; ajuste rows e passe a gerar"
    },
    "avisos": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "object",
        "properties": {
          "coluna": {
            "type": "string"
          },
          "mensagem": {
            "type": "string"
          },
          "bloqueia": {
            "type": "boolean"
          }
        },
        "required": [
          "mensagem"
        ],
        "additionalProperties": false
      },
      "description": "colunas a revisar; bloqueia indica coluna que o banco recusaria"
    }
  },
  "required": [
    "tabela",
    "schema",
    "avisos"
  ],
  "additionalProperties": false
}
🟢listar_tipos

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.

Input Schema

{
  "type": "object",
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "formato": {
      "type": "string",
      "description": "como montar o schema que a ferramenta gerar recebe"
    },
    "exemplo": {
      "description": "um schema de exemplo, pronto para a ferramenta gerar"
    },
    "tipos": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "group": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "desc": {
            "type": "string"
          },
          "params": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "object",
              "properties": {
                "key": {
                  "type": "string"
                },
                "label": {
                  "type": "string"
                },
                "kind": {
                  "type": "string"
                },
                "help": {
                  "type": "string"
                },
                "sugestoes": {
                  "type": [
                    "null",
                    "array"
                  ],
                  "items": {
                    "type": "string"
                  }
                }
              },
              "required": [
                "key",
                "label",
                "kind"
              ],
              "additionalProperties": false
            }
          }
        },
        "required": [
          "name",
          "group",
          "label",
          "desc",
          "params"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "formato",
    "exemplo",
    "tipos"
  ],
  "additionalProperties": false
}
🟢validar_documento(tipo, valor, banco, agencia)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "tipo": {
      "type": "string",
      "description": "cpf, cnpj, cnh, pis, cns, rg, titulo_eleitor, cartao, agencia ou conta",
      "enum": [
        "cpf",
        "cnpj",
        "cnh",
        "pis",
        "cns",
        "rg",
        "titulo_eleitor",
        "cartao",
        "agencia",
        "conta"
      ]
    },
    "valor": {
      "type": "string",
      "description": "o número a conferir, com ou sem máscara"
    },
    "banco": {
      "type": "string",
      "description": "código do banco (001, 033, 041, 104, 237, 341); obrigatório em agencia e conta"
    },
    "agencia": {
      "type": "string",
      "description": "agência da conta; obrigatória em conta"
    }
  },
  "required": [
    "tipo",
    "valor"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "tipo": {
      "type": "string"
    },
    "valido": {
      "type": "boolean"
    },
    "bandeira": {
      "type": "string",
      "description": "só cartao válido: código da bandeira"
    }
  },
  "required": [
    "tipo",
    "valido"
  ],
  "additionalProperties": false
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded5 tools