Gemini MCP Server

Um servidor MCP para o Google Gemini AI com Inteligência de Ferramentas Inteligentes e preferências autocontidas e configuráveis.

Documentação

Gemini MCP Server com Smart Tool Intelligence

Bem-vindo ao Gemini MCP Server, o primeiro servidor MCP com Smart Tool Intelligence - um sistema revolucionário de autoaprendizagem que se adapta às suas preferências e melhora com o tempo. Esta plataforma abrangente oferece 7 ferramentas com tecnologia de IA, com aprimoramento automático de prompts e consciência de contexto.

🚀 Visão Geral dos Recursos

🤖 7 Ferramentas com Tecnologia de IA

  • Image Generation - Crie imagens a partir de prompts de texto usando Gemini 2.0 Flash
  • Image Editing - Edite imagens existentes com instruções em linguagem natural
  • Chat - Conversas interativas com respostas conscientes do contexto
  • Audio Transcription - Converta áudio em texto com modo verbatim opcional
  • Code Execution - Execute código Python em um ambiente sandbox seguro
  • Video Analysis - Analise conteúdo de vídeo para resumos, transcrições e insights
  • Image Analysis - Extraia objetos, texto e descrições detalhadas de imagens

🧠 Sistema Smart Tool Intelligence (Primeiro no Ecossistema MCP)

  • Autoaprendizagem - Aprende automaticamente com interações bem-sucedidas
  • Detecção de Contexto - Reconhece contextos de pesquisa de consciência, codificação e depuração
  • Reconhecimento de Padrões - Identifica padrões de uso e preferências do usuário
  • Aprimoramento de Prompts - Refina prompts para melhor desempenho do modelo de IA
  • Memória Persistente - Armazena preferências aprendidas entre sessões
  • Migração Automática - Atualiza perfeitamente o armazenamento de preferências

📦 Início Rápido

Instalação

git clone https://github.com/Garblesnarff/gemini-mcp-server.git
cd gemini-mcp-server
npm install

Configuração

  1. Obtenha sua chave de API Gemini no Google AI Studio
  2. Copie o modelo de ambiente:
    cp .env.example .env
    
  3. Edite .env e adicione sua chave de API:
    GEMINI_API_KEY=your_actual_api_key_here
    OUTPUT_DIR=/path/to/your/output/directory  # Optional
    DEBUG=false  # Optional
    

Executando o Servidor

npm start
# or for development with debug logging:
npm run dev

Integração com Claude Desktop

Adicione à sua configuração do Claude Desktop (claude_desktop_config.json):

{
  \"mcpServers\": {
    \"gemini\": {
      \"command\": \"node\",
      \"args\": [\"/path/to/gemini-mcp-server/gemini-server.js\"],
      \"env\": {
        \"GEMINI_API_KEY\": \"your_api_key_here\"
      }
    }
  }
}

🛠️ Referência de Ferramentas

1. Image Generation (generate_image)

Gere imagens a partir de descrições de texto usando Gemini 2.0 Flash.

Parâmetros:

  • prompt (string, obrigatório) - Descrição da imagem a ser gerada
  • context (string, opcional) - Contexto para aprimoramento do Smart Tool Intelligence

Exemplo:

{
  \"prompt\": \"A serene mountain landscape at sunset with vibrant colors\",
  \"context\": \"artistic\"
}

Retorna:

{
  \"content\": [{
    \"type\": \"text\",
    \"text\": \"Generated a beautiful mountain landscape image.\"
  }, {
    \"type\": \"image\", 
    \"data\": \"base64_image_data\",
    \"mimeType\": \"image/png\"
  }]
}

2. Image Editing (gemini-edit-image)

Edite imagens existentes usando instruções em linguagem natural.

Parâmetros:

  • image_path (string, obrigatório) - Caminho para o arquivo de imagem a ser editado
  • edit_instruction (string, obrigatório) - Descrição das alterações desejadas
  • context (string, opcional) - Contexto para aprimoramento

Exemplo:

{
  \"image_path\": \"/path/to/image.jpg\",
  \"edit_instruction\": \"Add shooting stars to the night sky\",
  \"context\": \"artistic\"
}

3. Chat (gemini-chat)

Conversas interativas com o Gemini AI que aprende suas preferências.

Parâmetros:

  • message (string, obrigatório) - Sua mensagem ou pergunta
  • context (string, opcional) - Contexto para o Smart Tool Intelligence

Exemplo:

{
  \"message\": \"Explain quantum computing in simple terms\",
  \"context\": \"consciousness\"  // Will apply academic rigor enhancement
}

4. Audio Transcription (gemini-transcribe-audio)

Converta arquivos de áudio em texto com aprimoramento do Smart Tool Intelligence.

Parâmetros:

  • file_path (string, obrigatório) - Caminho para o arquivo de áudio (MP3, WAV, FLAC, AAC, OGG, WEBM, M4A)
  • language (string, opcional) - Indicação de idioma para melhor precisão
  • context (string, opcional) - Use "verbatim" para transcrição exata palavra por palavra
  • preserve_spelled_acronyms (boolean, opcional) - Mantenha U-R-L em vez de URL

Exemplo (Padrão):

{
  \"file_path\": \"/path/to/audio.mp3\",
  \"language\": \"en\"
}

Exemplo (Modo Verbatim):

{
  \"file_path\": \"/path/to/audio.mp3\",
  \"context\": \"verbatim\",  // Gets exact word-for-word transcription
  \"preserve_spelled_acronyms\": true
}

Recursos do Modo Verbatim:

  • Captura todos os "um", "uh", "like", palavras repetidas
  • Preserva expressões emocionais: [risos], [suspiros], [limpa a garganta]
  • Mantém a pontuação original e a estrutura das frases
  • Sem resumo ou limpeza

5. Code Execution (gemini-code-execute)

Execute código Python em um ambiente sandbox seguro.

Parâmetros:

  • code (string, obrigatório) - Código Python a ser executado
  • context (string, opcional) - Contexto para aprimoramento

Exemplo:

{
  \"code\": \"import pandas as pd\\ndata = {'x': [1,2,3], 'y': [4,5,6]}\\ndf = pd.DataFrame(data)\\nprint(df.describe())\",
  \"context\": \"code\"
}

6. Video Analysis (gemini-analyze-video)

Analise conteúdo de vídeo para resumos, transcrições e insights detalhados.

Parâmetros:

  • file_path (string, obrigatório) - Caminho para o arquivo de vídeo (MP4, MOV, AVI, WEBM, MKV, FLV)
  • analysis_type (string, opcional) - "summary", "transcript", "objects", "detailed", "custom"
  • context (string, opcional) - Contexto para aprimoramento

Exemplo:

{
  \"file_path\": \"/path/to/video.mp4\",
  \"analysis_type\": \"detailed\"
}

7. Image Analysis (gemini-analyze-image)

Extraia informações detalhadas de imagens, incluindo objetos, texto e descrições.

Parâmetros:

  • file_path (string, obrigatório) - Caminho para o arquivo de imagem (JPEG, PNG, WebP, HEIC, HEIF, BMP, GIF)
  • analysis_type (string, opcional) - "summary", "objects", "text", "detailed", "custom"
  • context (string, opcional) - Contexto para aprimoramento

Exemplo:

{
  \"file_path\": \"/path/to/image.jpg\",
  \"analysis_type\": \"objects\"
}

🧠 Sistema Smart Tool Intelligence

Como Funciona

O sistema Smart Tool Intelligence é o primeiro do tipo no ecossistema MCP. Ele automaticamente:

  1. Detecta Contexto - Reconhece se você está fazendo pesquisa de consciência, codificação, depuração, etc.
  2. Aprimora Prompts - Adiciona instruções relevantes com base em padrões aprendidos
  3. Aprende Padrões - Armazena padrões de interação bem-sucedidos para uso futuro
  4. Adapta-se com o Tempo - Melhora em ajudá-lo a cada interação

Tipos de Contexto

O sistema reconhece estes contextos e aplica aprimoramentos apropriados:

  • consciousness - Adiciona rigor acadêmico, citações, explicações detalhadas
  • code - Inclui exemplos práticos, código funcional, melhores práticas
  • debugging - Foca na análise de causa raiz e correções específicas
  • general - Aplica respostas abrangentes e estruturadas
  • verbatim - Para transcrição de áudio, fornece saída exata palavra por palavra

Local de Armazenamento

As preferências são armazenadas internamente em ./data/tool-preferences.json com migração automática do armazenamento externo.

Implementando Smart Tool Intelligence no Seu Servidor MCP

Quer adicionar essa capacidade revolucionária ao seu próprio servidor MCP? Veja como:

1. Arquitetura Principal

// src/intelligence/context-detector.js
class ContextDetector {
  detectContext(prompt, toolName) {
    // Implement pattern matching for different contexts
    if (this.isConsciousnessContext(prompt)) return 'consciousness';
    if (this.isCodeContext(prompt)) return 'code';
    if (this.isDebuggingContext(prompt)) return 'debugging';
    return 'general';
  }
}

// src/intelligence/prompt-enhancer.js  
class PromptEnhancer {
  enhancePrompt(originalPrompt, context, toolName) {
    // Apply context-specific enhancements
    const enhancement = this.getEnhancementForContext(context);
    return `${originalPrompt}\\n\\n${enhancement}`;
  }
}

// src/intelligence/preference-store.js
class PreferencesManager {
  async storePattern(original, enhanced, context, toolName, success) {
    // Store successful patterns for future learning
  }
  
  async getPatterns(context) {
    // Retrieve learned patterns for context
  }
}

2. Padrão de Integração

// In your tool's execute method:
async execute(args) {
  const intelligence = IntelligenceSystem.getInstance();
  
  // Detect context and enhance prompt
  const context = args.context || intelligence.contextDetector.detectContext(args.prompt, this.name);
  const enhancedPrompt = await intelligence.enhancePrompt(args.prompt, context, this.name);
  
  // Execute with enhanced prompt
  const result = await this.geminiService.generateContent(enhancedPrompt);
  
  // Store successful pattern
  await intelligence.storeSuccessfulPattern(args.prompt, enhancedPrompt, context, this.name);
  
  return result;
}

3. Arquivos-Chave de Implementação

Estude estes arquivos deste repositório:

  • src/intelligence/index.js - Coordenador principal de inteligência
  • src/intelligence/context-detector.js - Lógica de reconhecimento de contexto
  • src/intelligence/prompt-enhancer.js - Aplicação de aprimoramento
  • src/intelligence/preference-store.js - Armazenamento e recuperação de padrões
  • src/tools/base-tool.js - Integração com execução de ferramentas

🧪 Testes

Executar Suíte de Testes

# Test basic functionality
npm test

# Test Smart Tool Intelligence
node test-tool-intelligence-full.js

# Test internal storage
node test-internal-storage.js

# Test verbatim transcription
node test-verbatim-mode.js

Exemplos de Testes Manuais

# Test image generation
echo '{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"tools/call\",\"params\":{\"name\":\"generate_image\",\"arguments\":{\"prompt\":\"A cute robot reading a book\"}}}' | node gemini-server.js

# Test chat with consciousness context
echo '{\"jsonrpc\":\"2.0\",\"id\":2,\"method\":\"tools/call\",\"params\":{\"name\":\"gemini-chat\",\"arguments\":{\"message\":\"What is consciousness?\",\"context\":\"consciousness\"}}}' | node gemini-server.js

📊 Desempenho e Limites

Limites de Tamanho de Arquivo

  • Imagens: 20MB (JPEG, PNG, WebP, HEIC, HEIF, BMP, GIF)
  • Áudio: 20MB (MP3, WAV, FLAC, AAC, OGG, WEBM, M4A)
  • Vídeo: 100MB (MP4, MOV, AVI, WEBM, MKV, FLV)

Limites de Taxa da API

  • Segue os limites de taxa da API Google Gemini
  • Tratamento de erros integrado e lógica de nova tentativa
  • Degradação graciosa quando a cota é excedida

🏗️ Análise Aprofundada da Arquitetura

Design Modular

src/
├── server.js              # MCP protocol handler
├── config.js              # Configuration management
├── tools/                 # Tool implementations
│   ├── index.js           # Tool registry & dispatcher
│   ├── base-tool.js       # Abstract base class
│   ├── chat.js            # Chat tool
│   ├── image-generation.js # Image generation tool
│   ├── image-editing.js   # Image editing tool
│   ├── audio-transcription.js # Audio transcription tool
│   ├── code-execution.js  # Code execution tool
│   ├── video-analysis.js  # Video analysis tool
│   └── image-analysis.js  # Image analysis tool
├── intelligence/          # Smart Tool Intelligence
│   ├── index.js           # Intelligence coordinator
│   ├── context-detector.js # Context recognition
│   ├── prompt-enhancer.js # Prompt enhancement
│   └── preference-store.js # Pattern storage
├── gemini/               # Gemini API integration
│   ├── gemini-service.js # API service layer
│   └── request-handler.js # Request formatting
└── utils/                # Utilities
    ├── logger.js         # Logging system
    └── file-utils.js     # File operations

Fluxo do Sistema de Inteligência

  1. Solicitação Recebida → Método execute da ferramenta chamado
  2. Detecção de Contexto → Analisar prompt em busca de pistas de contexto
  3. Recuperação de Padrões → Obter padrões aprendidos relevantes
  4. Aprimoramento de Prompt → Aplicar melhorias específicas do contexto
  5. Execução da API → Enviar prompt aprimorado para o Gemini
  6. Armazenamento de Padrões → Armazenar padrão de interação bem-sucedido
  7. Retorno da Resposta → Retornar resultado aprimorado ao usuário

🔧 Personalização

Adicionando Novos Contextos

// In src/intelligence/context-detector.js
isMyCustomContext(prompt) {
  const patterns = [
    /custom pattern 1/i,
    /custom pattern 2/i
  ];
  return patterns.some(pattern => pattern.test(prompt));
}

// In src/intelligence/prompt-enhancer.js
getEnhancementForContext(context) {
  const enhancements = {
    'my_custom_context': 'Apply my custom enhancement instructions here.',
    // ... other contexts
  };
  return enhancements[context] || enhancements.general;
}

Adicionando Novas Ferramentas

  1. Crie o arquivo da ferramenta em src/tools/my-new-tool.js
  2. Estenda a classe BaseTool
  3. Implemente o método execute com integração de inteligência
  4. Registre em src/tools/index.js
// src/tools/my-new-tool.js
class MyNewTool extends BaseTool {
  constructor(geminiService, intelligenceSystem) {
    super('my-new-tool', 'Description of my tool', geminiService, intelligenceSystem);
  }
  
  async execute(args) {
    // Use intelligence system for enhancement
    const context = args.context || this.detectContext(args.input);
    const enhancedPrompt = await this.enhancePrompt(args.input, context);
    
    // Your tool logic here
    const result = await this.geminiService.someMethod(enhancedPrompt);
    
    // Store successful pattern  
    await this.storeSuccessfulPattern(args.input, enhancedPrompt, context);
    
    return result;
  }
}

🐛 Solução de Problemas

Problemas Comuns

Erro "Missing GEMINI_API_KEY"

# Ensure .env file exists and contains your API key
cp .env.example .env
# Edit .env and add: GEMINI_API_KEY=your_key_here

Erros "File not found"

# Ensure file paths are absolute and files exist
# Check file permissions and formats

Sistema de Inteligência Não Está Aprendendo

# Check data directory permissions
ls -la data/
# Verify tool-preferences.json is writable

Modo de Depuração

DEBUG=true npm start
# or
npm run dev

Localização dos Logs

  • Logs do aplicativo: Saída do console
  • Padrões de inteligência: ./data/tool-preferences.json
  • Imagens geradas: $OUTPUT_DIR (padrão: ~/Claude/gemini-images)

🤝 Contribuindo

Aceitamos contribuições! Este projeto representa um novo paradigma no desenvolvimento de servidores MCP.

Configuração de Desenvolvimento

git clone https://github.com/Garblesnarff/gemini-mcp-server.git
cd gemini-mcp-server
npm install
npm run dev

Áreas para Contribuição

  • Novos Contextos - Adicione suporte para domínios especializados
  • Padrões Aprimorados - Melhore os algoritmos de aprendizado
  • Novas Ferramentas - Expanda as capacidades do Gemini AI
  • Desempenho - Otimize o desempenho do sistema de inteligência
  • Documentação - Melhore guias e exemplos

📈 Roteiro

  • Suporte Multilíngue - Detecção de contexto em vários idiomas
  • Análises Avançadas - Padrões de uso e métricas de desempenho
  • Encadeamento de Ferramentas - Coordenação inteligente entre múltiplas ferramentas
  • Modelos Personalizados - Suporte para modelos Gemini ajustados
  • Aprendizado Colaborativo - Compartilhe padrões anonimizados entre instâncias
  • Interface Visual - Configuração e monitoramento baseados na web

🌟 Por Que Isso Importa

Este é o primeiro servidor MCP que realmente aprende e se adapta. Os servidores MCP tradicionais são estáticos - eles fazem a mesma coisa todas as vezes. Nosso sistema Smart Tool Intelligence representa uma mudança de paradigma em direção a ferramentas de IA que se tornam mais úteis com o tempo.

Para Usuários: Melhores resultados com menos esforço à medida que o sistema aprende suas preferências. Para Desenvolvedores: Um modelo para construir ferramentas de IA verdadeiramente inteligentes e adaptativas. Para o Ecossistema MCP: Um novo padrão para o que os servidores MCP podem se tornar.

📄 Licença

Este projeto está licenciado sob a Licença MIT - sinta-se à vontade para usar, modificar e distribuir.

🙏 Agradecimentos

Construído com:

  • Google Gemini AI - Alimentando as capacidades principais de IA
  • Model Context Protocol - Permitindo integração perfeita
  • Node.js & NPM - Runtime e gerenciamento de pacotes
  • Claude & Rob - Colaboração humano-IA em sua melhor forma

Pronto para experimentar o futuro dos servidores MCP? Comece agora e veja suas ferramentas de IA ficarem mais inteligentes a cada interação! 🚀