io.github.alex-feel/mcp-context-server✓
io.github.alex-feel/mcp-context-server · v2.2.2
{}server.json
The full server descriptor as registered with IndusMCP.
{
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"name": "io.github.alex-feel/mcp-context-server",
"description": "An MCP server that provides persistent multimodal context storage for LLM agents.",
"repository": {
"url": "https://github.com/alex-feel/mcp-context-server",
"source": "github"
},
"version": "2.2.2",
"packages": [
{
"registryType": "pypi",
"registryBaseUrl": "https://pypi.org",
"identifier": "mcp-context-server",
"version": "2.2.2",
"transport": {
"type": "stdio"
},
"environmentVariables": [
{
"description": "Log level",
"format": "string",
"name": "LOG_LEVEL"
},
{
"description": "Storage backend type: sqlite (default) or postgresql",
"format": "string",
"name": "STORAGE_BACKEND"
},
{
"description": "Maximum individual image size in megabytes",
"format": "number",
"name": "MAX_IMAGE_SIZE_MB"
},
{
"description": "Maximum total request size in megabytes",
"format": "number",
"name": "MAX_TOTAL_SIZE_MB"
},
{
"description": "Custom database file location path",
"format": "string",
"name": "DB_PATH"
},
{
"description": "Maximum number of concurrent read connections in the pool",
"format": "number",
"name": "POOL_MAX_READERS"
},
{
"description": "Maximum number of concurrent write connections in the pool",
"format": "number",
"name": "POOL_MAX_WRITERS"
},
{
"description": "Connection timeout in seconds",
"format": "number",
"name": "POOL_CONNECTION_TIMEOUT_S"
},
{
"description": "Idle connection timeout in seconds",
"format": "number",
"name": "POOL_IDLE_TIMEOUT_S"
},
{
"description": "Connection health check interval in seconds",
"format": "number",
"name": "POOL_HEALTH_CHECK_INTERVAL_S"
},
{
"description": "Maximum number of retry attempts for failed operations",
"format": "number",
"name": "RETRY_MAX_RETRIES"
},
{
"description": "Base delay in seconds between retry attempts",
"format": "number",
"name": "RETRY_BASE_DELAY_S"
},
{
"description": "Maximum delay in seconds between retry attempts",
"format": "number",
"name": "RETRY_MAX_DELAY_S"
},
{
"description": "Enable random jitter in retry delays",
"format": "boolean",
"name": "RETRY_JITTER"
},
{
"description": "Exponential backoff multiplication factor for retries",
"format": "number",
"name": "RETRY_BACKOFF_FACTOR"
},
{
"description": "Enable SQLite foreign key constraints",
"format": "boolean",
"name": "SQLITE_FOREIGN_KEYS"
},
{
"description": "SQLite journal mode (e.g., WAL, DELETE)",
"format": "string",
"name": "SQLITE_JOURNAL_MODE"
},
{
"description": "SQLite synchronous mode (e.g., NORMAL, FULL, OFF)",
"format": "string",
"name": "SQLITE_SYNCHRONOUS"
},
{
"description": "SQLite temporary storage location (e.g., MEMORY, FILE)",
"format": "string",
"name": "SQLITE_TEMP_STORE"
},
{
"description": "SQLite memory-mapped I/O size in bytes",
"format": "number",
"name": "SQLITE_MMAP_SIZE"
},
{
"description": "SQLite cache size (negative value for KB, positive for pages)",
"format": "number",
"name": "SQLITE_CACHE_SIZE"
},
{
"description": "SQLite page size in bytes",
"format": "number",
"name": "SQLITE_PAGE_SIZE"
},
{
"description": "SQLite WAL autocheckpoint threshold in pages",
"format": "number",
"name": "SQLITE_WAL_AUTOCHECKPOINT"
},
{
"description": "SQLite busy timeout in milliseconds",
"format": "number",
"name": "SQLITE_BUSY_TIMEOUT_MS"
},
{
"description": "SQLite WAL checkpoint mode (e.g., PASSIVE, FULL, RESTART)",
"format": "string",
"name": "SQLITE_WAL_CHECKPOINT"
},
{
"description": "Server shutdown timeout in seconds",
"format": "number",
"name": "SHUTDOWN_TIMEOUT_S"
},
{
"description": "Test mode shutdown timeout in seconds",
"format": "number",
"name": "SHUTDOWN_TIMEOUT_TEST_S"
},
{
"description": "Queue operation timeout in seconds",
"format": "number",
"name": "QUEUE_TIMEOUT_S"
},
{
"description": "Test mode queue timeout in seconds",
"format": "number",
"name": "QUEUE_TIMEOUT_TEST_S"
},
{
"description": "Circuit breaker failure threshold before opening",
"format": "number",
"name": "CIRCUIT_BREAKER_FAILURE_THRESHOLD"
},
{
"description": "Circuit breaker recovery timeout in seconds",
"format": "number",
"name": "CIRCUIT_BREAKER_RECOVERY_TIMEOUT_S"
},
{
"description": "Maximum calls allowed in circuit breaker half-open state",
"format": "number",
"name": "CIRCUIT_BREAKER_HALF_OPEN_MAX_CALLS"
},
{
"description": "Complete PostgreSQL connection string (overrides individual settings if provided)",
"format": "string",
"isSecret": true,
"name": "POSTGRESQL_CONNECTION_STRING"
},
{
"description": "PostgreSQL server host address",
"format": "string",
"name": "POSTGRESQL_HOST"
},
{
"description": "PostgreSQL server port number",
"format": "number",
"name": "POSTGRESQL_PORT"
},
{
"description": "PostgreSQL database username",
"format": "string",
"name": "POSTGRESQL_USER"
},
{
"description": "PostgreSQL database password",
"format": "string",
"isSecret": true,
"name": "POSTGRESQL_PASSWORD"
},
{
"description": "PostgreSQL database name",
"format": "string",
"name": "POSTGRESQL_DATABASE"
},
{
"description": "PostgreSQL connection pool minimum size",
"format": "number",
"name": "POSTGRESQL_POOL_MIN"
},
{
"description": "PostgreSQL connection pool maximum size",
"format": "number",
"name": "POSTGRESQL_POOL_MAX"
},
{
"description": "PostgreSQL connection pool timeout in seconds",
"format": "number",
"name": "POSTGRESQL_POOL_TIMEOUT_S"
},
{
"description": "PostgreSQL command execution timeout in seconds",
"format": "number",
"name": "POSTGRESQL_COMMAND_TIMEOUT_S"
},
{
"description": "Timeout in seconds for PostgreSQL migration operations (default: 300)",
"format": "number",
"name": "POSTGRESQL_MIGRATION_TIMEOUT_S"
},
{
"description": "Close idle PostgreSQL connections after this many seconds (0 to disable, default: 300)",
"format": "number",
"name": "POSTGRESQL_MAX_INACTIVE_LIFETIME_S"
},
{
"description": "Recycle PostgreSQL connections after this many queries (0 to disable, default: 10000)",
"format": "number",
"name": "POSTGRESQL_MAX_QUERIES"
},
{
"description": "Seconds of idle time before sending first TCP keepalive probe (0 to disable, default: 15)",
"format": "number",
"name": "POSTGRESQL_TCP_KEEPALIVES_IDLE_S"
},
{
"description": "Seconds between subsequent TCP keepalive probes (0 to disable, default: 5)",
"format": "number",
"name": "POSTGRESQL_TCP_KEEPALIVES_INTERVAL_S"
},
{
"description": "Number of failed TCP keepalive probes before connection is considered dead (0 to disable, default: 3)",
"format": "number",
"name": "POSTGRESQL_TCP_KEEPALIVES_COUNT"
},
{
"description": "asyncpg prepared statement cache size. Set to 0 for external pooler compatibility (PgBouncer transaction mode, Pgpool-II, etc.). Default: 100",
"format": "number",
"name": "POSTGRESQL_STATEMENT_CACHE_SIZE"
},
{
"description": "Maximum lifetime of cached prepared statements in seconds (default: 300). Has no effect when statement_cache_size=0",
"format": "number",
"name": "POSTGRESQL_MAX_CACHED_STATEMENT_LIFETIME_S"
},
{
"description": "Maximum size of statement to cache in bytes (default: 15360). Has no effect when statement_cache_size=0",
"format": "number",
"name": "POSTGRESQL_MAX_CACHEABLE_STATEMENT_SIZE"
},
{
"description": "PostgreSQL SSL mode (disable, allow, prefer, require, verify-ca, verify-full)",
"format": "string",
"name": "POSTGRESQL_SSL_MODE"
},
{
"description": "PostgreSQL schema name for table and index operations (default: public)",
"format": "string",
"name": "POSTGRESQL_SCHEMA"
},
{
"description": "Enable semantic search functionality",
"format": "boolean",
"name": "ENABLE_SEMANTIC_SEARCH"
},
{
"description": "Enable embedding generation for stored context. Default true - server fails if dependencies not met. Set false to disable embeddings.",
"format": "boolean",
"name": "ENABLE_EMBEDDING_GENERATION"
},
{
"description": "Ollama API host URL for embedding generation",
"format": "string",
"name": "OLLAMA_HOST"
},
{
"description": "Automatically pull missing Ollama models on startup (default: true)",
"format": "boolean",
"name": "OLLAMA_AUTO_PULL"
},
{
"description": "Timeout in seconds for pulling Ollama models (default: 900, range: 30-3600)",
"format": "number",
"name": "OLLAMA_PULL_TIMEOUT_S"
},
{
"description": "Ollama embedding truncation mode: false (default) returns error when context exceeded, true enables silent truncation",
"format": "boolean",
"name": "EMBEDDING_OLLAMA_TRUNCATE"
},
{
"description": "Ollama embedding context window size in tokens (default: 4096, range: 512-2097152)",
"format": "number",
"name": "EMBEDDING_OLLAMA_NUM_CTX"
},
{
"description": "Embedding model name for semantic search",
"format": "string",
"name": "EMBEDDING_MODEL"
},
{
"description": "Embedding vector dimensions",
"format": "number",
"name": "EMBEDDING_DIM"
},
{
"description": "Timeout in seconds for embedding generation API calls",
"format": "number",
"name": "EMBEDDING_TIMEOUT_S"
},
{
"description": "Maximum number of retry attempts for embedding generation",
"format": "number",
"name": "EMBEDDING_RETRY_MAX_ATTEMPTS"
},
{
"description": "Base delay in seconds between retry attempts (with exponential backoff)",
"format": "number",
"name": "EMBEDDING_RETRY_BASE_DELAY_S"
},
{
"description": "Maximum concurrent embedding generation operations (default: 3, range: 1-20)",
"format": "number",
"name": "EMBEDDING_MAX_CONCURRENT"
},
{
"description": "Enable summary generation for stored context. Default true - server fails if dependencies not met. Set false to disable summaries.",
"format": "boolean",
"name": "ENABLE_SUMMARY_GENERATION"
},
{
"description": "Summary provider: ollama (default), openai, or anthropic",
"format": "string",
"name": "SUMMARY_PROVIDER"
},
{
"description": "Summary generation model name (default: qwen3:0.6b)",
"format": "string",
"name": "SUMMARY_MODEL"
},
{
"description": "Maximum output tokens for summary generation (default: 4000, range: 50-16384). Increase if summaries are truncated by reasoning models",
"format": "number",
"name": "SUMMARY_MAX_TOKENS"
},
{
"description": "Timeout in seconds for summary generation API calls",
"format": "number",
"name": "SUMMARY_TIMEOUT_S"
},
{
"description": "Maximum number of retry attempts for summary generation",
"format": "number",
"name": "SUMMARY_RETRY_MAX_ATTEMPTS"
},
{
"description": "Base delay in seconds between retry attempts (with exponential backoff)",
"format": "number",
"name": "SUMMARY_RETRY_BASE_DELAY_S"
},
{
"description": "Maximum concurrent summary generation operations (default: 3, range: 1-20)",
"format": "number",
"name": "SUMMARY_MAX_CONCURRENT"
},
{
"description": "Custom summarization prompt. Overrides the built-in default. Used as system message for the LLM.",
"format": "string",
"name": "SUMMARY_PROMPT"
},
{
"description": "Minimum text content length in characters to trigger summary generation (default: 500, range: 0-10000). Set to 0 to always generate.",
"format": "number",
"name": "SUMMARY_MIN_CONTENT_LENGTH"
},
{
"description": "Ollama summary context window size in tokens (default: 32768, range: 512-2097152)",
"format": "number",
"name": "SUMMARY_OLLAMA_NUM_CTX"
},
{
"description": "Ollama summary truncation mode: false (default) returns error when context exceeded, true enables silent truncation",
"format": "boolean",
"name": "SUMMARY_OLLAMA_TRUNCATE"
},
{
"description": "Reasoning 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",
"format": "string",
"name": "SUMMARY_OPENAI_REASONING_EFFORT"
},
{
"description": "Effort level for Anthropic Claude models (default: none). Valid values: max, high, medium, low. Controls inference effort (adaptive thinking)",
"format": "string",
"name": "SUMMARY_ANTHROPIC_EFFORT"
},
{
"description": "Anthropic API key for summary generation",
"format": "string",
"isSecret": true,
"name": "ANTHROPIC_API_KEY"
},
{
"description": "Enable full-text search functionality",
"format": "boolean",
"name": "ENABLE_FTS"
},
{
"description": "Language for FTS stemming (e.g., english, german, french)",
"format": "string",
"name": "FTS_LANGUAGE"
},
{
"description": "Characters of context around each FTS match for reranking passage extraction (default: 750)",
"format": "number",
"name": "FTS_RERANK_WINDOW_SIZE"
},
{
"description": "Merge FTS match regions within this character distance (default: 100)",
"format": "number",
"name": "FTS_RERANK_GAP_MERGE"
},
{
"description": "Enable hybrid search combining FTS and semantic search with RRF fusion",
"format": "boolean",
"name": "ENABLE_HYBRID_SEARCH"
},
{
"description": "RRF smoothing constant for hybrid search (default 60)",
"format": "number",
"name": "HYBRID_RRF_K"
},
{
"description": "Multiplier for over-fetching results before RRF fusion (default: 2)",
"format": "number",
"name": "HYBRID_RRF_OVERFETCH"
},
{
"description": "Minimum significant query terms to switch hybrid FTS from AND to OR logic (default: 4)",
"format": "number",
"name": "HYBRID_FTS_OR_THRESHOLD"
},
{
"description": "Default sort order for search results: relevance (only 'relevance' supported in current version)",
"format": "string",
"name": "SEARCH_DEFAULT_SORT_BY"
},
{
"description": "Maximum character length for truncated text_content in search results (default: 300, range: 50-1000)",
"format": "number",
"name": "SEARCH_TRUNCATION_LENGTH"
},
{
"description": "Enable text chunking for embedding generation (default: true)",
"format": "boolean",
"name": "ENABLE_CHUNKING"
},
{
"description": "Target chunk size in characters (default: 1500)",
"format": "number",
"name": "CHUNK_SIZE"
},
{
"description": "Overlap between chunks in characters (default: 150)",
"format": "number",
"name": "CHUNK_OVERLAP"
},
{
"description": "Chunk score aggregation method: max (only 'max' supported in current version)",
"format": "string",
"name": "CHUNK_AGGREGATION"
},
{
"description": "Multiplier for over-fetching chunks before deduplication (default: 5)",
"format": "number",
"name": "CHUNK_DEDUP_OVERFETCH"
},
{
"description": "Enable cross-encoder reranking of search results (default: true)",
"format": "boolean",
"name": "ENABLE_RERANKING"
},
{
"description": "Reranking provider (default: flashrank)",
"format": "string",
"name": "RERANKING_PROVIDER"
},
{
"description": "Reranking model name (default: ms-marco-MiniLM-L-12-v2)",
"format": "string",
"name": "RERANKING_MODEL"
},
{
"description": "Maximum input length for reranking in tokens (default: 512)",
"format": "number",
"name": "RERANKING_MAX_LENGTH"
},
{
"description": "Multiplier for over-fetching results before reranking (default: 4)",
"format": "number",
"name": "RERANKING_OVERFETCH"
},
{
"description": "Directory for caching reranking models",
"format": "string",
"name": "RERANKING_CACHE_DIR"
},
{
"description": "Estimated characters per token for passage size validation (default: 4.0, range: 2.0-8.0)",
"format": "number",
"name": "RERANKING_CHARS_PER_TOKEN"
},
{
"description": "ONNX Runtime intra-operation parallelism threads for reranking (default: 0 = auto-detect)",
"format": "number",
"name": "RERANKING_INTRA_OP_THREADS"
},
{
"description": "Enable ONNX Runtime CPU memory arena for reranking (default: false)",
"format": "boolean",
"name": "RERANKING_CPU_MEM_ARENA"
},
{
"description": "Maximum passages per ONNX Runtime inference batch during reranking (default: 32)",
"format": "number",
"name": "RERANKING_BATCH_SIZE"
},
{
"description": "Embedding provider: ollama (default), openai, azure, huggingface, or voyage",
"format": "string",
"name": "EMBEDDING_PROVIDER"
},
{
"description": "OpenAI API key for OpenAI embedding provider",
"format": "string",
"isSecret": true,
"name": "OPENAI_API_KEY"
},
{
"description": "Custom base URL for OpenAI-compatible APIs",
"format": "string",
"name": "OPENAI_API_BASE"
},
{
"description": "OpenAI organization ID",
"format": "string",
"name": "OPENAI_ORGANIZATION"
},
{
"description": "Azure OpenAI API key",
"format": "string",
"isSecret": true,
"name": "AZURE_OPENAI_API_KEY"
},
{
"description": "Azure OpenAI endpoint URL",
"format": "string",
"name": "AZURE_OPENAI_ENDPOINT"
},
{
"description": "Azure OpenAI embedding deployment name",
"format": "string",
"name": "AZURE_OPENAI_EMBEDDING_DEPLOYMENT_NAME"
},
{
"description": "Azure OpenAI API version (default: 2024-02-01)",
"format": "string",
"name": "AZURE_OPENAI_API_VERSION"
},
{
"description": "HuggingFace Hub API token for HuggingFace embedding provider",
"format": "string",
"isSecret": true,
"name": "HUGGINGFACEHUB_API_TOKEN"
},
{
"description": "Voyage AI API key for Voyage embedding provider",
"format": "string",
"isSecret": true,
"name": "VOYAGE_API_KEY"
},
{
"description": "Voyage AI truncation mode: false (default) returns error when context exceeded, true enables silent truncation",
"format": "boolean",
"name": "VOYAGE_TRUNCATION"
},
{
"description": "Voyage AI batch size for embedding requests",
"format": "number",
"name": "VOYAGE_BATCH_SIZE"
},
{
"description": "Enable LangSmith tracing",
"format": "boolean",
"name": "LANGSMITH_TRACING"
},
{
"description": "LangSmith API key",
"format": "string",
"isSecret": true,
"name": "LANGSMITH_API_KEY"
},
{
"description": "LangSmith project name",
"format": "string",
"name": "LANGSMITH_PROJECT"
},
{
"description": "LangSmith API endpoint URL",
"format": "string",
"name": "LANGSMITH_ENDPOINT"
},
{
"description": "Comma-separated list of metadata fields to index (field:type format)",
"format": "string",
"name": "METADATA_INDEXED_FIELDS"
},
{
"description": "Index sync mode: strict (fail), auto (sync), warn (log), additive (default, add missing only)",
"format": "string",
"name": "METADATA_INDEX_SYNC_MODE"
},
{
"description": "Transport mode: stdio for local, http for Docker/remote",
"format": "string",
"name": "MCP_TRANSPORT"
},
{
"description": "HTTP bind address (use 0.0.0.0 for Docker)",
"format": "string",
"name": "FASTMCP_HOST"
},
{
"description": "HTTP port number",
"format": "number",
"name": "FASTMCP_PORT"
},
{
"description": "Enable 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.",
"format": "boolean",
"name": "FASTMCP_STATELESS_HTTP"
},
{
"description": "Comma-separated list of tools to disable (e.g., delete_context,update_context)",
"format": "string",
"name": "DISABLED_TOOLS"
},
{
"description": "Bearer token for HTTP authentication (required when using SimpleTokenVerifier)",
"format": "string",
"isSecret": true,
"name": "MCP_AUTH_TOKEN"
},
{
"description": "Client ID to assign to authenticated requests",
"format": "string",
"name": "MCP_AUTH_CLIENT_ID"
},
{
"description": "Authentication provider: none (default), simple_token",
"format": "string",
"name": "MCP_AUTH_PROVIDER"
},
{
"description": "Custom server instructions text. Overrides built-in default. Set to empty string to disable.",
"format": "string",
"name": "MCP_SERVER_INSTRUCTIONS"
}
]
},
{
"registryType": "oci",
"identifier": "ghcr.io/alex-feel/mcp-context-server:2.2.2",
"runtimeHint": "docker",
"transport": {
"type": "streamable-http",
"url": "http://localhost:8000/mcp"
},
"environmentVariables": [
{
"description": "Log level",
"format": "string",
"name": "LOG_LEVEL"
},
{
"description": "Storage backend type: sqlite (default) or postgresql",
"format": "string",
"name": "STORAGE_BACKEND"
},
{
"description": "Maximum individual image size in megabytes",
"format": "number",
"name": "MAX_IMAGE_SIZE_MB"
},
{
"description": "Maximum total request size in megabytes",
"format": "number",
"name": "MAX_TOTAL_SIZE_MB"
},
{
"description": "Custom database file location path",
"format": "string",
"name": "DB_PATH"
},
{
"description": "Maximum number of concurrent read connections in the pool",
"format": "number",
"name": "POOL_MAX_READERS"
},
{
"description": "Maximum number of concurrent write connections in the pool",
"format": "number",
"name": "POOL_MAX_WRITERS"
},
{
"description": "Connection timeout in seconds",
"format": "number",
"name": "POOL_CONNECTION_TIMEOUT_S"
},
{
"description": "Idle connection timeout in seconds",
"format": "number",
"name": "POOL_IDLE_TIMEOUT_S"
},
{
"description": "Connection health check interval in seconds",
"format": "number",
"name": "POOL_HEALTH_CHECK_INTERVAL_S"
},
{
"description": "Maximum number of retry attempts for failed operations",
"format": "number",
"name": "RETRY_MAX_RETRIES"
},
{
"description": "Base delay in seconds between retry attempts",
"format": "number",
"name": "RETRY_BASE_DELAY_S"
},
{
"description": "Maximum delay in seconds between retry attempts",
"format": "number",
"name": "RETRY_MAX_DELAY_S"
},
{
"description": "Enable random jitter in retry delays",
"format": "boolean",
"name": "RETRY_JITTER"
},
{
"description": "Exponential backoff multiplication factor for retries",
"format": "number",
"name": "RETRY_BACKOFF_FACTOR"
},
{
"description": "Enable SQLite foreign key constraints",
"format": "boolean",
"name": "SQLITE_FOREIGN_KEYS"
},
{
"description": "SQLite journal mode (e.g., WAL, DELETE)",
"format": "string",
"name": "SQLITE_JOURNAL_MODE"
},
{
"description": "SQLite synchronous mode (e.g., NORMAL, FULL, OFF)",
"format": "string",
"name": "SQLITE_SYNCHRONOUS"
},
{
"description": "SQLite temporary storage location (e.g., MEMORY, FILE)",
"format": "string",
"name": "SQLITE_TEMP_STORE"
},
{
"description": "SQLite memory-mapped I/O size in bytes",
"format": "number",
"name": "SQLITE_MMAP_SIZE"
},
{
"description": "SQLite cache size (negative value for KB, positive for pages)",
"format": "number",
"name": "SQLITE_CACHE_SIZE"
},
{
"description": "SQLite page size in bytes",
"format": "number",
"name": "SQLITE_PAGE_SIZE"
},
{
"description": "SQLite WAL autocheckpoint threshold in pages",
"format": "number",
"name": "SQLITE_WAL_AUTOCHECKPOINT"
},
{
"description": "SQLite busy timeout in milliseconds",
"format": "number",
"name": "SQLITE_BUSY_TIMEOUT_MS"
},
{
"description": "SQLite WAL checkpoint mode (e.g., PASSIVE, FULL, RESTART)",
"format": "string",
"name": "SQLITE_WAL_CHECKPOINT"
},
{
"description": "Server shutdown timeout in seconds",
"format": "number",
"name": "SHUTDOWN_TIMEOUT_S"
},
{
"description": "Test mode shutdown timeout in seconds",
"format": "number",
"name": "SHUTDOWN_TIMEOUT_TEST_S"
},
{
"description": "Queue operation timeout in seconds",
"format": "number",
"name": "QUEUE_TIMEOUT_S"
},
{
"description": "Test mode queue timeout in seconds",
"format": "number",
"name": "QUEUE_TIMEOUT_TEST_S"
},
{
"description": "Circuit breaker failure threshold before opening",
"format": "number",
"name": "CIRCUIT_BREAKER_FAILURE_THRESHOLD"
},
{
"description": "Circuit breaker recovery timeout in seconds",
"format": "number",
"name": "CIRCUIT_BREAKER_RECOVERY_TIMEOUT_S"
},
{
"description": "Maximum calls allowed in circuit breaker half-open state",
"format": "number",
"name": "CIRCUIT_BREAKER_HALF_OPEN_MAX_CALLS"
},
{
"description": "Complete PostgreSQL connection string (overrides individual settings if provided)",
"format": "string",
"isSecret": true,
"name": "POSTGRESQL_CONNECTION_STRING"
},
{
"description": "PostgreSQL server host address",
"format": "string",
"name": "POSTGRESQL_HOST"
},
{
"description": "PostgreSQL server port number",
"format": "number",
"name": "POSTGRESQL_PORT"
},
{
"description": "PostgreSQL database username",
"format": "string",
"name": "POSTGRESQL_USER"
},
{
"description": "PostgreSQL database password",
"format": "string",
"isSecret": true,
"name": "POSTGRESQL_PASSWORD"
},
{
"description": "PostgreSQL database name",
"format": "string",
"name": "POSTGRESQL_DATABASE"
},
{
"description": "PostgreSQL connection pool minimum size",
"format": "number",
"name": "POSTGRESQL_POOL_MIN"
},
{
"description": "PostgreSQL connection pool maximum size",
"format": "number",
"name": "POSTGRESQL_POOL_MAX"
},
{
"description": "PostgreSQL connection pool timeout in seconds",
"format": "number",
"name": "POSTGRESQL_POOL_TIMEOUT_S"
},
{
"description": "PostgreSQL command execution timeout in seconds",
"format": "number",
"name": "POSTGRESQL_COMMAND_TIMEOUT_S"
},
{
"description": "Timeout in seconds for PostgreSQL migration operations (default: 300)",
"format": "number",
"name": "POSTGRESQL_MIGRATION_TIMEOUT_S"
},
{
"description": "Close idle PostgreSQL connections after this many seconds (0 to disable, default: 300)",
"format": "number",
"name": "POSTGRESQL_MAX_INACTIVE_LIFETIME_S"
},
{
"description": "Recycle PostgreSQL connections after this many queries (0 to disable, default: 10000)",
"format": "number",
"name": "POSTGRESQL_MAX_QUERIES"
},
{
"description": "Seconds of idle time before sending first TCP keepalive probe (0 to disable, default: 15)",
"format": "number",
"name": "POSTGRESQL_TCP_KEEPALIVES_IDLE_S"
},
{
"description": "Seconds between subsequent TCP keepalive probes (0 to disable, default: 5)",
"format": "number",
"name": "POSTGRESQL_TCP_KEEPALIVES_INTERVAL_S"
},
{
"description": "Number of failed TCP keepalive probes before connection is considered dead (0 to disable, default: 3)",
"format": "number",
"name": "POSTGRESQL_TCP_KEEPALIVES_COUNT"
},
{
"description": "asyncpg prepared statement cache size. Set to 0 for external pooler compatibility (PgBouncer transaction mode, Pgpool-II, etc.). Default: 100",
"format": "number",
"name": "POSTGRESQL_STATEMENT_CACHE_SIZE"
},
{
"description": "Maximum lifetime of cached prepared statements in seconds (default: 300). Has no effect when statement_cache_size=0",
"format": "number",
"name": "POSTGRESQL_MAX_CACHED_STATEMENT_LIFETIME_S"
},
{
"description": "Maximum size of statement to cache in bytes (default: 15360). Has no effect when statement_cache_size=0",
"format": "number",
"name": "POSTGRESQL_MAX_CACHEABLE_STATEMENT_SIZE"
},
{
"description": "PostgreSQL SSL mode (disable, allow, prefer, require, verify-ca, verify-full)",
"format": "string",
"name": "POSTGRESQL_SSL_MODE"
},
{
"description": "PostgreSQL schema name for table and index operations (default: public)",
"format": "string",
"name": "POSTGRESQL_SCHEMA"
},
{
"description": "Enable semantic search functionality",
"format": "boolean",
"name": "ENABLE_SEMANTIC_SEARCH"
},
{
"description": "Enable embedding generation for stored context. Default true - server fails if dependencies not met. Set false to disable embeddings.",
"format": "boolean",
"name": "ENABLE_EMBEDDING_GENERATION"
},
{
"description": "Ollama API host URL for embedding generation",
"format": "string",
"name": "OLLAMA_HOST"
},
{
"description": "Automatically pull missing Ollama models on startup (default: true)",
"format": "boolean",
"name": "OLLAMA_AUTO_PULL"
},
{
"description": "Timeout in seconds for pulling Ollama models (default: 900, range: 30-3600)",
"format": "number",
"name": "OLLAMA_PULL_TIMEOUT_S"
},
{
"description": "Ollama embedding truncation mode: false (default) returns error when context exceeded, true enables silent truncation",
"format": "boolean",
"name": "EMBEDDING_OLLAMA_TRUNCATE"
},
{
"description": "Ollama embedding context window size in tokens (default: 4096, range: 512-2097152)",
"format": "number",
"name": "EMBEDDING_OLLAMA_NUM_CTX"
},
{
"description": "Embedding model name for semantic search",
"format": "string",
"name": "EMBEDDING_MODEL"
},
{
"description": "Embedding vector dimensions",
"format": "number",
"name": "EMBEDDING_DIM"
},
{
"description": "Timeout in seconds for embedding generation API calls",
"format": "number",
"name": "EMBEDDING_TIMEOUT_S"
},
{
"description": "Maximum number of retry attempts for embedding generation",
"format": "number",
"name": "EMBEDDING_RETRY_MAX_ATTEMPTS"
},
{
"description": "Base delay in seconds between retry attempts (with exponential backoff)",
"format": "number",
"name": "EMBEDDING_RETRY_BASE_DELAY_S"
},
{
"description": "Maximum concurrent embedding generation operations (default: 3, range: 1-20)",
"format": "number",
"name": "EMBEDDING_MAX_CONCURRENT"
},
{
"description": "Enable summary generation for stored context. Default true - server fails if dependencies not met. Set false to disable summaries.",
"format": "boolean",
"name": "ENABLE_SUMMARY_GENERATION"
},
{
"description": "Summary provider: ollama (default), openai, or anthropic",
"format": "string",
"name": "SUMMARY_PROVIDER"
},
{
"description": "Summary generation model name (default: qwen3:0.6b)",
"format": "string",
"name": "SUMMARY_MODEL"
},
{
"description": "Maximum output tokens for summary generation (default: 4000, range: 50-16384). Increase if summaries are truncated by reasoning models",
"format": "number",
"name": "SUMMARY_MAX_TOKENS"
},
{
"description": "Timeout in seconds for summary generation API calls",
"format": "number",
"name": "SUMMARY_TIMEOUT_S"
},
{
"description": "Maximum number of retry attempts for summary generation",
"format": "number",
"name": "SUMMARY_RETRY_MAX_ATTEMPTS"
},
{
"description": "Base delay in seconds between retry attempts (with exponential backoff)",
"format": "number",
"name": "SUMMARY_RETRY_BASE_DELAY_S"
},
{
"description": "Maximum concurrent summary generation operations (default: 3, range: 1-20)",
"format": "number",
"name": "SUMMARY_MAX_CONCURRENT"
},
{
"description": "Custom summarization prompt. Overrides the built-in default. Used as system message for the LLM.",
"format": "string",
"name": "SUMMARY_PROMPT"
},
{
"description": "Minimum text content length in characters to trigger summary generation (default: 500, range: 0-10000). Set to 0 to always generate.",
"format": "number",
"name": "SUMMARY_MIN_CONTENT_LENGTH"
},
{
"description": "Ollama summary context window size in tokens (default: 32768, range: 512-2097152)",
"format": "number",
"name": "SUMMARY_OLLAMA_NUM_CTX"
},
{
"description": "Ollama summary truncation mode: false (default) returns error when context exceeded, true enables silent truncation",
"format": "boolean",
"name": "SUMMARY_OLLAMA_TRUNCATE"
},
{
"description": "Reasoning 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",
"format": "string",
"name": "SUMMARY_OPENAI_REASONING_EFFORT"
},
{
"description": "Effort level for Anthropic Claude models (default: none). Valid values: max, high, medium, low. Controls inference effort (adaptive thinking)",
"format": "string",
"name": "SUMMARY_ANTHROPIC_EFFORT"
},
{
"description": "Anthropic API key for summary generation",
"format": "string",
"isSecret": true,
"name": "ANTHROPIC_API_KEY"
},
{
"description": "Enable full-text search functionality",
"format": "boolean",
"name": "ENABLE_FTS"
},
{
"description": "Language for FTS stemming (e.g., english, german, french)",
"format": "string",
"name": "FTS_LANGUAGE"
},
{
"description": "Characters of context around each FTS match for reranking passage extraction (default: 750)",
"format": "number",
"name": "FTS_RERANK_WINDOW_SIZE"
},
{
"description": "Merge FTS match regions within this character distance (default: 100)",
"format": "number",
"name": "FTS_RERANK_GAP_MERGE"
},
{
"description": "Enable hybrid search combining FTS and semantic search with RRF fusion",
"format": "boolean",
"name": "ENABLE_HYBRID_SEARCH"
},
{
"description": "RRF smoothing constant for hybrid search (default 60)",
"format": "number",
"name": "HYBRID_RRF_K"
},
{
"description": "Multiplier for over-fetching results before RRF fusion (default: 2)",
"format": "number",
"name": "HYBRID_RRF_OVERFETCH"
},
{
"description": "Minimum significant query terms to switch hybrid FTS from AND to OR logic (default: 4)",
"format": "number",
"name": "HYBRID_FTS_OR_THRESHOLD"
},
{
"description": "Default sort order for search results: relevance (only 'relevance' supported in current version)",
"format": "string",
"name": "SEARCH_DEFAULT_SORT_BY"
},
{
"description": "Maximum character length for truncated text_content in search results (default: 300, range: 50-1000)",
"format": "number",
"name": "SEARCH_TRUNCATION_LENGTH"
},
{
"description": "Enable text chunking for embedding generation (default: true)",
"format": "boolean",
"name": "ENABLE_CHUNKING"
},
{
"description": "Target chunk size in characters (default: 1500)",
"format": "number",
"name": "CHUNK_SIZE"
},
{
"description": "Overlap between chunks in characters (default: 150)",
"format": "number",
"name": "CHUNK_OVERLAP"
},
{
"description": "Chunk score aggregation method: max (only 'max' supported in current version)",
"format": "string",
"name": "CHUNK_AGGREGATION"
},
{
"description": "Multiplier for over-fetching chunks before deduplication (default: 5)",
"format": "number",
"name": "CHUNK_DEDUP_OVERFETCH"
},
{
"description": "Enable cross-encoder reranking of search results (default: true)",
"format": "boolean",
"name": "ENABLE_RERANKING"
},
{
"description": "Reranking provider (default: flashrank)",
"format": "string",
"name": "RERANKING_PROVIDER"
},
{
"description": "Reranking model name (default: ms-marco-MiniLM-L-12-v2)",
"format": "string",
"name": "RERANKING_MODEL"
},
{
"description": "Maximum input length for reranking in tokens (default: 512)",
"format": "number",
"name": "RERANKING_MAX_LENGTH"
},
{
"description": "Multiplier for over-fetching results before reranking (default: 4)",
"format": "number",
"name": "RERANKING_OVERFETCH"
},
{
"description": "Directory for caching reranking models",
"format": "string",
"name": "RERANKING_CACHE_DIR"
},
{
"description": "Estimated characters per token for passage size validation (default: 4.0, range: 2.0-8.0)",
"format": "number",
"name": "RERANKING_CHARS_PER_TOKEN"
},
{
"description": "ONNX Runtime intra-operation parallelism threads for reranking (default: 0 = auto-detect)",
"format": "number",
"name": "RERANKING_INTRA_OP_THREADS"
},
{
"description": "Enable ONNX Runtime CPU memory arena for reranking (default: false)",
"format": "boolean",
"name": "RERANKING_CPU_MEM_ARENA"
},
{
"description": "Maximum passages per ONNX Runtime inference batch during reranking (default: 32)",
"format": "number",
"name": "RERANKING_BATCH_SIZE"
},
{
"description": "Embedding provider: ollama (default), openai, azure, huggingface, or voyage",
"format": "string",
"name": "EMBEDDING_PROVIDER"
},
{
"description": "OpenAI API key for OpenAI embedding provider",
"format": "string",
"isSecret": true,
"name": "OPENAI_API_KEY"
},
{
"description": "Custom base URL for OpenAI-compatible APIs",
"format": "string",
"name": "OPENAI_API_BASE"
},
{
"description": "OpenAI organization ID",
"format": "string",
"name": "OPENAI_ORGANIZATION"
},
{
"description": "Azure OpenAI API key",
"format": "string",
"isSecret": true,
"name": "AZURE_OPENAI_API_KEY"
},
{
"description": "Azure OpenAI endpoint URL",
"format": "string",
"name": "AZURE_OPENAI_ENDPOINT"
},
{
"description": "Azure OpenAI embedding deployment name",
"format": "string",
"name": "AZURE_OPENAI_EMBEDDING_DEPLOYMENT_NAME"
},
{
"description": "Azure OpenAI API version (default: 2024-02-01)",
"format": "string",
"name": "AZURE_OPENAI_API_VERSION"
},
{
"description": "HuggingFace Hub API token for HuggingFace embedding provider",
"format": "string",
"isSecret": true,
"name": "HUGGINGFACEHUB_API_TOKEN"
},
{
"description": "Voyage AI API key for Voyage embedding provider",
"format": "string",
"isSecret": true,
"name": "VOYAGE_API_KEY"
},
{
"description": "Voyage AI truncation mode: false (default) returns error when context exceeded, true enables silent truncation",
"format": "boolean",
"name": "VOYAGE_TRUNCATION"
},
{
"description": "Voyage AI batch size for embedding requests",
"format": "number",
"name": "VOYAGE_BATCH_SIZE"
},
{
"description": "Enable LangSmith tracing",
"format": "boolean",
"name": "LANGSMITH_TRACING"
},
{
"description": "LangSmith API key",
"format": "string",
"isSecret": true,
"name": "LANGSMITH_API_KEY"
},
{
"description": "LangSmith project name",
"format": "string",
"name": "LANGSMITH_PROJECT"
},
{
"description": "LangSmith API endpoint URL",
"format": "string",
"name": "LANGSMITH_ENDPOINT"
},
{
"description": "Comma-separated list of metadata fields to index (field:type format)",
"format": "string",
"name": "METADATA_INDEXED_FIELDS"
},
{
"description": "Index sync mode: strict (fail), auto (sync), warn (log), additive (default, add missing only)",
"format": "string",
"name": "METADATA_INDEX_SYNC_MODE"
},
{
"description": "Transport mode: stdio for local, http for Docker/remote",
"format": "string",
"name": "MCP_TRANSPORT"
},
{
"description": "HTTP bind address (use 0.0.0.0 for Docker)",
"format": "string",
"name": "FASTMCP_HOST"
},
{
"description": "HTTP port number",
"format": "number",
"name": "FASTMCP_PORT"
},
{
"description": "Enable 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.",
"format": "boolean",
"name": "FASTMCP_STATELESS_HTTP"
},
{
"description": "Comma-separated list of tools to disable (e.g., delete_context,update_context)",
"format": "string",
"name": "DISABLED_TOOLS"
},
{
"description": "Bearer token for HTTP authentication (required when using SimpleTokenVerifier)",
"format": "string",
"isSecret": true,
"name": "MCP_AUTH_TOKEN"
},
{
"description": "Client ID to assign to authenticated requests",
"format": "string",
"name": "MCP_AUTH_CLIENT_ID"
},
{
"description": "Authentication provider: none (default), simple_token",
"format": "string",
"name": "MCP_AUTH_PROVIDER"
},
{
"description": "Custom server instructions text. Overrides built-in default. Set to empty string to disable.",
"format": "string",
"name": "MCP_SERVER_INSTRUCTIONS"
}
]
}
],
"_meta": {
"dev.indusmcp/source": "official-registry-mirror",
"dev.indusmcp/synced": "2026-05-12"
}
}