mcp-kube 演示
在这个演示中,我们运行了一个 AI 代理 和a MCP(模型上下文协议)服务器 在Kubernetes内部,并表明代理可以 使用MCP在运行时动态发现和调用工具 --无需硬编码任何工具逻辑。
核心思想:
代理不知道提前存在什么工具——它在运行时询问MCP。
______________________________________________________________________
先决条件
您的计算机上需要安装以下内容:
- 码头工人
- kubectl 的
- kind(推荐用于本地Kubernetes)
验证您的设置:
docker --version
kubectl version --client
kind version创建Kubernetes集群 使用kind创建本地Kubernetes集群:
kind create cluster --name mcp-demo-final
kubectl cluster-info --context kind-mcp-demo-final
Load the MCP Server Image into kindKind在Docker容器中运行Kubernetes节点,因此本地构建的映像必须显式加载到集群中。
kind load docker-image mcp-server:demo --name mcp-demo-final检查图像是否存在于本地:
docker images | grep mcp-server将MCP服务器部署到Kubernetes 应用MCP服务器清单:
kubectl apply -f mcp-server.yaml等待部署就绪:
kubectl rollout status deployment/mcp-server
kubectl get pods -l app=mcp-server
kubectl get svc mcp-server此时,MCP服务器正在集群内运行,可以通过Kubernetes DNS发现。
运行代理 部署代理pod:
kubectl apply -f agent.yaml
kubectl get pod agent -w代理运行完毕后,查看其日志:
kubectl logs agent预期输出
🔍 Discovering tools via MCP...
- get_time: Get the current server time
- get_cluster_name: Return the Kubernetes cluster name
⚙️ Calling tool: get_cluster_name
✅ Tool result: {'cluster': 'demo-cluster'}这个演示显示了什么
- 代理在运行时查询了MCP服务器
- 可用工具是动态发现的
- 代理根据可用性选择了最佳工具
- 该工具通过MCP执行
- 代理中没有硬编码任何工具。
关键要点 MCP允许代理在运行时动态发现和使用工具,而Kubernetes提供了在生产中安全运行所需的运行时、网络和隔离。
清理(可选) 删除演示资源和集群:
kubectl delete -f agent.yaml
kubectl delete -f mcp-server.yaml
kind delete cluster --name mcp-demo-final