Token导航 LogoToken导航TokenDH.com
MCP Demo Go logo
运维云端stdio官方级别未说明来源级核验

MCP Demo Go

MCP Server

一个基于MCP协议的服务器,允许通过自然语言查询与Kubernetes集群和Istio服务网格进行交互,实现LLM与基础设施的桥梁功能。

工具数

0

提示词数

0

GitHub Stars

0

资源数

0
Kubernetes管理PythonClaude基础设施即代码Claude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

Daniello502

提供方

Daniello502

最后核验

2026/5/17 20:20

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

pip install -r requirements.txt

详细介绍

MCP Kubernetes演示

一个模型上下文协议(MCP)服务器,使Claude AI能够通过自然语言查询与Kubernetes集群和Istio服务网格进行交互。这表明MCP是LLM和实时基础设施之间的桥梁。

建筑

User → Web Browser → MCP Server (Pod) → Kubernetes API
                                      → Istio CRDs
                                      → Claude API (for LLM responses)

特性

MCP工具可用

Kubernetes基本操作:

  • list_pods -使用可选标签选择器列出命名空间中的Pod
  • get_pod_logs -从特定的pod/容器中检索日志
  • get_events -获取集群事件(按命名空间筛选)

Istio服务网格操作:

  • list_virtualservices -列出所有具有路由规则的VirtualServices
  • get_virtualservice -获取特定的VirtualService详细信息
  • list_destinationrules -列出所有目的地规则和交通政策
  • list_gateways -列出所有Istio网关
  • list_service_entries -列出外部服务的服务条目

Kiali运营(服务网格可视化):

  • get_kiali_graph -从起亚力API获取服务图数据
  • get_kiali_service_health -获取服务的健康评分
  • get_kiali_traffic_metrics -获取请求率、错误率、延迟百分比

Jaeger操作(分布式跟踪):

  • query_jaeger_traces -按服务名称、操作、时间范围查询跟踪
  • get_jaeger_trace_detail -获取跟踪的详细跨度信息
  • analyze_jaeger_latency -查找缓慢的痕迹和瓶颈

普罗米修斯运营(指标和监控):

  • query_prometheus -执行PromQL查询
  • get_istio_metrics -获取Istio特定的指标(request_total、request_duration)
  • get_service_metrics -获取特定服务的指标
  • analyze_prometheus_alerts -检查活动的Prometheus警报

先决条件

  • 安装了Istio的Minikube
  • Podman(用于构建和推送图像)
  • 带有个人访问令牌(PAT)的Docker Hub帐户
  • 无烟煤API键

快速开始

1.构建和推送Docker镜像

# Login to Docker Hub with your PAT
podman login docker.io
# Username: your-dockerhub-username
# Password: your-personal-access-token

# Build the image
podman build -t docker.io/yourusername/mcp-k8s-server:v1 .

# Push to Docker Hub
podman push docker.io/yourusername/mcp-k8s-server:v1

重要提示:

  • 替换 yourusername 使用您的实际Docker Hub用户名
  • 登录时使用您的Docker Hub个人访问令牌(PAT)作为密码
  • 在以下位置创建PAT:https://hub.docker.com/settings/security

2.配置环境变量

创建一个 .env 使用您的配置文件:

# Copy the template
cp config.template .env

# Edit with your values
DOCKER_USERNAME=yourusername
ANTHROPIC_API_KEY=your-anthropic-api-key-here

3.部署到Minikube

# Deploy everything (the script will handle image reference and secret creation)
./deploy.sh

# Or manually:
kubectl apply -k k8s/

4.访问应用程序

# Get the service URL
minikube service mcp-server -n mcp-demo --url

# Or use port-forward
kubectl port-forward svc/mcp-server 8080:8080 -n mcp-demo

然后打开浏览器 http://localhost:8080

使用示例

服务网格拓扑(Kiali)

  • “显示默认命名空间的服务图”
  • “哪些服务不健康?”
  • “我的网格中的交通流量是多少?”

分布式跟踪(Jaeger)

  • “查找过去30分钟内的慢速痕迹”
  • “显示productpage服务的痕迹”
  • “服务依赖关系是什么?”
  • “分析延迟瓶颈”

度量与监控(普罗米修斯)

  • “评论服务的错误率是多少?”
  • “显示所有服务的P95延迟”
  • “是否有任何活动警报?”
  • “请求率趋势如何?”

Istio配置

  • “列出所有VirtualServices并解释其路由”
  • “显示目的地规则和交通政策”
  • “配置了哪些网关?”

综合分析

  • “为什么评级服务很慢?”(检查Jaeger跟踪+Prometheus指标)
  • “分析产品页面服务的健康状况”(Kiali+Prometheus)
  • “向我展示评论服务的所有内容”(综合分析)

安全

RBAC权限

MCP服务器以最小的只读权限运行:

  • Kubernetes:Pod、服务、事件、命名空间、节点(只读)
  • Istio CRD:虚拟服务、目标规则、网关、服务条目(只读)
  • 日志:pod日志(只读)
  • 没有写入/删除权限

秘密管理

  • 存储为Kubernetes Secret的Anthropic API密钥
  • 作为环境变量安装在吊舱中
  • 容器图像中没有敏感数据

故障排除

检查Pod状态

kubectl get pods -n mcp-demo
kubectl describe pod -l app=mcp-server -n mcp-demo

查看日志

kubectl logs -f deployment/mcp-server -n mcp-demo

检查服务连接

kubectl get svc -n mcp-demo
kubectl port-forward svc/mcp-server 8080:8080 -n mcp-demo

验证RBAC

kubectl auth can-i list pods --as=system:serviceaccount:mcp-demo:mcp-server
kubectl auth can-i list virtualservices --as=system:serviceaccount:mcp-demo:mcp-server

健康检查

curl http://localhost:8080/health

API终点

  • GET / -Web用户界面
  • POST /chat -与Claude聊天
  • GET /health -健康检查
  • GET /tools -列出可用的MCP工具
  • POST /tools/{tool_name} -执行特定工具

发展

地方发展

# Install dependencies
pip install -r requirements.txt

# Set environment variables
export ANTHROPIC_API_KEY="your-api-key"
export KIALI_ENDPOINT="http://localhost:20001"
export JAEGER_ENDPOINT="http://localhost:16686"
export PROMETHEUS_ENDPOINT="http://localhost:9090"
export GRAFANA_ENDPOINT="http://localhost:3000"

# Run locally
python main.py

测试工具

# Test specific tool
curl -X POST http://localhost:8080/tools/list_pods \
  -H "Content-Type: application/json" \
  -d '{"namespace": "default"}'

# Test chat endpoint
curl -X POST http://localhost:8080/chat \
  -H "Content-Type: application/json" \
  -d '{"message": "Show me all pods in default namespace"}'

项目结构

mcp-demo-go/
├── main.py                 # MCP server implementation
├── requirements.txt        # Python dependencies
├── Dockerfile             # Container image
├── README.md              # This file
└── k8s/                   # Kubernetes manifests
    ├── namespace.yaml
    ├── serviceaccount.yaml
    ├── clusterrole.yaml
    ├── clusterrolebinding.yaml
    ├── secret.yaml
    ├── deployment.yaml
    ├── service.yaml
    └── kustomization.yaml

贡献

  1. 分叉存储库
  2. 创建要素分支
  3. 进行更改
  4. 彻底测试
  5. 提交拉取请求

许可证

MIT许可证-有关详细信息,请参阅许可证文件。

支持

对于问题和疑问:

  1. 检查故障排除部分
  2. 查看日志
  3. 在GitHub上打开一个问题

______________________________________________________________________

注: 这是一个演示项目,展示了MCP与Kubernetes和Istio的功能。如果没有额外的安全强化和错误处理,它就不能用于生产用途。

目录标签

目录标签

Kubernetes管理PythonClaude基础设施即代码本地部署服务网格自然语言处理AI运维

支持客户端

Claude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

token

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiotoken部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP