beplus-mcp 0.16.0 → 0.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/index.js +21 -8
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -486,6 +486,7 @@ var IMAGE_MODELS = [
486
486
  "google/nano-banana-2",
487
487
  "google/nano-banana-pro",
488
488
  "openai/gpt-image-2",
489
+ "openai/gpt-image-1",
489
490
  "bytedance/seedream-5.0-lite",
490
491
  "bytedance/seedream-5.0-pro",
491
492
  "midjourney"
@@ -590,26 +591,28 @@ function registerGenerationTools(server, client, cfg) {
590
591
  // que o modelo aceita (Seedream/nano-banana não têm limite publicado).
591
592
  prompt: z.string().min(1).describe("Descri\xE7\xE3o da imagem desejada."),
592
593
  model: z.enum(IMAGE_MODELS).default(DEFAULTS.imageModel).describe(
593
- "nano-banana-2 = barato/r\xE1pido; nano-banana-pro = melhor qualidade; gpt-image-2 = OpenAI; seedream-5.0-lite = mais barato do cat\xE1logo, \xFAnico que chega a 4K, gera s\xE9ries e mant\xE9m o ESTILO da imagem de refer\xEAncia; seedream-5.0-pro = acabamento fotorrealista, s\xF3 at\xE9 2K \u2014 preserva o personagem da refer\xEAncia mas costuma reinterpretar o estilo (um vetor flat volta em 3D)."
594
+ "nano-banana-2 = barato/r\xE1pido; nano-banana-pro = melhor qualidade; gpt-image-2 = OpenAI; gpt-image-1 = OpenAI, \xDANICO que faz fundo transparente de verdade (PNG/WebP com alpha) \u2014 o gpt-image-2 N\xC3O faz, use este pra recorte/sticker; seedream-5.0-lite = mais barato do cat\xE1logo, \xFAnico que chega a 4K, gera s\xE9ries e mant\xE9m o ESTILO da imagem de refer\xEAncia; seedream-5.0-pro = acabamento fotorrealista, s\xF3 at\xE9 2K \u2014 preserva o personagem da refer\xEAncia mas costuma reinterpretar o estilo (um vetor flat volta em 3D)."
594
595
  ),
595
596
  aspect_ratio: z.enum(ASPECT_RATIOS).optional().describe("Propor\xE7\xE3o (nano-banana). Padr\xE3o 1:1."),
596
597
  resolution: z.enum(IMAGE_RESOLUTIONS).optional().describe("Resolu\xE7\xE3o (nano-banana): 1K/2K/4K. Padr\xE3o 1K."),
597
598
  reference_images: z.array(z.string().min(1)).max(16).optional().describe(
598
- "Imagens de refer\xEAncia (image-to-image): URL p\xFAblica OU caminho de arquivo local (o MCP faz upload pro R2 automaticamente). At\xE9 14 (nano-banana) / 16 (gpt-image-2)."
599
+ "Imagens de refer\xEAncia (image-to-image): URL p\xFAblica OU caminho de arquivo local (o MCP faz upload pro R2 automaticamente). At\xE9 14 (nano-banana) / 16 (gpt-image-1/2)."
599
600
  ),
600
601
  google_search: z.boolean().optional().describe("nano-banana-2: aterra a imagem em busca web do Google (fatos atuais). Padr\xE3o false."),
601
602
  image_search: z.boolean().optional().describe("nano-banana-2: usa busca de imagens do Google como refer\xEAncia visual. Padr\xE3o false."),
602
603
  size: z.enum(["1024x1024", "1536x1024", "1024x1536", "auto", "1K", "2K", "3K", "4K"]).optional().describe(
603
- "Tamanho. gpt-image-2: 1024x1024/1536x1024/1024x1536/auto. Seedream Lite: 2K/3K/4K (padr\xE3o 2K). Seedream Pro: 1K/2K apenas \u2014 o Pro N\xC3O faz 3K/4K."
604
+ "Tamanho. gpt-image-1/2: 1024x1024/1536x1024/1024x1536/auto. Seedream Lite: 2K/3K/4K (padr\xE3o 2K). Seedream Pro: 1K/2K apenas \u2014 o Pro N\xC3O faz 3K/4K."
604
605
  ),
605
606
  batch_images: z.number().int().min(2).max(15).optional().describe(
606
607
  "Seedream 5.0 LITE apenas: gera uma s\xE9rie de imagens relacionadas numa chamada (2-15). Cada imagem \xE9 cobrada. O Seedream Pro N\xC3O suporta \u2014 passar aqui devolve erro."
607
608
  ),
608
- quality: z.enum(["low", "medium", "high", "auto"]).optional().describe("Qualidade (gpt-image-2)."),
609
- background: z.enum(["opaque", "transparent", "auto"]).optional().describe("Fundo (gpt-image-2). transparent s\xF3 com output_format png/webp. Padr\xE3o opaque."),
610
- moderation: z.enum(["low", "auto"]).optional().describe("Modera\xE7\xE3o (gpt-image-2). Padr\xE3o low."),
611
- output_format: z.enum(["png", "jpeg", "webp"]).optional().describe("Formato de sa\xEDda (gpt-image-2). Padr\xE3o png."),
612
- output_compression: z.number().int().min(0).max(100).optional().describe("Compress\xE3o 0-100 (gpt-image-2, s\xF3 jpeg/webp). Padr\xE3o 90."),
609
+ quality: z.enum(["low", "medium", "high", "auto"]).optional().describe("Qualidade (gpt-image-1/2)."),
610
+ background: z.enum(["opaque", "transparent", "auto"]).optional().describe(
611
+ "Fundo (gpt-image-1/2). `transparent` S\xD3 funciona no gpt-image-1 e s\xF3 com output_format png/webp \u2014 o gpt-image-2 rejeita (limita\xE7\xE3o do modelo na OpenAI, n\xE3o d\xE1 pra contornar por prompt). Padr\xE3o opaque."
612
+ ),
613
+ moderation: z.enum(["low", "auto"]).optional().describe("Modera\xE7\xE3o (gpt-image-1/2). Padr\xE3o low."),
614
+ output_format: z.enum(["png", "jpeg", "webp"]).optional().describe("Formato de sa\xEDda (gpt-image-1/2). Padr\xE3o png."),
615
+ output_compression: z.number().int().min(0).max(100).optional().describe("Compress\xE3o 0-100 (gpt-image-1/2, s\xF3 jpeg/webp). Padr\xE3o 90."),
613
616
  seed: z.number().int().optional(),
614
617
  // ── Midjourney (model="midjourney") — params completos ──
615
618
  version: z.enum(["8.1", "7", "6.1", "6", "niji-7", "niji-6"]).optional().describe("Midjourney: vers\xE3o (padr\xE3o 8.1). --oref (character_reference) for\xE7a V7; --cref for\xE7a V6; anime = niji-7."),
@@ -660,6 +663,16 @@ function registerGenerationTools(server, client, cfg) {
660
663
  } else if (args.batch_images) {
661
664
  return errorResult("batch_images s\xF3 existe no bytedance/seedream-5.0-lite.");
662
665
  }
666
+ if (args.background === "transparent") {
667
+ if (args.model !== "openai/gpt-image-1") {
668
+ return errorResult(
669
+ `${args.model} n\xE3o suporta fundo transparente. S\xF3 o openai/gpt-image-1 devolve PNG/WebP com canal alpha de verdade \u2014 troque o model.`
670
+ );
671
+ }
672
+ if (args.output_format === "jpeg") {
673
+ return errorResult("Fundo transparente exige output_format png ou webp \u2014 JPEG n\xE3o tem canal alpha.");
674
+ }
675
+ }
663
676
  const reference_images = await resolveRefs(cfg, args.reference_images);
664
677
  let style_reference;
665
678
  if (isMidjourney && args.style_reference) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "beplus-mcp",
3
- "version": "0.16.0",
3
+ "version": "0.17.0",
4
4
  "description": "Conector MCP da equipe BePlus — gere imagens/vídeos/áudio e consulte calls, projetos e clientes pela sua conta BePlus (diamantes, limites e histórico aplicados pela plataforma).",
5
5
  "type": "module",
6
6
  "bin": {