3D Cartoon Generator & File System Tools

Gera imagens de desenho animado em estilo 3D usando o Google Gemini AI e fornece operações seguras de sistema de arquivos.

Documentação

Servidor Combinado MCP: 3D Cartoon Generator & File System Tools

Um servidor de nível profissional que oferece duas capacidades principais:

  1. Geração de imagens cartoon em estilo 3D de alta qualidade usando o Google Gemini AI
  2. Operações seguras de sistema de arquivos para ler, escrever e gerenciar arquivos

3D Cartoon Generator Demo

🌟 Recursos

Geração de Imagens

  • Geração de Cartoon 3D: Cria imagens cartoon em estilo 3D de alta qualidade
  • Design Amigável para Crianças: Foca em visuais coloridos, lúdicos e envolventes
  • Pré-visualização Instantânea: Abre automaticamente as imagens geradas no seu navegador padrão
  • Armazenamento Local: Salva imagens e pré-visualizações em um diretório de saída organizado

Operações de Sistema de Arquivos

  • Acesso Seguro a Arquivos: Validação de caminho e verificações de segurança
  • Ler/Escrever Arquivos: Ler e escrever conteúdos de arquivos de texto
  • Operações de Diretório: Listar, criar e navegar em diretórios
  • Pesquisa de Arquivos: Encontrar arquivos que correspondam a padrões

Recursos do Sistema

  • Configuração Profissional: Tratamento robusto de erros e registro controlado
  • Suporte Multiplataforma: Manipulação inteligente de caminhos de arquivo para Windows, macOS e Linux
  • Detecção Inteligente de SO: Encontra automaticamente o melhor local de salvamento para cada sistema operacional
  • Controles de Segurança: Acesso restrito a diretórios por meio de configuração

🛠️ Pilha Técnica

  • Framework Principal: SDK do Model Context Protocol (MCP)
  • Integração de IA: Google Generative AI (Gemini)
  • Runtime: Node.js v14+
  • Linguagem: TypeScript
  • Gerenciador de Pacotes: npm

📋 Pré-requisitos

  • Node.js (v14 ou superior)
  • Chave da API do Google Gemini
  • TypeScript

⚙️ Instalação

  1. Clone o repositório:
git clone https://github.com/falahgs/mcp-3d-style-cartoon-gen-server.git
cd mcp-3d-style-cartoon-gen-server
  1. Instale as dependências:
npm install
  1. Configure o ambiente: Crie um arquivo .env no diretório raiz:
GEMINI_API_KEY=your_api_key_here
ALLOWED_DIRECTORIES=/path/to/allowed/dir1,/path/to/allowed/dir2
  1. Compile o projeto:
npm run build

🔧 Configurando o Claude Desktop com o Servidor MCP

Para integrar este servidor combinado com o Claude Desktop:

  1. Localize o Arquivo de Configuração:

    • Windows: %APPDATA%\Claude\claude_desktop_config.json
    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
    • Linux: ~/.config/Claude/claude_desktop_config.json
  2. Adicione a seguinte configuração:

{
  "mcpServers": {
    "mcp-3d-cartoon-generator": {
      "command": "node",
      "args": [
        "path/to/your/build/index.js"
      ],
      "env": {
        "GEMINI_API_KEY": "your_gemini_api_key_here",
        "IS_REMOTE": "true",
        "SAVE_TO_DESKTOP": "true",
        "DETECT_OS_PATHS": "true",
        "ALLOWED_DIRECTORIES": "C:\\Users\\YourUsername\\Desktop,C:\\Users\\YourUsername\\Documents",
        "DEBUG": "false"
      }
    }
  }
}

Script Auxiliar do PowerShell para Windows

Para usuários do Windows, você pode usar o script fix_claude_config.ps1 incluído para configurar automaticamente o Claude Desktop:

  1. Edite o script para atualizar o caminho para a compilação do seu servidor e sua chave da API do Gemini
  2. Execute o script no PowerShell:
powershell -ExecutionPolicy Bypass -File .\fix_claude_config.ps1

Isso criará ou atualizará o arquivo de configuração com codificação e configurações adequadas.

🚀 Ferramentas Disponíveis

1. Ferramenta de Geração de Imagens

{
  "name": "generate_3d_cartoon",
  "description": "Generates a 3D style cartoon image for kids based on the given prompt",
  "inputSchema": {
    "type": "object",
    "properties": {
      "prompt": {
        "type": "string",
        "description": "The prompt describing the 3D cartoon image to generate"
      },
      "fileName": {
        "type": "string",
        "description": "The name of the output file (without extension)"
      }
    },
    "required": ["prompt", "fileName"]
  }
}

2. Ferramentas de Sistema de Arquivos

Ler Arquivo

{
  "name": "read_file",
  "description": "Read the contents of a file",
  "inputSchema": {
    "type": "object",
    "properties": {
      "path": {
        "type": "string",
        "description": "Path to the file to read"
      }
    },
    "required": ["path"]
  }
}

Escrever Arquivo

{
  "name": "write_file",
  "description": "Write content to a file",
  "inputSchema": {
    "type": "object",
    "properties": {
      "path": {
        "type": "string",
        "description": "Path to the file to write"
      },
      "content": {
        "type": "string",
        "description": "Content to write to the file"
      }
    },
    "required": ["path", "content"]
  }
}

Listar Diretório

{
  "name": "list_directory",
  "description": "List the contents of a directory",
  "inputSchema": {
    "type": "object",
    "properties": {
      "path": {
        "type": "string",
        "description": "Path to the directory to list"
      }
    },
    "required": ["path"]
  }
}

Criar Diretório

{
  "name": "create_directory",
  "description": "Create a new directory",
  "inputSchema": {
    "type": "object",
    "properties": {
      "path": {
        "type": "string",
        "description": "Path to the directory to create"
      }
    },
    "required": ["path"]
  }
}

Pesquisar Arquivos

{
  "name": "search_files",
  "description": "Search for files matching a pattern",
  "inputSchema": {
    "type": "object",
    "properties": {
      "path": {
        "type": "string",
        "description": "Base directory to search from"
      },
      "pattern": {
        "type": "string",
        "description": "Search pattern (glob format)"
      },
      "excludePatterns": {
        "type": "array",
        "items": {
          "type": "string"
        },
        "description": "Patterns to exclude from search (glob format)"
      }
    },
    "required": ["path", "pattern"]
  }
}

📄 Exemplo de Uso

Exemplos de Geração de Imagens

// Generate a 3D cartoon
{
  "name": "generate_3d_cartoon",
  "arguments": {
    "prompt": "A friendly robot playing with a cat",
    "fileName": "robot_cat_play"
  }
}

Exemplos de Sistema de Arquivos

// Read a file
{
  "name": "read_file",
  "arguments": {
    "path": "C:/Users/YourUsername/Documents/example.txt"
  }
}

// Write a file
{
  "name": "write_file",
  "arguments": {
    "path": "C:/Users/YourUsername/Documents/new-file.txt",
    "content": "This is the content of the file."
  }
}

// List directory contents
{
  "name": "list_directory",
  "arguments": {
    "path": "C:/Users/YourUsername/Documents"
  }
}

// Create a directory
{
  "name": "create_directory",
  "arguments": {
    "path": "C:/Users/YourUsername/Documents/new-folder"
  }
}

// Search for files
{
  "name": "search_files",
  "arguments": {
    "path": "C:/Users/YourUsername/Documents",
    "pattern": "*.txt",
    "excludePatterns": ["temp*", "*.tmp"]
  }
}

🔒 Recursos de Segurança

O servidor implementa várias medidas de segurança:

  1. Validação de Caminho: Todos os caminhos de arquivo são validados para garantir que estejam dentro dos diretórios permitidos.
  2. Diretórios Permitidos: Somente diretórios explicitamente definidos na variável de ambiente ALLOWED_DIRECTORIES podem ser acessados.
  3. Proteção de Symlink: Impede o acesso a diretórios fora do escopo permitido por meio de symlinks.
  4. Registro Controlado: Os logs de depuração são desativados por padrão para evitar vazamento de informações.

⚙️ Opções de Configuração

Variáveis de Ambiente

VariávelDescriçãoPadrão
GEMINI_API_KEYChave da API do Google Gemini para geração de imagens(Obrigatório)
ALLOWED_DIRECTORIESLista separada por vírgulas de caminhos de sistema de arquivos permitidosDiretório inicial do usuário, diretório atual
IS_REMOTEExecutar em modo remoto sem abrir o navegadorfalse
SAVE_TO_DESKTOPForçar salvamento no diretório da área de trabalhofalse
DETECT_OS_PATHSHabilitar detecção de caminho específica do SOtrue
DEBUGHabilitar registro de depuração detalhadofalse

🛠️ Solução de Problemas

Problemas Comuns:

  1. Erros de Análise JSON no Claude:

    • Garanta que DEBUG esteja definido como "false" para evitar que os logs interfiram na comunicação JSON
    • Verifique a formatação JSON adequada na configuração do Claude
  2. Acesso Negado a Arquivos:

    • Verifique se os caminhos que você está tentando acessar estão incluídos em ALLOWED_DIRECTORIES
    • Verifique as permissões de arquivo nos arquivos/diretórios de destino
  3. Imagens Não Sendo Salvas:

    • Defina SAVE_TO_DESKTOP como "true" para garantir que as imagens sejam salvas na área de trabalho
    • Verifique a detecção do caminho da área de trabalho nos logs do servidor (ative DEBUG temporariamente)

📄 Licença

Licença MIT

🤝 Contribuição

Contribuições são bem-vindas! Sinta-se à vontade para enviar um Pull Request.