Kubernetes MCP Server

ทางการ

เซิร์ฟเวอร์ Kubernetes MCP สำหรับ Claude ที่สร้างด้วยภาษา Go เซิร์ฟเวอร์นี้ทำงานร่วมกับ ArgoCD, GitLab, Claude AI และ Kubernetes เพื่อให้สามารถควบคุมและทำงานอัตโนมัติขั้นสูงในสภาพแวดล้อม Kubernetes

GitHub
9
ลองใช้ MCP นี้ผู้สนับสนุน

คุณทำอะไรได้บ้างด้วย Kubernetes MCP?

  • ตรวจสอบทรัพยากรคลัสเตอร์ — ขอให้ผู้ช่วยของคุณแสดงรายการเนมสเปซหรือทรัพยากรประเภทใดก็ได้ผ่าน GET /api/v1/namespaces และ GET /api/v1/resources/{kind}
  • แก้ไขปัญหาทรัพยากรเฉพาะ — ให้ผู้ช่วยวิเคราะห์หรือแก้ไขปัญหา pod เช่น example-pod โดยใช้ endpoint POST /api/v1/mcp/troubleshoot
  • ตรวจสอบคอมมิต GitLab — ขอการวิเคราะห์คอมมิตผ่าน endpoint POST /api/v1/mcp/commit เพื่อรับข้อมูลเชิงลึกที่ขับเคลื่อนด้วย AI
  • ตรวจสอบแอปพลิเคชัน ArgoCD — ขอรายการแอปพลิเคชัน ArgoCD ทั้งหมดผ่าน GET /api/v1/argocd/applications
  • สอบถาม AI แบบกำหนดเองเกี่ยวกับทรัพยากร — ส่งคำขอ MCP ทั่วไป (POST /api/v1/mcp) พร้อมคำถามที่กำหนดเองเกี่ยวกับทรัพยากรใดๆ ในคลัสเตอร์ของคุณ

เอกสาร

Blank Cut

Claude Kubernetes MCP Server

CI Release Docker Pulls Docker Image Size Go Report Card License GitHub release

เซิร์ฟเวอร์ Model Context Protocol (MCP) สำหรับการจัดการคลัสเตอร์ Kubernetes พร้อมการผสานรวมกับ ArgoCD และ GitLab

พื้นที่เก็บข้อมูลนี้ประกอบด้วยเซิร์ฟเวอร์ Claude Kubernetes MCP (Model Context Protocol) ที่สร้างด้วยภาษา Go เซิร์ฟเวอร์นี้ผสานรวมกับ ArgoCD, GitLab, Claude AI และ Kubernetes เพื่อให้สามารถควบคุมและจัดการสภาพแวดล้อม Kubernetes ได้อย่างขั้นสูง

ดูเอกสารของเราได้ที่นี่

สารบัญ


ภาพรวม

เซิร์ฟเวอร์นี้ถูกออกแบบมาเพื่อจัดระเบียบงาน Kubernetes โดยใช้ Claude AI, GitLab, ArgoCD และ Vault โดยเปิดเผย REST API ที่ช่วยให้สามารถโต้ตอบกับระบบเหล่านี้ได้ผ่านโปรแกรม ขับเคลื่อนด้วย config.yaml ที่กำหนดค่าไว้ และตรวจสอบสิทธิ์ด้วยคีย์ API

ข้อกำหนดเบื้องต้น

  • Go 1.20 ขึ้นไป
  • Docker
  • คลัสเตอร์ Kubernetes และ ~/.kube/config ที่ถูกต้อง
  • คลัสเตอร์ EKS ที่ตั้งค่า AWS_PROFILE ในเครื่อง
  • ข้อมูลประจำตัว ArgoCD
  • โทเค็นการเข้าถึงส่วนบุคคลของ GitLab
  • คีย์ API ของ Claude (Anthropic)
  • ข้อมูลประจำตัว Vault (ไม่บังคับ ขึ้นอยู่กับการใช้งาน)

คำแนะนำการติดตั้ง

1. โคลนพื้นที่เก็บข้อมูล

git clone https://github.com/blankcut/kubernetes-mcp-server.git
cd kubernetes-mcp-server

2. ตั้งค่าตัวแปรสภาพแวดล้อมที่จำเป็น

ส่งออกข้อมูลประจำตัวสำหรับ ArgoCD, GitLab และ Claude:

export ARGOCD_USERNAME="argocd-username"
export ARGOCD_PASSWORD="argocd-password"
export GITLAB_TOKEN="gitlab-token"
export CLAUDE_API_KEY="claude-api-key"
export VAULT_TOKEN="optional-if-using-vault"

ตรวจสอบให้แน่ใจว่ามี kubeconfig พร้อมใช้งาน:

export KUBECONFIG=~/.kube/config

3. กำหนดค่า config.yaml

อัปเดต kubernetes-claude-mcp/config.yaml ด้วยข้อมูลประจำตัวและการตั้งค่าเซิร์ฟเวอร์:

server:
  address: ":8080"
  readTimeout: 30
  writeTimeout: 60
  auth:
    apiKey: ""${API_KEY}"" 

kubernetes:
  kubeconfig: ""
  inCluster: false
  defaultContext: ""
  defaultNamespace: "default"

argocd:
  url: "http://example.argocd.com"
  authToken: ""
  username: "${ARGOCD_USERNAME}"
  password: "${ARGOCD_PASSWORD}"
  insecure: true

gitlab:
  url: "https://gitlab.com"
  authToken: "${AUTH_TOKEN}"
  apiVersion: "v4"
  projectPath: ""${PROJECT_PATH}""

claude:
  apiKey: "${API_KEY}"
  baseURL: "https://api.anthropic.com"
  modelID: "claude-sonnet-4.5-20250514"
  maxTokens: 8192
  temperature: 0.3

คุณสามารถใช้เทมเพลต Go ที่ให้มาหรือวิธีการแทรกตัวแปรสภาพแวดล้อมได้

4. เพิ่มคีย์ API สำหรับ Postman

โปรดตรวจสอบให้แน่ใจว่า config.yaml มี apiKey ซึ่งจะใช้สำหรับตรวจสอบสิทธิ์คำขอใน Postman หรือไคลเอนต์ภายนอกใด ๆ


การรันในเครื่อง

cd kubernetes-claude-mcp
go run ./cmd/server/main.go

พร้อมบันทึกการดีบัก:

LOG_LEVEL=debug go run ./cmd/server/main.go --config config.yaml

เซิร์ฟเวอร์จะเริ่มทำงานและผูกกับพอร์ตที่กำหนดค่าไว้ใน config.yaml (ค่าเริ่มต้น: 8080)


การสร้างและรันด้วย Docker

1. สร้างอิมเมจ

cd kubernetes-claude-mcp
docker build -t claude-mcp-server -f Dockerfile .

2. รันคอนเทนเนอร์ (รวมตัวเลือกการสร้างที่สอง)

cd kubernetes-claude-mcp
docker-compose build
docker-compose up -d

การปรับใช้ในระบบผลิต

มี Helm chart รวมอยู่ในพื้นที่เก็บข้อมูลสำหรับการปรับใช้บน Kubernetes:

1. ไปที่ไดเรกทอรี Helm Chart

cd kubernetes-claude-mcp/deployments/helm

2. ปรับใช้ด้วย Helm

อัปเดต values.yaml ด้วยค่าที่เหมาะสมแล้วรัน:

helm install claude-mcp .

เพื่ออัปเกรด:

helm upgrade claude-mcp .

โปรดตรวจสอบให้แน่ใจว่า secrets และ config maps ถูกเมานต์และรักษาความปลอดภัยอย่างเหมาะสมในคลัสเตอร์


เอกสาร API

ด้านล่างคือจุดสิ้นสุดหลักที่เปิดเผยโดย MCP server คำขอทั้งหมดต้องมีส่วนหัว X-API-Key:

ทั่วไป

  • ตรวจสอบสุขภาพ
    • GET /api/v1/health

Kubernetes

  • รายการ Namespaces
    • GET /api/v1/namespaces
  • รายการทรัพยากร
    • GET /api/v1/resources/{kind}?namespace={ns}
  • รับทรัพยากรเฉพาะ
    • GET /api/v1/resources/{kind}/{name}?namespace={ns}
  • รับเหตุการณ์สำหรับทรัพยากร
    • GET /api/v1/events?namespace={ns}&resource={kind}&name={name}

ArgoCD

  • รายการแอปพลิเคชัน
    • GET /api/v1/argocd/applications

จุดสิ้นสุด Claude MCP

  • วิเคราะห์ทรัพยากร
    • POST /api/v1/mcp/resource
  • แก้ไขปัญหาทรัพยากร
    • POST /api/v1/mcp/troubleshoot
  • บันทึกการวิเคราะห์ (GitLab)
    • POST /api/v1/mcp/commit
  • คำขอ MCP ทั่วไป
    • POST /api/v1/mcp

จุดสิ้นสุด POST ทั้งหมดยอมรับเพย์โหลด JSON ที่มีฟิลด์เช่น:

{
  "resource": "pod",
  "name": "example-pod",
  "namespace": "default",
  "query": "What’s wrong with this pod?"
}

คอลเลกชัน Postman

คอลเลกชัน Postman ที่พร้อมใช้งานจะเผยแพร่ในเร็ว ๆ นี้

การบริจาค

โปรดช่วยสนับสนุนกองทุนกาแฟของเราเพื่อให้เราสามารถทำสิ่งดี ๆ ต่อไปได้ ซื้อกาแฟให้เรา

สัญญาอนุญาต

โครงการนี้อยู่ภายใต้ สัญญาอนุญาต MIT


การมีส่วนร่วม

เอกสารจะถูกขยายเพิ่มเติมในเร็ว ๆ นี้ หากคุณต้องการมีส่วนร่วม โปรดเปิด pull request หรือแจ้งปัญหาได้เลย!