/ الدليل / الملعب / Kubernetes MCP Server
● مجتمع containers 🔑 يتطلب مفتاحك

Kubernetes MCP Server

بواسطة containers · containers/kubernetes-mcp-server

kubectl لكن يُشغِّله Claude — يستخدم kubeconfig + RBAC الخاص بك، ويدعم أي cluster (vanilla k8s وOpenShift وEKS وGKE وAKS وk3s).

kubernetes-mcp-server (containers org) هو ثنائي Go واحد يتحدث إلى أي Kubernetes API server باستخدام kubeconfig الحالي. يعرض الأفعال القياسية (list/get/apply/delete/log/exec) كأدوات MCP مع احترام RBAC — بحيث يظل مبدأ أدنى امتياز ساري المفعول. يدعم أيضاً امتدادات OpenShift.

لماذا تستخدمه

الميزات الأساسية

عرض مباشر

كيف يبدو في الممارسة

kubernetes-mcp-containers.replay ▶ جاهز
0/0

التثبيت

اختر العميل

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "kubernetes-mcp-containers": {
      "command": "npx",
      "args": [
        "-y",
        "kubernetes-mcp-server@latest"
      ],
      "env": {
        "KUBECONFIG": "${HOME}/.kube/config"
      }
    }
  }
}

افتح Claude Desktop → Settings → Developer → Edit Config. أعد التشغيل بعد الحفظ.

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "kubernetes-mcp-containers": {
      "command": "npx",
      "args": [
        "-y",
        "kubernetes-mcp-server@latest"
      ],
      "env": {
        "KUBECONFIG": "${HOME}/.kube/config"
      }
    }
  }
}

يستخدم Cursor نفس مخطط mcpServers مثل Claude Desktop. إعدادات المشروع أولى من الإعدادات العامة.

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "kubernetes-mcp-containers": {
      "command": "npx",
      "args": [
        "-y",
        "kubernetes-mcp-server@latest"
      ],
      "env": {
        "KUBECONFIG": "${HOME}/.kube/config"
      }
    }
  }
}

انقر على أيقونة MCP Servers في شريط Cline الجانبي، ثم "Edit Configuration".

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "kubernetes-mcp-containers": {
      "command": "npx",
      "args": [
        "-y",
        "kubernetes-mcp-server@latest"
      ],
      "env": {
        "KUBECONFIG": "${HOME}/.kube/config"
      }
    }
  }
}

نفس الصيغة مثل Claude Desktop. أعد تشغيل Windsurf لتطبيق التغييرات.

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "kubernetes-mcp-containers",
      "command": "npx",
      "args": [
        "-y",
        "kubernetes-mcp-server@latest"
      ]
    }
  ]
}

يستخدم Continue مصفوفة من كائنات الخادم بدلاً من خريطة.

~/.config/zed/settings.json
{
  "context_servers": {
    "kubernetes-mcp-containers": {
      "command": {
        "path": "npx",
        "args": [
          "-y",
          "kubernetes-mcp-server@latest"
        ]
      }
    }
  }
}

أضف إلى context_servers. يعيد Zed التحميل تلقائيًا عند الحفظ.

claude mcp add kubernetes-mcp-containers -- npx -y kubernetes-mcp-server@latest

أمر من سطر واحد. تحقق باستخدام claude mcp list. احذف باستخدام claude mcp remove.

حالات الاستخدام

استخدامات عملية: Kubernetes MCP Server

تصنيف حادثة إنتاج على Kubernetes

👤 مهندسو SRE / مهندسو المنصات ⏱ ~10 min intermediate

متى تستخدمه: تطبيق يتصرف بشكل سيئ في الإنتاج وتحتاج النظر في الـ pods والأحداث والسجلات دون تبديل النوافذ.

المتطلبات الأساسية
  • kubeconfig مع وصول إلى الـ cluster — الأمر القياسي aws eks update-kubeconfig أو ما يعادله
الخطوات
  1. إيجاد الـ pods غير السليمة
    k8s: in context prod-us-east, namespace checkout, list pods not in Running state. Include reason + restart count.✓ تم النسخ
    → الـ pods معروضة مع الحالة والسبب وعدد إعادة التشغيل
  2. جلب الأحداث
    Get events in that namespace from the last 30 minutes, sorted by time.✓ تم النسخ
    → قائمة الأحداث؛ OOMKilled أو ImagePullBackOff مرئيان إذا وُجدا
  3. جلب السجلات
    For the pod with the most recent restart, tail the previous container's logs (last 200 lines).✓ تم النسخ
    → stack trace / السبب مرئي
  4. التشخيص
    Synthesize: what's the likely root cause and what should we do? Be specific.✓ تم النسخ
    → خطوة تالية محددة (مثلاً رفع حد الذاكرة + طرح)

النتيجة: تصنيف في أقل من 5 دقائق مع أسماء pods وسطور سجل مُستشهَد بها.

المزالق
  • سجلات container السابق المفقود غير متاحة — إذا أعادت pod التشغيل مرة واحدة فقط، تحقق من سجلات container الحالي و container السابق فقط إذا تعطَّل
  • سياق خاطئ — حدِّد السياق دائماً لكل استدعاء؛ لا تعتمد على انجراف current-context
اجمعها مع: sentry · github

تأليف Deployment باستخدام سياق الـ cluster

👤 مطورو التطبيقات الذين يكتبون manifests ⏱ ~20 min intermediate

متى تستخدمه: تحتاج Deployment جديداً وتريده يطابق اصطلاحات الـ cluster.

الخطوات
  1. فحص الموجود
    k8s: get a sample existing Deployment in apps namespace. I want to match its labels, security context, resources.✓ تم النسخ
    → يُعيد YAML Deployment تمثيلي
  2. تأليف الجديد
    Now write a new Deployment for image-resizer:1.2.0, 2 replicas, port 8080, matching the conventions.✓ تم النسخ
    → YAML يحترم اصطلاحات الـ cluster
  3. تطبيق تجريبي
    Apply with --dry-run=server. Report any validation errors.✓ تم النسخ
    → التحقق من جانب الخادم ينجح؛ لا انجراف ApplyConfiguration

النتيجة: Manifest يطابق أساليب الـ cluster أول مرة.

المزالق
  • نسيان تسميات PSA — اقرأ تسميات pod-security للـ namespace أولاً
اجمعها مع: filesystem · github

مراجعة إصدارات Helm عبر الـ namespaces

👤 فريق المنصة ⏱ ~25 min intermediate

متى تستخدمه: فصلي: إيجاد إصدارات charts قديمة عبر الأسطول.

الخطوات
  1. إدراج كل الإصدارات
    k8s/Helm: list every release in every namespace. Include chart + version + appVersion.✓ تم النسخ
    → جدول إصدارات كامل
  2. تمييز القديمة
    For each, compare against the latest chart version (you can search). Flag releases >2 minor versions behind.✓ تم النسخ
    → مجموعة مُعلَّمة مع الحالي مقابل الأحدث

النتيجة: قائمة انتظار الترقية مع ترتيب الأولوية.

المزالق
  • بقايا Helm 2 مختلطة — فلتر على إصدارات v3؛ MCP يتعامل مع Helm 3 فقط

التركيبات

اجمعها مع خوادم MCP أخرى لتحقيق نتائج x10

kubernetes-mcp-containers + sentry

ربط الأخطاء بإعادة تشغيل الـ pods

Sentry: error spike at 14:00. k8s: any pod restarts in checkout ns at that time?✓ تم النسخ
kubernetes-mcp-containers + github

فتح PR بإصلاح الـ manifest

k8s: identify the bad memory limit. GitHub: open a PR raising it in helm/values.yaml.✓ تم النسخ
kubernetes-mcp-containers + mcp-grafana

مقارنة حالة k8s مع Prometheus

k8s: pod is restarting. Grafana: pull memory usage history for that pod.✓ تم النسخ

الأدوات

ما يوفره هذا الـ MCP

الأداةالمدخلاتمتى تستدعيهاالتكلفة
list_resources context?, namespace?, kind: str, label_selector? الاستكشاف 1 API call
get_resource context?, namespace?, kind, name فحص عنصر محدد 1 call
apply_yaml context?, yaml: str, dry_run?: bool الإنشاء أو التحديث 1 call
delete_resource context?, namespace?, kind, name الإزالة 1 call
get_logs context?, namespace, pod, container?, previous?, tail? فحص وقت التشغيل 1 call
exec context?, namespace, pod, container?, command: str[] التشخيص داخل container 1 call
list_events context?, namespace, since? البحث عن OOMKilled/ImagePullBackOff 1 call
list_helm_releases context?, namespace? مراجعة Helm 1 call

التكلفة والحدود

تكلفة التشغيل

حصة API
مقيَّد بـ kube-apiserver QPS (افتراضي ~50)
الرموز لكل استدعاء
200–8000 (السجلات/YAML قد تكون كبيرة)
التكلفة المالية
مجاني مفتوح المصدر؛ فاتورة الـ cluster تُطبَّق
نصيحة
استخدم --tail على السجلات بقوة؛ لا تفعل get pods -o yaml -A على clusters ضخمة

الأمان

الصلاحيات والأسرار ونطاق الأثر

الحد الأدنى من الصلاحيات: whatever your kubeconfig user has — RBAC enforced server-side
تخزين بيانات الاعتماد: ملف kubeconfig؛ دوِّر عبر مزود السحابة
نقل البيانات الخارجي: نقطة نهاية kube API الخاصة بك فقط
لا تمنح أبدًا: cluster-admin to a kubeconfig used with an LLM

استكشاف الأخطاء

الأخطاء الشائعة وحلولها

Unauthorized / 403

RBAC ترفض الفعل؛ تحقق باستخدام kubectl auth can-i لذلك المستخدم

تحقق: kubectl auth can-i get pods -n checkout
Connection refused

VPN غير متصل، أو السياق يشير إلى نقطة نهاية خاطئة؛ تحقق باستخدام kubectl cluster-info

Apply rejected: validation error

شغِّل مع dry_run=server أولاً؛ أظهر الخطأ الدقيق

Logs too large

استخدم معامل tail؛ الافتراضي هو السجل بالكامل

البدائل

Kubernetes MCP Server مقابل البدائل

البديلمتى تستخدمهاالمقايضة
kubectl-mcp (other forks)تفضِّل ثنائياً مختلفاًأقل صيانةً
Lens / k9sتريد واجهة تفاعلية لا LLMلا طبقة أتمتة
Argo CD MCPأنت GitOps فقطغير مباشر؛ النشر عبر Git لا API المباشر

المزيد

الموارد

📖 اقرأ ملف README الرسمي على GitHub

🐙 تصفح القضايا المفتوحة

🔍 تصفح أكثر من 400 خادم MCP و Skills