io.github.alex-feel/mcp-context-server
An MCP server that provides persistent multimodal context storage for LLM agents.
{
"mcpServers": {
"mcp-context-server": {
"command": "uvx",
"args": [
"mcp-context-server"
],
"env": {
"LOG_LEVEL": "<log_level>",
"STORAGE_BACKEND": "<storage_backend>",
"MAX_IMAGE_SIZE_MB": "<max_image_size_mb>",
"MAX_TOTAL_SIZE_MB": "<max_total_size_mb>",
"DB_PATH": "<db_path>",
"POOL_MAX_READERS": "<pool_max_readers>",
"POOL_MAX_WRITERS": "<pool_max_writers>",
"POOL_CONNECTION_TIMEOUT_S": "<pool_connection_timeout_s>",
"POOL_IDLE_TIMEOUT_S": "<pool_idle_timeout_s>",
"POOL_HEALTH_CHECK_INTERVAL_S": "<pool_health_check_interval_s>",
"RETRY_MAX_RETRIES": "<retry_max_retries>",
"RETRY_BASE_DELAY_S": "<retry_base_delay_s>",
"RETRY_MAX_DELAY_S": "<retry_max_delay_s>",
"RETRY_JITTER": "<retry_jitter>",
"RETRY_BACKOFF_FACTOR": "<retry_backoff_factor>",
"SQLITE_FOREIGN_KEYS": "<sqlite_foreign_keys>",
"SQLITE_JOURNAL_MODE": "<sqlite_journal_mode>",
"SQLITE_SYNCHRONOUS": "<sqlite_synchronous>",
"SQLITE_TEMP_STORE": "<sqlite_temp_store>",
"SQLITE_MMAP_SIZE": "<sqlite_mmap_size>",
"SQLITE_CACHE_SIZE": "<sqlite_cache_size>",
"SQLITE_PAGE_SIZE": "<sqlite_page_size>",
"SQLITE_WAL_AUTOCHECKPOINT": "<sqlite_wal_autocheckpoint>",
"SQLITE_BUSY_TIMEOUT_MS": "<sqlite_busy_timeout_ms>",
"SQLITE_WAL_CHECKPOINT": "<sqlite_wal_checkpoint>",
"SHUTDOWN_TIMEOUT_S": "<shutdown_timeout_s>",
"SHUTDOWN_TIMEOUT_TEST_S": "<shutdown_timeout_test_s>",
"QUEUE_TIMEOUT_S": "<queue_timeout_s>",
"QUEUE_TIMEOUT_TEST_S": "<queue_timeout_test_s>",
"CIRCUIT_BREAKER_FAILURE_THRESHOLD": "<circuit_breaker_failure_threshold>",
"CIRCUIT_BREAKER_RECOVERY_TIMEOUT_S": "<circuit_breaker_recovery_timeout_s>",
"CIRCUIT_BREAKER_HALF_OPEN_MAX_CALLS": "<circuit_breaker_half_open_max_calls>",
"POSTGRESQL_CONNECTION_STRING": "<your-postgresql_connection_string>",
"POSTGRESQL_HOST": "<postgresql_host>",
"POSTGRESQL_PORT": "<postgresql_port>",
"POSTGRESQL_USER": "<postgresql_user>",
"POSTGRESQL_PASSWORD": "<your-postgresql_password>",
"POSTGRESQL_DATABASE": "<postgresql_database>",
"POSTGRESQL_POOL_MIN": "<postgresql_pool_min>",
"POSTGRESQL_POOL_MAX": "<postgresql_pool_max>",
"POSTGRESQL_POOL_TIMEOUT_S": "<postgresql_pool_timeout_s>",
"POSTGRESQL_COMMAND_TIMEOUT_S": "<postgresql_command_timeout_s>",
"POSTGRESQL_MIGRATION_TIMEOUT_S": "<postgresql_migration_timeout_s>",
"POSTGRESQL_MAX_INACTIVE_LIFETIME_S": "<postgresql_max_inactive_lifetime_s>",
"POSTGRESQL_MAX_QUERIES": "<postgresql_max_queries>",
"POSTGRESQL_TCP_KEEPALIVES_IDLE_S": "<postgresql_tcp_keepalives_idle_s>",
"POSTGRESQL_TCP_KEEPALIVES_INTERVAL_S": "<postgresql_tcp_keepalives_interval_s>",
"POSTGRESQL_TCP_KEEPALIVES_COUNT": "<postgresql_tcp_keepalives_count>",
"POSTGRESQL_STATEMENT_CACHE_SIZE": "<postgresql_statement_cache_size>",
"POSTGRESQL_MAX_CACHED_STATEMENT_LIFETIME_S": "<postgresql_max_cached_statement_lifetime_s>",
"POSTGRESQL_MAX_CACHEABLE_STATEMENT_SIZE": "<postgresql_max_cacheable_statement_size>",
"POSTGRESQL_SSL_MODE": "<postgresql_ssl_mode>",
"POSTGRESQL_SCHEMA": "<postgresql_schema>",
"ENABLE_SEMANTIC_SEARCH": "<enable_semantic_search>",
"ENABLE_EMBEDDING_GENERATION": "<enable_embedding_generation>",
"OLLAMA_HOST": "<ollama_host>",
"OLLAMA_AUTO_PULL": "<ollama_auto_pull>",
"OLLAMA_PULL_TIMEOUT_S": "<ollama_pull_timeout_s>",
"EMBEDDING_OLLAMA_TRUNCATE": "<embedding_ollama_truncate>",
"EMBEDDING_OLLAMA_NUM_CTX": "<embedding_ollama_num_ctx>",
"EMBEDDING_MODEL": "<embedding_model>",
"EMBEDDING_DIM": "<embedding_dim>",
"EMBEDDING_TIMEOUT_S": "<embedding_timeout_s>",
"EMBEDDING_RETRY_MAX_ATTEMPTS": "<embedding_retry_max_attempts>",
"EMBEDDING_RETRY_BASE_DELAY_S": "<embedding_retry_base_delay_s>",
"EMBEDDING_MAX_CONCURRENT": "<embedding_max_concurrent>",
"ENABLE_SUMMARY_GENERATION": "<enable_summary_generation>",
"SUMMARY_PROVIDER": "<summary_provider>",
"SUMMARY_MODEL": "<summary_model>",
"SUMMARY_MAX_TOKENS": "<summary_max_tokens>",
"SUMMARY_TIMEOUT_S": "<summary_timeout_s>",
"SUMMARY_RETRY_MAX_ATTEMPTS": "<summary_retry_max_attempts>",
"SUMMARY_RETRY_BASE_DELAY_S": "<summary_retry_base_delay_s>",
"SUMMARY_MAX_CONCURRENT": "<summary_max_concurrent>",
"SUMMARY_PROMPT": "<summary_prompt>",
"SUMMARY_MIN_CONTENT_LENGTH": "<summary_min_content_length>",
"SUMMARY_OLLAMA_NUM_CTX": "<summary_ollama_num_ctx>",
"SUMMARY_OLLAMA_TRUNCATE": "<summary_ollama_truncate>",
"SUMMARY_OPENAI_REASONING_EFFORT": "<summary_openai_reasoning_effort>",
"SUMMARY_ANTHROPIC_EFFORT": "<summary_anthropic_effort>",
"ANTHROPIC_API_KEY": "<your-anthropic_api_key>",
"ENABLE_FTS": "<enable_fts>",
"FTS_LANGUAGE": "<fts_language>",
"FTS_RERANK_WINDOW_SIZE": "<fts_rerank_window_size>",
"FTS_RERANK_GAP_MERGE": "<fts_rerank_gap_merge>",
"ENABLE_HYBRID_SEARCH": "<enable_hybrid_search>",
"HYBRID_RRF_K": "<hybrid_rrf_k>",
"HYBRID_RRF_OVERFETCH": "<hybrid_rrf_overfetch>",
"HYBRID_FTS_OR_THRESHOLD": "<hybrid_fts_or_threshold>",
"SEARCH_DEFAULT_SORT_BY": "<search_default_sort_by>",
"SEARCH_TRUNCATION_LENGTH": "<search_truncation_length>",
"ENABLE_CHUNKING": "<enable_chunking>",
"CHUNK_SIZE": "<chunk_size>",
"CHUNK_OVERLAP": "<chunk_overlap>",
"CHUNK_AGGREGATION": "<chunk_aggregation>",
"CHUNK_DEDUP_OVERFETCH": "<chunk_dedup_overfetch>",
"ENABLE_RERANKING": "<enable_reranking>",
"RERANKING_PROVIDER": "<reranking_provider>",
"RERANKING_MODEL": "<reranking_model>",
"RERANKING_MAX_LENGTH": "<reranking_max_length>",
"RERANKING_OVERFETCH": "<reranking_overfetch>",
"RERANKING_CACHE_DIR": "<reranking_cache_dir>",
"RERANKING_CHARS_PER_TOKEN": "<reranking_chars_per_token>",
"RERANKING_INTRA_OP_THREADS": "<reranking_intra_op_threads>",
"RERANKING_CPU_MEM_ARENA": "<reranking_cpu_mem_arena>",
"RERANKING_BATCH_SIZE": "<reranking_batch_size>",
"EMBEDDING_PROVIDER": "<embedding_provider>",
"OPENAI_API_KEY": "<your-openai_api_key>",
"OPENAI_API_BASE": "<openai_api_base>",
"OPENAI_ORGANIZATION": "<openai_organization>",
"AZURE_OPENAI_API_KEY": "<your-azure_openai_api_key>",
"AZURE_OPENAI_ENDPOINT": "<azure_openai_endpoint>",
"AZURE_OPENAI_EMBEDDING_DEPLOYMENT_NAME": "<azure_openai_embedding_deployment_name>",
"AZURE_OPENAI_API_VERSION": "<azure_openai_api_version>",
"HUGGINGFACEHUB_API_TOKEN": "<your-huggingfacehub_api_token>",
"VOYAGE_API_KEY": "<your-voyage_api_key>",
"VOYAGE_TRUNCATION": "<voyage_truncation>",
"VOYAGE_BATCH_SIZE": "<voyage_batch_size>",
"LANGSMITH_TRACING": "<langsmith_tracing>",
"LANGSMITH_API_KEY": "<your-langsmith_api_key>",
"LANGSMITH_PROJECT": "<langsmith_project>",
"LANGSMITH_ENDPOINT": "<langsmith_endpoint>",
"METADATA_INDEXED_FIELDS": "<metadata_indexed_fields>",
"METADATA_INDEX_SYNC_MODE": "<metadata_index_sync_mode>",
"MCP_TRANSPORT": "<mcp_transport>",
"FASTMCP_HOST": "<fastmcp_host>",
"FASTMCP_PORT": "<fastmcp_port>",
"FASTMCP_STATELESS_HTTP": "<fastmcp_stateless_http>",
"DISABLED_TOOLS": "<disabled_tools>",
"MCP_AUTH_TOKEN": "<your-mcp_auth_token>",
"MCP_AUTH_CLIENT_ID": "<mcp_auth_client_id>",
"MCP_AUTH_PROVIDER": "<mcp_auth_provider>",
"MCP_SERVER_INSTRUCTIONS": "<mcp_server_instructions>"
}
}
}
}{
"mcpServers": {
"mcp-context-server": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"ghcr.io/alex-feel/mcp-context-server:2.2.2"
],
"env": {
"LOG_LEVEL": "<log_level>",
"STORAGE_BACKEND": "<storage_backend>",
"MAX_IMAGE_SIZE_MB": "<max_image_size_mb>",
"MAX_TOTAL_SIZE_MB": "<max_total_size_mb>",
"DB_PATH": "<db_path>",
"POOL_MAX_READERS": "<pool_max_readers>",
"POOL_MAX_WRITERS": "<pool_max_writers>",
"POOL_CONNECTION_TIMEOUT_S": "<pool_connection_timeout_s>",
"POOL_IDLE_TIMEOUT_S": "<pool_idle_timeout_s>",
"POOL_HEALTH_CHECK_INTERVAL_S": "<pool_health_check_interval_s>",
"RETRY_MAX_RETRIES": "<retry_max_retries>",
"RETRY_BASE_DELAY_S": "<retry_base_delay_s>",
"RETRY_MAX_DELAY_S": "<retry_max_delay_s>",
"RETRY_JITTER": "<retry_jitter>",
"RETRY_BACKOFF_FACTOR": "<retry_backoff_factor>",
"SQLITE_FOREIGN_KEYS": "<sqlite_foreign_keys>",
"SQLITE_JOURNAL_MODE": "<sqlite_journal_mode>",
"SQLITE_SYNCHRONOUS": "<sqlite_synchronous>",
"SQLITE_TEMP_STORE": "<sqlite_temp_store>",
"SQLITE_MMAP_SIZE": "<sqlite_mmap_size>",
"SQLITE_CACHE_SIZE": "<sqlite_cache_size>",
"SQLITE_PAGE_SIZE": "<sqlite_page_size>",
"SQLITE_WAL_AUTOCHECKPOINT": "<sqlite_wal_autocheckpoint>",
"SQLITE_BUSY_TIMEOUT_MS": "<sqlite_busy_timeout_ms>",
"SQLITE_WAL_CHECKPOINT": "<sqlite_wal_checkpoint>",
"SHUTDOWN_TIMEOUT_S": "<shutdown_timeout_s>",
"SHUTDOWN_TIMEOUT_TEST_S": "<shutdown_timeout_test_s>",
"QUEUE_TIMEOUT_S": "<queue_timeout_s>",
"QUEUE_TIMEOUT_TEST_S": "<queue_timeout_test_s>",
"CIRCUIT_BREAKER_FAILURE_THRESHOLD": "<circuit_breaker_failure_threshold>",
"CIRCUIT_BREAKER_RECOVERY_TIMEOUT_S": "<circuit_breaker_recovery_timeout_s>",
"CIRCUIT_BREAKER_HALF_OPEN_MAX_CALLS": "<circuit_breaker_half_open_max_calls>",
"POSTGRESQL_CONNECTION_STRING": "<your-postgresql_connection_string>",
"POSTGRESQL_HOST": "<postgresql_host>",
"POSTGRESQL_PORT": "<postgresql_port>",
"POSTGRESQL_USER": "<postgresql_user>",
"POSTGRESQL_PASSWORD": "<your-postgresql_password>",
"POSTGRESQL_DATABASE": "<postgresql_database>",
"POSTGRESQL_POOL_MIN": "<postgresql_pool_min>",
"POSTGRESQL_POOL_MAX": "<postgresql_pool_max>",
"POSTGRESQL_POOL_TIMEOUT_S": "<postgresql_pool_timeout_s>",
"POSTGRESQL_COMMAND_TIMEOUT_S": "<postgresql_command_timeout_s>",
"POSTGRESQL_MIGRATION_TIMEOUT_S": "<postgresql_migration_timeout_s>",
"POSTGRESQL_MAX_INACTIVE_LIFETIME_S": "<postgresql_max_inactive_lifetime_s>",
"POSTGRESQL_MAX_QUERIES": "<postgresql_max_queries>",
"POSTGRESQL_TCP_KEEPALIVES_IDLE_S": "<postgresql_tcp_keepalives_idle_s>",
"POSTGRESQL_TCP_KEEPALIVES_INTERVAL_S": "<postgresql_tcp_keepalives_interval_s>",
"POSTGRESQL_TCP_KEEPALIVES_COUNT": "<postgresql_tcp_keepalives_count>",
"POSTGRESQL_STATEMENT_CACHE_SIZE": "<postgresql_statement_cache_size>",
"POSTGRESQL_MAX_CACHED_STATEMENT_LIFETIME_S": "<postgresql_max_cached_statement_lifetime_s>",
"POSTGRESQL_MAX_CACHEABLE_STATEMENT_SIZE": "<postgresql_max_cacheable_statement_size>",
"POSTGRESQL_SSL_MODE": "<postgresql_ssl_mode>",
"POSTGRESQL_SCHEMA": "<postgresql_schema>",
"ENABLE_SEMANTIC_SEARCH": "<enable_semantic_search>",
"ENABLE_EMBEDDING_GENERATION": "<enable_embedding_generation>",
"OLLAMA_HOST": "<ollama_host>",
"OLLAMA_AUTO_PULL": "<ollama_auto_pull>",
"OLLAMA_PULL_TIMEOUT_S": "<ollama_pull_timeout_s>",
"EMBEDDING_OLLAMA_TRUNCATE": "<embedding_ollama_truncate>",
"EMBEDDING_OLLAMA_NUM_CTX": "<embedding_ollama_num_ctx>",
"EMBEDDING_MODEL": "<embedding_model>",
"EMBEDDING_DIM": "<embedding_dim>",
"EMBEDDING_TIMEOUT_S": "<embedding_timeout_s>",
"EMBEDDING_RETRY_MAX_ATTEMPTS": "<embedding_retry_max_attempts>",
"EMBEDDING_RETRY_BASE_DELAY_S": "<embedding_retry_base_delay_s>",
"EMBEDDING_MAX_CONCURRENT": "<embedding_max_concurrent>",
"ENABLE_SUMMARY_GENERATION": "<enable_summary_generation>",
"SUMMARY_PROVIDER": "<summary_provider>",
"SUMMARY_MODEL": "<summary_model>",
"SUMMARY_MAX_TOKENS": "<summary_max_tokens>",
"SUMMARY_TIMEOUT_S": "<summary_timeout_s>",
"SUMMARY_RETRY_MAX_ATTEMPTS": "<summary_retry_max_attempts>",
"SUMMARY_RETRY_BASE_DELAY_S": "<summary_retry_base_delay_s>",
"SUMMARY_MAX_CONCURRENT": "<summary_max_concurrent>",
"SUMMARY_PROMPT": "<summary_prompt>",
"SUMMARY_MIN_CONTENT_LENGTH": "<summary_min_content_length>",
"SUMMARY_OLLAMA_NUM_CTX": "<summary_ollama_num_ctx>",
"SUMMARY_OLLAMA_TRUNCATE": "<summary_ollama_truncate>",
"SUMMARY_OPENAI_REASONING_EFFORT": "<summary_openai_reasoning_effort>",
"SUMMARY_ANTHROPIC_EFFORT": "<summary_anthropic_effort>",
"ANTHROPIC_API_KEY": "<your-anthropic_api_key>",
"ENABLE_FTS": "<enable_fts>",
"FTS_LANGUAGE": "<fts_language>",
"FTS_RERANK_WINDOW_SIZE": "<fts_rerank_window_size>",
"FTS_RERANK_GAP_MERGE": "<fts_rerank_gap_merge>",
"ENABLE_HYBRID_SEARCH": "<enable_hybrid_search>",
"HYBRID_RRF_K": "<hybrid_rrf_k>",
"HYBRID_RRF_OVERFETCH": "<hybrid_rrf_overfetch>",
"HYBRID_FTS_OR_THRESHOLD": "<hybrid_fts_or_threshold>",
"SEARCH_DEFAULT_SORT_BY": "<search_default_sort_by>",
"SEARCH_TRUNCATION_LENGTH": "<search_truncation_length>",
"ENABLE_CHUNKING": "<enable_chunking>",
"CHUNK_SIZE": "<chunk_size>",
"CHUNK_OVERLAP": "<chunk_overlap>",
"CHUNK_AGGREGATION": "<chunk_aggregation>",
"CHUNK_DEDUP_OVERFETCH": "<chunk_dedup_overfetch>",
"ENABLE_RERANKING": "<enable_reranking>",
"RERANKING_PROVIDER": "<reranking_provider>",
"RERANKING_MODEL": "<reranking_model>",
"RERANKING_MAX_LENGTH": "<reranking_max_length>",
"RERANKING_OVERFETCH": "<reranking_overfetch>",
"RERANKING_CACHE_DIR": "<reranking_cache_dir>",
"RERANKING_CHARS_PER_TOKEN": "<reranking_chars_per_token>",
"RERANKING_INTRA_OP_THREADS": "<reranking_intra_op_threads>",
"RERANKING_CPU_MEM_ARENA": "<reranking_cpu_mem_arena>",
"RERANKING_BATCH_SIZE": "<reranking_batch_size>",
"EMBEDDING_PROVIDER": "<embedding_provider>",
"OPENAI_API_KEY": "<your-openai_api_key>",
"OPENAI_API_BASE": "<openai_api_base>",
"OPENAI_ORGANIZATION": "<openai_organization>",
"AZURE_OPENAI_API_KEY": "<your-azure_openai_api_key>",
"AZURE_OPENAI_ENDPOINT": "<azure_openai_endpoint>",
"AZURE_OPENAI_EMBEDDING_DEPLOYMENT_NAME": "<azure_openai_embedding_deployment_name>",
"AZURE_OPENAI_API_VERSION": "<azure_openai_api_version>",
"HUGGINGFACEHUB_API_TOKEN": "<your-huggingfacehub_api_token>",
"VOYAGE_API_KEY": "<your-voyage_api_key>",
"VOYAGE_TRUNCATION": "<voyage_truncation>",
"VOYAGE_BATCH_SIZE": "<voyage_batch_size>",
"LANGSMITH_TRACING": "<langsmith_tracing>",
"LANGSMITH_API_KEY": "<your-langsmith_api_key>",
"LANGSMITH_PROJECT": "<langsmith_project>",
"LANGSMITH_ENDPOINT": "<langsmith_endpoint>",
"METADATA_INDEXED_FIELDS": "<metadata_indexed_fields>",
"METADATA_INDEX_SYNC_MODE": "<metadata_index_sync_mode>",
"MCP_TRANSPORT": "<mcp_transport>",
"FASTMCP_HOST": "<fastmcp_host>",
"FASTMCP_PORT": "<fastmcp_port>",
"FASTMCP_STATELESS_HTTP": "<fastmcp_stateless_http>",
"DISABLED_TOOLS": "<disabled_tools>",
"MCP_AUTH_TOKEN": "<your-mcp_auth_token>",
"MCP_AUTH_CLIENT_ID": "<mcp_auth_client_id>",
"MCP_AUTH_PROVIDER": "<mcp_auth_provider>",
"MCP_SERVER_INSTRUCTIONS": "<mcp_server_instructions>"
}
}
}
}LOG_LEVELLog level
STORAGE_BACKENDStorage backend type: sqlite (default) or postgresql
MAX_IMAGE_SIZE_MBMaximum individual image size in megabytes
MAX_TOTAL_SIZE_MBMaximum total request size in megabytes
DB_PATHCustom database file location path
POOL_MAX_READERSMaximum number of concurrent read connections in the pool
POOL_MAX_WRITERSMaximum number of concurrent write connections in the pool
POOL_CONNECTION_TIMEOUT_SConnection timeout in seconds
POOL_IDLE_TIMEOUT_SIdle connection timeout in seconds
POOL_HEALTH_CHECK_INTERVAL_SConnection health check interval in seconds
RETRY_MAX_RETRIESMaximum number of retry attempts for failed operations
RETRY_BASE_DELAY_SBase delay in seconds between retry attempts
RETRY_MAX_DELAY_SMaximum delay in seconds between retry attempts
RETRY_JITTEREnable random jitter in retry delays
RETRY_BACKOFF_FACTORExponential backoff multiplication factor for retries
SQLITE_FOREIGN_KEYSEnable SQLite foreign key constraints
SQLITE_JOURNAL_MODESQLite journal mode (e.g., WAL, DELETE)
SQLITE_SYNCHRONOUSSQLite synchronous mode (e.g., NORMAL, FULL, OFF)
SQLITE_TEMP_STORESQLite temporary storage location (e.g., MEMORY, FILE)
SQLITE_MMAP_SIZESQLite memory-mapped I/O size in bytes
SQLITE_CACHE_SIZESQLite cache size (negative value for KB, positive for pages)
SQLITE_PAGE_SIZESQLite page size in bytes
SQLITE_WAL_AUTOCHECKPOINTSQLite WAL autocheckpoint threshold in pages
SQLITE_BUSY_TIMEOUT_MSSQLite busy timeout in milliseconds
SQLITE_WAL_CHECKPOINTSQLite WAL checkpoint mode (e.g., PASSIVE, FULL, RESTART)
SHUTDOWN_TIMEOUT_SServer shutdown timeout in seconds
SHUTDOWN_TIMEOUT_TEST_STest mode shutdown timeout in seconds
QUEUE_TIMEOUT_SQueue operation timeout in seconds
QUEUE_TIMEOUT_TEST_STest mode queue timeout in seconds
CIRCUIT_BREAKER_FAILURE_THRESHOLDCircuit breaker failure threshold before opening
CIRCUIT_BREAKER_RECOVERY_TIMEOUT_SCircuit breaker recovery timeout in seconds
CIRCUIT_BREAKER_HALF_OPEN_MAX_CALLSMaximum calls allowed in circuit breaker half-open state
POSTGRESQL_CONNECTION_STRINGComplete PostgreSQL connection string (overrides individual settings if provided)
POSTGRESQL_HOSTPostgreSQL server host address
POSTGRESQL_PORTPostgreSQL server port number
POSTGRESQL_USERPostgreSQL database username
POSTGRESQL_PASSWORDPostgreSQL database password
POSTGRESQL_DATABASEPostgreSQL database name
POSTGRESQL_POOL_MINPostgreSQL connection pool minimum size
POSTGRESQL_POOL_MAXPostgreSQL connection pool maximum size
POSTGRESQL_POOL_TIMEOUT_SPostgreSQL connection pool timeout in seconds
POSTGRESQL_COMMAND_TIMEOUT_SPostgreSQL command execution timeout in seconds
POSTGRESQL_MIGRATION_TIMEOUT_STimeout in seconds for PostgreSQL migration operations (default: 300)
POSTGRESQL_MAX_INACTIVE_LIFETIME_SClose idle PostgreSQL connections after this many seconds (0 to disable, default: 300)
POSTGRESQL_MAX_QUERIESRecycle PostgreSQL connections after this many queries (0 to disable, default: 10000)
POSTGRESQL_TCP_KEEPALIVES_IDLE_SSeconds of idle time before sending first TCP keepalive probe (0 to disable, default: 15)
POSTGRESQL_TCP_KEEPALIVES_INTERVAL_SSeconds between subsequent TCP keepalive probes (0 to disable, default: 5)
POSTGRESQL_TCP_KEEPALIVES_COUNTNumber of failed TCP keepalive probes before connection is considered dead (0 to disable, default: 3)
POSTGRESQL_STATEMENT_CACHE_SIZEasyncpg prepared statement cache size. Set to 0 for external pooler compatibility (PgBouncer transaction mode, Pgpool-II, etc.). Default: 100
POSTGRESQL_MAX_CACHED_STATEMENT_LIFETIME_SMaximum lifetime of cached prepared statements in seconds (default: 300). Has no effect when statement_cache_size=0
POSTGRESQL_MAX_CACHEABLE_STATEMENT_SIZEMaximum size of statement to cache in bytes (default: 15360). Has no effect when statement_cache_size=0
POSTGRESQL_SSL_MODEPostgreSQL SSL mode (disable, allow, prefer, require, verify-ca, verify-full)
POSTGRESQL_SCHEMAPostgreSQL schema name for table and index operations (default: public)
ENABLE_SEMANTIC_SEARCHEnable semantic search functionality
ENABLE_EMBEDDING_GENERATIONEnable embedding generation for stored context. Default true - server fails if dependencies not met. Set false to disable embeddings.
OLLAMA_HOSTOllama API host URL for embedding generation
OLLAMA_AUTO_PULLAutomatically pull missing Ollama models on startup (default: true)
OLLAMA_PULL_TIMEOUT_STimeout in seconds for pulling Ollama models (default: 900, range: 30-3600)
EMBEDDING_OLLAMA_TRUNCATEOllama embedding truncation mode: false (default) returns error when context exceeded, true enables silent truncation
EMBEDDING_OLLAMA_NUM_CTXOllama embedding context window size in tokens (default: 4096, range: 512-2097152)
EMBEDDING_MODELEmbedding model name for semantic search
EMBEDDING_DIMEmbedding vector dimensions
EMBEDDING_TIMEOUT_STimeout in seconds for embedding generation API calls
EMBEDDING_RETRY_MAX_ATTEMPTSMaximum number of retry attempts for embedding generation
EMBEDDING_RETRY_BASE_DELAY_SBase delay in seconds between retry attempts (with exponential backoff)
EMBEDDING_MAX_CONCURRENTMaximum concurrent embedding generation operations (default: 3, range: 1-20)
ENABLE_SUMMARY_GENERATIONEnable summary generation for stored context. Default true - server fails if dependencies not met. Set false to disable summaries.
SUMMARY_PROVIDERSummary provider: ollama (default), openai, or anthropic
SUMMARY_MODELSummary generation model name (default: qwen3:0.6b)
SUMMARY_MAX_TOKENSMaximum output tokens for summary generation (default: 4000, range: 50-16384). Increase if summaries are truncated by reasoning models
SUMMARY_TIMEOUT_STimeout in seconds for summary generation API calls
SUMMARY_RETRY_MAX_ATTEMPTSMaximum number of retry attempts for summary generation
SUMMARY_RETRY_BASE_DELAY_SBase delay in seconds between retry attempts (with exponential backoff)
SUMMARY_MAX_CONCURRENTMaximum concurrent summary generation operations (default: 3, range: 1-20)
SUMMARY_PROMPTCustom summarization prompt. Overrides the built-in default. Used as system message for the LLM.
SUMMARY_MIN_CONTENT_LENGTHMinimum text content length in characters to trigger summary generation (default: 500, range: 0-10000). Set to 0 to always generate.
SUMMARY_OLLAMA_NUM_CTXOllama summary context window size in tokens (default: 32768, range: 512-2097152)
SUMMARY_OLLAMA_TRUNCATEOllama summary truncation mode: false (default) returns error when context exceeded, true enables silent truncation
SUMMARY_OPENAI_REASONING_EFFORTReasoning effort level for OpenAI reasoning models (default: low). Valid values vary by generation: gpt-5: low, medium, high; gpt-5.1+: none, low, medium, high, xhigh. Default low is universally valid across all generations
SUMMARY_ANTHROPIC_EFFORTEffort level for Anthropic Claude models (default: none). Valid values: max, high, medium, low. Controls inference effort (adaptive thinking)
ANTHROPIC_API_KEYAnthropic API key for summary generation
ENABLE_FTSEnable full-text search functionality
FTS_LANGUAGELanguage for FTS stemming (e.g., english, german, french)
FTS_RERANK_WINDOW_SIZECharacters of context around each FTS match for reranking passage extraction (default: 750)
FTS_RERANK_GAP_MERGEMerge FTS match regions within this character distance (default: 100)
ENABLE_HYBRID_SEARCHEnable hybrid search combining FTS and semantic search with RRF fusion
HYBRID_RRF_KRRF smoothing constant for hybrid search (default 60)
HYBRID_RRF_OVERFETCHMultiplier for over-fetching results before RRF fusion (default: 2)
HYBRID_FTS_OR_THRESHOLDMinimum significant query terms to switch hybrid FTS from AND to OR logic (default: 4)
SEARCH_DEFAULT_SORT_BYDefault sort order for search results: relevance (only 'relevance' supported in current version)
SEARCH_TRUNCATION_LENGTHMaximum character length for truncated text_content in search results (default: 300, range: 50-1000)
ENABLE_CHUNKINGEnable text chunking for embedding generation (default: true)
CHUNK_SIZETarget chunk size in characters (default: 1500)
CHUNK_OVERLAPOverlap between chunks in characters (default: 150)
CHUNK_AGGREGATIONChunk score aggregation method: max (only 'max' supported in current version)
CHUNK_DEDUP_OVERFETCHMultiplier for over-fetching chunks before deduplication (default: 5)
ENABLE_RERANKINGEnable cross-encoder reranking of search results (default: true)
RERANKING_PROVIDERReranking provider (default: flashrank)
RERANKING_MODELReranking model name (default: ms-marco-MiniLM-L-12-v2)
RERANKING_MAX_LENGTHMaximum input length for reranking in tokens (default: 512)
RERANKING_OVERFETCHMultiplier for over-fetching results before reranking (default: 4)
RERANKING_CACHE_DIRDirectory for caching reranking models
RERANKING_CHARS_PER_TOKENEstimated characters per token for passage size validation (default: 4.0, range: 2.0-8.0)
RERANKING_INTRA_OP_THREADSONNX Runtime intra-operation parallelism threads for reranking (default: 0 = auto-detect)
RERANKING_CPU_MEM_ARENAEnable ONNX Runtime CPU memory arena for reranking (default: false)
RERANKING_BATCH_SIZEMaximum passages per ONNX Runtime inference batch during reranking (default: 32)
EMBEDDING_PROVIDEREmbedding provider: ollama (default), openai, azure, huggingface, or voyage
OPENAI_API_KEYOpenAI API key for OpenAI embedding provider
OPENAI_API_BASECustom base URL for OpenAI-compatible APIs
OPENAI_ORGANIZATIONOpenAI organization ID
AZURE_OPENAI_API_KEYAzure OpenAI API key
AZURE_OPENAI_ENDPOINTAzure OpenAI endpoint URL
AZURE_OPENAI_EMBEDDING_DEPLOYMENT_NAMEAzure OpenAI embedding deployment name
AZURE_OPENAI_API_VERSIONAzure OpenAI API version (default: 2024-02-01)
HUGGINGFACEHUB_API_TOKENHuggingFace Hub API token for HuggingFace embedding provider
VOYAGE_API_KEYVoyage AI API key for Voyage embedding provider
VOYAGE_TRUNCATIONVoyage AI truncation mode: false (default) returns error when context exceeded, true enables silent truncation
VOYAGE_BATCH_SIZEVoyage AI batch size for embedding requests
LANGSMITH_TRACINGEnable LangSmith tracing
LANGSMITH_API_KEYLangSmith API key
LANGSMITH_PROJECTLangSmith project name
LANGSMITH_ENDPOINTLangSmith API endpoint URL
METADATA_INDEXED_FIELDSComma-separated list of metadata fields to index (field:type format)
METADATA_INDEX_SYNC_MODEIndex sync mode: strict (fail), auto (sync), warn (log), additive (default, add missing only)
MCP_TRANSPORTTransport mode: stdio for local, http for Docker/remote
FASTMCP_HOSTHTTP bind address (use 0.0.0.0 for Docker)
FASTMCP_PORTHTTP port number
FASTMCP_STATELESS_HTTPEnable stateless HTTP mode for horizontal scaling. Enabled by default as the server has no stateful MCP features. Set to false only if you need server-side MCP session tracking.
DISABLED_TOOLSComma-separated list of tools to disable (e.g., delete_context,update_context)
MCP_AUTH_TOKENBearer token for HTTP authentication (required when using SimpleTokenVerifier)
MCP_AUTH_CLIENT_IDClient ID to assign to authenticated requests
MCP_AUTH_PROVIDERAuthentication provider: none (default), simple_token
MCP_SERVER_INSTRUCTIONSCustom server instructions text. Overrides built-in default. Set to empty string to disable.
LOG_LEVELLog level
STORAGE_BACKENDStorage backend type: sqlite (default) or postgresql
MAX_IMAGE_SIZE_MBMaximum individual image size in megabytes
MAX_TOTAL_SIZE_MBMaximum total request size in megabytes
DB_PATHCustom database file location path
POOL_MAX_READERSMaximum number of concurrent read connections in the pool
POOL_MAX_WRITERSMaximum number of concurrent write connections in the pool
POOL_CONNECTION_TIMEOUT_SConnection timeout in seconds
POOL_IDLE_TIMEOUT_SIdle connection timeout in seconds
POOL_HEALTH_CHECK_INTERVAL_SConnection health check interval in seconds
RETRY_MAX_RETRIESMaximum number of retry attempts for failed operations
RETRY_BASE_DELAY_SBase delay in seconds between retry attempts
RETRY_MAX_DELAY_SMaximum delay in seconds between retry attempts
RETRY_JITTEREnable random jitter in retry delays
RETRY_BACKOFF_FACTORExponential backoff multiplication factor for retries
SQLITE_FOREIGN_KEYSEnable SQLite foreign key constraints
SQLITE_JOURNAL_MODESQLite journal mode (e.g., WAL, DELETE)
SQLITE_SYNCHRONOUSSQLite synchronous mode (e.g., NORMAL, FULL, OFF)
SQLITE_TEMP_STORESQLite temporary storage location (e.g., MEMORY, FILE)
SQLITE_MMAP_SIZESQLite memory-mapped I/O size in bytes
SQLITE_CACHE_SIZESQLite cache size (negative value for KB, positive for pages)
SQLITE_PAGE_SIZESQLite page size in bytes
SQLITE_WAL_AUTOCHECKPOINTSQLite WAL autocheckpoint threshold in pages
SQLITE_BUSY_TIMEOUT_MSSQLite busy timeout in milliseconds
SQLITE_WAL_CHECKPOINTSQLite WAL checkpoint mode (e.g., PASSIVE, FULL, RESTART)
SHUTDOWN_TIMEOUT_SServer shutdown timeout in seconds
SHUTDOWN_TIMEOUT_TEST_STest mode shutdown timeout in seconds
QUEUE_TIMEOUT_SQueue operation timeout in seconds
QUEUE_TIMEOUT_TEST_STest mode queue timeout in seconds
CIRCUIT_BREAKER_FAILURE_THRESHOLDCircuit breaker failure threshold before opening
CIRCUIT_BREAKER_RECOVERY_TIMEOUT_SCircuit breaker recovery timeout in seconds
CIRCUIT_BREAKER_HALF_OPEN_MAX_CALLSMaximum calls allowed in circuit breaker half-open state
POSTGRESQL_CONNECTION_STRINGComplete PostgreSQL connection string (overrides individual settings if provided)
POSTGRESQL_HOSTPostgreSQL server host address
POSTGRESQL_PORTPostgreSQL server port number
POSTGRESQL_USERPostgreSQL database username
POSTGRESQL_PASSWORDPostgreSQL database password
POSTGRESQL_DATABASEPostgreSQL database name
POSTGRESQL_POOL_MINPostgreSQL connection pool minimum size
POSTGRESQL_POOL_MAXPostgreSQL connection pool maximum size
POSTGRESQL_POOL_TIMEOUT_SPostgreSQL connection pool timeout in seconds
POSTGRESQL_COMMAND_TIMEOUT_SPostgreSQL command execution timeout in seconds
POSTGRESQL_MIGRATION_TIMEOUT_STimeout in seconds for PostgreSQL migration operations (default: 300)
POSTGRESQL_MAX_INACTIVE_LIFETIME_SClose idle PostgreSQL connections after this many seconds (0 to disable, default: 300)
POSTGRESQL_MAX_QUERIESRecycle PostgreSQL connections after this many queries (0 to disable, default: 10000)
POSTGRESQL_TCP_KEEPALIVES_IDLE_SSeconds of idle time before sending first TCP keepalive probe (0 to disable, default: 15)
POSTGRESQL_TCP_KEEPALIVES_INTERVAL_SSeconds between subsequent TCP keepalive probes (0 to disable, default: 5)
POSTGRESQL_TCP_KEEPALIVES_COUNTNumber of failed TCP keepalive probes before connection is considered dead (0 to disable, default: 3)
POSTGRESQL_STATEMENT_CACHE_SIZEasyncpg prepared statement cache size. Set to 0 for external pooler compatibility (PgBouncer transaction mode, Pgpool-II, etc.). Default: 100
POSTGRESQL_MAX_CACHED_STATEMENT_LIFETIME_SMaximum lifetime of cached prepared statements in seconds (default: 300). Has no effect when statement_cache_size=0
POSTGRESQL_MAX_CACHEABLE_STATEMENT_SIZEMaximum size of statement to cache in bytes (default: 15360). Has no effect when statement_cache_size=0
POSTGRESQL_SSL_MODEPostgreSQL SSL mode (disable, allow, prefer, require, verify-ca, verify-full)
POSTGRESQL_SCHEMAPostgreSQL schema name for table and index operations (default: public)
ENABLE_SEMANTIC_SEARCHEnable semantic search functionality
ENABLE_EMBEDDING_GENERATIONEnable embedding generation for stored context. Default true - server fails if dependencies not met. Set false to disable embeddings.
OLLAMA_HOSTOllama API host URL for embedding generation
OLLAMA_AUTO_PULLAutomatically pull missing Ollama models on startup (default: true)
OLLAMA_PULL_TIMEOUT_STimeout in seconds for pulling Ollama models (default: 900, range: 30-3600)
EMBEDDING_OLLAMA_TRUNCATEOllama embedding truncation mode: false (default) returns error when context exceeded, true enables silent truncation
EMBEDDING_OLLAMA_NUM_CTXOllama embedding context window size in tokens (default: 4096, range: 512-2097152)
EMBEDDING_MODELEmbedding model name for semantic search
EMBEDDING_DIMEmbedding vector dimensions
EMBEDDING_TIMEOUT_STimeout in seconds for embedding generation API calls
EMBEDDING_RETRY_MAX_ATTEMPTSMaximum number of retry attempts for embedding generation
EMBEDDING_RETRY_BASE_DELAY_SBase delay in seconds between retry attempts (with exponential backoff)
EMBEDDING_MAX_CONCURRENTMaximum concurrent embedding generation operations (default: 3, range: 1-20)
ENABLE_SUMMARY_GENERATIONEnable summary generation for stored context. Default true - server fails if dependencies not met. Set false to disable summaries.
SUMMARY_PROVIDERSummary provider: ollama (default), openai, or anthropic
SUMMARY_MODELSummary generation model name (default: qwen3:0.6b)
SUMMARY_MAX_TOKENSMaximum output tokens for summary generation (default: 4000, range: 50-16384). Increase if summaries are truncated by reasoning models
SUMMARY_TIMEOUT_STimeout in seconds for summary generation API calls
SUMMARY_RETRY_MAX_ATTEMPTSMaximum number of retry attempts for summary generation
SUMMARY_RETRY_BASE_DELAY_SBase delay in seconds between retry attempts (with exponential backoff)
SUMMARY_MAX_CONCURRENTMaximum concurrent summary generation operations (default: 3, range: 1-20)
SUMMARY_PROMPTCustom summarization prompt. Overrides the built-in default. Used as system message for the LLM.
SUMMARY_MIN_CONTENT_LENGTHMinimum text content length in characters to trigger summary generation (default: 500, range: 0-10000). Set to 0 to always generate.
SUMMARY_OLLAMA_NUM_CTXOllama summary context window size in tokens (default: 32768, range: 512-2097152)
SUMMARY_OLLAMA_TRUNCATEOllama summary truncation mode: false (default) returns error when context exceeded, true enables silent truncation
SUMMARY_OPENAI_REASONING_EFFORTReasoning effort level for OpenAI reasoning models (default: low). Valid values vary by generation: gpt-5: low, medium, high; gpt-5.1+: none, low, medium, high, xhigh. Default low is universally valid across all generations
SUMMARY_ANTHROPIC_EFFORTEffort level for Anthropic Claude models (default: none). Valid values: max, high, medium, low. Controls inference effort (adaptive thinking)
ANTHROPIC_API_KEYAnthropic API key for summary generation
ENABLE_FTSEnable full-text search functionality
FTS_LANGUAGELanguage for FTS stemming (e.g., english, german, french)
FTS_RERANK_WINDOW_SIZECharacters of context around each FTS match for reranking passage extraction (default: 750)
FTS_RERANK_GAP_MERGEMerge FTS match regions within this character distance (default: 100)
ENABLE_HYBRID_SEARCHEnable hybrid search combining FTS and semantic search with RRF fusion
HYBRID_RRF_KRRF smoothing constant for hybrid search (default 60)
HYBRID_RRF_OVERFETCHMultiplier for over-fetching results before RRF fusion (default: 2)
HYBRID_FTS_OR_THRESHOLDMinimum significant query terms to switch hybrid FTS from AND to OR logic (default: 4)
SEARCH_DEFAULT_SORT_BYDefault sort order for search results: relevance (only 'relevance' supported in current version)
SEARCH_TRUNCATION_LENGTHMaximum character length for truncated text_content in search results (default: 300, range: 50-1000)
ENABLE_CHUNKINGEnable text chunking for embedding generation (default: true)
CHUNK_SIZETarget chunk size in characters (default: 1500)
CHUNK_OVERLAPOverlap between chunks in characters (default: 150)
CHUNK_AGGREGATIONChunk score aggregation method: max (only 'max' supported in current version)
CHUNK_DEDUP_OVERFETCHMultiplier for over-fetching chunks before deduplication (default: 5)
ENABLE_RERANKINGEnable cross-encoder reranking of search results (default: true)
RERANKING_PROVIDERReranking provider (default: flashrank)
RERANKING_MODELReranking model name (default: ms-marco-MiniLM-L-12-v2)
RERANKING_MAX_LENGTHMaximum input length for reranking in tokens (default: 512)
RERANKING_OVERFETCHMultiplier for over-fetching results before reranking (default: 4)
RERANKING_CACHE_DIRDirectory for caching reranking models
RERANKING_CHARS_PER_TOKENEstimated characters per token for passage size validation (default: 4.0, range: 2.0-8.0)
RERANKING_INTRA_OP_THREADSONNX Runtime intra-operation parallelism threads for reranking (default: 0 = auto-detect)
RERANKING_CPU_MEM_ARENAEnable ONNX Runtime CPU memory arena for reranking (default: false)
RERANKING_BATCH_SIZEMaximum passages per ONNX Runtime inference batch during reranking (default: 32)
EMBEDDING_PROVIDEREmbedding provider: ollama (default), openai, azure, huggingface, or voyage
OPENAI_API_KEYOpenAI API key for OpenAI embedding provider
OPENAI_API_BASECustom base URL for OpenAI-compatible APIs
OPENAI_ORGANIZATIONOpenAI organization ID
AZURE_OPENAI_API_KEYAzure OpenAI API key
AZURE_OPENAI_ENDPOINTAzure OpenAI endpoint URL
AZURE_OPENAI_EMBEDDING_DEPLOYMENT_NAMEAzure OpenAI embedding deployment name
AZURE_OPENAI_API_VERSIONAzure OpenAI API version (default: 2024-02-01)
HUGGINGFACEHUB_API_TOKENHuggingFace Hub API token for HuggingFace embedding provider
VOYAGE_API_KEYVoyage AI API key for Voyage embedding provider
VOYAGE_TRUNCATIONVoyage AI truncation mode: false (default) returns error when context exceeded, true enables silent truncation
VOYAGE_BATCH_SIZEVoyage AI batch size for embedding requests
LANGSMITH_TRACINGEnable LangSmith tracing
LANGSMITH_API_KEYLangSmith API key
LANGSMITH_PROJECTLangSmith project name
LANGSMITH_ENDPOINTLangSmith API endpoint URL
METADATA_INDEXED_FIELDSComma-separated list of metadata fields to index (field:type format)
METADATA_INDEX_SYNC_MODEIndex sync mode: strict (fail), auto (sync), warn (log), additive (default, add missing only)
MCP_TRANSPORTTransport mode: stdio for local, http for Docker/remote
FASTMCP_HOSTHTTP bind address (use 0.0.0.0 for Docker)
FASTMCP_PORTHTTP port number
FASTMCP_STATELESS_HTTPEnable stateless HTTP mode for horizontal scaling. Enabled by default as the server has no stateful MCP features. Set to false only if you need server-side MCP session tracking.
DISABLED_TOOLSComma-separated list of tools to disable (e.g., delete_context,update_context)
MCP_AUTH_TOKENBearer token for HTTP authentication (required when using SimpleTokenVerifier)
MCP_AUTH_CLIENT_IDClient ID to assign to authenticated requests
MCP_AUTH_PROVIDERAuthentication provider: none (default), simple_token
MCP_SERVER_INSTRUCTIONSCustom server instructions text. Overrides built-in default. Set to empty string to disable.
Focused MCP server for OpenAI image/audio generation (v2.0.0). Wraps endpoints via HAPI CLI.
Public MCP server for the LLM Search Engine
Real-time web search, reasoning, and research through Perplexity's API