Skip to main content
Glama

Groq MCP Server

by AyrtonFelipe
MIT License
1
README.md9.9 kB
# 🚀 Groq MCP Server Um servidor **Model Context Protocol (MCP)** inteligente e completo, projetado para integrar sua aplicação com a poderosa API Groq, oferecendo acesso otimizado aos modelos de IA mais rápidos do mundo. Atua como uma ponte inteligente, permitindo que clientes compatíveis (como o Claude Desktop) utilizem os diversos modelos da Groq para completação de texto, transcrição de áudio, análise de visão e processamento em lote. ## ✨ Características Principais ### 🧠 **Modelos Suportados** Este servidor está configurado para gerenciar e rotear requisições para uma ampla gama de modelos Groq, incluindo: * **Completamento de Texto (LLMs):** * `llama-3.1-8b-instant` * `llama-3.3-70b-versatile` * `deepseek-r1-distill-llama-70b` * `qwen/qwen3-32b` (e `qwen-qwq-32b` para matemática) * `compound-beta`, `compound-beta-mini` * `allam-2-7b`, `gemma2-9b-it`, `llama3-70b-8192`, `llama3-8b-8192` * `mistral-saba-24b` * **Segurança (Prompt/Content Guard):** * `meta-llama/llama-guard-4-12b` * `meta-llama/llama-prompt-guard-2-22m`, `meta-llama/llama-prompt-guard-2-86m` * **Visão (Multimodal):** * `meta-llama/llama-4-maverick-17b-128e-instruct` * `meta-llama/llama-4-scout-17b-16e-instruct` * **Áudio (Speech-to-Text):** * `whisper-large-v3`, `whisper-large-v3-turbo` * `distil-whisper-large-v3-en` * **Texto para Fala (Text-to-Speech):** * `playai-tts`, `playai-tts-arabic` ### ⚡ **Recursos Avançados** * **Roteamento Inteligente (ModelRouter)**: Seleção dinâmica do modelo ideal com base em prioridades (velocidade, qualidade, custo, raciocínio, matemática, multilíngue), complexidade do prompt e capacidades específicas (visão, áudio). * **Rate Limiting Controlado**: Gerenciamento inteligente de limites de requisições e tokens por minuto (RPM/TPM) configuráveis para cada modelo, otimizando o uso da API. * **Cache Otimizado**: Sistema de cache em memória com TTL (Time-To-Live) configurável para respostas de LLMs, reduzindo latência e chamadas redundantes à API. * **Métricas Detalhadas**: Coleta abrangente de métricas de uso, desempenho (latência, throughput), erros e distribuição de modelos para análise e monitoramento. * **Tratamento de Erros Robusto**: Sistema centralizado de tratamento de erros com capacidade de re-tentativas automáticas (retry) para requisições de API, aumentando a resiliência. * **Processamento em Lote**: Suporte à ferramenta de processamento em lote da Groq, permitindo o envio eficiente de grandes volumes de requisições com economia de custo. * **Logging Estruturado e Depuração**: Sistema de logs profissional com Winston, que gera logs estruturados e direciona a saída colorida para `stderr` em desenvolvimento, facilitando a depuração e o monitoramento. ## 🛠️ Instalação ### Pré-requisitos * **Node.js**: Versão `v20.17.0` ou superior, ou `v22.9.0` ou superior. Recomenda-se usar [NVM](https://github.com/nvm-sh/nvm) (ou [nvm-windows](https://github.com/coreybutler/nvm-windows)) para gerenciar as versões do Node.js. * **npm**: Gerenciador de pacotes Node.js (geralmente incluído com o Node.js e compatível com as versões recomendadas). * **TypeScript**: Versão 5 ou superior. * **Chave API do Groq**: Necessária para autenticar as requisições à API Groq. Obtenha a sua em [https://console.groq.com/keys](https://console.groq.com/keys). ### Instalação Rápida 1. **Clone o repositório:** ```bash git clone [https://github.com/AyrtonFelipe/GroqCloud-MCP_server.git] cd groq-mcp-server ``` 2. **Instale as dependências do projeto:** ```bash npm install # Instale também a biblioteca para conversão de schemas Zod para JSON Schema npm install zod-to-json-schema ``` 3. **Configure as variáveis de ambiente:** Crie um arquivo `.env` na raiz do projeto (se não existir, você pode copiar do `.env.example` se fornecido): ```bash cp .env.example .env ``` Edite o arquivo `.env` com sua chave API do Groq: ``` GROQ_API_KEY="sua_chave_api_groq_aqui" ``` *(Opcional: configure outras variáveis como `LOG_LEVEL` conforme necessário.)* 4. **Atualize `src/config/models.json`:** Este arquivo define os modelos Groq que seu servidor irá usar e expor. * **Remova** entradas de modelos que não estão mais disponíveis ou que não se deseja usar (verifique as listas mais recentes no console Groq). * **Adicione** todos os modelos da lista de "Modelos Suportados" (acima) que ainda não estão presentes. Para cada novo modelo, você deve **preencher todas as suas propriedades** (nome, descrição, capacidades, `costPer1kTokens`, `rateLimits`, etc.) consultando a [documentação oficial da Groq](https://console.groq.com/docs/) para obter os valores precisos. * **Ajuste as seções `modelSelectionRules` e `complexityThresholds`** em `models.json` para refletir os modelos que você tem e a lógica de seleção desejada (ex: para prioridades de `reasoning`, `mathematical`, `multilingual`). 5. **Atualize `src/config/constants.ts`:** * Sincronize a constante `RATE_LIMITS` com os modelos presentes no seu `models.json`. Certifique-se de que cada modelo em `models.json` tenha uma entrada correspondente em `RATE_LIMITS` com `rpm` (requests per minute) e `tpm` (tokens per minute) precisos (consulte a documentação da Groq para os valores mais recentes). * Atualize também os `z.enum` nos arquivos das suas ferramentas (`src/tools/*.ts`) para incluir os novos modelos que você deseja expor ao cliente. 6. **Compile o projeto:** ```bash npm run build ``` 7. **Inicie o servidor:** ```bash npm start ``` Seu servidor estará ativo e aguardando conexões via `stdin/stdout`. ## 🤝 Uso com o Claude Desktop Uma vez que seu servidor MCP esteja rodando localmente, o Claude Desktop deve ser capaz de descobri-lo e usar suas ferramentas: 1. **Inicie o Claude Desktop.** 2. **Verifique as Ferramentas:** As ferramentas Groq (`groq_text_completion`, `groq_audio_transcription`, `groq_vision_analysis`, `groq_batch_processing`) devem aparecer ativadas na interface do Claude Desktop (geralmente no menu de ferramentas ou integração). 3. **Interaja:** Comece a conversar com o Claude e peça para ele usar as ferramentas. Exemplos: * `Use groq_text_completion para gerar um texto sobre as capacidades do Groq para IA.` * `Com a ferramenta groq_text_completion, analise os dados financeiros { dados: [100, 250, 80, 400] } e use o modelo: llama-3.3-70b-versatile` * `groq_audio_transcription: transcreva o arquivo 'caminho/para/seu/audio.mp3' usando 'whisper-large-v3-turbo'.` * `groq_vision_analysis: descreva a imagem em 'https://example.com/sua-imagem.jpg' usando 'meta-llama/llama-4-scout-17b-16e-instruct'.` ## 📊 Estrutura do Projeto ```` . ├── src/ │ ├── config/ │ │ ├── constants.ts \# Constantes do sistema (RATE\_LIMITS, API\_ENDPOINTS, etc.) │ │ └── models.json \# Definições detalhadas dos modelos Groq │ ├── tools/ │ │ ├── audio-transcription.ts \# Ferramenta para transcrição de áudio │ │ ├── batch-processing.ts \# Ferramenta para processamento em lote │ │ ├── model-router.ts \# Lógica central para seleção de modelos │ │ ├── text-completion.ts \# Ferramenta para completação de texto │ │ └── vision-analysis.ts \# Ferramenta para análise de visão │ │ └── ... (novas ferramentas como Text-to-Speech, se implementadas) │ ├── types/ │ │ └── groq-types.ts \# Definições de tipos TypeScript para modelos Groq │ ├── utils/ │ │ ├── cache-manager.ts \# Gerenciador de cache │ │ ├── error-handler.ts \# Tratamento centralizado de erros e retries │ │ ├── logger.ts \# Configuração de logging com Winston │ │ ├── metrics-tracker.ts \# Coleta de métricas de uso e desempenho │ │ └── rate-limiter.ts \# Implementação de rate limiting │ └── server.ts \# Ponto de entrada principal do servidor MCP ├── dist/ \# Saída da compilação TypeScript ├── logs/ \# Logs da aplicação ├── .env \# Variáveis de ambiente (ex: GROQ\_API\_KEY) ├── .gitignore \# Arquivos e pastas a serem ignorados pelo Git ├── package.json \# Metadados e dependências do projeto ├── tsconfig.json \# Configurações do compilador TypeScript └── README.md \# Este arquivo ``` ## 📈 Próximos Passos (Escalabilidade para Web) Este projeto está configurado para uso local com `StdioServerTransport`. Para escalar para um ambiente de servidor web (e.g., produção), as seguintes considerações seriam cruciais: * **Transporte de Comunicação:** Migrar de `StdioServerTransport` para um transporte web como **Server-Sent Events (SSE)** ou WebSockets para comunicação com clientes web. * **Mecanismo de Start:** Adaptar o ciclo de vida do servidor para um framework web (e.g., Express, Fastify) que escuta em portas HTTP/HTTPS. * **Protocolagem:** Implementar rotas HTTP que mapeiam para chamadas JSON-RPC do MCP. * **Segurança:** Adicionar autenticação (e.g., JWT), autorização, HTTPS, e configuração de CORS para proteger o servidor. * **Escalabilidade:** Implementar estratégias para lidar com múltiplos clientes e alto tráfego (e.g., load balancing, clusters Node.js, caches distribuídos como Redis para `CacheManager` e `RateLimiter`). --- **Desenvolvido por Ayrton Felipe.**

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/AyrtonFelipe/GroqCloud-MCP_server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server