Skip to main content
Glama

KubeAid MCP

KubeAid로 관리되는 Kubernetes 클러스터를 위한 MCP 서버입니다. Claude Code, Claude Desktop, Cursor 또는 MCP 호환 클라이언트에 연결하여 "어떤 앱이 동기화되지 않았지?", "kube-prometheus가 왜 degraded 상태지?", "cert-manager 앱을 동기화해줘" 같은 질문을 할 수 있습니다 — 모델은 이 서버의 도구를 호출하여 답변하며, 이 도구들은 사용자 자신의 kubeconfig 자격 증명을 통해 클러스터와 통신합니다.

공식 @modelcontextprotocol/sdk와 @kubernetes/client-node를 기반으로 TypeScript로 구축되었습니다.

저자: Deep Poharkar

왜 KubeAid 전용인가?

KubeAid는 GitOps 방식으로 클러스터를 운영합니다: 모든 애플리케이션은 kubeaid-config 저장소에서 생성된 ArgoCD Application이며, 자동 동기화는 기본적으로 비활성화되어 있습니다 — Git과 클러스터 간의 드리프트는 정상적인 현상이며 의도적인 동기화를 기다립니다. 일반적인 Kubernetes 어시스턴트는 이러한 워크플로우를 이해하지 못합니다. 이 서버는 이해합니다:

  • ArgoCD Application CR은 일급 시민입니다: 동기화 상태, 상태, 실패 조건, 드리프트된 리소스가 한 번의 도구 호출로 확인됩니다.

  • 동기화는 KubeAid에서의 명시적인 "지금 배포" 결정으로 모델링됩니다 — 옵트인 플래그로 제한되고, dry_run을 지원하며, 보호 대상으로 표시한 컨텍스트에서는 절대 허용되지 않습니다.

  • 번들된 프롬프트는 KubeAid 운영 습관을 인코딩합니다: 동기화 전에 드리프트를 검토하고, 클러스터를 직접 수정하는 대신 kubeaid-config 저장소에서 수정합니다.

Related MCP server: mcp-kubernetes-server

도구

읽기 도구 — 항상 등록됨:

도구

기능

list_contexts

서버가 대상으로 할 수 있는 kubeconfig 컨텍스트와 기본값 및 쓰기 보호 플래그.

list_argocd_apps

동기화 상태, 상태, 개정판, 자동 동기화 플래그를 포함한 모든 KubeAid 관리 ArgoCD 앱. only_problems 지원.

describe_argocd_app

한 앱을 심층적으로: 소스, 오류 조건, 드리프트/비정상 리소스, 마지막 동기화 결과, 배포 기록.

list_namespaces

상태와 수명이 포함된 네임스페이스.

list_nodes

Ready 상태, 역할, kubelet 버전, 내부 IP가 포함된 노드.

list_pods

kubectl 스타일 파생 상태(CrashLoopBackOff 등), 준비 수, 재시작, 노드, 수명이 포함된 Pod.

describe_pod

컨테이너별 상태와 마지막 크래시 세부 정보, 조건, Pod의 최근 이벤트.

get_pod_logs

컨테이너 로그 테일; previous: true는 크래시된 인스턴스의 로그를 읽습니다.

list_deployments

준비/최신/사용 가능 수가 포함된 배포.

get_events

최근 이벤트, 선택적으로 경고만, 네임스페이스별 또는 클러스터 전체.

describe_resource

apiVersion/kind/name으로 모든 리소스 — SealedSecret 또는 Certificate 같은 CRD 포함.

쓰기 도구 — KUBEAID_MCP_ALLOW_WRITES=true일 때만 등록됨:

도구

기능

sync_argocd_app

ArgoCD 동기화 트리거(KubeAid "지금 배포" 작업). revision, prune, dry_run 지원.

scale_deployment

배포의 복제본 수 설정.

rollout_restart

배포/statefulset/daemonset 롤링 재시작.

delete_pod

멈춘 pod 삭제하여 컨트롤러가 교체하도록 함.

모든 도구는 선택적 context 인수를 사용하여 단일 서버 프로세스에서 kubeconfig의 모든 클러스터를 대상으로 할 수 있습니다.

프롬프트

프롬프트는 클라이언트에서 슬래시 명령/메뉴 항목으로 나타나며 위 도구를 사용하여 모델을 워크플로우로 안내합니다:

프롬프트

워크플로우

diagnose_app

Degraded/OutOfSync 앱의 근본 원인: 조건 → 리소스 → pod 로그 → 권장 사항.

sync_review

모든 드리프트된 앱 나열, 각 대기 중인 동기화의 위험 평가, 그런 다음 아무것도 동기화하기 전에 질문.

cluster_health_check

노드, 앱, pod, 경고 이벤트 검사; 심각도별로 결과 보고.

빠른 시작

Node.js 20+ 필요.

git clone <your-repo-url> kubeaid-mcp
cd kubeaid-mcp
npm install
npm run build

Claude Code

claude mcp add kubeaid -- node "$(pwd)/dist/index.js"

기본적으로 읽기 전용입니다. 프로덕션을 건드릴 수 없게 하면서 쓰기를 활성화하려면:

claude mcp add kubeaid \
  -e KUBEAID_MCP_ALLOW_WRITES=true \
  -e KUBEAID_MCP_PROTECTED_CONTEXTS=prod-cluster-1,prod-cluster-2 \
  -- node "$(pwd)/dist/index.js"

Claude Desktop

설정 → 개발자 → 로컬 MCP 서버를 활성화한 다음, 해당 페이지에서 열리는 구성 파일에 추가하세요:

{
  "mcpServers": {
    "kubeaid": {
      "command": "node",
      "args": ["/absolute/path/to/kubeaid-mcp/dist/index.js"],
      "env": {
        "KUBEAID_MCP_ALLOW_WRITES": "true",
        "KUBEAID_MCP_PROTECTED_CONTEXTS": "prod-cluster-1"
      }
    }
  }
}

이후 앱을 완전히 종료하고 다시 엽니다.

구성

모든 구성은 환경 변수이며 시작 시 한 번 읽습니다:

변수

기본값

의미

KUBECONFIG

client-node 기본 조회(~/.kube/config)

Kubeconfig 경로.

KUBEAID_MCP_CONTEXT

현재 컨텍스트를 실시간으로 따름

고정 기본 컨텍스트를 지정. 설정되지 않으면 kubectl config use-context가 세션 중 서버를 다시 대상으로 지정; 호출별 context 인수가 항상 우선.

KUBEAID_MCP_ARGOCD_NAMESPACE

argocd

ArgoCD의 Application CR을 보유한 네임스페이스.

KUBEAID_MCP_ALLOW_WRITES

false

변경 도구를 등록할지 여부.

KUBEAID_MCP_PROTECTED_CONTEXTS

없음

쓰기가 활성화된 경우에도 모든 변경 호출을 거부하는 쉼표로 구분된 컨텍스트.

안전 모델

세 가지 독립적인 계층:

  1. 기능 게이팅 — 쓰기가 비활성화된 경우(기본값), 변경 도구는 절대 등록되지 않으므로 모델이 볼 수조차 없습니다.

  2. 보호 컨텍스트 — 모든 변경 핸들러는 대상 컨텍스트를 KUBEAID_MCP_PROTECTED_CONTEXTS와 다시 확인하고, 모델이 무엇을 요청하든 보호된 컨텍스트를 거부합니다.

  3. 클라이언트 확인 — 도구는 MCP readOnlyHint/destructiveHint 주석을 포함하므로, 잘 동작하는 클라이언트는 위험한 호출 전에 사용자에게 확인을 요청합니다.

서버는 자체 자격 증명을 보유하지 않습니다. kubeconfig ID가 RBAC를 통해 이미 권한을 부여받은 작업만 수행할 수 있습니다.

개발

npm run typecheck   # strict TS, no emit
npm run build       # compile to dist/
npm run smoke       # spawn the server, MCP handshake, list tools + prompts
KUBEAID_MCP_ALLOW_WRITES=true npm run smoke   # verify write tools register

스모크 테스트는 클러스터가 필요 없습니다 — stdio를 통해 원시 JSON-RPC 프로토콜을 구동합니다.

로드맵

  • check_chart_updates: 배포된 차트 버전을 업스트림 KubeAid argocd-helm-charts 디렉토리와 비교.

  • Sealed-secrets 도우미: SealedSecret 상태 나열, 실패한 unseal 플래그.

  • Prometheus/Alertmanager 도구: KubeAid가 제공하는 kube-prometheus 스택에서 발생하는 알림 표시.

감사의 말

  • KubeAid by Obmondo — 이 서버가 구축된 클러스터 관리 스택.

  • Argo CD — KubeAid의 기반이 되는 GitOps 엔진.

라이선스

MIT © 2026 Deep Poharkar

Available Tools

11 tools
describe_argocd_appA
Read-only

Full detail for one ArgoCD Application: Git/Helm sources, sync and health status, error conditions, the resources that are OutOfSync or unhealthy, last sync operation result and recent deploy history. Use this to diagnose why an app is Degraded or a sync failed.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesApplication name (as shown by list_argocd_apps).
contextNoKubeconfig context to target; omit for the server's default context.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds meaningful behavioral detail by enumerating what the tool returns: Git/Helm sources, sync/health status, error conditions, OutOfSync or unhealthy resources, last sync result, and deploy history. This goes beyond the annotations and helps set expectations for a diagnostic read operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no wasted words. The first sentence front-loads the tool's purpose and enumerates its key outputs, while the second provides a concrete diagnostic use case. It is dense but easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description compensates by listing the main content categories and a clear use case. It does not detail the exact return format or pagination behavior, but for a diagnostic read tool with two well-documented parameters, the provided information is sufficiently complete for an agent to select and invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and both parameters have clear descriptions in the schema: 'name' references list_argocd_apps, and 'context' explains default behavior. The tool description adds no additional parameter semantics, but the schema already carries the full burden, so a baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'Full detail for one ArgoCD Application' which clearly identifies the verb (provide/detail), the resource (ArgoCD Application), and singular scope. It distinguishes itself from siblings like list_argocd_apps by emphasizing 'one' application and from generic describe_resource by specifying ArgoCD-specific content.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use the tool: 'Use this to diagnose why an app is Degraded or a sync failed.' This provides clear contextual guidance, though it does not explicitly mention when not to use it or name alternative tools such as describe_resource or get_events.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

describe_podA
Read-only

Deep-dive one pod: per-container state (waiting/termination reasons, last crash exit code), conditions and the pod's recent events.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesPod name.
contextNoKubeconfig context to target; omit for the server's default context.
namespaceYesNamespace of the pod.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, so the read-only nature is covered. The description adds specific details about return content (per-container state, termination reasons, crash exit codes, conditions, events) which goes beyond annotations, providing useful behavioral transparency about what to expect from the tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, compact sentence that immediately states the purpose and lists the specific details returned. No filler or redundancy. Perfectly front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only describe tool, the description covers what it returns (per-container state, reasons, exit codes, conditions, events) and the scope (one pod). Given the annotations already indicate read-only, this is sufficient. Slight gap: it doesn't mention the namespace/name parameters explicitly, but schema covers that.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all three parameters (namespace, name) are fully described in the schema. The description does not add extra parameter semantics beyond what the schema already provides, so it stays at the baseline of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool performs a 'deep-dive' on a single pod, specifying per-container state, waiting/termination reasons, last crash exit code, conditions, and recent events. This is specific and distinguishes it from siblings like list_pods (which lists) and get_events (which retrieves events).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for in-depth pod inspection, but does not explicitly state when to use it over alternatives like describe_resource or get_events. No exclusion criteria are given, so the agent must infer when this is the right tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

describe_resourceA
Read-only

Fetch any Kubernetes resource (including CRDs like SealedSecret or Certificate) by apiVersion, kind and name. Returns the full object.

ParametersJSON Schema
NameRequiredDescriptionDefault
kindYesResource kind, e.g. "Service", "SealedSecret".
nameYesResource name.
contextNoKubeconfig context to target; omit for the server's default context.
namespaceNoNamespace; omit for cluster-scoped resources.
api_versionNoapiVersion, e.g. "v1", "apps/v1", "bitnami.com/v1alpha1" (default "v1").

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, so the description is not required to restate safety. It adds the behavioral detail that it 'Returns the full object', which is useful. The description does not introduce any contradictions with annotations, and it provides enough context beyond the structured fields (e.g., that it works with CRDs).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that starts with the core purpose ('Fetch any Kubernetes resource') and then adds the essential qualifying detail about CRDs and required identifiers. There is zero wasted wording; every phrase earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's general scope, the description is complete for an agent to understand its usage: it fetches any resource, returns the full object, and the schema provides all parameter details. It might have mentioned that it supports both namespaced and cluster-scoped resources, but the schema already clarifies this via the optional namespace field. The absence of an output schema is mitigated by the statement that it returns the full object, so no additional return-value documentation is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds extra meaning by noting that it works for CRDs and providing examples (SealedSecret, Certificate), which clarifies the expected kind values. It also highlights the interplay of apiVersion, kind, and name, reinforcing the required parameters beyond the schema's individual descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Fetch'), the resource ('any Kubernetes resource'), and the key identifying parameters (apiVersion, kind, name). It explicitly includes CRDs like SealedSecret or Certificate, which distinguishes it from sibling tools that target specific resource types (e.g., describe_pod, describe_argocd_app). The purpose is unambiguous and stands out from the siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies it can be used for any resource, but it does not explicitly mention when to prefer this over the more specific describe tools (like describe_pod) or when not to use it. No alternatives or exclusions are stated, leaving the usage guidance somewhat implied rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_eventsA
Read-only

Recent cluster events, newest last. Filter to one namespace and/or Warning-type events only.

ParametersJSON Schema
NameRequiredDescriptionDefault
contextNoKubeconfig context to target; omit for the server's default context.
namespaceNoNamespace to inspect; omit for all namespaces.
only_warningsNoReturn only Warning-type events.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds behavioral details like 'newest last' and the filtering capability, providing useful context beyond the schema. It does not contradict annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences, front-loaded with the core purpose and then the filtering option. No wasted words, every part adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple (read-only list with optional filters) and annotations cover safety. The description adequately explains purpose and filters; it might mention the output format (a list) but that is implied. It is complete enough for reliable invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all parameters are documented in the schema. The description reinforces namespace and only_warnings usage but adds no new syntax or format details beyond what the schema provides. A baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it retrieves recent cluster events, newest last, which is specific and distinct from sibling tools like list_pods or get_pod_logs. It mentions the resource (cluster events) and ordering, making it unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear guidance on filtering ('Filter to one namespace and/or Warning-type events only'), implying when to use it for scoped event lookup. It lacks explicit exclusions or alternatives, but the sibling context and the filter note make the use case clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_pod_logsA
Read-only

Tail a container's logs. Set previous=true to read the prior (crashed) instance's logs — essential for CrashLoopBackOff.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesPod name.
linesNoHow many lines to tail (default 100).
contextNoKubeconfig context to target; omit for the server's default context.
previousNoRead logs from the previous, crashed container instance.
containerNoContainer name; required only for multi-container pods.
namespaceYesNamespace of the pod.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already confirm read-only and non-destructive behavior; the description adds valuable context about the previous flag and its role in crash debugging. It does not cover streaming/pagination, but the annotations lower the bar and the added context is meaningful.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, both necessary and directly informative. The first states the core action; the second gives a high-value usage tip without wasting words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description and schema collectively provide enough for a logs tool: tailing behavior, line count, namespace/container targeting, and crash-instance option. Minor gap: no mention of output format, but that is generally implied and not critical for log retrieval.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers 100% of parameters, so the baseline is 3, but the description enriches the 'previous' parameter by explaining its purpose and relevance to CrashLoopBackOff, which goes beyond the schema's bare definition. No other parameters need extra explanation given the schema quality.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description uses specific verb 'Tail' and names the resource 'container's logs', with a clear distinction from sibling tools like describe_pod or get_events. It also adds meaningful scope by mentioning 'previous (crashed) instance's logs', making the tool's purpose unmistakable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a clear context for using the previous flag ('essential for CrashLoopBackOff') and implies the tool is for reading logs. It does not explicitly compare to alternatives, but the log-specific context and sibling names make the usage clear enough.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_argocd_appsA
Read-only

List the ArgoCD Applications KubeAid manages in this cluster, with sync status (Synced/OutOfSync), health (Healthy/Degraded/...), deployed revision and whether auto-sync is on. KubeAid disables auto-sync by default, so OutOfSync apps are usually awaiting a deliberate sync. Start here for any GitOps question.

ParametersJSON Schema
NameRequiredDescriptionDefault
contextNoKubeconfig context to target; omit for the server's default context.
projectNoFilter by ArgoCD project name.
only_problemsNoReturn only apps that are OutOfSync or not Healthy.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare this read-only and non-destructive (readOnlyHint=true, destructiveHint=false). The description adds valuable behavioral context: KubeAid disables auto-sync by default, so OutOfSync apps are typically awaiting a deliberate sync. It also discloses the return fields, which is useful given no output schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences with no fluff. The first sentence fronts the action and resource, the second adds context, and the third gives usage direction. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a list tool with optional filters and no output schema, the description is complete enough. It lists the return fields (sync status, health, deployed revision, auto-sync), provides domain context, and gives usage guidance. Minor gaps like pagination are not critical for this tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema covers all three parameters with descriptions (context, project, only_problems), so the description does not need to repeat them. It adds no extra parameter-level meaning beyond what the schema provides, so a baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb 'List' with the resource 'ArgoCD Applications' and scope 'KubeAid manages in this cluster', clearly distinguishing it from sibling tools like describe_argocd_app. It also lists the exact fields returned, making the tool's purpose unmistakable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides a clear directive 'Start here for any GitOps question', indicating this is the entry point for such queries. It also explains the auto-sync behavior to help interpret results, though it does not explicitly name alternatives like describe_argocd_app for app-specific details.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_contextsA
Read-only

List the kubeconfig contexts (clusters) this server can target, including which one is the default and which are write-protected.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint true and destructiveHint false, and the description does not contradict them. It adds useful behavioral context by specifying that output includes default and write-protected status and that the context list is limited to what this server can target.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, front-loaded with the verb and object, and every clause adds meaningful detail about scope and output contents. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a simple, parameterless read-only listing tool. The description conveys what is listed, the scope limitation, and key output features (default and write-protected), which is sufficient for an agent to select and invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema is empty, so there are no parameters requiring clarification. With zero parameters, the description does not need to compensate for schema gaps, matching the baseline for parameter-less tools.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description uses a specific verb ('List') with a clear object ('kubeconfig contexts') and adds scope ('this server can target'). It is clearly distinct from the sibling node/pod/deployment tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context for when to use the tool: to see available target contexts, the default, and write-protected ones. It does not explicitly name alternatives or exclusions, but the sibling list makes its unique purpose evident.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_deploymentsA
Read-only

List deployments with ready/up-to-date/available replica counts and age.

ParametersJSON Schema
NameRequiredDescriptionDefault
contextNoKubeconfig context to target; omit for the server's default context.
namespaceNoNamespace to inspect; omit for all namespaces.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations mark readOnlyHint=true and destructiveHint=false, aligning with the non-mutating list operation. The description adds output details (replica counts, age) but no hidden behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, tightly packed with the operation's scope and returned fields; no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

A read-only list tool with clear parameter coverage in the schema and adequate output guidance in prose. No output schema exists, but the listed fields are simple and the behavior is likely clear.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The JSON Schema already describes both parameters (context, namespace) with 100% coverage. The description adds no new meaning beyond what the schema fields already say.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Uses a specific verb ('List') and resource ('deployments'), with the scope of returned data (state, replica counts, age) stated. It does not explicitly distinguish itself from sibling list tools, but the resource type is named.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implies a read-only listing operation by context, but does not state when to choose it over alternatives or specify any exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_namespacesA
Read-only

List namespaces in the cluster with their status and age.

ParametersJSON Schema
NameRequiredDescriptionDefault
contextNoKubeconfig context to target; omit for the server's default context.

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark the operation as read-only and non-destructive, which covers side effects. The description adds output details (status and age) but doesn't mention pagination, filters, or authentication caveats. Given the annotations carry the safety signal, a 3 for neutral value is appropriate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, lean sentence that states the purpose and output aspects without any filler. It is front-loaded and entirely relevant, earning a top score.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a simple read-only list operation. With annotations covering side effects and the schema documenting the only parameter, the description supplies enough context (status, age) and does not require deeper detail. The tool is complete for its purpose.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has full (100%) coverage for the single 'context' parameter with an explicit description, so the description does not need to repeat it. It adds no new parameter meaning beyond the schema, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists namespaces in the cluster and includes status and age, which is specific and distinguishes it from sibling list tools (list_nodes, list_pods, etc.) that target other resource types.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly establishes when to use the tool (when you need a list of namespaces) and given the resource in the name, no alternative is needed. However, it does not explicitly mention when not to use it or direct to siblings for other resources, but the context is unambiguous enough for a 4.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_nodesA
Read-only

List cluster nodes with Ready status, roles, kubelet version and internal IP.

ParametersJSON Schema
NameRequiredDescriptionDefault
contextNoKubeconfig context to target; omit for the server's default context.

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true. The description adds output detail (Ready, role, version, IP) but no additional behavioral boundaries beyond what annotations provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One sentence, clear and directly informative; no redundancy with schema or annotations.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For the tool's narrow scope (list nodes), the schema covers the only parameter; the description gives the returned fields, and the siblings provide related operations. Lacks an output schema, but optional for such outputs.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema already provides full description of 'context' (the kubeconfig context; omit for server default). Description reinforces target semantics in readable terms, though plain schema would likely be enough.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the specific verb 'list' with a specific resource ('cluster nodes') and includes the key result fields (Ready, role, kubelet version, internal IP), distinguishing it from node/pod listing tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Clear context is given (list nodes), but no explicit when-to-use guidance or named alternatives; sibling names 'list_pods' and 'get_nodes' imply adjacent functions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_podsA
Read-only

List pods with derived status (CrashLoopBackOff, ImagePullBackOff, Terminating, ...), ready count, restarts, node and age.

ParametersJSON Schema
NameRequiredDescriptionDefault
contextNoKubeconfig context to target; omit for the server's default context.
namespaceNoNamespace to inspect; omit for all namespaces.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, and the description reinforces this read-only, safe behavior without contradiction. It adds value by disclosing the exact output fields (derived status, ready count, restarts, node, age), which helps the agent understand what information will be returned. This goes beyond the structured annotations by providing the output contract.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-structured sentence that begins with the primary action ('List pods') and then lists the key output fields in a scannable format. No words are wasted, and the most important information (what it does) is front-loaded. Excellent balance of brevity and information density.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a straightforward read-only list operation, the description covers purpose, output fields, and the critical namespace scoping behavior (including the default). It does not mention pagination or limits, which might be a minor gap for large clusters, but the annotations and schema fill in the safety and parameter details. The description is complete for the tool's apparent simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema covers 100% of parameters (context and namespace) with clear descriptions, providing a solid baseline. The description enriches the namespace parameter by explicitly stating that omitting it means 'all namespaces', which is not explicit in the schema. This extra semantic detail is valuable for correct usage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it lists pods with derived status (CrashLoopBackOff, Terminating), ready count, restarts, node, and age. This specific verb+resource combo and the detailed output fields distinguish it from sibling tools like list_deployments or describe_pod. It immediately conveys the exact scope and differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage by mentioning the namespace parameter behavior ('omit for all namespaces'), but does not explicitly state when to use this tool versus siblings like describe_pod or list_deployments. There is no explicit 'use this when' or alternative naming. The guidance is present but implicit, requiring the agent to infer the tool's position among its siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 11 tool updatesv0.1.0
    • First observeddescribe_argocd_app
    • First observeddescribe_pod
    • First observeddescribe_resource
    • First observedget_events
    • First observedget_pod_logs
    • First observedlist_argocd_apps
    • First observedlist_contexts
    • First observedlist_deployments
    • First observedlist_namespaces
    • First observedlist_nodes
    • First observedlist_pods

TDQS

A4.3/5.0

Scored across 11 tools

Disambiguation5/5

Each tool targets a distinct resource/action - nodes, events, ArgoCD apps, pods, deployments, generic resource fetch, contexts, namespaces - with no overlapping purposes. The list/describe pairs for pods and ArgoCD apps are clearly separated by summary vs. detail, and describe_resource is explicitly generic.

Naming Consistency5/5

Naming follows a consistent verb_noun pattern: list_* for summary listings, describe_* for detailed views, and get_pod_logs as a specific action. Even though get_events uses 'get' instead of 'list', the pattern is predictable and readable, so deviation is minor and not confusing.

Tool Count5/5

With 11 tools, the set is well-scoped for a Kubernetes diagnostic server. Each tool addresses a common troubleshooting need (node health, pod issues, logs, ArgoCD sync, deployments) without excess or missing core operations.

Completeness5/5

The surface covers the main diagnostic workflows: listing and describing nodes, pods, deployments, and ArgoCD apps; retrieving events and logs; fetching any resource via describe_resource; and listing contexts/namespaces. For a read-only troubleshooting tool, this is comprehensive with no critical dead ends.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    An MCP (Model Context Protocol) server that integrates with the ArgoCD API, enabling AI assistants and large language models to manage ArgoCD applications and resources through natural language interactions.
    10
    12
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    An MCP server that enables AI assistants to interact with Kubernetes clusters by translating natural language into kubectl and Helm operations. It allows users to query, manage, and diagnose Kubernetes resources and cluster states through a seamless integration.
    20
    Apache 2.0
  • A
    license
    Not graded
    quality
    D
    maintenance
    A lightweight MCP server that enables AI assistants to deploy, inspect, and operate Kubernetes workloads through high-level workflow tools, reducing token usage with structured outputs.
    3
    MIT