23 lines
883 B
Python
23 lines
883 B
Python
from mcp.server.fastmcp import FastMCP
|
|
import chromadb
|
|
import os
|
|
|
|
# On définit l'hôte sur 0.0.0.0 et le port sur 8080 pour le container Docker
|
|
mcp = FastMCP("Chroma-Server", host="0.0.0.0", port=8080)
|
|
|
|
# Initialisation du client ChromaDB
|
|
CHROMA_URL = os.getenv("CHROMA_URL", "http://chroma-db:8000")
|
|
client = chromadb.HttpClient(host="chroma-db", port=8000)
|
|
|
|
@mcp.tool()
|
|
async def query_chroma(collection_name: str, query_text: str, n_results: int = 5):
|
|
"""Interroge une collection ChromaDB pour trouver des documents similaires."""
|
|
collection = client.get_collection(name=collection_name)
|
|
results = collection.query(query_texts=[query_text], n_results=n_results)
|
|
return str(results)
|
|
|
|
if __name__ == "__main__":
|
|
# On lance le serveur en mode SSE (Server-Sent Events)
|
|
# C'est ce que LM Studio et la plupart des clients attendent
|
|
mcp.run(transport="sse")
|