Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 10 additions & 4 deletions kagent-feast-mcp/mcp-server/server.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
import threading

from fastmcp import FastMCP
from pymilvus import MilvusClient
from sentence_transformers import SentenceTransformer
Expand All @@ -13,14 +15,18 @@

model: SentenceTransformer = None
client: MilvusClient = None
_init_lock = threading.Lock()


def _init():
"""Initialize model and client using double-checked locking to prevent race conditions."""
global model, client
if model is None:
model = SentenceTransformer(EMBEDDING_MODEL)
if client is None:
client = MilvusClient(uri=MILVUS_URI, user=MILVUS_USER, password=MILVUS_PASSWORD)
if model is None or client is None:
with _init_lock:
if model is None:
model = SentenceTransformer(EMBEDDING_MODEL)
if client is None:
client = MilvusClient(uri=MILVUS_URI, user=MILVUS_USER, password=MILVUS_PASSWORD)


@mcp.tool()
Expand Down