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
- Obtenha sua chave de API Gemini no Google AI Studio
- Copie o modelo de ambiente:
cp .env.example .env - Edite
.enve 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 geradacontext(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 editadoedit_instruction(string, obrigatório) - Descrição das alterações desejadascontext(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 perguntacontext(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ãocontext(string, opcional) - Use "verbatim" para transcrição exata palavra por palavrapreserve_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 executadocontext(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:
- Detecta Contexto - Reconhece se você está fazendo pesquisa de consciência, codificação, depuração, etc.
- Aprimora Prompts - Adiciona instruções relevantes com base em padrões aprendidos
- Aprende Padrões - Armazena padrões de interação bem-sucedidos para uso futuro
- 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 detalhadascode- Inclui exemplos práticos, código funcional, melhores práticasdebugging- Foca na análise de causa raiz e correções específicasgeneral- Aplica respostas abrangentes e estruturadasverbatim- 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ênciasrc/intelligence/context-detector.js- Lógica de reconhecimento de contextosrc/intelligence/prompt-enhancer.js- Aplicação de aprimoramentosrc/intelligence/preference-store.js- Armazenamento e recuperação de padrõessrc/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
- Solicitação Recebida → Método execute da ferramenta chamado
- Detecção de Contexto → Analisar prompt em busca de pistas de contexto
- Recuperação de Padrões → Obter padrões aprendidos relevantes
- Aprimoramento de Prompt → Aplicar melhorias específicas do contexto
- Execução da API → Enviar prompt aprimorado para o Gemini
- Armazenamento de Padrões → Armazenar padrão de interação bem-sucedido
- 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
- Crie o arquivo da ferramenta em
src/tools/my-new-tool.js - Estenda a classe
BaseTool - Implemente o método
executecom integração de inteligência - 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! 🚀