massa
Massa de teste brasileira válida: CPF, CNPJ, cartão, conta e mais, em CSV, JSON, SQL ou Excel.
我该使用它吗
质量与安全性
发现(5)
- HIGH
- MEDIUM在 gerar 中
- LOW在 gerar_documento 中
- LOW在 validar_documento 中
- INFO在 gerar 中
基于对工具定义和协议合规性的自动分析。
上下文开销
这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 token 数。数值越高,可用于其他任务的注意力就越少。
安装
一键安装
将以下内容添加到你的 `claude_desktop_config.json` 文件中:
{
"mcpServers": {
"massa": {
"url": "https://massa.criando.dev/mcp"
}
}
}远程端点
https://massa.criando.dev/mcpstreamable-http它能做什么
工具清单
工具(5)
🟢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.
输入模式
{
"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
}输出模式
{
"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.
输入模式
{
"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
}输出模式
{
"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.
输入模式
{
"type": "object",
"properties": {
"ddl": {
"type": "string",
"description": "texto do CREATE TABLE (a primeira tabela é importada)"
}
},
"required": [
"ddl"
],
"additionalProperties": false
}输出模式
{
"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.
输入模式
{
"type": "object",
"additionalProperties": false
}输出模式
{
"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.
输入模式
{
"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
}输出模式
{
"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
}社区
证据