Skip to main content
Glama

Agent MCP

GeminiEmbeddingProvider.ts2.7 kB
// Gemini Embedding Provider // Users should implement this provider to use Google Gemini embeddings import { BaseEmbeddingProvider } from '../BaseEmbeddingProvider.js'; import { PROVIDER_CONFIG } from '../../../core/config.js'; /** * Gemini Embedding Provider Implementation * Uses Google's Gemini AI for embeddings * * To implement: * 1. Get API key from https://makersuite.google.com/app/apikey * 2. Set GEMINI_API_KEY in environment * 3. Implement generateEmbeddingsInternal method */ export class GeminiEmbeddingProvider extends BaseEmbeddingProvider { protected getProviderType(): string { return 'gemini'; } protected getDefaultModel(): string { return PROVIDER_CONFIG.GEMINI_MODEL || 'text-embedding-004'; } protected getDefaultMaxBatchSize(): number { return 100; } protected isLocalProvider(): boolean { return false; } async isAvailable(): Promise<boolean> { // Check if Gemini API key is configured if (!PROVIDER_CONFIG.GEMINI_API_KEY) { console.warn('Gemini API key not configured'); return false; } // TODO: Implement actual availability check return true; } protected async generateEmbeddingsInternal(texts: string[]): Promise<number[][]> { // TODO: Implement Gemini embedding generation // Example implementation: /* const baseUrl = PROVIDER_CONFIG.GEMINI_BASE_URL || 'https://generativelanguage.googleapis.com'; const apiKey = PROVIDER_CONFIG.GEMINI_API_KEY; const embeddings: number[][] = []; // Process texts in parallel (Gemini supports batch requests) const promises = texts.map(async (text) => { const response = await fetch( `${baseUrl}/v1beta/models/${this.getModel()}:embedContent?key=${apiKey}`, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ content: { parts: [{ text }] } }) } ); if (!response.ok) { const error = await response.text(); throw new Error(`Gemini error: ${response.status} - ${error}`); } const data = await response.json(); return data.embedding.values; }); const results = await Promise.all(promises); return results; */ throw new Error('Gemini provider not implemented. Please implement generateEmbeddingsInternal method.'); } estimateCost(tokenCount: number): number { // Gemini pricing (if applicable - currently free tier available) return 0; // Update with actual pricing when available } } console.log('✅ Gemini embedding provider template loaded');

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/rinadelph/Agent-MCP'

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