HTS MCP
Skip to Content
DeploymentConfiguration

Configuration

All settings are configured via environment variables, loaded through Pydantic BaseSettings.

Required Settings

SettingTypeDescription
DATABASE_URLstringPostgreSQL connection string (e.g., postgresql://user:pass@host:5432/dbname)
OPENAI_API_KEYstringOpenAI API key for embeddings and LLM calls

API Security

SettingTypeDefaultDescription
API_KEYstring""REST API authentication key. If empty, API runs without auth
CORS_ORIGINSlist[string]["*"]Allowed CORS origins
RATE_LIMIT_ENABLEDbooleanfalseEnable endpoint rate limiting

Connection Pool

SettingTypeDefaultDescription
POOL_MIN_SIZEinteger2Minimum pool connections
POOL_MAX_SIZEinteger10Maximum pool connections
POOL_TIMEOUTfloat5.0Seconds to wait for a connection
POOL_MAX_IDLEfloat300.0Seconds before closing an idle connection
DB_STATEMENT_TIMEOUTinteger30Query timeout in seconds

API Server

SettingTypeDefaultDescription
API_HOSTstring"0.0.0.0"REST API bind address
API_PORTinteger8000REST API port
LOG_LEVELstring"INFO"Logging level
SettingTypeDefaultDescription
MIN_SIMILARITY_THRESHOLDfloat0.3Default minimum similarity for search results

Embeddings

SettingTypeDefaultDescription
EMBEDDING_MODELstring"text-embedding-3-small"OpenAI embedding model
EMBEDDING_BATCH_SIZEinteger500Texts per API batch call

Enrichment

SettingTypeDefaultDescription
ENRICHMENT_MODELstring"gpt-5.4-nano"LLM for HTS6 enrichment
ENRICHMENT_TEMPERATUREfloat0.1LLM temperature
ENRICHMENT_BATCH_SIZEinteger50Codes per batch
ENRICHMENT_MAX_WORKERSinteger25Concurrent enrichment threads

Graph Pipeline: Edge Generation

SettingTypeDefaultDescription
GRAPH_KNN_Kinteger30Nearest neighbors per code
GRAPH_KNN_MIN_SIMILARITYfloat0.65Minimum cosine similarity
GRAPH_KNN_LEVELstring"hts8"Embedding level for KNN
GRAPH_KNN_VARIANTstring"full"Embedding variant for KNN

Graph Pipeline: Edge Classification

SettingTypeDefaultDescription
GRAPH_CLASSIFICATION_MODELstring"gpt-5.4-nano"LLM for edge classification
GRAPH_CLASSIFICATION_TEMPERATUREfloat0.1LLM temperature
GRAPH_CLASSIFICATION_MAX_TOKENSinteger1500Max response tokens
GRAPH_CLASSIFICATION_CONCURRENCYinteger200Concurrent LLM calls
GRAPH_CLASSIFICATION_BATCH_SIZEinteger500Database flush batch size
GRAPH_CLASSIFICATION_CHUNK_SIZEinteger1000Candidates per processing chunk
GRAPH_CLASSIFICATION_CHUNK_DELAYfloat1.0Seconds between chunks (rate limit pacing)

Example .env

# Required DATABASE_URL=postgresql://user:password@db.supabase.co:5432/postgres OPENAI_API_KEY=sk-... # API Security (optional) API_KEY=your-secret-api-key RATE_LIMIT_ENABLED=true # Connection Pool POOL_MIN_SIZE=2 POOL_MAX_SIZE=10 # Search MIN_SIMILARITY_THRESHOLD=0.3 # Graph Pipeline GRAPH_KNN_K=30 GRAPH_CLASSIFICATION_CONCURRENCY=200