{"server":"dev.criando/massa","count":5,"tools":[{"name":"gerar","title":"Gerar massa de teste","description":"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","required":["schema"],"properties":{"schema":{"type":"object","required":["rows","fields"],"properties":{"rows":{"type":"integer","minimum":1,"description":"Quantidade de linhas"},"seed":{"type":"integer","maximum":9007199254740991,"minimum":0,"description":"Semente do sorteio. Omitida ou 0, o servidor sorteia uma e a devolve"},"fields":{"type":"array","items":{"type":"object","required":["name","type"],"properties":{"name":{"type":"string","description":"Nome da coluna"},"type":{"type":"string","description":"Tipo de campo (veja listar_tipos)"}}},"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"}},"description":"o schema JSON do massa, como objeto"},"tabela":{"type":"string","description":"nome da tabela dos INSERT, só com formato sql (aceita esquema.tabela; padrão massa)"},"dialeto":{"enum":["","mysql","oracle","sqlserver"],"type":"string","description":"banco do script, só com formato sql: mysql, oracle ou sqlserver. Vazio é SQL padrão (Postgres)"},"formato":{"enum":["csv","json","sql","xlsx"],"type":"string","description":"csv (padrão), json, sql ou xlsx (Excel: volta um link para baixar o arquivo, que não entra no contexto)"}},"additionalProperties":false},"output_schema":{"type":"object","required":["seed","linhas","formato"],"properties":{"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"},"seed":{"type":"integer","minimum":0,"description":"seed usada; repita-a para obter o mesmo resultado"},"teto":{"type":"integer"},"aviso":{"type":"string"},"linhas":{"type":"integer","description":"linhas pedidas no schema"},"schema":{"description":"o schema com a seed fixada, só acima do teto"},"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"}},"additionalProperties":false},"annotations":{"title":"Gerar massa de teste","readOnlyHint":true,"openWorldHint":false,"idempotentHint":false},"source":"probe","observed_at":"2026-10-19T16:20:19.081Z"},{"name":"gerar_documento","title":"Gerar documento avulso","description":"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","required":["tipo"],"properties":{"uf":{"type":"string","description":"só cpf: sigla do estado de emissão (define o 9º dígito); vazio sorteia"},"seed":{"type":"integer","maximum":9007199254740991,"minimum":0,"description":"semente do sorteio; omitida, o servidor sorteia uma e a devolve"},"tipo":{"enum":["cpf","cnpj","cartao","conta","senha"],"type":"string","description":"cpf, cnpj, cartao, conta ou senha"},"banco":{"type":"string","description":"só conta: código do banco (001, 033, 041, 104, 237, 341); vazio sorteia"},"mascara":{"type":"boolean","description":"com pontuação: cpf, cnpj, cartao (espaços) e conta (hífen no DV). Não vale para senha"},"bandeira":{"type":"string","description":"só cartao: visa, mastercard, elo, amex, hipercard ou diners; vazio sorteia"},"especiais":{"type":"string","description":"só senha: caracteres especiais aceitos (padrão !@#$%&*-_+=?)"},"quantidade":{"type":"integer","maximum":100,"minimum":1,"description":"quantos gerar, de 1 a 100 (padrão 1)"},"min_numeros":{"type":"integer","minimum":0,"description":"só senha: mínimo de números; 0 não usa o tipo (padrão 1)"},"tamanho_max":{"type":"integer","minimum":0,"description":"só senha: tamanho máximo, até 128 (padrão 16)"},"tamanho_min":{"type":"integer","minimum":0,"description":"só senha: tamanho mínimo (padrão 12)"},"alfanumerico":{"type":"boolean","description":"só cnpj: formato alfanumérico novo (IN RFB 2.229/2024)"},"min_especiais":{"type":"integer","minimum":0,"description":"só senha: mínimo de especiais; 0 não usa o tipo (padrão 1)"},"min_maiusculas":{"type":"integer","minimum":0,"description":"só senha: mínimo de maiúsculas; 0 não usa o tipo (padrão 1)"},"min_minusculas":{"type":"integer","minimum":0,"description":"só senha: mínimo de minúsculas; 0 não usa o tipo (padrão 1)"}},"additionalProperties":false},"output_schema":{"type":"object","required":["tipo","seed","quantidade","itens"],"properties":{"seed":{"type":"integer","minimum":0,"description":"seed usada; repita-a para obter os mesmos documentos"},"tipo":{"type":"string"},"itens":{"type":["null","array"],"items":{"type":"object","required":["valor"],"properties":{"valor":{"type":"string"},"partes":{"type":["null","array"],"items":{"type":"object","required":["rotulo","valor"],"properties":{"valor":{"type":"string"},"rotulo":{"type":"string"}},"additionalProperties":false}},"rotulo":{"type":"string","description":"bandeira (cartão) ou banco (conta)"}},"additionalProperties":false}},"quantidade":{"type":"integer"}},"additionalProperties":false},"annotations":{"title":"Gerar documento avulso","readOnlyHint":true,"openWorldHint":false,"idempotentHint":false},"source":"probe","observed_at":"2026-10-19T16:20:19.081Z"},{"name":"importar_ddl","title":"Importar CREATE TABLE","description":"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","required":["ddl"],"properties":{"ddl":{"type":"string","description":"texto do CREATE TABLE (a primeira tabela é importada)"}},"additionalProperties":false},"output_schema":{"type":"object","required":["tabela","schema","avisos"],"properties":{"avisos":{"type":["null","array"],"items":{"type":"object","required":["mensagem"],"properties":{"coluna":{"type":"string"},"bloqueia":{"type":"boolean"},"mensagem":{"type":"string"}},"additionalProperties":false},"description":"colunas a revisar; bloqueia indica coluna que o banco recusaria"},"schema":{"description":"o schema do massa, com 100 linhas; ajuste rows e passe a gerar"},"tabela":{"type":"string"},"dialeto":{"type":"string","description":"mysql, oracle ou sqlserver, conforme o DDL; vazio é SQL padrão. Passe-o a gerar"}},"additionalProperties":false},"annotations":{"title":"Importar CREATE TABLE","readOnlyHint":true,"openWorldHint":false,"idempotentHint":false},"source":"probe","observed_at":"2026-10-19T16:20:19.081Z"},{"name":"listar_tipos","title":"Listar tipos de campo","description":"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","required":["formato","exemplo","tipos"],"properties":{"tipos":{"type":["null","array"],"items":{"type":"object","required":["name","group","label","desc","params"],"properties":{"desc":{"type":"string"},"name":{"type":"string"},"group":{"type":"string"},"label":{"type":"string"},"params":{"type":["null","array"],"items":{"type":"object","required":["key","label","kind"],"properties":{"key":{"type":"string"},"help":{"type":"string"},"kind":{"type":"string"},"label":{"type":"string"},"sugestoes":{"type":["null","array"],"items":{"type":"string"}}},"additionalProperties":false}}},"additionalProperties":false}},"exemplo":{"description":"um schema de exemplo, pronto para a ferramenta gerar"},"formato":{"type":"string","description":"como montar o schema que a ferramenta gerar recebe"}},"additionalProperties":false},"annotations":{"title":"Listar tipos de campo","readOnlyHint":true,"openWorldHint":false,"idempotentHint":false},"source":"probe","observed_at":"2026-10-19T16:20:19.081Z"},{"name":"validar_documento","title":"Validar documento","description":"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","required":["tipo","valor"],"properties":{"tipo":{"enum":["cpf","cnpj","cnh","pis","cns","rg","titulo_eleitor","cartao","agencia","conta"],"type":"string","description":"cpf, cnpj, cnh, pis, cns, rg, titulo_eleitor, cartao, agencia ou conta"},"banco":{"type":"string","description":"código do banco (001, 033, 041, 104, 237, 341); obrigatório em agencia e conta"},"valor":{"type":"string","description":"o número a conferir, com ou sem máscara"},"agencia":{"type":"string","description":"agência da conta; obrigatória em conta"}},"additionalProperties":false},"output_schema":{"type":"object","required":["tipo","valido"],"properties":{"tipo":{"type":"string"},"valido":{"type":"boolean"},"bandeira":{"type":"string","description":"só cartao válido: código da bandeira"}},"additionalProperties":false},"annotations":{"title":"Validar documento","readOnlyHint":true,"openWorldHint":false,"idempotentHint":false},"source":"probe","observed_at":"2026-10-19T16:20:19.081Z"}],"next_cursor":null,"next_actions":[{"action":"get_connection","description":"Connection block to call these tools","href":"/v1/servers/dev.criando%2Fmassa/connection?target=mcpServers","arguments":{"name":"dev.criando/massa","target":"mcpServers"}},{"action":"get_server","description":"Full descriptor with trust and connectability","href":"/v1/servers/dev.criando%2Fmassa","arguments":{"name":"dev.criando/massa"}}]}