Kubernetes MCP Server
ทางการเซิร์ฟเวอร์ Kubernetes MCP สำหรับ Claude ที่สร้างด้วยภาษา Go เซิร์ฟเวอร์นี้ทำงานร่วมกับ ArgoCD, GitLab, Claude AI และ Kubernetes เพื่อให้สามารถควบคุมและทำงานอัตโนมัติขั้นสูงในสภาพแวดล้อม Kubernetes
คุณทำอะไรได้บ้างด้วย Kubernetes MCP?
- ตรวจสอบทรัพยากรคลัสเตอร์ — ขอให้ผู้ช่วยของคุณแสดงรายการเนมสเปซหรือทรัพยากรประเภทใดก็ได้ผ่าน
GET /api/v1/namespacesและGET /api/v1/resources/{kind} - แก้ไขปัญหาทรัพยากรเฉพาะ — ให้ผู้ช่วยวิเคราะห์หรือแก้ไขปัญหา pod เช่น
example-podโดยใช้ endpointPOST /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) พร้อมคำถามที่กำหนดเองเกี่ยวกับทรัพยากรใดๆ ในคลัสเตอร์ของคุณ
เอกสาร
Claude Kubernetes MCP Server
เซิร์ฟเวอร์ Model Context Protocol (MCP) สำหรับการจัดการคลัสเตอร์ Kubernetes พร้อมการผสานรวมกับ ArgoCD และ GitLab
พื้นที่เก็บข้อมูลนี้ประกอบด้วยเซิร์ฟเวอร์ Claude Kubernetes MCP (Model Context Protocol) ที่สร้างด้วยภาษา Go เซิร์ฟเวอร์นี้ผสานรวมกับ ArgoCD, GitLab, Claude AI และ Kubernetes เพื่อให้สามารถควบคุมและจัดการสภาพแวดล้อม Kubernetes ได้อย่างขั้นสูง
สารบัญ
- ภาพรวม
- ข้อกำหนดเบื้องต้น
- คำแนะนำการติดตั้ง
- การกำหนดค่า
- การรันในเครื่อง
- การสร้างและรันด้วย Docker
- การปรับใช้ในระบบผลิต
- เอกสาร API
- คอลเลกชัน Postman
- สัญญาอนุญาต
ภาพรวม
เซิร์ฟเวอร์นี้ถูกออกแบบมาเพื่อจัดระเบียบงาน 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 หรือแจ้งปัญหาได้เลย!