A.当地RAG→ MCP服务器
获取RAG代码(vector.py、Local_RAG.py)。
- 添加了mcp_server.py,将search_reviews作为mcp工具公开。
- 为探针添加了/healthz和/ready端点。
- 双模式:
- stdio模式 (MCP_STDIO=1,默认值)用于本地MCP客户端,如Claude Desktop。 - 服务模式 (MCP_STDIO=0)用于Docker/K8s。
Docker/K8s的服务模式(MCP_STDIO=0)。
在本地运行(stdio模式):
conda activate llm
export OLLAMA_HOST=http://localhost:11434
python mcp_server.py
# in another terminal:
curl http://localhost:8080/healthzB.码头化
- 写a
Dockerfile:
- 已安装的deps。 - 已创建非root用户。 - 制造 /data/chroma 可写。 - 集 ENV CHROMA_DIR=/data/chroma.
- 已构建并标记的图像:
docker build -t rag-mcp:local .在服务模式下运行容器(具有持久性和Ollama连接):
docker卷创建chromadata
# Linux
docker run --rm -p 8080:8080 \
--add-host=host.docker.internal:host-gateway \
-e MCP_STDIO=0 \
-e OLLAMA_HOST=http://host.docker.internal:11434 \
-v chroma_data:/data/chroma \
rag-mcp:local
# Mac/Windows (omit --add-host)测试健康状况:
curl http://localhost:8080/healthzC.Kubernetes(本地带种类)
- 已在k8s/下创建命名空间、ConfigMap、部署和服务。
- 部署在MCP_STDIO=0(服务模式)下运行。
- 健康探针检查/healthz和/就绪。
# 1. Create cluster
kind create cluster --name rag
# 2. Load local image into kind
kind load docker-image rag-mcp:local --name rag
# 3. Apply manifests
kubectl apply -f k8s/
# 4. Check
kubectl -n rag-dev get pods
kubectl -n rag-dev logs deploy/rag-mcp
# 5. Port-forward and test
kubectl -n rag-dev port-forward svc/rag-mcp 8080:80
curl http://localhost:8080/healthz此时:✅ 你有一个在Kubernetes上运行的MCP微服务。
