Kubernetes MCP Server
ทางการเซิร์ฟเวอร์ Kubernetes MCP สำหรับ Claude ที่สร้างด้วยภาษา Go เซิร์ฟเวอร์นี้ทำงานร่วมกับ ArgoCD, GitLab, Claude AI และ Kubernetes เพื่อให้สามารถควบคุมและทำงานอัตโนมัติขั้นสูงในสภาพแวดล้อม Kubernetes
เอกสาร
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 Collection
- ใบอนุญาต
ภาพรวม
เซิร์ฟเวอร์นี้ออกแบบมาเพื่อจัดการเวิร์กโหลด Kubernetes โดยใช้ Claude AI, GitLab, ArgoCD และ Vault โดยเปิดเผย REST API ที่อนุญาตให้โต้ตอบกับระบบเหล่านี้ผ่านโปรแกรม ซึ่งขับเคลื่อนโดย config.yaml ที่กำหนดค่าไว้และรับรองความถูกต้องด้วยคีย์ API
ข้อกำหนดเบื้องต้น
- Go 1.20+
- Docker
- คลัสเตอร์ Kubernetes และ
~/.kube/configที่ถูกต้อง - คลัสเตอร์ EKS พร้อมตั้งค่า AWS_PROFILE ในเครื่อง
- ข้อมูลประจำตัว ArgoCD
- โทเค็นการเข้าถึงส่วนบุคคลของ GitLab
- คีย์ Claude API (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 .
โปรดตรวจสอบให้แน่ใจว่าซีเคร็ตและ config maps ถูกเมาท์และรักษาความปลอดภัยอย่างเหมาะสมในคลัสเตอร์
เอกสาร API
ด้านล่างนี้คือจุดสิ้นสุดหลักที่เปิดเผยโดยเซิร์ฟเวอร์ MCP คำขอทั้งหมดต้องมีส่วนหัว X-API-Key:
ทั่วไป
- การตรวจสอบความสมบูรณ์
GET /api/v1/health
Kubernetes
- รายการเนมสเปซ
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 Collection
Postman collection ที่พร้อมใช้งานจะมีให้ในเร็วๆ นี้
การบริจาค
โปรดร่วมสมทบกองทุนกาแฟของเราเพื่อช่วยให้เราทำสิ่งที่ยอดเยี่ยมต่อไป ซื้อกาแฟให้ฉัน
ใบอนุญาต
โปรเจกต์นี้ได้รับอนุญาตภายใต้ MIT License
การมีส่วนร่วม
เอกสารจะถูกขยายเพิ่มเติมในเร็วๆ นี้ หากคุณต้องการมีส่วนร่วม สามารถเปิด pull request หรือแจ้งปัญหาได้ตามอัธยาศัย!