语义路由器配置器MCP服务器
此项目将MCP服务器部署为语义路由器的sidecar,该sidecar对语义路由器配置YAML文件进行更改。提供通过模型上下文协议管理语义路由器配置的工具。
建筑
该服务器设计为在Kubernetes中运行,具有:
- 一 初始配置 从ConfigMap加载(
initial-configuration) - A. 最终配置 存储在空的Dir卷中(
final-config)可以与其他Pod共享 - 对最终配置进行更改,同时保留初始配置。
MCP服务器在语义路由器Helm部署期间安装,并在同一pod中作为sidecar容器运行,允许其修改语义路由器使用的配置文件。
语义路由器不再将configmap与配置一起持久化。MCP服务器负责写入语义路由器将读取的配置文件。这允许MCP服务器管理配置生命周期。
本地开发
先决条件
- Python 3.11+
- 点
Kubernetes部署
使用Helm部署
首先,构建并推送MCP服务器镜像:
export SEMANTIC_ROUTER_MCP_IMAGE_REPO="[yourimage-repo]"
export SEMANTIC_ROUTER_MCP_IMAGE_TAG="[tag]"
export SEMANTIC_ROUTER_IMAGE_REPO="[yourimage-repo-with-agentgateway-support]"
export SEMANTIC_ROUTER_IMAGE_TAG="[tag-with-agentgateway-support]"docker buildx build --platform linux/amd64,linux/arm64 -t ${SEMANTIC_ROUTER_MCP_IMAGE_REPO}:${SEMANTIC_ROUTER_MCP_IMAGE_TAG} --push .如果没有,请安装kustomize。这是后渲染器在部署前修改Helm chart所必需的:
brew install kustomize使用MCP服务器sidecar部署语义路由器:
helm upgrade -i semantic-router oci://ghcr.io/vllm-project/charts/semantic-router \
--version v0.0.0-latest \
--namespace vllm-semantic-router-system \
--create-namespace \
--set image.repository=${SEMANTIC_ROUTER_IMAGE_REPO} \
--set image.tag=${SEMANTIC_ROUTER_IMAGE_TAG} \
--set config.classifier.pii_model.pii_mapping_path="models/pii_classifier_modernbert-base_presidio_token_model/label_mapping.json" \
--set image.pullPolicy=Always \
--post-renderer ./scripts/kustomize-wrapper.sh \
-f ./helm/values.yaml要将MCP服务器作为LoadBalancer服务公开,请应用以下清单:
kubectl apply -f manifests/semantic-router-mcp-service.yaml配置卷
部署使用两个卷:
- 初始配置:从装载的只读卷
initial-configuration康福特地图
- 路径: /config/initial/semantic-router.yaml - 目的:提供基线配置
- 最终配置:工作配置的空Dir卷
- 路径: /config/final/semantic-router.yaml - 目的:存储可与其他Pod共享的修改后的配置 - 可以由同一部署中的其他Pod挂载,以读取更新的配置
与语义路由器Pod共享配置
MCP服务器和语义路由器部署在同一个pod中:
示例用法
打开终端并端口转发MCP服务器服务或使用负载均衡器服务。
export SEM_ROUTER_ADDRESS=$(kubectl get svc -n vllm-semantic-router-system semantic-router-mcp -o jsonpath="{.status.loadBalancer.ingress[0]['hostname','ip']}")
echo $SEM_ROUTER_ADDRESS打开npx检查器并连接到MCP服务器:
npx @modelcontextprotocol/inspector --log-level debug --server-url http://$SEM_ROUTER_ADDRESS:8081/mcp然后单击检查器UI中的“连接”按钮连接到MCP服务器。您应该看到检查器中加载了初始配置。
然后转到“工具”选项卡,单击“列出工具”以查看配置中定义的工具。使用工具更新配置,并查看语义路由器pod中反映的更改。
