@@ -17,6 +17,7 @@ export interface ContextMcpConfig {
1717 // Ollama configuration
1818 ollamaModel ?: string ;
1919 ollamaHost ?: string ;
20+ ollamaDimension ?: number ;
2021 // Vector database configuration
2122 milvusAddress ?: string ; // Optional, can be auto-resolved from token
2223 milvusToken ?: string ;
@@ -108,11 +109,27 @@ export function getEmbeddingModelForProvider(provider: string): string {
108109 }
109110}
110111
112+ function getPositiveIntegerFromEnv ( name : string ) : number | undefined {
113+ const rawValue = envManager . get ( name ) ;
114+ if ( ! rawValue ) {
115+ return undefined ;
116+ }
117+
118+ const parsedValue = Number ( rawValue ) ;
119+ if ( Number . isInteger ( parsedValue ) && parsedValue > 0 ) {
120+ return parsedValue ;
121+ }
122+
123+ console . warn ( `[DEBUG] ⚠️ Ignoring invalid ${ name } : ${ rawValue } . Expected a positive integer.` ) ;
124+ return undefined ;
125+ }
126+
111127export function createMcpConfig ( ) : ContextMcpConfig {
112128 // Debug: Print all environment variables related to Context
113129 console . log ( `[DEBUG] 🔍 Environment Variables Debug:` ) ;
114130 console . log ( `[DEBUG] EMBEDDING_PROVIDER: ${ envManager . get ( 'EMBEDDING_PROVIDER' ) || 'NOT SET' } ` ) ;
115131 console . log ( `[DEBUG] EMBEDDING_MODEL: ${ envManager . get ( 'EMBEDDING_MODEL' ) || 'NOT SET' } ` ) ;
132+ console . log ( `[DEBUG] EMBEDDING_DIMENSION: ${ envManager . get ( 'EMBEDDING_DIMENSION' ) || 'NOT SET' } ` ) ;
116133 console . log ( `[DEBUG] OLLAMA_MODEL: ${ envManager . get ( 'OLLAMA_MODEL' ) || 'NOT SET' } ` ) ;
117134 console . log ( `[DEBUG] GEMINI_API_KEY: ${ envManager . get ( 'GEMINI_API_KEY' ) ? 'SET (length: ' + envManager . get ( 'GEMINI_API_KEY' ) ! . length + ')' : 'NOT SET' } ` ) ;
118135 console . log ( `[DEBUG] OPENAI_API_KEY: ${ envManager . get ( 'OPENAI_API_KEY' ) ? 'SET (length: ' + envManager . get ( 'OPENAI_API_KEY' ) ! . length + ')' : 'NOT SET' } ` ) ;
@@ -137,6 +154,7 @@ export function createMcpConfig(): ContextMcpConfig {
137154 // Ollama configuration
138155 ollamaModel : envManager . get ( 'OLLAMA_MODEL' ) ,
139156 ollamaHost : envManager . get ( 'OLLAMA_HOST' ) ,
157+ ollamaDimension : getPositiveIntegerFromEnv ( 'EMBEDDING_DIMENSION' ) ,
140158 // Vector database configuration - address can be auto-resolved from token
141159 milvusAddress : envManager . get ( 'MILVUS_ADDRESS' ) , // Optional, can be resolved from token
142160 milvusToken : envManager . get ( 'MILVUS_TOKEN' ) ,
@@ -181,6 +199,9 @@ export function logConfigurationSummary(config: ContextMcpConfig): void {
181199 case 'Ollama' :
182200 console . log ( `[MCP] Ollama Host: ${ config . ollamaHost || 'http://127.0.0.1:11434' } ` ) ;
183201 console . log ( `[MCP] Ollama Model: ${ config . embeddingModel } ` ) ;
202+ if ( config . ollamaDimension ) {
203+ console . log ( `[MCP] Ollama Embedding Dimension: ${ config . ollamaDimension } ` ) ;
204+ }
184205 break ;
185206 }
186207
@@ -203,6 +224,7 @@ Environment Variables:
203224 Embedding Provider Configuration:
204225 EMBEDDING_PROVIDER Embedding provider: OpenAI, VoyageAI, Gemini, Ollama, OpenRouter (default: OpenAI)
205226 EMBEDDING_MODEL Embedding model name (works for all providers)
227+ EMBEDDING_DIMENSION Optional embedding dimension override for Ollama
206228
207229 Provider-specific API Keys:
208230 OPENAI_API_KEY OpenAI API key (required for OpenAI provider)
0 commit comments