关于 EKS Model Context Protocol (MCP) Server
EKS Model Context Protocol (MCP) Server 通过 FastAPI 服务向 GenAI Agent 提供 EKS 和 Kubernetes 操作。它支持集群与工作负载查询、资源管理及多种身份验证方式。
主要功能
- 01列出并查看 EKS 集群
- 02检查节点组和 Kubernetes 资源
- 03获取 Pod 日志
- 04支持多种 EKS 身份验证方式
- 05通过 Docker 运行或部署到 ECS
适用场景
- 01列出 AWS 区域中的集群
- 02检查命名空间中的 Pod 和部署
- 03获取 Pod 的日志
MCP 相关
该服务通过操作发现和查询端点,向 MCP 客户端提供 EKS 与 Kubernetes 操作。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
EKS Model Context Protocol (MCP) 服务
一个轻量、高效的服务,实现了用于 EKS 操作的 Model Context Protocol。该服务为 GenAI Agent 提供与 EKS 集群交互的标准化接口。
功能特性
- 响应速度快,并能妥善处理超时
- 全面支持 EKS 操作
- Kubernetes 资源管理(Pod、服务、部署等)
- 支持多种 EKS 集群身份验证方式
- 健壮的错误处理和日志记录
- 通过 Docker 容器化,便于部署
- 支持部署到 ECS
项目结构
main.py:使用 FastAPI 实现的主服务eks_operations.py:EKS API 操作实现k8s_operations.py:Kubernetes API 操作实现k8s_operations_sdk_v4.py:基于 SDK 的 Kubernetes 操作实现k8s_operations_kubectl.py:通过 kubectl 实现的 Kubernetes 操作,并支持妥善的身份验证k8s_auth_config.py:Kubernetes 身份验证配置direct_k8s_client.py:Kubernetes API 直连客户端实现test_*.py:适用于不同实现的各类测试脚本Dockerfile和Dockerfile.amd64:Docker 配置文件docker-compose.yml:Docker Compose 配置requirements.txt:Python 依赖项client/:客户端实现目录(客户端 README)ecs-deployment/:ECS 部署脚本和配置(ECS 部署 README)
API 端点
GET /health- 健康检查端点GET /mcp/v1/operations- 列出可用操作POST /mcp/v1/query- 执行 MCP 操作
支持的操作
EKS 集群操作
list_clusters- 列出某个区域中的 EKS 集群describe_cluster- 获取集群的详细信息list_nodegroups- 列出集群的节点组describe_nodegroup- 获取节点组的详细信息
Kubernetes 操作
list_namespaces- 列出 Kubernetes 命名空间list_pods- 列出命名空间中的 Poddescribe_pod- 获取 Pod 的详细信息get_deployments- 列出命名空间中的部署describe_deployment- 获取部署的详细信息get_services- 列出命名空间中的服务describe_service- 获取服务的详细信息get_pod_logs- 获取 Pod 的日志
身份验证方式
该服务支持多种 EKS 集群身份验证方式:
- AWS SDK 身份验证:使用 AWS SDK 向 EKS 进行身份验证并获取集群信息
- 使用生成的 Kubeconfig 运行 Kubectl:创建临时 kubeconfig 文件并使用 kubectl
- 直接调用 Kubernetes API:直接调用 Kubernetes API 服务器
当前实现使用身份验证配置正确的 Kubectl 方式,可提供最可靠的结果。
开始使用
前提条件
- Docker
- AWS 凭证(用于生产环境)
- Python 3.8+(用于本地开发)
在本地运行
# Install dependencies
pip install -r requirements.txt
# Run the server
python main.py
使用 Docker 运行
# Build the Docker image
docker build -t eks-mcp-server .
# Run the container
docker run -d -p 8000:8000 --name mcp-server eks-mcp-server
使用 Docker Compose 运行
# Start the server
docker-compose up -d
# Stop the server
docker-compose down
部署到 ECS
详细说明请参阅 ECS 部署 README。
# Deploy to ECS
cd ecs-deployment
./deploy.sh
# Update existing ECS deployment
./update-service.sh
测试
使用随附的测试脚本验证服务是否正常运行:
# Basic tests
python test_mcp.py
# Comprehensive operation tests
python test_mcp_operations.py
# Test namespace integration
python test_mcp_namespace.py
python test_mcp_namespace_2.py
# Test kubectl integration
python test_kubectl_operations.py
# Test SDK v3 operations
python test_v3_operations.py
# Test SDK v4 operations
python test_v4_operations.py
客户端用法
项目包含一个客户端实现,使用 Amazon Bedrock 与 MCP 服务进行对话交互。详情请参阅客户端 README。
# Run the client
cd client
python mcp_chat_client_v6.py
请求示例
列出集群
curl -X POST http://localhost:8000/mcp/v1/query \
-H "Content-Type: application/json" \
-H "X-API-Key: your-api-key" \
-d '{
"operation": "list_clusters",
"parameters": {
"region": "us-east-1"
}
}'
列出 Pod
curl -X POST http://localhost:8000/mcp/v1/query \
-H "Content-Type: application/json" \
-H "X-API-Key: your-api-key" \
-d '{
"operation": "list_pods",
"parameters": {
"cluster_name": "my-cluster",
"namespace": "default",
"region": "us-east-1"
}
}'
架构
该服务使用 FastAPI 构建,并结合同步和异步操作来提升性能。它包含:
- AWS API 调用的超时处理
- 多种 EKS 集群身份验证方式
- 全面的日志记录
- 响应时间跟踪
- 带有详细错误代码的错误处理
EKS 身份验证
要让服务器通过身份验证连接到 EKS 集群,需要将 ECS 任务角色添加到 EKS 集群的 aws-auth ConfigMap 中。详细说明请参阅 ECS 部署 README。
当前部署
服务器目前已部署到 ECS,可通过以下地址访问:
- 端点:http://3.90.45.69:8000
- 健康检查:http://3.90.45.69:8000/health
- 操作发现:http://3.90.45.69:8000/mcp/v1/operations
测试命名空间
项目在 EKS 集群中包含测试命名空间:
mcp-test-namespace:包含一个有 2 个 nginx Pod 的部署mcp-test-namespace-2:包含一个有 3 个 nginx Pod 的部署
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。