#
tokens: 101269/50000 1/82 files (page 5/5)
lines: off (toggle) GitHub
raw markdown copy
This is page 5 of 5. Use http://codebase.md/blankcut/kubernetes-mcp-server?page={x} to view the full context.

# Directory Structure

```
├── .gitignore
├── docs
│   ├── .astro
│   │   ├── collections
│   │   │   └── docs.schema.json
│   │   ├── content-assets.mjs
│   │   ├── content-modules.mjs
│   │   ├── content.d.ts
│   │   ├── data-store.json
│   │   ├── settings.json
│   │   └── types.d.ts
│   ├── .gitignore
│   ├── astro.config.mjs
│   ├── package-lock.json
│   ├── package.json
│   ├── public
│   │   └── images
│   │       └── logo.svg
│   ├── README.md
│   ├── src
│   │   ├── components
│   │   │   ├── CodeBlock.astro
│   │   │   ├── DocSidebar.astro
│   │   │   ├── Footer.astro
│   │   │   ├── Header.astro
│   │   │   ├── HeadSEO.astro
│   │   │   ├── Search.astro
│   │   │   ├── Sidebar.astro
│   │   │   └── TableOfContents.astro
│   │   ├── content
│   │   │   ├── config.ts
│   │   │   └── docs
│   │   │       ├── api-overview.md
│   │   │       ├── configuration.md
│   │   │       ├── installation.md
│   │   │       ├── introduction.md
│   │   │       ├── model-context-protocol.md
│   │   │       ├── quick-start.md
│   │   │       └── troubleshooting-resources.md
│   │   ├── env.d.ts
│   │   ├── layouts
│   │   │   ├── BaseLayout.astro
│   │   │   └── DocLayout.astro
│   │   ├── pages
│   │   │   ├── [...slug].astro
│   │   │   ├── 404.astro
│   │   │   ├── docs
│   │   │   │   └── index.astro
│   │   │   ├── docs-test.astro
│   │   │   ├── examples
│   │   │   │   └── index.astro
│   │   │   └── index.astro
│   │   └── styles
│   │       └── global.css
│   ├── tailwind.config.cjs
│   └── tsconfig.json
├── go.mod
├── kubernetes-claude-mcp
│   ├── .gitignore
│   ├── cmd
│   │   └── server
│   │       └── main.go
│   ├── docker-compose.yml
│   ├── Dockerfile
│   ├── go.mod
│   ├── go.sum
│   ├── internal
│   │   ├── api
│   │   │   ├── namespace_routes.go
│   │   │   ├── routes.go
│   │   │   └── server.go
│   │   ├── argocd
│   │   │   ├── applications.go
│   │   │   ├── client.go
│   │   │   └── history.go
│   │   ├── auth
│   │   │   ├── credentials.go
│   │   │   ├── secrets.go
│   │   │   └── vault.go
│   │   ├── claude
│   │   │   ├── client.go
│   │   │   └── protocol.go
│   │   ├── correlator
│   │   │   ├── gitops.go
│   │   │   ├── helm_correlator.go
│   │   │   └── troubleshoot.go
│   │   ├── gitlab
│   │   │   ├── client.go
│   │   │   ├── mergerequests.go
│   │   │   ├── pipelines.go
│   │   │   └── repositories.go
│   │   ├── helm
│   │   │   └── parser.go
│   │   ├── k8s
│   │   │   ├── client.go
│   │   │   ├── enhanced_client.go
│   │   │   ├── events.go
│   │   │   ├── resource_mapper.go
│   │   │   └── resources.go
│   │   ├── mcp
│   │   │   ├── context.go
│   │   │   ├── namespace_analyzer.go
│   │   │   ├── prompt.go
│   │   │   └── protocol.go
│   │   └── models
│   │       ├── argocd.go
│   │       ├── context.go
│   │       ├── gitlab.go
│   │       └── kubernetes.go
│   └── pkg
│       ├── config
│       │   └── config.go
│       ├── logging
│       │   └── logging.go
│       └── utils
│           ├── serialization.go
│           └── truncation.go
├── LICENSE
└── README.md
```

# Files

--------------------------------------------------------------------------------
/docs/.astro/data-store.json:
--------------------------------------------------------------------------------

```json
[["Map",1,2,9,10],"meta::meta",["Map",3,4,5,6,7,8],"astro-version","5.5.4","content-config-digest","21b4103a45ffefbd","astro-config-digest","{\"root\":{},\"srcDir\":{},\"publicDir\":{},\"outDir\":{},\"cacheDir\":{},\"site\":\"https://docs.kubernetes-mcp-server.dev\",\"compressHTML\":true,\"base\":\"/\",\"trailingSlash\":\"ignore\",\"output\":\"static\",\"scopedStyleStrategy\":\"attribute\",\"build\":{\"format\":\"directory\",\"client\":{},\"server\":{},\"assets\":\"_astro\",\"serverEntry\":\"entry.mjs\",\"redirects\":true,\"inlineStylesheets\":\"auto\",\"concurrency\":1},\"server\":{\"open\":false,\"host\":false,\"port\":4321,\"streaming\":true,\"allowedHosts\":[]},\"redirects\":{},\"image\":{\"endpoint\":{\"route\":\"/_image\"},\"service\":{\"entrypoint\":\"astro/assets/services/sharp\",\"config\":{}},\"domains\":[],\"remotePatterns\":[]},\"devToolbar\":{\"enabled\":true},\"markdown\":{\"syntaxHighlight\":\"shiki\",\"shikiConfig\":{\"langs\":[],\"langAlias\":{},\"theme\":\"github-dark\",\"themes\":{},\"wrap\":true,\"transformers\":[]},\"remarkPlugins\":[],\"rehypePlugins\":[],\"remarkRehype\":{},\"gfm\":true,\"smartypants\":true},\"security\":{\"checkOrigin\":true},\"env\":{\"schema\":{},\"validateSecrets\":false},\"experimental\":{\"clientPrerender\":false,\"contentIntellisense\":false,\"responsiveImages\":false,\"serializeConfig\":false,\"headingIdCompat\":false,\"preserveScriptOrder\":false},\"legacy\":{\"collections\":false}}","docs",["Map",11,12,88,89,111,112,158,159,119,283,377,378,446,447],"model-context-protocol",{"id":11,"data":13,"body":22,"filePath":23,"digest":24,"rendered":25,"legacyId":87},{"title":14,"description":15,"date":16,"order":17,"tags":18,"draft":21},"Model Context Protocol","Learn about the Model Context Protocol (MCP) and how it powers AI-driven analysis of Kubernetes and GitOps workflows.",["Date","2025-03-01T00:00:00.000Z"],7,[19,20],"concepts","architecture",false,"# Model Context Protocol\n\nThe Model Context Protocol (MCP) is the core technology behind the Kubernetes Claude MCP server. It enables the collection, correlation, and presentation of rich contextual information to Claude AI, allowing for deep analysis and troubleshooting of complex Kubernetes environments.\n\n## What is MCP?\n\nMCP is a framework for providing structured context to large language models (LLMs) like Claude. It solves a fundamental challenge when using AI to analyze complex systems: how to collect and structure all the relevant information about a system so that an AI can understand the complete picture.\n\nIn the context of Kubernetes and GitOps:\n\n- **Complete Context**: MCP gathers comprehensive information about resources, their relationships, history, and current state.\n- **Cross-System Correlation**: It correlates information from Kubernetes, ArgoCD, GitLab, and other systems.\n- **Intelligent Filtering**: It filters and prioritizes information to focus on what's most relevant.\n- **Structured Formatting**: It presents information in a way that maximizes Claude's understanding.\n\n## Core Components of MCP\n\nThe MCP framework consists of several key components:\n\n### 1. Context Collection\n\nThe first step of MCP is gathering comprehensive information about the system being analyzed. For Kubernetes environments, this includes:\n\n- **Resource Definitions**: The complete YAML/JSON specifications of resources\n- **Resource Status**: Current runtime status information\n- **Events**: Related Kubernetes events\n- **Logs**: Container logs for relevant pods\n- **Relationships**: Parent-child relationships between resources\n- **History**: Deployment history, changes, and previous states\n- **GitOps Context**: ArgoCD sync status, GitLab commits, pipelines\n\n### 2. Context Correlation\n\nOnce data is collected, MCP correlates information across different systems:\n\n- **Resource to Git**: Which Git repository, branch, and files define a resource\n- **Resource to CI/CD**: Which pipelines deployed a resource\n- **Resource to Owners**: Which teams or individuals own a resource\n- **Dependencies**: How resources depend on each other\n- **Change Impact**: How changes in one system affect others\n\n### 3. Context Formatting\n\nMCP formats the correlated information in a standardized structure:\n\n- **Hierarchical Organization**: Information is organized in a logical hierarchy\n- **Relevance Sorting**: Most important information is presented first\n- **Cross-References**: Clear references between related pieces of information\n- **Compact Representation**: Information is presented efficiently to maximize context window usage\n\n### 4. Context Presentation\n\nFinally, MCP presents the formatted context to Claude for analysis:\n\n- **System Prompt**: Instructs Claude on how to interpret the context\n- **User Query**: Focuses Claude's analysis on specific questions or issues\n- **Analysis Parameters**: Controls the depth, breadth, and style of analysis\n\n## MCP in Action\n\nHere's a simplified view of how MCP works when troubleshooting a Kubernetes deployment:\n\n1. **User Query**: \"Why is my deployment not scaling?\"\n2. **Context Collection**: MCP gathers information about the deployment, related pods, events, logs, node resources, and GitOps configurations.\n3. **Context Correlation**: MCP connects the deployment to its ArgoCD application and recent GitLab commits.\n4. **Context Formatting**: The information is structured in a hierarchical format that prioritizes scaling-related details.\n5. **Claude Analysis**: Claude analyzes the context and identifies that the deployment can't scale because of resource constraints.\n6. **Response**: The user receives a detailed explanation and recommendations.\n\n## Protocol Architecture\n\nThe MCP implementation consists of several key components:\n\n### 1. Collectors\n\nCollectors are responsible for gathering information from different sources:\n\n- **Kubernetes Collector**: Gathers resource definitions, status, and events\n- **ArgoCD Collector**: Gathers application definitions, sync status, and history\n- **GitLab Collector**: Gathers repository information, commits, and pipelines\n- **Log Collector**: Gathers container logs and application logs\n\n### 2. Correlators\n\nCorrelators connect information across different systems:\n\n- **GitOps Correlator**: Connects Kubernetes resources to their Git definitions\n- **Deployment Correlator**: Connects resources to their deployment pipelines\n- **Issue Correlator**: Connects observed issues to their potential causes\n- **Resource Correlator**: Connects resources to their related resources\n\n### 3. Context Manager\n\nThe Context Manager is responsible for organizing and formatting the context:\n\n- **Context Selection**: Determines what information to include\n- **Context Prioritization**: Prioritizes the most relevant information\n- **Context Formatting**: Formats the information for maximum effectiveness\n- **Context Truncation**: Ensures the context fits within Claude's context window\n\n### 4. Protocol Handler\n\nThe Protocol Handler handles the interaction with Claude:\n\n- **Prompt Generation**: Creates effective system and user prompts\n- **Response Processing**: Processes and formats Claude's responses\n- **Follow-up Management**: Handles follow-up queries and clarifications\n\n## Example MCP Context\n\nHere's a simplified example of how MCP formats context for Claude:\n\n```\n# Kubernetes Resource: Deployment/my-app\nNamespace: default\nAPI Version: apps/v1\n\n## Specification\nReplicas: 5\nStrategy: RollingUpdate\nSelector: app=my-app\nTemplate:\n  ...truncated for brevity...\n\n## Status\nAvailable Replicas: 3\nReady Replicas: 3\nUpdated Replicas: 3\nConditions:\n- Type: Available, Status: True\n- Type: Progressing, Status: True\n\n## Recent Events\n1. [Warning] FailedCreate: pods \"my-app-7b9d7f8d9-\" failed to fit in any node\n2. [Normal] ScalingReplicaSet: Scaled up replica set my-app-7b9d7f8d9 to 5\n3. [Warning] FailedScheduling: 0/3 nodes are available: insufficient cpu\n\n## ArgoCD Application\nName: my-app\nSync Status: Synced\nHealth Status: Degraded\nSource: https://github.com/myorg/myrepo.git\nPath: applications/my-app\nTarget Revision: main\n\n## Recent GitLab Commits\n1. [2025-03-01T10:15:30Z] 7a8b9c0d: Increase replicas from 3 to 5 (John Smith)\n2. [2025-02-28T15:45:20Z] 1b2c3d4e: Update resource requests (Jane Doe)\n\n## Node Resources\nTotal CPU Capacity: 12 cores\nUsed CPU: 10.5 cores\nAvailable CPU: 1.5 cores\n```\n\nThis formatted context makes it easy for Claude to understand the complete picture and identify that the deployment can't scale to 5 replicas because of insufficient CPU resources.\n\n## Benefits of MCP\n\nUsing the Model Context Protocol provides several key benefits:\n\n1. **Complete Understanding**: Claude gets a holistic view of your environment.\n2. **Deeper Analysis**: With more context, Claude can provide more accurate and insightful analysis.\n3. **Cross-System Correlation**: Issues that span multiple systems are easier to identify.\n4. **Efficient Context Usage**: Structured information maximizes the use of Claude's context window.\n5. **Consistent Analysis**: Standardized context leads to more consistent analysis over time.\n\n## Extending MCP\n\nThe Model Context Protocol is designed to be extensible. You can add support for additional systems and information sources:\n\n1. **Custom Collectors**: Implement collectors for your specific systems.\n2. **Custom Correlators**: Create correlators for your organization's workflows.\n3. **Context Templates**: Define custom context templates for your use cases.\n4. **Prompt Templates**: Customize prompts for your specific needs.\n\nFor more information on extending MCP, see the [Custom Integrations](/docs/custom-integrations) guide.\n\n## Next Steps\n\nNow that you understand the Model Context Protocol, you can:\n\n1. [Explore GitOps Integration](/docs/gitops-integration) to learn how MCP connects with ArgoCD and GitLab.\n2. [Try Troubleshooting Resources](/docs/troubleshooting-resources) to see MCP in action.\n3. [Review the API Reference](/docs/api-overview) to learn how to interact with the MCP server.","src/content/docs/model-context-protocol.md","ef6003e186baaa17",{"html":26,"metadata":27},"\u003Ch1 id=\"model-context-protocol\">Model Context Protocol\u003C/h1>\n\u003Cp>The Model Context Protocol (MCP) is the core technology behind the Kubernetes Claude MCP server. It enables the collection, correlation, and presentation of rich contextual information to Claude AI, allowing for deep analysis and troubleshooting of complex Kubernetes environments.\u003C/p>\n\u003Ch2 id=\"what-is-mcp\">What is MCP?\u003C/h2>\n\u003Cp>MCP is a framework for providing structured context to large language models (LLMs) like Claude. It solves a fundamental challenge when using AI to analyze complex systems: how to collect and structure all the relevant information about a system so that an AI can understand the complete picture.\u003C/p>\n\u003Cp>In the context of Kubernetes and GitOps:\u003C/p>\n\u003Cul>\n\u003Cli>\u003Cstrong>Complete Context\u003C/strong>: MCP gathers comprehensive information about resources, their relationships, history, and current state.\u003C/li>\n\u003Cli>\u003Cstrong>Cross-System Correlation\u003C/strong>: It correlates information from Kubernetes, ArgoCD, GitLab, and other systems.\u003C/li>\n\u003Cli>\u003Cstrong>Intelligent Filtering\u003C/strong>: It filters and prioritizes information to focus on what’s most relevant.\u003C/li>\n\u003Cli>\u003Cstrong>Structured Formatting\u003C/strong>: It presents information in a way that maximizes Claude’s understanding.\u003C/li>\n\u003C/ul>\n\u003Ch2 id=\"core-components-of-mcp\">Core Components of MCP\u003C/h2>\n\u003Cp>The MCP framework consists of several key components:\u003C/p>\n\u003Ch3 id=\"1-context-collection\">1. Context Collection\u003C/h3>\n\u003Cp>The first step of MCP is gathering comprehensive information about the system being analyzed. For Kubernetes environments, this includes:\u003C/p>\n\u003Cul>\n\u003Cli>\u003Cstrong>Resource Definitions\u003C/strong>: The complete YAML/JSON specifications of resources\u003C/li>\n\u003Cli>\u003Cstrong>Resource Status\u003C/strong>: Current runtime status information\u003C/li>\n\u003Cli>\u003Cstrong>Events\u003C/strong>: Related Kubernetes events\u003C/li>\n\u003Cli>\u003Cstrong>Logs\u003C/strong>: Container logs for relevant pods\u003C/li>\n\u003Cli>\u003Cstrong>Relationships\u003C/strong>: Parent-child relationships between resources\u003C/li>\n\u003Cli>\u003Cstrong>History\u003C/strong>: Deployment history, changes, and previous states\u003C/li>\n\u003Cli>\u003Cstrong>GitOps Context\u003C/strong>: ArgoCD sync status, GitLab commits, pipelines\u003C/li>\n\u003C/ul>\n\u003Ch3 id=\"2-context-correlation\">2. Context Correlation\u003C/h3>\n\u003Cp>Once data is collected, MCP correlates information across different systems:\u003C/p>\n\u003Cul>\n\u003Cli>\u003Cstrong>Resource to Git\u003C/strong>: Which Git repository, branch, and files define a resource\u003C/li>\n\u003Cli>\u003Cstrong>Resource to CI/CD\u003C/strong>: Which pipelines deployed a resource\u003C/li>\n\u003Cli>\u003Cstrong>Resource to Owners\u003C/strong>: Which teams or individuals own a resource\u003C/li>\n\u003Cli>\u003Cstrong>Dependencies\u003C/strong>: How resources depend on each other\u003C/li>\n\u003Cli>\u003Cstrong>Change Impact\u003C/strong>: How changes in one system affect others\u003C/li>\n\u003C/ul>\n\u003Ch3 id=\"3-context-formatting\">3. Context Formatting\u003C/h3>\n\u003Cp>MCP formats the correlated information in a standardized structure:\u003C/p>\n\u003Cul>\n\u003Cli>\u003Cstrong>Hierarchical Organization\u003C/strong>: Information is organized in a logical hierarchy\u003C/li>\n\u003Cli>\u003Cstrong>Relevance Sorting\u003C/strong>: Most important information is presented first\u003C/li>\n\u003Cli>\u003Cstrong>Cross-References\u003C/strong>: Clear references between related pieces of information\u003C/li>\n\u003Cli>\u003Cstrong>Compact Representation\u003C/strong>: Information is presented efficiently to maximize context window usage\u003C/li>\n\u003C/ul>\n\u003Ch3 id=\"4-context-presentation\">4. Context Presentation\u003C/h3>\n\u003Cp>Finally, MCP presents the formatted context to Claude for analysis:\u003C/p>\n\u003Cul>\n\u003Cli>\u003Cstrong>System Prompt\u003C/strong>: Instructs Claude on how to interpret the context\u003C/li>\n\u003Cli>\u003Cstrong>User Query\u003C/strong>: Focuses Claude’s analysis on specific questions or issues\u003C/li>\n\u003Cli>\u003Cstrong>Analysis Parameters\u003C/strong>: Controls the depth, breadth, and style of analysis\u003C/li>\n\u003C/ul>\n\u003Ch2 id=\"mcp-in-action\">MCP in Action\u003C/h2>\n\u003Cp>Here’s a simplified view of how MCP works when troubleshooting a Kubernetes deployment:\u003C/p>\n\u003Col>\n\u003Cli>\u003Cstrong>User Query\u003C/strong>: “Why is my deployment not scaling?”\u003C/li>\n\u003Cli>\u003Cstrong>Context Collection\u003C/strong>: MCP gathers information about the deployment, related pods, events, logs, node resources, and GitOps configurations.\u003C/li>\n\u003Cli>\u003Cstrong>Context Correlation\u003C/strong>: MCP connects the deployment to its ArgoCD application and recent GitLab commits.\u003C/li>\n\u003Cli>\u003Cstrong>Context Formatting\u003C/strong>: The information is structured in a hierarchical format that prioritizes scaling-related details.\u003C/li>\n\u003Cli>\u003Cstrong>Claude Analysis\u003C/strong>: Claude analyzes the context and identifies that the deployment can’t scale because of resource constraints.\u003C/li>\n\u003Cli>\u003Cstrong>Response\u003C/strong>: The user receives a detailed explanation and recommendations.\u003C/li>\n\u003C/ol>\n\u003Ch2 id=\"protocol-architecture\">Protocol Architecture\u003C/h2>\n\u003Cp>The MCP implementation consists of several key components:\u003C/p>\n\u003Ch3 id=\"1-collectors\">1. Collectors\u003C/h3>\n\u003Cp>Collectors are responsible for gathering information from different sources:\u003C/p>\n\u003Cul>\n\u003Cli>\u003Cstrong>Kubernetes Collector\u003C/strong>: Gathers resource definitions, status, and events\u003C/li>\n\u003Cli>\u003Cstrong>ArgoCD Collector\u003C/strong>: Gathers application definitions, sync status, and history\u003C/li>\n\u003Cli>\u003Cstrong>GitLab Collector\u003C/strong>: Gathers repository information, commits, and pipelines\u003C/li>\n\u003Cli>\u003Cstrong>Log Collector\u003C/strong>: Gathers container logs and application logs\u003C/li>\n\u003C/ul>\n\u003Ch3 id=\"2-correlators\">2. Correlators\u003C/h3>\n\u003Cp>Correlators connect information across different systems:\u003C/p>\n\u003Cul>\n\u003Cli>\u003Cstrong>GitOps Correlator\u003C/strong>: Connects Kubernetes resources to their Git definitions\u003C/li>\n\u003Cli>\u003Cstrong>Deployment Correlator\u003C/strong>: Connects resources to their deployment pipelines\u003C/li>\n\u003Cli>\u003Cstrong>Issue Correlator\u003C/strong>: Connects observed issues to their potential causes\u003C/li>\n\u003Cli>\u003Cstrong>Resource Correlator\u003C/strong>: Connects resources to their related resources\u003C/li>\n\u003C/ul>\n\u003Ch3 id=\"3-context-manager\">3. Context Manager\u003C/h3>\n\u003Cp>The Context Manager is responsible for organizing and formatting the context:\u003C/p>\n\u003Cul>\n\u003Cli>\u003Cstrong>Context Selection\u003C/strong>: Determines what information to include\u003C/li>\n\u003Cli>\u003Cstrong>Context Prioritization\u003C/strong>: Prioritizes the most relevant information\u003C/li>\n\u003Cli>\u003Cstrong>Context Formatting\u003C/strong>: Formats the information for maximum effectiveness\u003C/li>\n\u003Cli>\u003Cstrong>Context Truncation\u003C/strong>: Ensures the context fits within Claude’s context window\u003C/li>\n\u003C/ul>\n\u003Ch3 id=\"4-protocol-handler\">4. Protocol Handler\u003C/h3>\n\u003Cp>The Protocol Handler handles the interaction with Claude:\u003C/p>\n\u003Cul>\n\u003Cli>\u003Cstrong>Prompt Generation\u003C/strong>: Creates effective system and user prompts\u003C/li>\n\u003Cli>\u003Cstrong>Response Processing\u003C/strong>: Processes and formats Claude’s responses\u003C/li>\n\u003Cli>\u003Cstrong>Follow-up Management\u003C/strong>: Handles follow-up queries and clarifications\u003C/li>\n\u003C/ul>\n\u003Ch2 id=\"example-mcp-context\">Example MCP Context\u003C/h2>\n\u003Cp>Here’s a simplified example of how MCP formats context for Claude:\u003C/p>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto; white-space: pre-wrap; word-wrap: break-word;\" tabindex=\"0\" data-language=\"plaintext\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan># Kubernetes Resource: Deployment/my-app\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>Namespace: default\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>API Version: apps/v1\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>## Specification\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>Replicas: 5\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>Strategy: RollingUpdate\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>Selector: app=my-app\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>Template:\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>  ...truncated for brevity...\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>## Status\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>Available Replicas: 3\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>Ready Replicas: 3\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>Updated Replicas: 3\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>Conditions:\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>- Type: Available, Status: True\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>- Type: Progressing, Status: True\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>## Recent Events\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>1. [Warning] FailedCreate: pods \"my-app-7b9d7f8d9-\" failed to fit in any node\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>2. [Normal] ScalingReplicaSet: Scaled up replica set my-app-7b9d7f8d9 to 5\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>3. [Warning] FailedScheduling: 0/3 nodes are available: insufficient cpu\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>## ArgoCD Application\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>Name: my-app\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>Sync Status: Synced\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>Health Status: Degraded\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>Source: https://github.com/myorg/myrepo.git\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>Path: applications/my-app\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>Target Revision: main\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>## Recent GitLab Commits\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>1. [2025-03-01T10:15:30Z] 7a8b9c0d: Increase replicas from 3 to 5 (John Smith)\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>2. [2025-02-28T15:45:20Z] 1b2c3d4e: Update resource requests (Jane Doe)\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>## Node Resources\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>Total CPU Capacity: 12 cores\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>Used CPU: 10.5 cores\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan>Available CPU: 1.5 cores\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>This formatted context makes it easy for Claude to understand the complete picture and identify that the deployment can’t scale to 5 replicas because of insufficient CPU resources.\u003C/p>\n\u003Ch2 id=\"benefits-of-mcp\">Benefits of MCP\u003C/h2>\n\u003Cp>Using the Model Context Protocol provides several key benefits:\u003C/p>\n\u003Col>\n\u003Cli>\u003Cstrong>Complete Understanding\u003C/strong>: Claude gets a holistic view of your environment.\u003C/li>\n\u003Cli>\u003Cstrong>Deeper Analysis\u003C/strong>: With more context, Claude can provide more accurate and insightful analysis.\u003C/li>\n\u003Cli>\u003Cstrong>Cross-System Correlation\u003C/strong>: Issues that span multiple systems are easier to identify.\u003C/li>\n\u003Cli>\u003Cstrong>Efficient Context Usage\u003C/strong>: Structured information maximizes the use of Claude’s context window.\u003C/li>\n\u003Cli>\u003Cstrong>Consistent Analysis\u003C/strong>: Standardized context leads to more consistent analysis over time.\u003C/li>\n\u003C/ol>\n\u003Ch2 id=\"extending-mcp\">Extending MCP\u003C/h2>\n\u003Cp>The Model Context Protocol is designed to be extensible. You can add support for additional systems and information sources:\u003C/p>\n\u003Col>\n\u003Cli>\u003Cstrong>Custom Collectors\u003C/strong>: Implement collectors for your specific systems.\u003C/li>\n\u003Cli>\u003Cstrong>Custom Correlators\u003C/strong>: Create correlators for your organization’s workflows.\u003C/li>\n\u003Cli>\u003Cstrong>Context Templates\u003C/strong>: Define custom context templates for your use cases.\u003C/li>\n\u003Cli>\u003Cstrong>Prompt Templates\u003C/strong>: Customize prompts for your specific needs.\u003C/li>\n\u003C/ol>\n\u003Cp>For more information on extending MCP, see the \u003Ca href=\"/docs/custom-integrations\">Custom Integrations\u003C/a> guide.\u003C/p>\n\u003Ch2 id=\"next-steps\">Next Steps\u003C/h2>\n\u003Cp>Now that you understand the Model Context Protocol, you can:\u003C/p>\n\u003Col>\n\u003Cli>\u003Ca href=\"/docs/gitops-integration\">Explore GitOps Integration\u003C/a> to learn how MCP connects with ArgoCD and GitLab.\u003C/li>\n\u003Cli>\u003Ca href=\"/docs/troubleshooting-resources\">Try Troubleshooting Resources\u003C/a> to see MCP in action.\u003C/li>\n\u003Cli>\u003Ca href=\"/docs/api-overview\">Review the API Reference\u003C/a> to learn how to interact with the MCP server.\u003C/li>\n\u003C/ol>",{"headings":28,"localImagePaths":81,"remoteImagePaths":82,"frontmatter":83,"imagePaths":86},[29,31,35,38,42,45,48,51,54,57,60,63,66,69,72,75,78],{"depth":30,"slug":11,"text":14},1,{"depth":32,"slug":33,"text":34},2,"what-is-mcp","What is MCP?",{"depth":32,"slug":36,"text":37},"core-components-of-mcp","Core Components of MCP",{"depth":39,"slug":40,"text":41},3,"1-context-collection","1. Context Collection",{"depth":39,"slug":43,"text":44},"2-context-correlation","2. Context Correlation",{"depth":39,"slug":46,"text":47},"3-context-formatting","3. Context Formatting",{"depth":39,"slug":49,"text":50},"4-context-presentation","4. Context Presentation",{"depth":32,"slug":52,"text":53},"mcp-in-action","MCP in Action",{"depth":32,"slug":55,"text":56},"protocol-architecture","Protocol Architecture",{"depth":39,"slug":58,"text":59},"1-collectors","1. Collectors",{"depth":39,"slug":61,"text":62},"2-correlators","2. Correlators",{"depth":39,"slug":64,"text":65},"3-context-manager","3. Context Manager",{"depth":39,"slug":67,"text":68},"4-protocol-handler","4. Protocol Handler",{"depth":32,"slug":70,"text":71},"example-mcp-context","Example MCP Context",{"depth":32,"slug":73,"text":74},"benefits-of-mcp","Benefits of MCP",{"depth":32,"slug":76,"text":77},"extending-mcp","Extending MCP",{"depth":32,"slug":79,"text":80},"next-steps","Next Steps",[],[],{"title":14,"description":15,"date":84,"order":17,"tags":85},["Date","2025-03-01T00:00:00.000Z"],[19,20],[],"model-context-protocol.md","introduction",{"id":88,"data":90,"body":94,"filePath":95,"digest":96,"rendered":97,"legacyId":110},{"title":91,"description":92,"order":93,"draft":21},"Introduction to Kubernetes Claude MCP","Learn about the Kubernetes Claude MCP server and how it enhances your GitOps workflows with AI-powered analysis and troubleshooting.",999,"# Introduction to Kubernetes Claude MCP\n\nThe Kubernetes Claude MCP (Model Context Protocol) server integrates Claude's AI capabilities with Kubernetes, ArgoCD, and GitLab to provide AI-powered analysis and troubleshooting for your GitOps workflows.\n\n## What is Model Context Protocol?\n\nModel Context Protocol (MCP) is a framework for providing structured context to large language models like Claude. It enables these models to understand complex systems by providing them with relevant information in a format they can process effectively.\n\nIn the context of Kubernetes:\n\n- **Context Collection**: MCP gathers critical information from Kubernetes, ArgoCD, and GitLab\n- **Correlation**: It connects information across systems to provide a complete picture\n- **Intelligence**: Claude AI processes this context to provide actionable insights","src/content/docs/introduction.md","edd8f610d570dd84",{"html":98,"metadata":99},"\u003Ch1 id=\"introduction-to-kubernetes-claude-mcp\">Introduction to Kubernetes Claude MCP\u003C/h1>\n\u003Cp>The Kubernetes Claude MCP (Model Context Protocol) server integrates Claude’s AI capabilities with Kubernetes, ArgoCD, and GitLab to provide AI-powered analysis and troubleshooting for your GitOps workflows.\u003C/p>\n\u003Ch2 id=\"what-is-model-context-protocol\">What is Model Context Protocol?\u003C/h2>\n\u003Cp>Model Context Protocol (MCP) is a framework for providing structured context to large language models like Claude. It enables these models to understand complex systems by providing them with relevant information in a format they can process effectively.\u003C/p>\n\u003Cp>In the context of Kubernetes:\u003C/p>\n\u003Cul>\n\u003Cli>\u003Cstrong>Context Collection\u003C/strong>: MCP gathers critical information from Kubernetes, ArgoCD, and GitLab\u003C/li>\n\u003Cli>\u003Cstrong>Correlation\u003C/strong>: It connects information across systems to provide a complete picture\u003C/li>\n\u003Cli>\u003Cstrong>Intelligence\u003C/strong>: Claude AI processes this context to provide actionable insights\u003C/li>\n\u003C/ul>",{"headings":100,"localImagePaths":106,"remoteImagePaths":107,"frontmatter":108,"imagePaths":109},[101,103],{"depth":30,"slug":102,"text":91},"introduction-to-kubernetes-claude-mcp",{"depth":32,"slug":104,"text":105},"what-is-model-context-protocol","What is Model Context Protocol?",[],[],{"title":91,"description":92},[],"introduction.md","quick-start",{"id":111,"data":113,"body":120,"filePath":121,"digest":122,"rendered":123,"legacyId":157},{"title":114,"description":115,"date":116,"order":32,"tags":117,"draft":21},"Quick Start Guide","Get started with Kubernetes Claude MCP in minutes with this quick start guide.",["Date","2025-03-01T00:00:00.000Z"],[118,119],"quickstart","installation","# Quick Start Guide\n\nThis guide will help you get Kubernetes Claude MCP up and running quickly. We'll use Docker Compose for a simple local deployment.\n\n## Prerequisites\n\n- Docker and Docker Compose\n- A Kubernetes cluster with kubectl configured\n- ArgoCD instance (optional)\n- GitLab access (optional)\n- Claude API key from Anthropic\n\n## Step 1: Clone the Repository\n\n```bash\ngit clone https://github.com/blankcut/kubernetes-mcp-server.git\ncd kubernetes-mcp-server\n```\n\n## Step 2: Configure Environment Variables\n\nCreate a `.env` file in the project directory:\n\n```bash\n# Required\nCLAUDE_API_KEY=your_claude_api_key\n\n# Optional ArgoCD credentials\nARGOCD_URL=http://argocd.your-domain.com\nARGOCD_USERNAME=admin\nARGOCD_PASSWORD=your_password\n# Or use a token instead\n# ARGOCD_AUTH_TOKEN=your_argocd_token\n\n# Optional GitLab credentials\nGITLAB_URL=https://gitlab.com\nGITLAB_AUTH_TOKEN=your_gitlab_token\n\n# Security\nAPI_KEY=your_chosen_api_key_for_server_access\n```\n\n## Step 3: Create Configuration File\n\nCreate a `config.yaml` file:\n\n```yaml\nserver:\n  address: \":8080\"\n  readTimeout: 30\n  writeTimeout: 60\n  auth:\n    apiKey: \"${API_KEY}\"\n\nkubernetes:\n  kubeconfig: \"\"\n  inCluster: false\n  defaultContext: \"\"\n  defaultNamespace: \"default\"\n\nargocd:\n  url: \"${ARGOCD_URL}\"\n  authToken: \"${ARGOCD_AUTH_TOKEN}\"\n  username: \"${ARGOCD_USERNAME}\"\n  password: \"${ARGOCD_PASSWORD}\"\n  insecure: true\n\ngitlab:\n  url: \"${GITLAB_URL}\"\n  authToken: \"${GITLAB_AUTH_TOKEN}\"\n  apiVersion: \"v4\"\n  projectPath: \"\"\n\nclaude:\n  apiKey: \"${CLAUDE_API_KEY}\"\n  baseURL: \"https://api.anthropic.com\"\n  modelID: \"claude-3-haiku-20240307\"\n  maxTokens: 4096\n  temperature: 0.7\n```\n\n## Step 4: Start the Server\n\nRun the server using Docker Compose:\n\n```bash\ndocker-compose up -d\n```\n\n## Step 5: Verify the Installation\n\nCheck if the server is running:\n\n```bash\ncurl http://localhost:8080/api/v1/health\n```\n\nYou should see a JSON response with the server status and service availability.\n\n## Step 6: Make Your First API Call\n\nLet's query a pod in your Kubernetes cluster:\n\n```bash\ncurl -X POST \\\n  -H \"Content-Type: application/json\" \\\n  -H \"X-API-Key: your_chosen_api_key\" \\\n  -d '{\n    \"action\": \"queryResource\",\n    \"resource\": \"pod\",\n    \"name\": \"your-pod-name\",\n    \"namespace\": \"your-namespace\",\n    \"query\": \"What is the status of this pod and are there any issues?\"\n  }' \\\n  http://localhost:8080/api/v1/mcp/resource\n```\n\nThe server will analyze the pod and return Claude's analysis, highlighting any issues and providing recommendations.\n\n## Next Steps\n\nNow that you have Kubernetes Claude MCP running, you can:\n\n1. [Configure the server](/docs/configuration) for your specific environment\n2. [Explore the API](/docs/api-overview) to learn about all available endpoints\n3. Check out the [Troubleshooting Resources](/docs/troubleshooting-resources) guide for common use cases\n4. Learn about [GitOps Integration](/docs/gitops-integration) with ArgoCD and GitLab\n\nFor a more detailed setup and configuration, see the [Installation Guide](/docs/installation).","src/content/docs/quick-start.md","141c79b1e09105d2",{"html":124,"metadata":125},"\u003Ch1 id=\"quick-start-guide\">Quick Start Guide\u003C/h1>\n\u003Cp>This guide will help you get Kubernetes Claude MCP up and running quickly. We’ll use Docker Compose for a simple local deployment.\u003C/p>\n\u003Ch2 id=\"prerequisites\">Prerequisites\u003C/h2>\n\u003Cul>\n\u003Cli>Docker and Docker Compose\u003C/li>\n\u003Cli>A Kubernetes cluster with kubectl configured\u003C/li>\n\u003Cli>ArgoCD instance (optional)\u003C/li>\n\u003Cli>GitLab access (optional)\u003C/li>\n\u003Cli>Claude API key from Anthropic\u003C/li>\n\u003C/ul>\n\u003Ch2 id=\"step-1-clone-the-repository\">Step 1: Clone the Repository\u003C/h2>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto; white-space: pre-wrap; word-wrap: break-word;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">git\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> clone\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> https://github.com/blankcut/kubernetes-mcp-server.git\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">cd\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> kubernetes-mcp-server\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch2 id=\"step-2-configure-environment-variables\">Step 2: Configure Environment Variables\u003C/h2>\n\u003Cp>Create a \u003Ccode>.env\u003C/code> file in the project directory:\u003C/p>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto; white-space: pre-wrap; word-wrap: break-word;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Required\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">CLAUDE_API_KEY\u003C/span>\u003Cspan style=\"color:#F97583\">=\u003C/span>\u003Cspan style=\"color:#9ECBFF\">your_claude_api_key\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Optional ArgoCD credentials\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">ARGOCD_URL\u003C/span>\u003Cspan style=\"color:#F97583\">=\u003C/span>\u003Cspan style=\"color:#9ECBFF\">http://argocd.your-domain.com\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">ARGOCD_USERNAME\u003C/span>\u003Cspan style=\"color:#F97583\">=\u003C/span>\u003Cspan style=\"color:#9ECBFF\">admin\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">ARGOCD_PASSWORD\u003C/span>\u003Cspan style=\"color:#F97583\">=\u003C/span>\u003Cspan style=\"color:#9ECBFF\">your_password\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Or use a token instead\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># ARGOCD_AUTH_TOKEN=your_argocd_token\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Optional GitLab credentials\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">GITLAB_URL\u003C/span>\u003Cspan style=\"color:#F97583\">=\u003C/span>\u003Cspan style=\"color:#9ECBFF\">https://gitlab.com\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">GITLAB_AUTH_TOKEN\u003C/span>\u003Cspan style=\"color:#F97583\">=\u003C/span>\u003Cspan style=\"color:#9ECBFF\">your_gitlab_token\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Security\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">API_KEY\u003C/span>\u003Cspan style=\"color:#F97583\">=\u003C/span>\u003Cspan style=\"color:#9ECBFF\">your_chosen_api_key_for_server_access\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch2 id=\"step-3-create-configuration-file\">Step 3: Create Configuration File\u003C/h2>\n\u003Cp>Create a \u003Ccode>config.yaml\u003C/code> file:\u003C/p>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto; white-space: pre-wrap; word-wrap: break-word;\" tabindex=\"0\" data-language=\"yaml\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">server\u003C/span>\u003Cspan style=\"color:#E1E4E8\">:\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  address\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\":8080\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  readTimeout\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#79B8FF\">30\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  writeTimeout\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#79B8FF\">60\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  auth\u003C/span>\u003Cspan style=\"color:#E1E4E8\">:\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">    apiKey\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"${API_KEY}\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">kubernetes\u003C/span>\u003Cspan style=\"color:#E1E4E8\">:\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  kubeconfig\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  inCluster\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#79B8FF\">false\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  defaultContext\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  defaultNamespace\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"default\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">argocd\u003C/span>\u003Cspan style=\"color:#E1E4E8\">:\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  url\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"${ARGOCD_URL}\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  authToken\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"${ARGOCD_AUTH_TOKEN}\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  username\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"${ARGOCD_USERNAME}\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  password\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"${ARGOCD_PASSWORD}\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  insecure\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#79B8FF\">true\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">gitlab\u003C/span>\u003Cspan style=\"color:#E1E4E8\">:\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  url\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"${GITLAB_URL}\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  authToken\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"${GITLAB_AUTH_TOKEN}\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  apiVersion\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"v4\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  projectPath\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">claude\u003C/span>\u003Cspan style=\"color:#E1E4E8\">:\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  apiKey\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"${CLAUDE_API_KEY}\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  baseURL\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"https://api.anthropic.com\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  modelID\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"claude-3-haiku-20240307\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  maxTokens\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#79B8FF\">4096\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  temperature\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#79B8FF\">0.7\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch2 id=\"step-4-start-the-server\">Step 4: Start the Server\u003C/h2>\n\u003Cp>Run the server using Docker Compose:\u003C/p>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto; white-space: pre-wrap; word-wrap: break-word;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">docker-compose\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> up\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -d\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch2 id=\"step-5-verify-the-installation\">Step 5: Verify the Installation\u003C/h2>\n\u003Cp>Check if the server is running:\u003C/p>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto; white-space: pre-wrap; word-wrap: break-word;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">curl\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> http://localhost:8080/api/v1/health\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>You should see a JSON response with the server status and service availability.\u003C/p>\n\u003Ch2 id=\"step-6-make-your-first-api-call\">Step 6: Make Your First API Call\u003C/h2>\n\u003Cp>Let’s query a pod in your Kubernetes cluster:\u003C/p>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto; white-space: pre-wrap; word-wrap: break-word;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">curl\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -X\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> POST\u003C/span>\u003Cspan style=\"color:#79B8FF\"> \\\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  -H\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> \"Content-Type: application/json\"\u003C/span>\u003Cspan style=\"color:#79B8FF\"> \\\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  -H\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> \"X-API-Key: your_chosen_api_key\"\u003C/span>\u003Cspan style=\"color:#79B8FF\"> \\\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  -d\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> '{\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9ECBFF\">    \"action\": \"queryResource\",\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9ECBFF\">    \"resource\": \"pod\",\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9ECBFF\">    \"name\": \"your-pod-name\",\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9ECBFF\">    \"namespace\": \"your-namespace\",\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9ECBFF\">    \"query\": \"What is the status of this pod and are there any issues?\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9ECBFF\">  }'\u003C/span>\u003Cspan style=\"color:#79B8FF\"> \\\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9ECBFF\">  http://localhost:8080/api/v1/mcp/resource\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>The server will analyze the pod and return Claude’s analysis, highlighting any issues and providing recommendations.\u003C/p>\n\u003Ch2 id=\"next-steps\">Next Steps\u003C/h2>\n\u003Cp>Now that you have Kubernetes Claude MCP running, you can:\u003C/p>\n\u003Col>\n\u003Cli>\u003Ca href=\"/docs/configuration\">Configure the server\u003C/a> for your specific environment\u003C/li>\n\u003Cli>\u003Ca href=\"/docs/api-overview\">Explore the API\u003C/a> to learn about all available endpoints\u003C/li>\n\u003Cli>Check out the \u003Ca href=\"/docs/troubleshooting-resources\">Troubleshooting Resources\u003C/a> guide for common use cases\u003C/li>\n\u003Cli>Learn about \u003Ca href=\"/docs/gitops-integration\">GitOps Integration\u003C/a> with ArgoCD and GitLab\u003C/li>\n\u003C/ol>\n\u003Cp>For a more detailed setup and configuration, see the \u003Ca href=\"/docs/installation\">Installation Guide\u003C/a>.\u003C/p>",{"headings":126,"localImagePaths":151,"remoteImagePaths":152,"frontmatter":153,"imagePaths":156},[127,129,132,135,138,141,144,147,150],{"depth":30,"slug":128,"text":114},"quick-start-guide",{"depth":32,"slug":130,"text":131},"prerequisites","Prerequisites",{"depth":32,"slug":133,"text":134},"step-1-clone-the-repository","Step 1: Clone the Repository",{"depth":32,"slug":136,"text":137},"step-2-configure-environment-variables","Step 2: Configure Environment Variables",{"depth":32,"slug":139,"text":140},"step-3-create-configuration-file","Step 3: Create Configuration File",{"depth":32,"slug":142,"text":143},"step-4-start-the-server","Step 4: Start the Server",{"depth":32,"slug":145,"text":146},"step-5-verify-the-installation","Step 5: Verify the Installation",{"depth":32,"slug":148,"text":149},"step-6-make-your-first-api-call","Step 6: Make Your First API Call",{"depth":32,"slug":79,"text":80},[],[],{"title":114,"description":115,"date":154,"order":32,"tags":155},["Date","2025-03-01T00:00:00.000Z"],[118,119],[],"quick-start.md","configuration",{"id":158,"data":160,"body":167,"filePath":168,"digest":169,"rendered":170,"legacyId":282},{"title":161,"description":162,"date":163,"order":164,"tags":165,"draft":21},"Configuration Guide","Learn how to configure and customize the Kubernetes Claude MCP server to suit your needs and environment.",["Date","2025-03-01T00:00:00.000Z"],4,[158,166],"setup","# Configuration Guide\n\nThis guide explains how to configure Kubernetes Claude MCP to work optimally in your environment. The server is highly configurable, allowing you to customize its behavior and integrations.\n\n## Configuration File\n\nKubernetes Claude MCP is primarily configured using a YAML file (`config.yaml`). This file contains settings for the server, Kubernetes connection, ArgoCD integration, GitLab integration, and Claude AI.\n\nHere's a complete example of the configuration file with explanations:\n\n```yaml\n# Server configuration\nserver:\n  # Address to bind the server on (host:port)\n  address: \":8080\"\n  # Read timeout in seconds\n  readTimeout: 30\n  # Write timeout in seconds\n  writeTimeout: 60\n  # Authentication settings\n  auth:\n    # API key for authenticating requests\n    apiKey: \"your_api_key_here\"\n\n# Kubernetes connection settings\nkubernetes:\n  # Path to kubeconfig file (leave empty for in-cluster)\n  kubeconfig: \"\"\n  # Whether to use in-cluster config\n  inCluster: false\n  # Default Kubernetes context (leave empty for current)\n  defaultContext: \"\"\n  # Default namespace\n  defaultNamespace: \"default\"\n\n# ArgoCD integration settings\nargocd:\n  # ArgoCD server URL\n  url: \"https://argocd.example.com\"\n  # ArgoCD auth token (optional if using username/password)\n  authToken: \"\"\n  # ArgoCD username (optional if using token)\n  username: \"admin\"\n  # ArgoCD password (optional if using token)\n  password: \"password\"\n  # Whether to allow insecure connections\n  insecure: false\n\n# GitLab integration settings\ngitlab:\n  # GitLab server URL\n  url: \"https://gitlab.com\"\n  # GitLab personal access token\n  authToken: \"your_gitlab_token\"\n  # GitLab API version\n  apiVersion: \"v4\"\n  # Default project path\n  projectPath: \"namespace/project\"\n\n# Claude AI settings\nclaude:\n  # Claude API key\n  apiKey: \"your_claude_api_key\"\n  # Claude API base URL\n  baseURL: \"https://api.anthropic.com\"\n  # Claude model ID\n  modelID: \"claude-3-haiku-20240307\"\n  # Maximum tokens for Claude responses\n  maxTokens: 4096\n  # Temperature for Claude responses (0.0-1.0)\n  temperature: 0.7\n```\n\n## Configuration Options\n\n### Server Configuration\n\n| Option | Description | Default |\n|--------|-------------|---------|\n| `address` | Host and port to bind the server (\":8080\" means all interfaces, port 8080) | \":8080\" |\n| `readTimeout` | HTTP read timeout in seconds | 30 |\n| `writeTimeout` | HTTP write timeout in seconds | 60 |\n| `auth.apiKey` | API key for authenticating requests | - |\n\n### Kubernetes Configuration\n\n| Option | Description | Default |\n|--------|-------------|---------|\n| `kubeconfig` | Path to kubeconfig file | \"\" (auto-detect) |\n| `inCluster` | Whether to use in-cluster configuration | false |\n| `defaultContext` | Default Kubernetes context | \"\" (current context) |\n| `defaultNamespace` | Default namespace for operations | \"default\" |\n\n### ArgoCD Configuration\n\n| Option | Description | Default |\n|--------|-------------|---------|\n| `url` | ArgoCD server URL | - |\n| `authToken` | ArgoCD auth token | \"\" |\n| `username` | ArgoCD username | \"\" |\n| `password` | ArgoCD password | \"\" |\n| `insecure` | Allow insecure connections to ArgoCD | false |\n\n### GitLab Configuration\n\n| Option | Description | Default |\n|--------|-------------|---------|\n| `url` | GitLab server URL | \"https://gitlab.com\" |\n| `authToken` | GitLab personal access token | - |\n| `apiVersion` | GitLab API version | \"v4\" |\n| `projectPath` | Default project path | \"\" |\n\n### Claude Configuration\n\n| Option | Description | Default |\n|--------|-------------|---------|\n| `apiKey` | Claude API key | - |\n| `baseURL` | Claude API base URL | \"https://api.anthropic.com\" |\n| `modelID` | Claude model ID | \"claude-3-haiku-20240307\" |\n| `maxTokens` | Maximum tokens for response | 4096 |\n| `temperature` | Temperature for responses (0.0-1.0) | 0.7 |\n\n## Environment Variables\n\nIn addition to the configuration file, you can use environment variables to override any configuration option. This is especially useful for secrets and credentials.\n\nEnvironment variables follow this pattern:\n\n- For server options: `SERVER_OPTION_NAME`\n- For Kubernetes options: `KUBERNETES_OPTION_NAME`\n- For ArgoCD options: `ARGOCD_OPTION_NAME`\n- For GitLab options: `GITLAB_OPTION_NAME`\n- For Claude options: `CLAUDE_OPTION_NAME`\n\nCommon examples:\n\n```bash\n# API keys\nexport CLAUDE_API_KEY=your_claude_api_key\nexport API_KEY=your_api_key_for_server\n\n# ArgoCD credentials\nexport ARGOCD_USERNAME=your_argocd_username\nexport ARGOCD_PASSWORD=your_argocd_password\n\n# GitLab credentials\nexport GITLAB_AUTH_TOKEN=your_gitlab_token\n```\n\n## Variable Interpolation\n\nThe configuration file supports variable interpolation, allowing you to reference environment variables in your config. This is useful for injecting secrets:\n\n```yaml\nserver:\n  auth:\n    apiKey: \"${API_KEY}\"\n\nclaude:\n  apiKey: \"${CLAUDE_API_KEY}\"\n```\n\n## Configuration Hierarchy\n\nThe server reads configuration in the following order (later overrides earlier):\n\n1. Default values\n2. Configuration file\n3. Environment variables\n\nThis allows you to have a base configuration file and override specific settings with environment variables.\n\n## ArgoCD Integration\n\n### Authentication Methods\n\nThere are two ways to authenticate with ArgoCD:\n\n1. **Token-based authentication**: Provide an auth token in `argocd.authToken`.\n2. **Username/password authentication**: Provide username and password in `argocd.username` and `argocd.password`.\n\nFor production environments, token-based authentication is recommended for security.\n\n### Insecure Mode\n\nIf you're using a self-signed certificate for ArgoCD, you can set `argocd.insecure` to `true` to skip certificate validation. However, this is not recommended for production environments.\n\n## GitLab Integration\n\n### Personal Access Token\n\nTo integrate with GitLab, you need a personal access token with the following scopes:\n\n- `read_api` - For accessing repository information\n- `read_repository` - For accessing repository content\n- `read_registry` - For accessing container registry (if needed)\n\n### Self-hosted GitLab\n\nIf you're using a self-hosted GitLab instance, set the `gitlab.url` to your GitLab URL:\n\n```yaml\ngitlab:\n  url: \"https://gitlab.your-company.com\"\n  # Other GitLab settings...\n```\n\n## Claude AI Configuration\n\n### Model Selection\n\nKubernetes Claude MCP supports different Claude model variants. The default is `claude-3-haiku-20240307`, but you can choose others based on your needs:\n\n- `claude-3-opus-20240229` - Most capable model, best for complex analysis\n- `claude-3-sonnet-20240229` - Balanced performance and speed\n- `claude-3-haiku-20240307` - Fastest model, suitable for most use cases\n\n### Response Parameters\n\nYou can adjust two parameters that affect Claude's responses:\n\n1. `maxTokens` - Maximum number of tokens in the response (1-4096)\n2. `temperature` - Controls randomness in responses (0.0-1.0)\n   - Lower values (e.g., 0.3) make responses more deterministic\n   - Higher values (e.g., 0.7) make responses more creative\n\nFor troubleshooting and analysis, a temperature of 0.3-0.5 is recommended.\n\n## Advanced Configuration\n\n### Running Behind a Proxy\n\nIf the server needs to connect to external services through a proxy, set the standard HTTP proxy environment variables:\n\n```bash\nexport HTTP_PROXY=http://proxy.example.com:8080\nexport HTTPS_PROXY=http://proxy.example.com:8080\nexport NO_PROXY=localhost,127.0.0.1,.cluster.local\n```\n\n### TLS Configuration\n\nFor production deployments, it's recommended to use TLS. This is typically handled by your ingress controller, load balancer, or API gateway.\n\nIf you need to terminate TLS at the server (not recommended for production), you can use a reverse proxy like Nginx or Traefik.\n\n### Logging Configuration\n\nThe logging level can be controlled with the `LOG_LEVEL` environment variable:\n\n```bash\nexport LOG_LEVEL=debug  # debug, info, warn, error\n```\n\nFor production, `info` is recommended. Use `debug` only for troubleshooting.\n\n## Configuration Examples\n\n### Minimal Configuration\n\n```yaml\nserver:\n  address: \":8080\"\n  auth:\n    apiKey: \"your_api_key_here\"\n\nkubernetes:\n  inCluster: false\n\nclaude:\n  apiKey: \"your_claude_api_key\"\n  modelID: \"claude-3-haiku-20240307\"\n```\n\n### Production Kubernetes Configuration\n\n```yaml\nserver:\n  address: \":8080\"\n  readTimeout: 60\n  writeTimeout: 120\n  auth:\n    apiKey: \"${API_KEY}\"\n\nkubernetes:\n  inCluster: true\n  defaultNamespace: \"default\"\n\nargocd:\n  url: \"https://argocd.example.com\"\n  authToken: \"${ARGOCD_AUTH_TOKEN}\"\n  insecure: false\n\ngitlab:\n  url: \"https://gitlab.example.com\"\n  authToken: \"${GITLAB_AUTH_TOKEN}\"\n  apiVersion: \"v4\"\n\nclaude:\n  apiKey: \"${CLAUDE_API_KEY}\"\n  baseURL: \"https://api.anthropic.com\"\n  modelID: \"claude-3-haiku-20240307\"\n  maxTokens: 4096\n  temperature: 0.5\n```\n\n## Troubleshooting Configuration\n\nIf you encounter issues with your configuration:\n\n1. Check that all required fields are set correctly\n2. Verify that environment variables are correctly set and accessible to the server\n3. Test connectivity to external services (Kubernetes, ArgoCD, GitLab)\n4. Check the server logs for error messages\n5. Ensure your Claude API key is valid and has sufficient quota\n\n### Common Issues\n\n#### \"Failed to create Kubernetes client\"\n\nThis usually indicates an issue with the Kubernetes configuration:\n\n- Check if the kubeconfig file exists and is accessible\n- Verify the permissions of the kubeconfig file\n- For in-cluster config, ensure the pod has the proper service account\n\n#### \"Failed to connect to ArgoCD\"\n\nArgoCD connectivity issues are typically related to:\n\n- Incorrect URL or credentials\n- Network connectivity issues\n- Certificate validation (if `insecure: false`)\n\nTry using the `--log-level=debug` flag to get more details:\n\n```bash\nLOG_LEVEL=debug ./mcp-server --config config.yaml\n```\n\n#### \"Failed to connect to GitLab\"\n\nGitLab connectivity issues may be due to:\n\n- Invalid personal access token\n- Insufficient permissions for the token\n- Network connectivity issues\n\n#### \"Claude API error\"\n\nClaude API errors usually indicate:\n\n- Invalid API key\n- Rate limiting or quota issues\n- Incorrect model ID\n\n## Updating Configuration\n\nYou can update the configuration without restarting the server by sending a SIGHUP signal:\n\n```bash\n# Find the process ID\nps aux | grep mcp-server\n\n# Send SIGHUP signal\nkill -HUP \u003Cprocess_id>\n```\n\nFor containerized deployments, you'll need to restart the container to apply configuration changes.\n\n## Next Steps\n\nNow that you've configured Kubernetes Claude MCP, you can:\n\n- [Explore the API](/docs/api-overview) to learn how to interact with the server\n- [Try some examples](/docs/examples/basic-usage) to see common use cases\n- [Learn about troubleshooting](/docs/troubleshooting-resources) to diagnose issues in your cluster","src/content/docs/configuration.md","eb4fd4f6400869fd",{"html":171,"metadata":172},"\u003Ch1 id=\"configuration-guide\">Configuration Guide\u003C/h1>\n\u003Cp>This guide explains how to configure Kubernetes Claude MCP to work optimally in your environment. The server is highly configurable, allowing you to customize its behavior and integrations.\u003C/p>\n\u003Ch2 id=\"configuration-file\">Configuration File\u003C/h2>\n\u003Cp>Kubernetes Claude MCP is primarily configured using a YAML file (\u003Ccode>config.yaml\u003C/code>). This file contains settings for the server, Kubernetes connection, ArgoCD integration, GitLab integration, and Claude AI.\u003C/p>\n\u003Cp>Here’s a complete example of the configuration file with explanations:\u003C/p>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto; white-space: pre-wrap; word-wrap: break-word;\" tabindex=\"0\" data-language=\"yaml\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Server configuration\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">server\u003C/span>\u003Cspan style=\"color:#E1E4E8\">:\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\">  # Address to bind the server on (host:port)\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  address\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\":8080\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\">  # Read timeout in seconds\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  readTimeout\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#79B8FF\">30\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\">  # Write timeout in seconds\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  writeTimeout\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#79B8FF\">60\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\">  # Authentication settings\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  auth\u003C/span>\u003Cspan style=\"color:#E1E4E8\">:\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\">    # API key for authenticating requests\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">    apiKey\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"your_api_key_here\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Kubernetes connection settings\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">kubernetes\u003C/span>\u003Cspan style=\"color:#E1E4E8\">:\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\">  # Path to kubeconfig file (leave empty for in-cluster)\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  kubeconfig\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\">  # Whether to use in-cluster config\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  inCluster\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#79B8FF\">false\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\">  # Default Kubernetes context (leave empty for current)\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  defaultContext\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\">  # Default namespace\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  defaultNamespace\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"default\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># ArgoCD integration settings\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">argocd\u003C/span>\u003Cspan style=\"color:#E1E4E8\">:\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\">  # ArgoCD server URL\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  url\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"https://argocd.example.com\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\">  # ArgoCD auth token (optional if using username/password)\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  authToken\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\">  # ArgoCD username (optional if using token)\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  username\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"admin\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\">  # ArgoCD password (optional if using token)\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  password\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"password\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\">  # Whether to allow insecure connections\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  insecure\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#79B8FF\">false\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># GitLab integration settings\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">gitlab\u003C/span>\u003Cspan style=\"color:#E1E4E8\">:\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\">  # GitLab server URL\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  url\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"https://gitlab.com\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\">  # GitLab personal access token\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  authToken\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"your_gitlab_token\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\">  # GitLab API version\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  apiVersion\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"v4\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\">  # Default project path\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  projectPath\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"namespace/project\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Claude AI settings\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">claude\u003C/span>\u003Cspan style=\"color:#E1E4E8\">:\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\">  # Claude API key\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  apiKey\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"your_claude_api_key\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\">  # Claude API base URL\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  baseURL\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"https://api.anthropic.com\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\">  # Claude model ID\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  modelID\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"claude-3-haiku-20240307\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\">  # Maximum tokens for Claude responses\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  maxTokens\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#79B8FF\">4096\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\">  # Temperature for Claude responses (0.0-1.0)\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  temperature\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#79B8FF\">0.7\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch2 id=\"configuration-options\">Configuration Options\u003C/h2>\n\u003Ch3 id=\"server-configuration\">Server Configuration\u003C/h3>\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\u003Ctable>\u003Cthead>\u003Ctr>\u003Cth>Option\u003C/th>\u003Cth>Description\u003C/th>\u003Cth>Default\u003C/th>\u003C/tr>\u003C/thead>\u003Ctbody>\u003Ctr>\u003Ctd>\u003Ccode>address\u003C/code>\u003C/td>\u003Ctd>Host and port to bind the server (“:8080” means all interfaces, port 8080)\u003C/td>\u003Ctd>“:8080”\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>readTimeout\u003C/code>\u003C/td>\u003Ctd>HTTP read timeout in seconds\u003C/td>\u003Ctd>30\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>writeTimeout\u003C/code>\u003C/td>\u003Ctd>HTTP write timeout in seconds\u003C/td>\u003Ctd>60\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>auth.apiKey\u003C/code>\u003C/td>\u003Ctd>API key for authenticating requests\u003C/td>\u003Ctd>-\u003C/td>\u003C/tr>\u003C/tbody>\u003C/table>\n\u003Ch3 id=\"kubernetes-configuration\">Kubernetes Configuration\u003C/h3>\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\u003Ctable>\u003Cthead>\u003Ctr>\u003Cth>Option\u003C/th>\u003Cth>Description\u003C/th>\u003Cth>Default\u003C/th>\u003C/tr>\u003C/thead>\u003Ctbody>\u003Ctr>\u003Ctd>\u003Ccode>kubeconfig\u003C/code>\u003C/td>\u003Ctd>Path to kubeconfig file\u003C/td>\u003Ctd>\"\" (auto-detect)\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>inCluster\u003C/code>\u003C/td>\u003Ctd>Whether to use in-cluster configuration\u003C/td>\u003Ctd>false\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>defaultContext\u003C/code>\u003C/td>\u003Ctd>Default Kubernetes context\u003C/td>\u003Ctd>\"\" (current context)\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>defaultNamespace\u003C/code>\u003C/td>\u003Ctd>Default namespace for operations\u003C/td>\u003Ctd>”default”\u003C/td>\u003C/tr>\u003C/tbody>\u003C/table>\n\u003Ch3 id=\"argocd-configuration\">ArgoCD Configuration\u003C/h3>\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\u003Ctable>\u003Cthead>\u003Ctr>\u003Cth>Option\u003C/th>\u003Cth>Description\u003C/th>\u003Cth>Default\u003C/th>\u003C/tr>\u003C/thead>\u003Ctbody>\u003Ctr>\u003Ctd>\u003Ccode>url\u003C/code>\u003C/td>\u003Ctd>ArgoCD server URL\u003C/td>\u003Ctd>-\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>authToken\u003C/code>\u003C/td>\u003Ctd>ArgoCD auth token\u003C/td>\u003Ctd>\"\"\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>username\u003C/code>\u003C/td>\u003Ctd>ArgoCD username\u003C/td>\u003Ctd>\"\"\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>password\u003C/code>\u003C/td>\u003Ctd>ArgoCD password\u003C/td>\u003Ctd>\"\"\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>insecure\u003C/code>\u003C/td>\u003Ctd>Allow insecure connections to ArgoCD\u003C/td>\u003Ctd>false\u003C/td>\u003C/tr>\u003C/tbody>\u003C/table>\n\u003Ch3 id=\"gitlab-configuration\">GitLab Configuration\u003C/h3>\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\u003Ctable>\u003Cthead>\u003Ctr>\u003Cth>Option\u003C/th>\u003Cth>Description\u003C/th>\u003Cth>Default\u003C/th>\u003C/tr>\u003C/thead>\u003Ctbody>\u003Ctr>\u003Ctd>\u003Ccode>url\u003C/code>\u003C/td>\u003Ctd>GitLab server URL\u003C/td>\u003Ctd>”\u003Ca href=\"https://gitlab.com\">https://gitlab.com\u003C/a>”\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>authToken\u003C/code>\u003C/td>\u003Ctd>GitLab personal access token\u003C/td>\u003Ctd>-\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>apiVersion\u003C/code>\u003C/td>\u003Ctd>GitLab API version\u003C/td>\u003Ctd>”v4”\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>projectPath\u003C/code>\u003C/td>\u003Ctd>Default project path\u003C/td>\u003Ctd>\"\"\u003C/td>\u003C/tr>\u003C/tbody>\u003C/table>\n\u003Ch3 id=\"claude-configuration\">Claude Configuration\u003C/h3>\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\u003Ctable>\u003Cthead>\u003Ctr>\u003Cth>Option\u003C/th>\u003Cth>Description\u003C/th>\u003Cth>Default\u003C/th>\u003C/tr>\u003C/thead>\u003Ctbody>\u003Ctr>\u003Ctd>\u003Ccode>apiKey\u003C/code>\u003C/td>\u003Ctd>Claude API key\u003C/td>\u003Ctd>-\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>baseURL\u003C/code>\u003C/td>\u003Ctd>Claude API base URL\u003C/td>\u003Ctd>”\u003Ca href=\"https://api.anthropic.com\">https://api.anthropic.com\u003C/a>”\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>modelID\u003C/code>\u003C/td>\u003Ctd>Claude model ID\u003C/td>\u003Ctd>”claude-3-haiku-20240307”\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>maxTokens\u003C/code>\u003C/td>\u003Ctd>Maximum tokens for response\u003C/td>\u003Ctd>4096\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>\u003Ccode>temperature\u003C/code>\u003C/td>\u003Ctd>Temperature for responses (0.0-1.0)\u003C/td>\u003Ctd>0.7\u003C/td>\u003C/tr>\u003C/tbody>\u003C/table>\n\u003Ch2 id=\"environment-variables\">Environment Variables\u003C/h2>\n\u003Cp>In addition to the configuration file, you can use environment variables to override any configuration option. This is especially useful for secrets and credentials.\u003C/p>\n\u003Cp>Environment variables follow this pattern:\u003C/p>\n\u003Cul>\n\u003Cli>For server options: \u003Ccode>SERVER_OPTION_NAME\u003C/code>\u003C/li>\n\u003Cli>For Kubernetes options: \u003Ccode>KUBERNETES_OPTION_NAME\u003C/code>\u003C/li>\n\u003Cli>For ArgoCD options: \u003Ccode>ARGOCD_OPTION_NAME\u003C/code>\u003C/li>\n\u003Cli>For GitLab options: \u003Ccode>GITLAB_OPTION_NAME\u003C/code>\u003C/li>\n\u003Cli>For Claude options: \u003Ccode>CLAUDE_OPTION_NAME\u003C/code>\u003C/li>\n\u003C/ul>\n\u003Cp>Common examples:\u003C/p>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto; white-space: pre-wrap; word-wrap: break-word;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># API keys\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#F97583\">export\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> CLAUDE_API_KEY\u003C/span>\u003Cspan style=\"color:#F97583\">=\u003C/span>\u003Cspan style=\"color:#E1E4E8\">your_claude_api_key\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#F97583\">export\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> API_KEY\u003C/span>\u003Cspan style=\"color:#F97583\">=\u003C/span>\u003Cspan style=\"color:#E1E4E8\">your_api_key_for_server\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># ArgoCD credentials\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#F97583\">export\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> ARGOCD_USERNAME\u003C/span>\u003Cspan style=\"color:#F97583\">=\u003C/span>\u003Cspan style=\"color:#E1E4E8\">your_argocd_username\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#F97583\">export\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> ARGOCD_PASSWORD\u003C/span>\u003Cspan style=\"color:#F97583\">=\u003C/span>\u003Cspan style=\"color:#E1E4E8\">your_argocd_password\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># GitLab credentials\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#F97583\">export\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> GITLAB_AUTH_TOKEN\u003C/span>\u003Cspan style=\"color:#F97583\">=\u003C/span>\u003Cspan style=\"color:#E1E4E8\">your_gitlab_token\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch2 id=\"variable-interpolation\">Variable Interpolation\u003C/h2>\n\u003Cp>The configuration file supports variable interpolation, allowing you to reference environment variables in your config. This is useful for injecting secrets:\u003C/p>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto; white-space: pre-wrap; word-wrap: break-word;\" tabindex=\"0\" data-language=\"yaml\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">server\u003C/span>\u003Cspan style=\"color:#E1E4E8\">:\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  auth\u003C/span>\u003Cspan style=\"color:#E1E4E8\">:\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">    apiKey\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"${API_KEY}\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">claude\u003C/span>\u003Cspan style=\"color:#E1E4E8\">:\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  apiKey\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"${CLAUDE_API_KEY}\"\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch2 id=\"configuration-hierarchy\">Configuration Hierarchy\u003C/h2>\n\u003Cp>The server reads configuration in the following order (later overrides earlier):\u003C/p>\n\u003Col>\n\u003Cli>Default values\u003C/li>\n\u003Cli>Configuration file\u003C/li>\n\u003Cli>Environment variables\u003C/li>\n\u003C/ol>\n\u003Cp>This allows you to have a base configuration file and override specific settings with environment variables.\u003C/p>\n\u003Ch2 id=\"argocd-integration\">ArgoCD Integration\u003C/h2>\n\u003Ch3 id=\"authentication-methods\">Authentication Methods\u003C/h3>\n\u003Cp>There are two ways to authenticate with ArgoCD:\u003C/p>\n\u003Col>\n\u003Cli>\u003Cstrong>Token-based authentication\u003C/strong>: Provide an auth token in \u003Ccode>argocd.authToken\u003C/code>.\u003C/li>\n\u003Cli>\u003Cstrong>Username/password authentication\u003C/strong>: Provide username and password in \u003Ccode>argocd.username\u003C/code> and \u003Ccode>argocd.password\u003C/code>.\u003C/li>\n\u003C/ol>\n\u003Cp>For production environments, token-based authentication is recommended for security.\u003C/p>\n\u003Ch3 id=\"insecure-mode\">Insecure Mode\u003C/h3>\n\u003Cp>If you’re using a self-signed certificate for ArgoCD, you can set \u003Ccode>argocd.insecure\u003C/code> to \u003Ccode>true\u003C/code> to skip certificate validation. However, this is not recommended for production environments.\u003C/p>\n\u003Ch2 id=\"gitlab-integration\">GitLab Integration\u003C/h2>\n\u003Ch3 id=\"personal-access-token\">Personal Access Token\u003C/h3>\n\u003Cp>To integrate with GitLab, you need a personal access token with the following scopes:\u003C/p>\n\u003Cul>\n\u003Cli>\u003Ccode>read_api\u003C/code> - For accessing repository information\u003C/li>\n\u003Cli>\u003Ccode>read_repository\u003C/code> - For accessing repository content\u003C/li>\n\u003Cli>\u003Ccode>read_registry\u003C/code> - For accessing container registry (if needed)\u003C/li>\n\u003C/ul>\n\u003Ch3 id=\"self-hosted-gitlab\">Self-hosted GitLab\u003C/h3>\n\u003Cp>If you’re using a self-hosted GitLab instance, set the \u003Ccode>gitlab.url\u003C/code> to your GitLab URL:\u003C/p>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto; white-space: pre-wrap; word-wrap: break-word;\" tabindex=\"0\" data-language=\"yaml\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">gitlab\u003C/span>\u003Cspan style=\"color:#E1E4E8\">:\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  url\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"https://gitlab.your-company.com\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\">  # Other GitLab settings...\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch2 id=\"claude-ai-configuration\">Claude AI Configuration\u003C/h2>\n\u003Ch3 id=\"model-selection\">Model Selection\u003C/h3>\n\u003Cp>Kubernetes Claude MCP supports different Claude model variants. The default is \u003Ccode>claude-3-haiku-20240307\u003C/code>, but you can choose others based on your needs:\u003C/p>\n\u003Cul>\n\u003Cli>\u003Ccode>claude-3-opus-20240229\u003C/code> - Most capable model, best for complex analysis\u003C/li>\n\u003Cli>\u003Ccode>claude-3-sonnet-20240229\u003C/code> - Balanced performance and speed\u003C/li>\n\u003Cli>\u003Ccode>claude-3-haiku-20240307\u003C/code> - Fastest model, suitable for most use cases\u003C/li>\n\u003C/ul>\n\u003Ch3 id=\"response-parameters\">Response Parameters\u003C/h3>\n\u003Cp>You can adjust two parameters that affect Claude’s responses:\u003C/p>\n\u003Col>\n\u003Cli>\u003Ccode>maxTokens\u003C/code> - Maximum number of tokens in the response (1-4096)\u003C/li>\n\u003Cli>\u003Ccode>temperature\u003C/code> - Controls randomness in responses (0.0-1.0)\n\u003Cul>\n\u003Cli>Lower values (e.g., 0.3) make responses more deterministic\u003C/li>\n\u003Cli>Higher values (e.g., 0.7) make responses more creative\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003C/ol>\n\u003Cp>For troubleshooting and analysis, a temperature of 0.3-0.5 is recommended.\u003C/p>\n\u003Ch2 id=\"advanced-configuration\">Advanced Configuration\u003C/h2>\n\u003Ch3 id=\"running-behind-a-proxy\">Running Behind a Proxy\u003C/h3>\n\u003Cp>If the server needs to connect to external services through a proxy, set the standard HTTP proxy environment variables:\u003C/p>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto; white-space: pre-wrap; word-wrap: break-word;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#F97583\">export\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> HTTP_PROXY\u003C/span>\u003Cspan style=\"color:#F97583\">=\u003C/span>\u003Cspan style=\"color:#E1E4E8\">http://proxy.example.com:8080\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#F97583\">export\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> HTTPS_PROXY\u003C/span>\u003Cspan style=\"color:#F97583\">=\u003C/span>\u003Cspan style=\"color:#E1E4E8\">http://proxy.example.com:8080\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#F97583\">export\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> NO_PROXY\u003C/span>\u003Cspan style=\"color:#F97583\">=\u003C/span>\u003Cspan style=\"color:#E1E4E8\">localhost,127.0.0.1,.cluster.local\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch3 id=\"tls-configuration\">TLS Configuration\u003C/h3>\n\u003Cp>For production deployments, it’s recommended to use TLS. This is typically handled by your ingress controller, load balancer, or API gateway.\u003C/p>\n\u003Cp>If you need to terminate TLS at the server (not recommended for production), you can use a reverse proxy like Nginx or Traefik.\u003C/p>\n\u003Ch3 id=\"logging-configuration\">Logging Configuration\u003C/h3>\n\u003Cp>The logging level can be controlled with the \u003Ccode>LOG_LEVEL\u003C/code> environment variable:\u003C/p>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto; white-space: pre-wrap; word-wrap: break-word;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#F97583\">export\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> LOG_LEVEL\u003C/span>\u003Cspan style=\"color:#F97583\">=\u003C/span>\u003Cspan style=\"color:#E1E4E8\">debug  \u003C/span>\u003Cspan style=\"color:#6A737D\"># debug, info, warn, error\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>For production, \u003Ccode>info\u003C/code> is recommended. Use \u003Ccode>debug\u003C/code> only for troubleshooting.\u003C/p>\n\u003Ch2 id=\"configuration-examples\">Configuration Examples\u003C/h2>\n\u003Ch3 id=\"minimal-configuration\">Minimal Configuration\u003C/h3>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto; white-space: pre-wrap; word-wrap: break-word;\" tabindex=\"0\" data-language=\"yaml\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">server\u003C/span>\u003Cspan style=\"color:#E1E4E8\">:\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  address\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\":8080\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  auth\u003C/span>\u003Cspan style=\"color:#E1E4E8\">:\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">    apiKey\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"your_api_key_here\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">kubernetes\u003C/span>\u003Cspan style=\"color:#E1E4E8\">:\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  inCluster\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#79B8FF\">false\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">claude\u003C/span>\u003Cspan style=\"color:#E1E4E8\">:\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  apiKey\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"your_claude_api_key\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  modelID\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"claude-3-haiku-20240307\"\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch3 id=\"production-kubernetes-configuration\">Production Kubernetes Configuration\u003C/h3>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto; white-space: pre-wrap; word-wrap: break-word;\" tabindex=\"0\" data-language=\"yaml\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">server\u003C/span>\u003Cspan style=\"color:#E1E4E8\">:\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  address\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\":8080\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  readTimeout\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#79B8FF\">60\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  writeTimeout\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#79B8FF\">120\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  auth\u003C/span>\u003Cspan style=\"color:#E1E4E8\">:\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">    apiKey\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"${API_KEY}\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">kubernetes\u003C/span>\u003Cspan style=\"color:#E1E4E8\">:\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  inCluster\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#79B8FF\">true\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  defaultNamespace\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"default\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">argocd\u003C/span>\u003Cspan style=\"color:#E1E4E8\">:\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  url\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"https://argocd.example.com\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  authToken\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"${ARGOCD_AUTH_TOKEN}\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  insecure\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#79B8FF\">false\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">gitlab\u003C/span>\u003Cspan style=\"color:#E1E4E8\">:\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  url\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"https://gitlab.example.com\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  authToken\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"${GITLAB_AUTH_TOKEN}\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  apiVersion\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"v4\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">claude\u003C/span>\u003Cspan style=\"color:#E1E4E8\">:\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  apiKey\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"${CLAUDE_API_KEY}\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  baseURL\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"https://api.anthropic.com\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  modelID\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"claude-3-haiku-20240307\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  maxTokens\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#79B8FF\">4096\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  temperature\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#79B8FF\">0.5\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch2 id=\"troubleshooting-configuration\">Troubleshooting Configuration\u003C/h2>\n\u003Cp>If you encounter issues with your configuration:\u003C/p>\n\u003Col>\n\u003Cli>Check that all required fields are set correctly\u003C/li>\n\u003Cli>Verify that environment variables are correctly set and accessible to the server\u003C/li>\n\u003Cli>Test connectivity to external services (Kubernetes, ArgoCD, GitLab)\u003C/li>\n\u003Cli>Check the server logs for error messages\u003C/li>\n\u003Cli>Ensure your Claude API key is valid and has sufficient quota\u003C/li>\n\u003C/ol>\n\u003Ch3 id=\"common-issues\">Common Issues\u003C/h3>\n\u003Ch4 id=\"failed-to-create-kubernetes-client\">”Failed to create Kubernetes client”\u003C/h4>\n\u003Cp>This usually indicates an issue with the Kubernetes configuration:\u003C/p>\n\u003Cul>\n\u003Cli>Check if the kubeconfig file exists and is accessible\u003C/li>\n\u003Cli>Verify the permissions of the kubeconfig file\u003C/li>\n\u003Cli>For in-cluster config, ensure the pod has the proper service account\u003C/li>\n\u003C/ul>\n\u003Ch4 id=\"failed-to-connect-to-argocd\">”Failed to connect to ArgoCD”\u003C/h4>\n\u003Cp>ArgoCD connectivity issues are typically related to:\u003C/p>\n\u003Cul>\n\u003Cli>Incorrect URL or credentials\u003C/li>\n\u003Cli>Network connectivity issues\u003C/li>\n\u003Cli>Certificate validation (if \u003Ccode>insecure: false\u003C/code>)\u003C/li>\n\u003C/ul>\n\u003Cp>Try using the \u003Ccode>--log-level=debug\u003C/code> flag to get more details:\u003C/p>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto; white-space: pre-wrap; word-wrap: break-word;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">LOG_LEVEL\u003C/span>\u003Cspan style=\"color:#F97583\">=\u003C/span>\u003Cspan style=\"color:#9ECBFF\">debug\u003C/span>\u003Cspan style=\"color:#B392F0\"> ./mcp-server\u003C/span>\u003Cspan style=\"color:#79B8FF\"> --config\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> config.yaml\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch4 id=\"failed-to-connect-to-gitlab\">“Failed to connect to GitLab”\u003C/h4>\n\u003Cp>GitLab connectivity issues may be due to:\u003C/p>\n\u003Cul>\n\u003Cli>Invalid personal access token\u003C/li>\n\u003Cli>Insufficient permissions for the token\u003C/li>\n\u003Cli>Network connectivity issues\u003C/li>\n\u003C/ul>\n\u003Ch4 id=\"claude-api-error\">”Claude API error”\u003C/h4>\n\u003Cp>Claude API errors usually indicate:\u003C/p>\n\u003Cul>\n\u003Cli>Invalid API key\u003C/li>\n\u003Cli>Rate limiting or quota issues\u003C/li>\n\u003Cli>Incorrect model ID\u003C/li>\n\u003C/ul>\n\u003Ch2 id=\"updating-configuration\">Updating Configuration\u003C/h2>\n\u003Cp>You can update the configuration without restarting the server by sending a SIGHUP signal:\u003C/p>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto; white-space: pre-wrap; word-wrap: break-word;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Find the process ID\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">ps\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> aux\u003C/span>\u003Cspan style=\"color:#F97583\"> |\u003C/span>\u003Cspan style=\"color:#B392F0\"> grep\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> mcp-server\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Send SIGHUP signal\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">kill\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -HUP\u003C/span>\u003Cspan style=\"color:#F97583\"> <\u003C/span>\u003Cspan style=\"color:#9ECBFF\">process_i\u003C/span>\u003Cspan style=\"color:#E1E4E8\">d\u003C/span>\u003Cspan style=\"color:#F97583\">>\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>For containerized deployments, you’ll need to restart the container to apply configuration changes.\u003C/p>\n\u003Ch2 id=\"next-steps\">Next Steps\u003C/h2>\n\u003Cp>Now that you’ve configured Kubernetes Claude MCP, you can:\u003C/p>\n\u003Cul>\n\u003Cli>\u003Ca href=\"/docs/api-overview\">Explore the API\u003C/a> to learn how to interact with the server\u003C/li>\n\u003Cli>\u003Ca href=\"/docs/examples/basic-usage\">Try some examples\u003C/a> to see common use cases\u003C/li>\n\u003Cli>\u003Ca href=\"/docs/troubleshooting-resources\">Learn about troubleshooting\u003C/a> to diagnose issues in your cluster\u003C/li>\n\u003C/ul>",{"headings":173,"localImagePaths":276,"remoteImagePaths":277,"frontmatter":278,"imagePaths":281},[174,176,179,182,185,188,191,194,197,200,203,206,209,212,215,218,221,224,227,230,233,236,239,242,245,248,251,254,257,260,263,266,269,272,275],{"depth":30,"slug":175,"text":161},"configuration-guide",{"depth":32,"slug":177,"text":178},"configuration-file","Configuration File",{"depth":32,"slug":180,"text":181},"configuration-options","Configuration Options",{"depth":39,"slug":183,"text":184},"server-configuration","Server Configuration",{"depth":39,"slug":186,"text":187},"kubernetes-configuration","Kubernetes Configuration",{"depth":39,"slug":189,"text":190},"argocd-configuration","ArgoCD Configuration",{"depth":39,"slug":192,"text":193},"gitlab-configuration","GitLab Configuration",{"depth":39,"slug":195,"text":196},"claude-configuration","Claude Configuration",{"depth":32,"slug":198,"text":199},"environment-variables","Environment Variables",{"depth":32,"slug":201,"text":202},"variable-interpolation","Variable Interpolation",{"depth":32,"slug":204,"text":205},"configuration-hierarchy","Configuration Hierarchy",{"depth":32,"slug":207,"text":208},"argocd-integration","ArgoCD Integration",{"depth":39,"slug":210,"text":211},"authentication-methods","Authentication Methods",{"depth":39,"slug":213,"text":214},"insecure-mode","Insecure Mode",{"depth":32,"slug":216,"text":217},"gitlab-integration","GitLab Integration",{"depth":39,"slug":219,"text":220},"personal-access-token","Personal Access Token",{"depth":39,"slug":222,"text":223},"self-hosted-gitlab","Self-hosted GitLab",{"depth":32,"slug":225,"text":226},"claude-ai-configuration","Claude AI Configuration",{"depth":39,"slug":228,"text":229},"model-selection","Model Selection",{"depth":39,"slug":231,"text":232},"response-parameters","Response Parameters",{"depth":32,"slug":234,"text":235},"advanced-configuration","Advanced Configuration",{"depth":39,"slug":237,"text":238},"running-behind-a-proxy","Running Behind a Proxy",{"depth":39,"slug":240,"text":241},"tls-configuration","TLS Configuration",{"depth":39,"slug":243,"text":244},"logging-configuration","Logging Configuration",{"depth":32,"slug":246,"text":247},"configuration-examples","Configuration Examples",{"depth":39,"slug":249,"text":250},"minimal-configuration","Minimal Configuration",{"depth":39,"slug":252,"text":253},"production-kubernetes-configuration","Production Kubernetes Configuration",{"depth":32,"slug":255,"text":256},"troubleshooting-configuration","Troubleshooting Configuration",{"depth":39,"slug":258,"text":259},"common-issues","Common Issues",{"depth":164,"slug":261,"text":262},"failed-to-create-kubernetes-client","”Failed to create Kubernetes client”",{"depth":164,"slug":264,"text":265},"failed-to-connect-to-argocd","”Failed to connect to ArgoCD”",{"depth":164,"slug":267,"text":268},"failed-to-connect-to-gitlab","“Failed to connect to GitLab”",{"depth":164,"slug":270,"text":271},"claude-api-error","”Claude API error”",{"depth":32,"slug":273,"text":274},"updating-configuration","Updating Configuration",{"depth":32,"slug":79,"text":80},[],[],{"title":161,"description":162,"date":279,"order":164,"tags":280},["Date","2025-03-01T00:00:00.000Z"],[158,166],[],"configuration.md",{"id":119,"data":284,"body":290,"filePath":291,"digest":292,"rendered":293,"legacyId":376},{"title":285,"description":286,"date":287,"order":39,"tags":288,"draft":21},"Installation Guide","Comprehensive guide for installing and configuring the Kubernetes Claude MCP server in various environments.",["Date","2025-03-01T00:00:00.000Z"],[119,289],"deployment","# Installation Guide\n\nThis guide provides detailed instructions for installing Kubernetes Claude MCP in different environments. Choose the method that best suits your needs.\n\n## Prerequisites\n\nBefore installing Kubernetes Claude MCP, ensure you have:\n\n- Access to a Kubernetes cluster (v1.19+)\n- kubectl configured to access your cluster\n- Claude API key from Anthropic\n- Optional: ArgoCD instance (for GitOps integration)\n- Optional: GitLab access (for commit analysis)\n\n## Installation Methods\n\nThere are several ways to install Kubernetes Claude MCP:\n\n1. [Docker Compose](#docker-compose) (for development/testing)\n2. [Kubernetes Deployment](#kubernetes-deployment) (recommended for production)\n3. [Helm Chart](#helm-chart) (easiest for Kubernetes)\n4. [Manual Binary](#manual-binary) (for custom environments)\n\n## Docker Compose\n\nDocker Compose is ideal for local development and testing.\n\n### Step 1: Clone the Repository\n\n```bash\ngit clone https://github.com/blankcut/kubernetes-mcp-server.git\ncd kubernetes-mcp-server\n```\n\n### Step 2: Configure Environment Variables\n\nCreate a `.env` file with your credentials:\n\n```bash\nCLAUDE_API_KEY=your_claude_api_key\nARGOCD_USERNAME=your_argocd_username\nARGOCD_PASSWORD=your_argocd_password\nGITLAB_AUTH_TOKEN=your_gitlab_token\nAPI_KEY=your_api_key_for_server_access\n```\n\n### Step 3: Configure the Server\n\nCreate or modify `config.yaml`:\n\n```yaml\nserver:\n  address: \":8080\"\n  readTimeout: 30\n  writeTimeout: 60\n  auth:\n    apiKey: \"${API_KEY}\"\n\nkubernetes:\n  kubeconfig: \"\"\n  inCluster: false\n  defaultContext: \"\"\n  defaultNamespace: \"default\"\n\nargocd:\n  url: \"${ARGOCD_URL}\"\n  authToken: \"${ARGOCD_AUTH_TOKEN}\"\n  username: \"${ARGOCD_USERNAME}\"\n  password: \"${ARGOCD_PASSWORD}\"\n  insecure: true\n\ngitlab:\n  url: \"${GITLAB_URL}\"\n  authToken: \"${GITLAB_AUTH_TOKEN}\"\n  apiVersion: \"v4\"\n  projectPath: \"${PROJECT_PATH}\"\n\nclaude:\n  apiKey: \"${CLAUDE_API_KEY}\"\n  baseURL: \"https://api.anthropic.com\"\n  modelID: \"claude-3-haiku-20240307\"\n  maxTokens: 4096\n  temperature: 0.7\n```\n\n### Step 4: Start the Service\n\n```bash\ndocker-compose up -d\n```\n\nThe server will be available at http://localhost:8080.\n\n## Kubernetes Deployment\n\nFor production environments, deploying to Kubernetes is recommended.\n\n### Step 1: Create a Namespace\n\n```bash\nkubectl create namespace mcp-system\n```\n\n### Step 2: Create Secrets\n\n```bash\nkubectl create secret generic mcp-secrets \\\n  --namespace mcp-system \\\n  --from-literal=claude-api-key=your_claude_api_key \\\n  --from-literal=argocd-username=your_argocd_username \\\n  --from-literal=argocd-password=your_argocd_password \\\n  --from-literal=gitlab-token=your_gitlab_token \\\n  --from-literal=api-key=your_api_key_for_server_access\n```\n\n### Step 3: Create ConfigMap\n\n```bash\nkubectl create configmap mcp-config \\\n  --namespace mcp-system \\\n  --from-file=config.yaml\n```\n\n### Step 4: Apply Deployment Manifest\n\nCreate a file named `deployment.yaml`:\n\n```yaml\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n  name: kubernetes-mcp-server\n  namespace: mcp-system\n  labels:\n    app: kubernetes-mcp-server\nspec:\n  replicas: 1\n  selector:\n    matchLabels:\n      app: kubernetes-mcp-server\n  template:\n    metadata:\n      labels:\n        app: kubernetes-mcp-server\n    spec:\n      serviceAccountName: mcp-service-account\n      containers:\n      - name: server\n        image: blankcut/kubernetes-mcp-server:latest\n        imagePullPolicy: Always\n        ports:\n        - containerPort: 8080\n        env:\n        - name: CLAUDE_API_KEY\n          valueFrom:\n            secretKeyRef:\n              name: mcp-secrets\n              key: claude-api-key\n        - name: ARGOCD_USERNAME\n          valueFrom:\n            secretKeyRef:\n              name: mcp-secrets\n              key: argocd-username\n              optional: true\n        - name: ARGOCD_PASSWORD\n          valueFrom:\n            secretKeyRef:\n              name: mcp-secrets\n              key: argocd-password\n              optional: true\n        - name: GITLAB_AUTH_TOKEN\n          valueFrom:\n            secretKeyRef:\n              name: mcp-secrets\n              key: gitlab-token\n              optional: true\n        - name: API_KEY\n          valueFrom:\n            secretKeyRef:\n              name: mcp-secrets\n              key: api-key\n        volumeMounts:\n        - name: config\n          mountPath: /app/config.yaml\n          subPath: config.yaml\n      volumes:\n      - name: config\n        configMap:\n          name: mcp-config\n---\napiVersion: v1\nkind: Service\nmetadata:\n  name: kubernetes-mcp-server\n  namespace: mcp-system\nspec:\n  selector:\n    app: kubernetes-mcp-server\n  ports:\n  - port: 80\n    targetPort: 8080\n  type: ClusterIP\n---\napiVersion: v1\nkind: ServiceAccount\nmetadata:\n  name: mcp-service-account\n  namespace: mcp-system\n---\napiVersion: rbac.authorization.k8s.io/v1\nkind: ClusterRole\nmetadata:\n  name: mcp-cluster-role\nrules:\n- apiGroups: [\"\"]\n  resources: [\"pods\", \"services\", \"events\", \"configmaps\", \"secrets\", \"namespaces\", \"nodes\"]\n  verbs: [\"get\", \"list\", \"watch\"]\n- apiGroups: [\"apps\"]\n  resources: [\"deployments\", \"statefulsets\", \"daemonsets\", \"replicasets\"]\n  verbs: [\"get\", \"list\", \"watch\"]\n- apiGroups: [\"batch\"]\n  resources: [\"jobs\", \"cronjobs\"]\n  verbs: [\"get\", \"list\", \"watch\"]\n- apiGroups: [\"networking.k8s.io\"]\n  resources: [\"ingresses\"]\n  verbs: [\"get\", \"list\", \"watch\"]\n---\napiVersion: rbac.authorization.k8s.io/v1\nkind: ClusterRoleBinding\nmetadata:\n  name: mcp-role-binding\nsubjects:\n- kind: ServiceAccount\n  name: mcp-service-account\n  namespace: mcp-system\nroleRef:\n  kind: ClusterRole\n  name: mcp-cluster-role\n  apiGroup: rbac.authorization.k8s.io\n```\n\nApply the configuration:\n\n```bash\nkubectl apply -f deployment.yaml\n```\n\n### Step 5: Access the Server\n\nCreate an Ingress or port-forward to access the server:\n\n```bash\nkubectl port-forward -n mcp-system svc/kubernetes-mcp-server 8080:80\n```\n\n## Helm Chart\n\nFor Kubernetes users, the Helm chart provides the easiest installation method.\n\n### Step 1: Add the Helm Repository\n\n```bash\nhelm repo add blankcut https://blankcut.github.io/helm-charts\nhelm repo update\n```\n\n### Step 2: Configure Values\n\nCreate a `values.yaml` file:\n\n```yaml\nimage:\n  repository: blankcut/kubernetes-mcp-server\n  tag: latest\n\nconfig:\n  server:\n    address: \":8080\"\n  kubernetes:\n    inCluster: true\n    defaultNamespace: \"default\"\n  argocd:\n    url: \"https://argocd.example.com\"\n  gitlab:\n    url: \"https://gitlab.com\"\n  claude:\n    modelID: \"claude-3-haiku-20240307\"\n\nsecrets:\n  claude:\n    apiKey: \"your_claude_api_key\"\n  argocd:\n    username: \"your_argocd_username\"\n    password: \"your_argocd_password\"\n  gitlab:\n    authToken: \"your_gitlab_token\"\n\nservice:\n  type: ClusterIP\n\ningress:\n  enabled: false\n  # Uncomment to enable ingress\n  # hosts:\n  #   - host: mcp.example.com\n  #     paths:\n  #       - path: /\n  #         pathType: Prefix\n```\n\n### Step 3: Install the Chart\n\n```bash\nhelm install kubernetes-mcp-server blankcut/kubernetes-claude-mcp -f values.yaml -n mcp-system\n```\n\n### Step 4: Verify the Installation\n\n```bash\nkubectl get pods -n mcp-system\n```\n\n## Manual Binary\n\nFor environments where Docker or Kubernetes is not available, you can run the binary directly.\n\n### Step 1: Download the Latest Release\n\nVisit the [Releases page](https://github.com/blankcut/kubernetes-mcp-server/releases) and download the appropriate binary for your platform.\n\n### Step 2: Make the Binary Executable\n\n```bash\nchmod +x mcp-server\n```\n\n### Step 3: Create Configuration File\n\nCreate a `config.yaml` file in the same directory:\n\n```yaml\nserver:\n  address: \":8080\"\n  readTimeout: 30\n  writeTimeout: 60\n  auth:\n    apiKey: \"your_api_key_for_server_access\"\n\nkubernetes:\n  kubeconfig: \"/path/to/.kube/config\"  # Path to your kubeconfig file\n  inCluster: false\n  defaultContext: \"\"\n  defaultNamespace: \"default\"\n\nargocd:\n  url: \"https://argocd.example.com\"\n  username: \"your_argocd_username\"\n  password: \"your_argocd_password\"\n  insecure: true\n\ngitlab:\n  url: \"https://gitlab.com\"\n  authToken: \"your_gitlab_token\"\n  apiVersion: \"v4\"\n  projectPath: \"\"\n\nclaude:\n  apiKey: \"your_claude_api_key\"\n  baseURL: \"https://api.anthropic.com\"\n  modelID: \"claude-3-haiku-20240307\"\n  maxTokens: 4096\n  temperature: 0.7\n```\n\n### Step 4: Run the Server\n\n```bash\nexport CLAUDE_API_KEY=your_claude_api_key\nexport API_KEY=your_api_key_for_server\n./mcp-server --config config.yaml\n```\n\n## Verifying the Installation\n\nTo verify your installation is working correctly:\n\n1. Check the health endpoint:\n\n```bash\ncurl http://localhost:8080/api/v1/health\n```\n\n2. List Kubernetes namespaces:\n\n```bash\ncurl -H \"X-API-Key: your_api_key\" http://localhost:8080/api/v1/namespaces\n```\n\n3. Test a resource query:\n\n```bash\ncurl -X POST \\\n  -H \"Content-Type: application/json\" \\\n  -H \"X-API-Key: your_api_key\" \\\n  -d '{\n    \"action\": \"queryResource\",\n    \"resource\": \"pod\",\n    \"name\": \"example-pod\",\n    \"namespace\": \"default\",\n    \"query\": \"Is this pod healthy?\"\n  }' \\\n  http://localhost:8080/api/v1/mcp/resource\n```\n\n## Security Considerations\n\nWhen deploying Kubernetes Claude MCP, consider the following security best practices:\n\n1. **API Access**: Use a strong API key and restrict access to the server.\n2. **Kubernetes Permissions**: Use a service account with the minimum required permissions.\n3. **Secrets Management**: Store credentials in Kubernetes Secrets or a secure vault.\n4. **Network Isolation**: Consider network policies to limit access to the server.\n5. **TLS**: Use TLS to encrypt connections to the server.\n\nFor more security recommendations, see the [Security Best Practices](/docs/security-best-practices) guide.\n\n## Troubleshooting\n\nIf you encounter issues during installation, check:\n\n1. **Logs**: View server logs for error messages\n   ```bash\n   # For Docker Compose\n   docker-compose logs\n   \n   # For Kubernetes\n   kubectl logs -n mcp-system deployment/kubernetes-mcp-server\n   ```\n\n2. **Configuration**: Verify your `config.yaml` has the correct settings\n3. **Connectivity**: Ensure the server can connect to Kubernetes, ArgoCD, and GitLab\n4. **API Key**: Verify you're using the correct API key in requests\n\nFor more troubleshooting tips, see the [Troubleshooting](/docs/troubleshooting-resources) guide.\n\n## Next Steps\n\nAfter successful installation, continue with:\n\n- [Configuration Guide](/docs/configuration) - Configure the server for your environment\n- [API Reference](/docs/api-overview) - Explore the API endpoints\n- [Examples](/docs/examples/basic-usage) - See examples of common use cases","src/content/docs/installation.md","b7ac859c62eb59fc",{"html":294,"metadata":295},"\u003Ch1 id=\"installation-guide\">Installation Guide\u003C/h1>\n\u003Cp>This guide provides detailed instructions for installing Kubernetes Claude MCP in different environments. Choose the method that best suits your needs.\u003C/p>\n\u003Ch2 id=\"prerequisites\">Prerequisites\u003C/h2>\n\u003Cp>Before installing Kubernetes Claude MCP, ensure you have:\u003C/p>\n\u003Cul>\n\u003Cli>Access to a Kubernetes cluster (v1.19+)\u003C/li>\n\u003Cli>kubectl configured to access your cluster\u003C/li>\n\u003Cli>Claude API key from Anthropic\u003C/li>\n\u003Cli>Optional: ArgoCD instance (for GitOps integration)\u003C/li>\n\u003Cli>Optional: GitLab access (for commit analysis)\u003C/li>\n\u003C/ul>\n\u003Ch2 id=\"installation-methods\">Installation Methods\u003C/h2>\n\u003Cp>There are several ways to install Kubernetes Claude MCP:\u003C/p>\n\u003Col>\n\u003Cli>\u003Ca href=\"#docker-compose\">Docker Compose\u003C/a> (for development/testing)\u003C/li>\n\u003Cli>\u003Ca href=\"#kubernetes-deployment\">Kubernetes Deployment\u003C/a> (recommended for production)\u003C/li>\n\u003Cli>\u003Ca href=\"#helm-chart\">Helm Chart\u003C/a> (easiest for Kubernetes)\u003C/li>\n\u003Cli>\u003Ca href=\"#manual-binary\">Manual Binary\u003C/a> (for custom environments)\u003C/li>\n\u003C/ol>\n\u003Ch2 id=\"docker-compose\">Docker Compose\u003C/h2>\n\u003Cp>Docker Compose is ideal for local development and testing.\u003C/p>\n\u003Ch3 id=\"step-1-clone-the-repository\">Step 1: Clone the Repository\u003C/h3>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto; white-space: pre-wrap; word-wrap: break-word;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">git\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> clone\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> https://github.com/blankcut/kubernetes-mcp-server.git\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">cd\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> kubernetes-mcp-server\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch3 id=\"step-2-configure-environment-variables\">Step 2: Configure Environment Variables\u003C/h3>\n\u003Cp>Create a \u003Ccode>.env\u003C/code> file with your credentials:\u003C/p>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto; white-space: pre-wrap; word-wrap: break-word;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">CLAUDE_API_KEY\u003C/span>\u003Cspan style=\"color:#F97583\">=\u003C/span>\u003Cspan style=\"color:#9ECBFF\">your_claude_api_key\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">ARGOCD_USERNAME\u003C/span>\u003Cspan style=\"color:#F97583\">=\u003C/span>\u003Cspan style=\"color:#9ECBFF\">your_argocd_username\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">ARGOCD_PASSWORD\u003C/span>\u003Cspan style=\"color:#F97583\">=\u003C/span>\u003Cspan style=\"color:#9ECBFF\">your_argocd_password\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">GITLAB_AUTH_TOKEN\u003C/span>\u003Cspan style=\"color:#F97583\">=\u003C/span>\u003Cspan style=\"color:#9ECBFF\">your_gitlab_token\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">API_KEY\u003C/span>\u003Cspan style=\"color:#F97583\">=\u003C/span>\u003Cspan style=\"color:#9ECBFF\">your_api_key_for_server_access\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch3 id=\"step-3-configure-the-server\">Step 3: Configure the Server\u003C/h3>\n\u003Cp>Create or modify \u003Ccode>config.yaml\u003C/code>:\u003C/p>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto; white-space: pre-wrap; word-wrap: break-word;\" tabindex=\"0\" data-language=\"yaml\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">server\u003C/span>\u003Cspan style=\"color:#E1E4E8\">:\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  address\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\":8080\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  readTimeout\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#79B8FF\">30\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  writeTimeout\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#79B8FF\">60\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  auth\u003C/span>\u003Cspan style=\"color:#E1E4E8\">:\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">    apiKey\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"${API_KEY}\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">kubernetes\u003C/span>\u003Cspan style=\"color:#E1E4E8\">:\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  kubeconfig\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  inCluster\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#79B8FF\">false\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  defaultContext\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  defaultNamespace\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"default\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">argocd\u003C/span>\u003Cspan style=\"color:#E1E4E8\">:\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  url\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"${ARGOCD_URL}\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  authToken\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"${ARGOCD_AUTH_TOKEN}\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  username\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"${ARGOCD_USERNAME}\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  password\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"${ARGOCD_PASSWORD}\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  insecure\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#79B8FF\">true\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">gitlab\u003C/span>\u003Cspan style=\"color:#E1E4E8\">:\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  url\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"${GITLAB_URL}\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  authToken\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"${GITLAB_AUTH_TOKEN}\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  apiVersion\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"v4\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  projectPath\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"${PROJECT_PATH}\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">claude\u003C/span>\u003Cspan style=\"color:#E1E4E8\">:\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  apiKey\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"${CLAUDE_API_KEY}\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  baseURL\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"https://api.anthropic.com\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  modelID\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"claude-3-haiku-20240307\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  maxTokens\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#79B8FF\">4096\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  temperature\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#79B8FF\">0.7\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch3 id=\"step-4-start-the-service\">Step 4: Start the Service\u003C/h3>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto; white-space: pre-wrap; word-wrap: break-word;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">docker-compose\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> up\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -d\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>The server will be available at \u003Ca href=\"http://localhost:8080\">http://localhost:8080\u003C/a>.\u003C/p>\n\u003Ch2 id=\"kubernetes-deployment\">Kubernetes Deployment\u003C/h2>\n\u003Cp>For production environments, deploying to Kubernetes is recommended.\u003C/p>\n\u003Ch3 id=\"step-1-create-a-namespace\">Step 1: Create a Namespace\u003C/h3>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto; white-space: pre-wrap; word-wrap: break-word;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">kubectl\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> create\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> namespace\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> mcp-system\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch3 id=\"step-2-create-secrets\">Step 2: Create Secrets\u003C/h3>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto; white-space: pre-wrap; word-wrap: break-word;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">kubectl\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> create\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> secret\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> generic\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> mcp-secrets\u003C/span>\u003Cspan style=\"color:#79B8FF\"> \\\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  --namespace\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> mcp-system\u003C/span>\u003Cspan style=\"color:#79B8FF\"> \\\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  --from-literal=claude-api-key=your_claude_api_key\u003C/span>\u003Cspan style=\"color:#79B8FF\"> \\\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  --from-literal=argocd-username=your_argocd_username\u003C/span>\u003Cspan style=\"color:#79B8FF\"> \\\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  --from-literal=argocd-password=your_argocd_password\u003C/span>\u003Cspan style=\"color:#79B8FF\"> \\\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  --from-literal=gitlab-token=your_gitlab_token\u003C/span>\u003Cspan style=\"color:#79B8FF\"> \\\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  --from-literal=api-key=your_api_key_for_server_access\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch3 id=\"step-3-create-configmap\">Step 3: Create ConfigMap\u003C/h3>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto; white-space: pre-wrap; word-wrap: break-word;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">kubectl\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> create\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> configmap\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> mcp-config\u003C/span>\u003Cspan style=\"color:#79B8FF\"> \\\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  --namespace\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> mcp-system\u003C/span>\u003Cspan style=\"color:#79B8FF\"> \\\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  --from-file=config.yaml\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch3 id=\"step-4-apply-deployment-manifest\">Step 4: Apply Deployment Manifest\u003C/h3>\n\u003Cp>Create a file named \u003Ccode>deployment.yaml\u003C/code>:\u003C/p>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto; white-space: pre-wrap; word-wrap: break-word;\" tabindex=\"0\" data-language=\"yaml\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">apiVersion\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">apps/v1\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">kind\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">Deployment\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">metadata\u003C/span>\u003Cspan style=\"color:#E1E4E8\">:\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  name\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">kubernetes-mcp-server\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  namespace\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">mcp-system\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  labels\u003C/span>\u003Cspan style=\"color:#E1E4E8\">:\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">    app\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">kubernetes-mcp-server\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">spec\u003C/span>\u003Cspan style=\"color:#E1E4E8\">:\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  replicas\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#79B8FF\">1\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  selector\u003C/span>\u003Cspan style=\"color:#E1E4E8\">:\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">    matchLabels\u003C/span>\u003Cspan style=\"color:#E1E4E8\">:\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">      app\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">kubernetes-mcp-server\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  template\u003C/span>\u003Cspan style=\"color:#E1E4E8\">:\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">    metadata\u003C/span>\u003Cspan style=\"color:#E1E4E8\">:\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">      labels\u003C/span>\u003Cspan style=\"color:#E1E4E8\">:\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">        app\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">kubernetes-mcp-server\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">    spec\u003C/span>\u003Cspan style=\"color:#E1E4E8\">:\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">      serviceAccountName\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">mcp-service-account\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">      containers\u003C/span>\u003Cspan style=\"color:#E1E4E8\">:\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">      - \u003C/span>\u003Cspan style=\"color:#85E89D\">name\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">server\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">        image\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">blankcut/kubernetes-mcp-server:latest\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">        imagePullPolicy\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">Always\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">        ports\u003C/span>\u003Cspan style=\"color:#E1E4E8\">:\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">        - \u003C/span>\u003Cspan style=\"color:#85E89D\">containerPort\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#79B8FF\">8080\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">        env\u003C/span>\u003Cspan style=\"color:#E1E4E8\">:\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">        - \u003C/span>\u003Cspan style=\"color:#85E89D\">name\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">CLAUDE_API_KEY\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">          valueFrom\u003C/span>\u003Cspan style=\"color:#E1E4E8\">:\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">            secretKeyRef\u003C/span>\u003Cspan style=\"color:#E1E4E8\">:\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">              name\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">mcp-secrets\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">              key\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">claude-api-key\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">        - \u003C/span>\u003Cspan style=\"color:#85E89D\">name\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">ARGOCD_USERNAME\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">          valueFrom\u003C/span>\u003Cspan style=\"color:#E1E4E8\">:\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">            secretKeyRef\u003C/span>\u003Cspan style=\"color:#E1E4E8\">:\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">              name\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">mcp-secrets\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">              key\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">argocd-username\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">              optional\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#79B8FF\">true\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">        - \u003C/span>\u003Cspan style=\"color:#85E89D\">name\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">ARGOCD_PASSWORD\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">          valueFrom\u003C/span>\u003Cspan style=\"color:#E1E4E8\">:\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">            secretKeyRef\u003C/span>\u003Cspan style=\"color:#E1E4E8\">:\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">              name\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">mcp-secrets\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">              key\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">argocd-password\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">              optional\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#79B8FF\">true\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">        - \u003C/span>\u003Cspan style=\"color:#85E89D\">name\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">GITLAB_AUTH_TOKEN\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">          valueFrom\u003C/span>\u003Cspan style=\"color:#E1E4E8\">:\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">            secretKeyRef\u003C/span>\u003Cspan style=\"color:#E1E4E8\">:\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">              name\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">mcp-secrets\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">              key\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">gitlab-token\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">              optional\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#79B8FF\">true\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">        - \u003C/span>\u003Cspan style=\"color:#85E89D\">name\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">API_KEY\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">          valueFrom\u003C/span>\u003Cspan style=\"color:#E1E4E8\">:\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">            secretKeyRef\u003C/span>\u003Cspan style=\"color:#E1E4E8\">:\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">              name\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">mcp-secrets\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">              key\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">api-key\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">        volumeMounts\u003C/span>\u003Cspan style=\"color:#E1E4E8\">:\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">        - \u003C/span>\u003Cspan style=\"color:#85E89D\">name\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">config\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">          mountPath\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">/app/config.yaml\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">          subPath\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">config.yaml\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">      volumes\u003C/span>\u003Cspan style=\"color:#E1E4E8\">:\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">      - \u003C/span>\u003Cspan style=\"color:#85E89D\">name\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">config\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">        configMap\u003C/span>\u003Cspan style=\"color:#E1E4E8\">:\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">          name\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">mcp-config\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">---\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">apiVersion\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">v1\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">kind\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">Service\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">metadata\u003C/span>\u003Cspan style=\"color:#E1E4E8\">:\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  name\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">kubernetes-mcp-server\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  namespace\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">mcp-system\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">spec\u003C/span>\u003Cspan style=\"color:#E1E4E8\">:\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  selector\u003C/span>\u003Cspan style=\"color:#E1E4E8\">:\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">    app\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">kubernetes-mcp-server\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  ports\u003C/span>\u003Cspan style=\"color:#E1E4E8\">:\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">  - \u003C/span>\u003Cspan style=\"color:#85E89D\">port\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#79B8FF\">80\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">    targetPort\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#79B8FF\">8080\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  type\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">ClusterIP\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">---\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">apiVersion\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">v1\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">kind\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">ServiceAccount\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">metadata\u003C/span>\u003Cspan style=\"color:#E1E4E8\">:\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  name\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">mcp-service-account\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  namespace\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">mcp-system\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">---\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">apiVersion\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">rbac.authorization.k8s.io/v1\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">kind\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">ClusterRole\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">metadata\u003C/span>\u003Cspan style=\"color:#E1E4E8\">:\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  name\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">mcp-cluster-role\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">rules\u003C/span>\u003Cspan style=\"color:#E1E4E8\">:\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">- \u003C/span>\u003Cspan style=\"color:#85E89D\">apiGroups\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: [\u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">]\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  resources\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: [\u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"pods\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">, \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"services\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">, \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"events\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">, \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"configmaps\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">, \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"secrets\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">, \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"namespaces\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">, \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"nodes\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">]\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  verbs\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: [\u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"get\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">, \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"list\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">, \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"watch\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">]\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">- \u003C/span>\u003Cspan style=\"color:#85E89D\">apiGroups\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: [\u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"apps\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">]\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  resources\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: [\u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"deployments\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">, \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"statefulsets\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">, \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"daemonsets\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">, \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"replicasets\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">]\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  verbs\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: [\u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"get\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">, \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"list\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">, \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"watch\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">]\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">- \u003C/span>\u003Cspan style=\"color:#85E89D\">apiGroups\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: [\u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"batch\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">]\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  resources\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: [\u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"jobs\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">, \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"cronjobs\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">]\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  verbs\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: [\u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"get\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">, \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"list\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">, \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"watch\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">]\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">- \u003C/span>\u003Cspan style=\"color:#85E89D\">apiGroups\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: [\u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"networking.k8s.io\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">]\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  resources\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: [\u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"ingresses\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">]\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  verbs\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: [\u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"get\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">, \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"list\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">, \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"watch\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">]\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">---\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">apiVersion\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">rbac.authorization.k8s.io/v1\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">kind\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">ClusterRoleBinding\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">metadata\u003C/span>\u003Cspan style=\"color:#E1E4E8\">:\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  name\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">mcp-role-binding\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">subjects\u003C/span>\u003Cspan style=\"color:#E1E4E8\">:\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">- \u003C/span>\u003Cspan style=\"color:#85E89D\">kind\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">ServiceAccount\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  name\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">mcp-service-account\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  namespace\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">mcp-system\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">roleRef\u003C/span>\u003Cspan style=\"color:#E1E4E8\">:\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  kind\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">ClusterRole\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  name\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">mcp-cluster-role\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  apiGroup\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">rbac.authorization.k8s.io\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>Apply the configuration:\u003C/p>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto; white-space: pre-wrap; word-wrap: break-word;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">kubectl\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> apply\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -f\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> deployment.yaml\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch3 id=\"step-5-access-the-server\">Step 5: Access the Server\u003C/h3>\n\u003Cp>Create an Ingress or port-forward to access the server:\u003C/p>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto; white-space: pre-wrap; word-wrap: break-word;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">kubectl\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> port-forward\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -n\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> mcp-system\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> svc/kubernetes-mcp-server\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> 8080:80\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch2 id=\"helm-chart\">Helm Chart\u003C/h2>\n\u003Cp>For Kubernetes users, the Helm chart provides the easiest installation method.\u003C/p>\n\u003Ch3 id=\"step-1-add-the-helm-repository\">Step 1: Add the Helm Repository\u003C/h3>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto; white-space: pre-wrap; word-wrap: break-word;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">helm\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> repo\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> add\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> blankcut\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> https://blankcut.github.io/helm-charts\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">helm\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> repo\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> update\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch3 id=\"step-2-configure-values\">Step 2: Configure Values\u003C/h3>\n\u003Cp>Create a \u003Ccode>values.yaml\u003C/code> file:\u003C/p>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto; white-space: pre-wrap; word-wrap: break-word;\" tabindex=\"0\" data-language=\"yaml\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">image\u003C/span>\u003Cspan style=\"color:#E1E4E8\">:\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  repository\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">blankcut/kubernetes-mcp-server\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  tag\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">latest\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">config\u003C/span>\u003Cspan style=\"color:#E1E4E8\">:\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  server\u003C/span>\u003Cspan style=\"color:#E1E4E8\">:\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">    address\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\":8080\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  kubernetes\u003C/span>\u003Cspan style=\"color:#E1E4E8\">:\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">    inCluster\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#79B8FF\">true\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">    defaultNamespace\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"default\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  argocd\u003C/span>\u003Cspan style=\"color:#E1E4E8\">:\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">    url\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"https://argocd.example.com\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  gitlab\u003C/span>\u003Cspan style=\"color:#E1E4E8\">:\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">    url\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"https://gitlab.com\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  claude\u003C/span>\u003Cspan style=\"color:#E1E4E8\">:\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">    modelID\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"claude-3-haiku-20240307\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">secrets\u003C/span>\u003Cspan style=\"color:#E1E4E8\">:\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  claude\u003C/span>\u003Cspan style=\"color:#E1E4E8\">:\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">    apiKey\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"your_claude_api_key\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  argocd\u003C/span>\u003Cspan style=\"color:#E1E4E8\">:\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">    username\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"your_argocd_username\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">    password\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"your_argocd_password\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  gitlab\u003C/span>\u003Cspan style=\"color:#E1E4E8\">:\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">    authToken\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"your_gitlab_token\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">service\u003C/span>\u003Cspan style=\"color:#E1E4E8\">:\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  type\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">ClusterIP\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">ingress\u003C/span>\u003Cspan style=\"color:#E1E4E8\">:\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  enabled\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#79B8FF\">false\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\">  # Uncomment to enable ingress\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\">  # hosts:\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\">  #   - host: mcp.example.com\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\">  #     paths:\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\">  #       - path: /\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\">  #         pathType: Prefix\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch3 id=\"step-3-install-the-chart\">Step 3: Install the Chart\u003C/h3>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto; white-space: pre-wrap; word-wrap: break-word;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">helm\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> install\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> kubernetes-mcp-server\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> blankcut/kubernetes-claude-mcp\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -f\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> values.yaml\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -n\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> mcp-system\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch3 id=\"step-4-verify-the-installation\">Step 4: Verify the Installation\u003C/h3>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto; white-space: pre-wrap; word-wrap: break-word;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">kubectl\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> get\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> pods\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -n\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> mcp-system\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch2 id=\"manual-binary\">Manual Binary\u003C/h2>\n\u003Cp>For environments where Docker or Kubernetes is not available, you can run the binary directly.\u003C/p>\n\u003Ch3 id=\"step-1-download-the-latest-release\">Step 1: Download the Latest Release\u003C/h3>\n\u003Cp>Visit the \u003Ca href=\"https://github.com/blankcut/kubernetes-mcp-server/releases\">Releases page\u003C/a> and download the appropriate binary for your platform.\u003C/p>\n\u003Ch3 id=\"step-2-make-the-binary-executable\">Step 2: Make the Binary Executable\u003C/h3>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto; white-space: pre-wrap; word-wrap: break-word;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">chmod\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> +x\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> mcp-server\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch3 id=\"step-3-create-configuration-file\">Step 3: Create Configuration File\u003C/h3>\n\u003Cp>Create a \u003Ccode>config.yaml\u003C/code> file in the same directory:\u003C/p>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto; white-space: pre-wrap; word-wrap: break-word;\" tabindex=\"0\" data-language=\"yaml\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">server\u003C/span>\u003Cspan style=\"color:#E1E4E8\">:\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  address\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\":8080\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  readTimeout\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#79B8FF\">30\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  writeTimeout\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#79B8FF\">60\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  auth\u003C/span>\u003Cspan style=\"color:#E1E4E8\">:\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">    apiKey\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"your_api_key_for_server_access\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">kubernetes\u003C/span>\u003Cspan style=\"color:#E1E4E8\">:\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  kubeconfig\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"/path/to/.kube/config\"\u003C/span>\u003Cspan style=\"color:#6A737D\">  # Path to your kubeconfig file\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  inCluster\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#79B8FF\">false\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  defaultContext\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  defaultNamespace\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"default\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">argocd\u003C/span>\u003Cspan style=\"color:#E1E4E8\">:\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  url\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"https://argocd.example.com\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  username\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"your_argocd_username\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  password\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"your_argocd_password\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  insecure\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#79B8FF\">true\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">gitlab\u003C/span>\u003Cspan style=\"color:#E1E4E8\">:\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  url\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"https://gitlab.com\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  authToken\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"your_gitlab_token\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  apiVersion\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"v4\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  projectPath\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">claude\u003C/span>\u003Cspan style=\"color:#E1E4E8\">:\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  apiKey\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"your_claude_api_key\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  baseURL\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"https://api.anthropic.com\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  modelID\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"claude-3-haiku-20240307\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  maxTokens\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#79B8FF\">4096\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#85E89D\">  temperature\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#79B8FF\">0.7\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch3 id=\"step-4-run-the-server\">Step 4: Run the Server\u003C/h3>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto; white-space: pre-wrap; word-wrap: break-word;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#F97583\">export\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> CLAUDE_API_KEY\u003C/span>\u003Cspan style=\"color:#F97583\">=\u003C/span>\u003Cspan style=\"color:#E1E4E8\">your_claude_api_key\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#F97583\">export\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> API_KEY\u003C/span>\u003Cspan style=\"color:#F97583\">=\u003C/span>\u003Cspan style=\"color:#E1E4E8\">your_api_key_for_server\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">./mcp-server\u003C/span>\u003Cspan style=\"color:#79B8FF\"> --config\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> config.yaml\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch2 id=\"verifying-the-installation\">Verifying the Installation\u003C/h2>\n\u003Cp>To verify your installation is working correctly:\u003C/p>\n\u003Col>\n\u003Cli>Check the health endpoint:\u003C/li>\n\u003C/ol>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto; white-space: pre-wrap; word-wrap: break-word;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">curl\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> http://localhost:8080/api/v1/health\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Col start=\"2\">\n\u003Cli>List Kubernetes namespaces:\u003C/li>\n\u003C/ol>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto; white-space: pre-wrap; word-wrap: break-word;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">curl\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -H\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> \"X-API-Key: your_api_key\"\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> http://localhost:8080/api/v1/namespaces\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Col start=\"3\">\n\u003Cli>Test a resource query:\u003C/li>\n\u003C/ol>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto; white-space: pre-wrap; word-wrap: break-word;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">curl\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -X\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> POST\u003C/span>\u003Cspan style=\"color:#79B8FF\"> \\\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  -H\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> \"Content-Type: application/json\"\u003C/span>\u003Cspan style=\"color:#79B8FF\"> \\\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  -H\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> \"X-API-Key: your_api_key\"\u003C/span>\u003Cspan style=\"color:#79B8FF\"> \\\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  -d\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> '{\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9ECBFF\">    \"action\": \"queryResource\",\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9ECBFF\">    \"resource\": \"pod\",\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9ECBFF\">    \"name\": \"example-pod\",\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9ECBFF\">    \"namespace\": \"default\",\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9ECBFF\">    \"query\": \"Is this pod healthy?\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9ECBFF\">  }'\u003C/span>\u003Cspan style=\"color:#79B8FF\"> \\\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9ECBFF\">  http://localhost:8080/api/v1/mcp/resource\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch2 id=\"security-considerations\">Security Considerations\u003C/h2>\n\u003Cp>When deploying Kubernetes Claude MCP, consider the following security best practices:\u003C/p>\n\u003Col>\n\u003Cli>\u003Cstrong>API Access\u003C/strong>: Use a strong API key and restrict access to the server.\u003C/li>\n\u003Cli>\u003Cstrong>Kubernetes Permissions\u003C/strong>: Use a service account with the minimum required permissions.\u003C/li>\n\u003Cli>\u003Cstrong>Secrets Management\u003C/strong>: Store credentials in Kubernetes Secrets or a secure vault.\u003C/li>\n\u003Cli>\u003Cstrong>Network Isolation\u003C/strong>: Consider network policies to limit access to the server.\u003C/li>\n\u003Cli>\u003Cstrong>TLS\u003C/strong>: Use TLS to encrypt connections to the server.\u003C/li>\n\u003C/ol>\n\u003Cp>For more security recommendations, see the \u003Ca href=\"/docs/security-best-practices\">Security Best Practices\u003C/a> guide.\u003C/p>\n\u003Ch2 id=\"troubleshooting\">Troubleshooting\u003C/h2>\n\u003Cp>If you encounter issues during installation, check:\u003C/p>\n\u003Col>\n\u003Cli>\n\u003Cp>\u003Cstrong>Logs\u003C/strong>: View server logs for error messages\u003C/p>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto; white-space: pre-wrap; word-wrap: break-word;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># For Docker Compose\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">docker-compose\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> logs\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># For Kubernetes\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">kubectl\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> logs\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -n\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> mcp-system\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> deployment/kubernetes-mcp-server\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003C/li>\n\u003Cli>\n\u003Cp>\u003Cstrong>Configuration\u003C/strong>: Verify your \u003Ccode>config.yaml\u003C/code> has the correct settings\u003C/p>\n\u003C/li>\n\u003Cli>\n\u003Cp>\u003Cstrong>Connectivity\u003C/strong>: Ensure the server can connect to Kubernetes, ArgoCD, and GitLab\u003C/p>\n\u003C/li>\n\u003Cli>\n\u003Cp>\u003Cstrong>API Key\u003C/strong>: Verify you’re using the correct API key in requests\u003C/p>\n\u003C/li>\n\u003C/ol>\n\u003Cp>For more troubleshooting tips, see the \u003Ca href=\"/docs/troubleshooting-resources\">Troubleshooting\u003C/a> guide.\u003C/p>\n\u003Ch2 id=\"next-steps\">Next Steps\u003C/h2>\n\u003Cp>After successful installation, continue with:\u003C/p>\n\u003Cul>\n\u003Cli>\u003Ca href=\"/docs/configuration\">Configuration Guide\u003C/a> - Configure the server for your environment\u003C/li>\n\u003Cli>\u003Ca href=\"/docs/api-overview\">API Reference\u003C/a> - Explore the API endpoints\u003C/li>\n\u003Cli>\u003Ca href=\"/docs/examples/basic-usage\">Examples\u003C/a> - See examples of common use cases\u003C/li>\n\u003C/ul>",{"headings":296,"localImagePaths":370,"remoteImagePaths":371,"frontmatter":372,"imagePaths":375},[297,299,300,303,306,307,308,311,314,317,320,323,326,329,332,335,338,341,344,347,350,353,356,357,360,363,366,369],{"depth":30,"slug":298,"text":285},"installation-guide",{"depth":32,"slug":130,"text":131},{"depth":32,"slug":301,"text":302},"installation-methods","Installation Methods",{"depth":32,"slug":304,"text":305},"docker-compose","Docker Compose",{"depth":39,"slug":133,"text":134},{"depth":39,"slug":136,"text":137},{"depth":39,"slug":309,"text":310},"step-3-configure-the-server","Step 3: Configure the Server",{"depth":39,"slug":312,"text":313},"step-4-start-the-service","Step 4: Start the Service",{"depth":32,"slug":315,"text":316},"kubernetes-deployment","Kubernetes Deployment",{"depth":39,"slug":318,"text":319},"step-1-create-a-namespace","Step 1: Create a Namespace",{"depth":39,"slug":321,"text":322},"step-2-create-secrets","Step 2: Create Secrets",{"depth":39,"slug":324,"text":325},"step-3-create-configmap","Step 3: Create ConfigMap",{"depth":39,"slug":327,"text":328},"step-4-apply-deployment-manifest","Step 4: Apply Deployment Manifest",{"depth":39,"slug":330,"text":331},"step-5-access-the-server","Step 5: Access the Server",{"depth":32,"slug":333,"text":334},"helm-chart","Helm Chart",{"depth":39,"slug":336,"text":337},"step-1-add-the-helm-repository","Step 1: Add the Helm Repository",{"depth":39,"slug":339,"text":340},"step-2-configure-values","Step 2: Configure Values",{"depth":39,"slug":342,"text":343},"step-3-install-the-chart","Step 3: Install the Chart",{"depth":39,"slug":345,"text":346},"step-4-verify-the-installation","Step 4: Verify the Installation",{"depth":32,"slug":348,"text":349},"manual-binary","Manual Binary",{"depth":39,"slug":351,"text":352},"step-1-download-the-latest-release","Step 1: Download the Latest Release",{"depth":39,"slug":354,"text":355},"step-2-make-the-binary-executable","Step 2: Make the Binary Executable",{"depth":39,"slug":139,"text":140},{"depth":39,"slug":358,"text":359},"step-4-run-the-server","Step 4: Run the Server",{"depth":32,"slug":361,"text":362},"verifying-the-installation","Verifying the Installation",{"depth":32,"slug":364,"text":365},"security-considerations","Security Considerations",{"depth":32,"slug":367,"text":368},"troubleshooting","Troubleshooting",{"depth":32,"slug":79,"text":80},[],[],{"title":285,"description":286,"date":373,"order":39,"tags":374},["Date","2025-03-01T00:00:00.000Z"],[119,289],[],"installation.md","troubleshooting-resources",{"id":377,"data":379,"body":386,"filePath":387,"digest":388,"rendered":389,"legacyId":445},{"title":380,"description":381,"date":382,"order":383,"tags":384,"draft":21},"Troubleshooting Resources","Learn how to use Kubernetes Claude MCP to diagnose and solve problems with your Kubernetes resources and applications.",["Date","2025-03-01T00:00:00.000Z"],6,[367,385],"guides","# Troubleshooting Resources\n\nKubernetes Claude MCP is a powerful tool for diagnosing and resolving issues in your Kubernetes environment. This guide will walk you through common troubleshooting scenarios and how to use the MCP server to address them.\n\n## Getting Started with Troubleshooting\n\nThe `/api/v1/mcp/troubleshoot` endpoint is specifically designed for troubleshooting. It automatically:\n\n1. Collects all relevant information about a resource\n2. Detects common issues and their severity\n3. Correlates information across systems (Kubernetes, ArgoCD, GitLab)\n4. Generates recommendations for fixing the issues\n5. Provides Claude AI-powered analysis of the problems\n\n## Troubleshooting Common Resource Types\n\n### Troubleshooting Pods\n\nPods are often the first place to look when troubleshooting application issues.\n\n**Example Request:**\n\n```bash\ncurl -X POST \\\n  -H \"Content-Type: application/json\" \\\n  -H \"X-API-Key: your_api_key\" \\\n  -d '{\n    \"resource\": \"pod\",\n    \"name\": \"my-app-pod\",\n    \"namespace\": \"default\",\n    \"query\": \"Why is this pod not starting?\"\n  }' \\\n  http://localhost:8080/api/v1/mcp/troubleshoot\n```\n\n**What MCP Detects:**\n\n- Pod status issues (Pending, CrashLoopBackOff, ImagePullBackOff, etc.)\n- Container status and restart counts\n- Resource constraints (CPU/memory limits)\n- Volume mounting issues\n- Init container failures\n- Image pull errors\n- Scheduling problems\n- Events related to the pod\n\n**Example Troubleshooting Output:**\n\n```json\n{\n  \"success\": true,\n  \"analysis\": \"The pod 'my-app-pod' is failing to start due to an ImagePullBackOff error. The container runtime is unable to pull the image 'myregistry.com/my-app:v1.2.3' because of authentication issues with the private registry. Looking at the events, there was an 'ErrImagePull' error with the message 'unauthorized: authentication required'...\",\n  \"troubleshootResult\": {\n    \"issues\": [\n      {\n        \"title\": \"Image Pull Error\",\n        \"category\": \"ImagePullError\",\n        \"severity\": \"Error\",\n        \"source\": \"Kubernetes\",\n        \"description\": \"Failed to pull image 'myregistry.com/my-app:v1.2.3': unauthorized: authentication required\"\n      }\n    ],\n    \"recommendations\": [\n      \"Create or update the ImagePullSecret for the private registry\",\n      \"Verify the image name and tag are correct\",\n      \"Check that the ServiceAccount has access to the ImagePullSecret\"\n    ]\n  }\n}\n```\n\n### Troubleshooting Deployments\n\nDeployments manage replica sets and pods, so issues can occur at multiple levels.\n\n**Example Request:**\n\n```bash\ncurl -X POST \\\n  -H \"Content-Type: application/json\" \\\n  -H \"X-API-Key: your_api_key\" \\\n  -d '{\n    \"resource\": \"deployment\",\n    \"name\": \"my-app\",\n    \"namespace\": \"default\",\n    \"query\": \"Why are pods not scaling up?\"\n  }' \\\n  http://localhost:8080/api/v1/mcp/troubleshoot\n```\n\n**What MCP Detects:**\n\n- ReplicaSet creation issues\n- Pod scaling issues\n- Resource quotas preventing scaling\n- Node capacity issues\n- Pod disruption budgets\n- Deployment strategy issues\n- Resource constraints on pods\n- Health check configuration issues\n\n**Example Troubleshooting Output:**\n\n```json\n{\n  \"success\": true,\n  \"analysis\": \"The deployment 'my-app' is unable to scale up because the pods are requesting more CPU resources than are available in the cluster. The deployment is configured to request 2 CPU cores per pod, but the nodes in your cluster only have 1.8 cores available per node...\",\n  \"troubleshootResult\": {\n    \"issues\": [\n      {\n        \"title\": \"Insufficient CPU Resources\",\n        \"category\": \"ResourceConstraint\",\n        \"severity\": \"Warning\",\n        \"source\": \"Kubernetes\",\n        \"description\": \"Insufficient CPU resources available to schedule pods (requested: 2, available: 1.8)\"\n      }\n    ],\n    \"recommendations\": [\n      \"Reduce the CPU request in the deployment specification\",\n      \"Add more nodes to the cluster or use nodes with more CPU capacity\",\n      \"Check if there are any resource quotas preventing the scaling\"\n    ]\n  }\n}\n```\n\n### Troubleshooting Services\n\nServices provide network connectivity between components, and issues often relate to selector mismatches or port configurations.\n\n**Example Request:**\n\n```bash\ncurl -X POST \\\n  -H \"Content-Type: application/json\" \\\n  -H \"X-API-Key: your_api_key\" \\\n  -d '{\n    \"resource\": \"service\",\n    \"name\": \"my-app-service\",\n    \"namespace\": \"default\",\n    \"query\": \"Why can't I connect to this service?\"\n  }' \\\n  http://localhost:8080/api/v1/mcp/troubleshoot\n```\n\n**What MCP Detects:**\n\n- Selector mismatches between service and pods\n- Port configuration issues\n- Endpoint availability\n- Pod readiness issues\n- Network policy restrictions\n- Service type misconfigurations\n- External name resolution issues (for ExternalName services)\n\n**Example Troubleshooting Output:**\n\n```json\n{\n  \"success\": true,\n  \"analysis\": \"The service 'my-app-service' is not working correctly because there are no endpoints being selected. The service uses the selector 'app=my-app,tier=frontend', but examining the pods in the namespace, I can see that the pods have the labels 'app=my-app,tier=web'. The mismatch in the 'tier' label (frontend vs web) is preventing the service from selecting any pods...\",\n  \"troubleshootResult\": {\n    \"issues\": [\n      {\n        \"title\": \"Selector Mismatch\",\n        \"category\": \"ServiceSelectorIssue\",\n        \"severity\": \"Error\",\n        \"source\": \"Kubernetes\",\n        \"description\": \"Service selector 'app=my-app,tier=frontend' doesn't match any pods (pods have 'app=my-app,tier=web')\"\n      }\n    ],\n    \"recommendations\": [\n      \"Update the service selector to match the actual pod labels: 'app=my-app,tier=web'\",\n      \"Alternatively, update the pod labels to match the service selector\",\n      \"Verify that pods are in the 'Running' state and passing readiness probes\"\n    ]\n  }\n}\n```\n\n### Troubleshooting Ingresses\n\nIngress resources configure external access to services, and issues often relate to hostname mismatches or TLS configuration.\n\n**Example Request:**\n\n```bash\ncurl -X POST \\\n  -H \"Content-Type: application/json\" \\\n  -H \"X-API-Key: your_api_key\" \\\n  -d '{\n    \"resource\": \"ingress\",\n    \"name\": \"my-app-ingress\",\n    \"namespace\": \"default\",\n    \"query\": \"Why is this ingress returning 404 errors?\"\n  }' \\\n  http://localhost:8080/api/v1/mcp/troubleshoot\n```\n\n**What MCP Detects:**\n\n- Backend service existence and configuration\n- Path routing rules\n- TLS certificate issues\n- Ingress controller availability\n- Host name configurations\n- Annotation misconfigurations\n- Service port mappings\n\n## Troubleshooting GitOps Resources\n\nKubernetes Claude MCP excels at diagnosing issues in GitOps workflows by correlating information between Kubernetes, ArgoCD, and GitLab.\n\n### Troubleshooting ArgoCD Applications\n\n**Example Request:**\n\n```bash\ncurl -X POST \\\n  -H \"Content-Type: application/json\" \\\n  -H \"X-API-Key: your_api_key\" \\\n  -d '{\n    \"resource\": \"application\",\n    \"name\": \"my-argocd-app\",\n    \"namespace\": \"argocd\",\n    \"query\": \"Why is this application out of sync?\"\n  }' \\\n  http://localhost:8080/api/v1/mcp/troubleshoot\n```\n\n**What MCP Detects:**\n\n- Sync status issues\n- Sync history and recent failures\n- Git repository connectivity issues\n- Manifest validation errors\n- Resource differences between desired and actual state\n- Health status issues\n- Related Kubernetes resources\n\n**Example Troubleshooting Output:**\n\n```json\n{\n  \"success\": true,\n  \"analysis\": \"The ArgoCD application 'my-argocd-app' is out of sync because there are local changes to the Deployment resource that differ from the version in Git. Specifically, someone has manually scaled the deployment from 3 replicas (as defined in Git) to 5 replicas using kubectl...\",\n  \"troubleshootResult\": {\n    \"issues\": [\n      {\n        \"title\": \"Manual Modification\",\n        \"category\": \"SyncIssue\",\n        \"severity\": \"Warning\",\n        \"source\": \"ArgoCD\",\n        \"description\": \"Deployment 'my-app' was manually modified: replicas changed from 3 to 5\"\n      }\n    ],\n    \"recommendations\": [\n      \"Use 'argocd app sync my-argocd-app' to revert to the state defined in Git\",\n      \"Update the Git repository to reflect the desired replica count\",\n      \"Enable self-healing in the ArgoCD application to prevent manual modifications\"\n    ]\n  }\n}\n```\n\n### Investigating Commit Impact\n\nWhen a deployment fails after a GitLab commit, you can analyze the commit's impact:\n\n**Example Request:**\n\n```bash\ncurl -X POST \\\n  -H \"Content-Type: application/json\" \\\n  -H \"X-API-Key: your_api_key\" \\\n  -d '{\n    \"projectId\": \"mygroup/myproject\",\n    \"commitSha\": \"abcdef1234567890\",\n    \"query\": \"How has this commit affected Kubernetes resources and what issues has it caused?\"\n  }' \\\n  http://localhost:8080/api/v1/mcp/commit\n```\n\n**What MCP Analyzes:**\n\n- Files changed in the commit\n- Connected ArgoCD applications\n- Affected Kubernetes resources\n- Subsequent pipeline results\n- Changes in resource configurations\n- Introduction of new errors or warnings\n\n## Advanced Troubleshooting Scenarios\n\n### Multi-Resource Analysis\n\nYou can troubleshoot complex issues by instructing Claude to correlate multiple resources:\n\n**Example Request:**\n\n```bash\ncurl -X POST \\\n  -H \"Content-Type: application/json\" \\\n  -H \"X-API-Key: your_api_key\" \\\n  -d '{\n    \"query\": \"Analyze the connectivity issue between the frontend deployment and the backend service in the 'myapp' namespace. Check both the deployment and the service configurations.\"\n  }' \\\n  http://localhost:8080/api/v1/mcp\n```\n\n### Diagram Generation\n\nFor complex troubleshooting scenarios, you can request diagram generation to visualize relationships:\n\n**Example Request:**\n\n```bash\ncurl -X POST \\\n  -H \"Content-Type: application/json\" \\\n  -H \"X-API-Key: your_api_key\" \\\n  -d '{\n    \"resource\": \"deployment\",\n    \"name\": \"my-app\",\n    \"namespace\": \"default\",\n    \"query\": \"Create a diagram showing this deployment's relationship to all associated resources, including services, ingresses, configmaps, and secrets.\"\n  }' \\\n  http://localhost:8080/api/v1/mcp/resource\n```\n\nClaude can generate Mermaid diagrams within its response to visualize the relationships.\n\n## Troubleshooting Best Practices\n\nWhen using Kubernetes Claude MCP for troubleshooting:\n\n1. **Start specific**: Begin with the resource that's showing symptoms\n2. **Go broad**: If needed, expand to related resources\n3. **Use specific queries**: The more specific your query, the better Claude can help\n4. **Include context**: Mention what you've already tried or specific symptoms\n5. **Follow recommendations**: Try the recommended fixes one at a time\n6. **Iterate**: Use follow-up queries to dive deeper\n\n## Real-Time Troubleshooting\n\nFor ongoing issues, you can set up continuous monitoring:\n\n```bash\n# Watch a resource and get alerts when issues are detected\nwatch -n 30 'curl -s -X POST \\\n  -H \"Content-Type: application/json\" \\\n  -H \"X-API-Key: your_api_key\" \\\n  -d \"{\\\"resource\\\":\\\"deployment\\\",\\\"name\\\":\\\"my-app\\\",\\\"namespace\\\":\\\"default\\\",\\\"query\\\":\\\"Report any new issues\\\"}\" \\\n  http://localhost:8080/api/v1/mcp/troubleshoot | jq .troubleshootResult.issues'\n```\n\n## Troubleshooting Reference\n\nHere's a quick reference of what to check for common Kubernetes issues:\n\n| Symptom | Resource to Check | Common Issues |\n|---------|-------------------|---------------|\n| Application not starting | Pod | Image pull errors, resource constraints, configuration issues |\n| Cannot connect to app | Service | Selector mismatch, port configuration, pod health |\n| External access failing | Ingress | Path configuration, backend service, TLS issues |\n| Scaling issues | Deployment | Resource constraints, pod disruption budgets, affinity rules |\n| Configuration issues | ConfigMap/Secret | Missing keys, invalid format, mounting issues |\n| Persistent storage issues | PVC | Storage class, capacity issues, access modes |\n| GitOps sync failures | ArgoCD Application | Git repo issues, manifest errors, resource conflicts |","src/content/docs/troubleshooting-resources.md","3d5d588e19d73d41",{"html":390,"metadata":391},"\u003Ch1 id=\"troubleshooting-resources\">Troubleshooting Resources\u003C/h1>\n\u003Cp>Kubernetes Claude MCP is a powerful tool for diagnosing and resolving issues in your Kubernetes environment. This guide will walk you through common troubleshooting scenarios and how to use the MCP server to address them.\u003C/p>\n\u003Ch2 id=\"getting-started-with-troubleshooting\">Getting Started with Troubleshooting\u003C/h2>\n\u003Cp>The \u003Ccode>/api/v1/mcp/troubleshoot\u003C/code> endpoint is specifically designed for troubleshooting. It automatically:\u003C/p>\n\u003Col>\n\u003Cli>Collects all relevant information about a resource\u003C/li>\n\u003Cli>Detects common issues and their severity\u003C/li>\n\u003Cli>Correlates information across systems (Kubernetes, ArgoCD, GitLab)\u003C/li>\n\u003Cli>Generates recommendations for fixing the issues\u003C/li>\n\u003Cli>Provides Claude AI-powered analysis of the problems\u003C/li>\n\u003C/ol>\n\u003Ch2 id=\"troubleshooting-common-resource-types\">Troubleshooting Common Resource Types\u003C/h2>\n\u003Ch3 id=\"troubleshooting-pods\">Troubleshooting Pods\u003C/h3>\n\u003Cp>Pods are often the first place to look when troubleshooting application issues.\u003C/p>\n\u003Cp>\u003Cstrong>Example Request:\u003C/strong>\u003C/p>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto; white-space: pre-wrap; word-wrap: break-word;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">curl\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -X\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> POST\u003C/span>\u003Cspan style=\"color:#79B8FF\"> \\\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  -H\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> \"Content-Type: application/json\"\u003C/span>\u003Cspan style=\"color:#79B8FF\"> \\\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  -H\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> \"X-API-Key: your_api_key\"\u003C/span>\u003Cspan style=\"color:#79B8FF\"> \\\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  -d\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> '{\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9ECBFF\">    \"resource\": \"pod\",\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9ECBFF\">    \"name\": \"my-app-pod\",\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9ECBFF\">    \"namespace\": \"default\",\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9ECBFF\">    \"query\": \"Why is this pod not starting?\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9ECBFF\">  }'\u003C/span>\u003Cspan style=\"color:#79B8FF\"> \\\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9ECBFF\">  http://localhost:8080/api/v1/mcp/troubleshoot\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>\u003Cstrong>What MCP Detects:\u003C/strong>\u003C/p>\n\u003Cul>\n\u003Cli>Pod status issues (Pending, CrashLoopBackOff, ImagePullBackOff, etc.)\u003C/li>\n\u003Cli>Container status and restart counts\u003C/li>\n\u003Cli>Resource constraints (CPU/memory limits)\u003C/li>\n\u003Cli>Volume mounting issues\u003C/li>\n\u003Cli>Init container failures\u003C/li>\n\u003Cli>Image pull errors\u003C/li>\n\u003Cli>Scheduling problems\u003C/li>\n\u003Cli>Events related to the pod\u003C/li>\n\u003C/ul>\n\u003Cp>\u003Cstrong>Example Troubleshooting Output:\u003C/strong>\u003C/p>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto; white-space: pre-wrap; word-wrap: break-word;\" tabindex=\"0\" data-language=\"json\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">{\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  \"success\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#79B8FF\">true\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  \"analysis\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"The pod 'my-app-pod' is failing to start due to an ImagePullBackOff error. The container runtime is unable to pull the image 'myregistry.com/my-app:v1.2.3' because of authentication issues with the private registry. Looking at the events, there was an 'ErrImagePull' error with the message 'unauthorized: authentication required'...\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  \"troubleshootResult\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: {\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">    \"issues\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: [\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">      {\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">        \"title\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"Image Pull Error\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">        \"category\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"ImagePullError\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">        \"severity\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"Error\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">        \"source\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"Kubernetes\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">        \"description\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"Failed to pull image 'myregistry.com/my-app:v1.2.3': unauthorized: authentication required\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">      }\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">    ],\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">    \"recommendations\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: [\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9ECBFF\">      \"Create or update the ImagePullSecret for the private registry\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9ECBFF\">      \"Verify the image name and tag are correct\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9ECBFF\">      \"Check that the ServiceAccount has access to the ImagePullSecret\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">    ]\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">  }\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">}\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch3 id=\"troubleshooting-deployments\">Troubleshooting Deployments\u003C/h3>\n\u003Cp>Deployments manage replica sets and pods, so issues can occur at multiple levels.\u003C/p>\n\u003Cp>\u003Cstrong>Example Request:\u003C/strong>\u003C/p>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto; white-space: pre-wrap; word-wrap: break-word;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">curl\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -X\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> POST\u003C/span>\u003Cspan style=\"color:#79B8FF\"> \\\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  -H\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> \"Content-Type: application/json\"\u003C/span>\u003Cspan style=\"color:#79B8FF\"> \\\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  -H\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> \"X-API-Key: your_api_key\"\u003C/span>\u003Cspan style=\"color:#79B8FF\"> \\\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  -d\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> '{\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9ECBFF\">    \"resource\": \"deployment\",\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9ECBFF\">    \"name\": \"my-app\",\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9ECBFF\">    \"namespace\": \"default\",\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9ECBFF\">    \"query\": \"Why are pods not scaling up?\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9ECBFF\">  }'\u003C/span>\u003Cspan style=\"color:#79B8FF\"> \\\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9ECBFF\">  http://localhost:8080/api/v1/mcp/troubleshoot\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>\u003Cstrong>What MCP Detects:\u003C/strong>\u003C/p>\n\u003Cul>\n\u003Cli>ReplicaSet creation issues\u003C/li>\n\u003Cli>Pod scaling issues\u003C/li>\n\u003Cli>Resource quotas preventing scaling\u003C/li>\n\u003Cli>Node capacity issues\u003C/li>\n\u003Cli>Pod disruption budgets\u003C/li>\n\u003Cli>Deployment strategy issues\u003C/li>\n\u003Cli>Resource constraints on pods\u003C/li>\n\u003Cli>Health check configuration issues\u003C/li>\n\u003C/ul>\n\u003Cp>\u003Cstrong>Example Troubleshooting Output:\u003C/strong>\u003C/p>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto; white-space: pre-wrap; word-wrap: break-word;\" tabindex=\"0\" data-language=\"json\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">{\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  \"success\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#79B8FF\">true\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  \"analysis\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"The deployment 'my-app' is unable to scale up because the pods are requesting more CPU resources than are available in the cluster. The deployment is configured to request 2 CPU cores per pod, but the nodes in your cluster only have 1.8 cores available per node...\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  \"troubleshootResult\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: {\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">    \"issues\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: [\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">      {\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">        \"title\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"Insufficient CPU Resources\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">        \"category\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"ResourceConstraint\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">        \"severity\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"Warning\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">        \"source\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"Kubernetes\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">        \"description\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"Insufficient CPU resources available to schedule pods (requested: 2, available: 1.8)\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">      }\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">    ],\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">    \"recommendations\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: [\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9ECBFF\">      \"Reduce the CPU request in the deployment specification\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9ECBFF\">      \"Add more nodes to the cluster or use nodes with more CPU capacity\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9ECBFF\">      \"Check if there are any resource quotas preventing the scaling\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">    ]\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">  }\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">}\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch3 id=\"troubleshooting-services\">Troubleshooting Services\u003C/h3>\n\u003Cp>Services provide network connectivity between components, and issues often relate to selector mismatches or port configurations.\u003C/p>\n\u003Cp>\u003Cstrong>Example Request:\u003C/strong>\u003C/p>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto; white-space: pre-wrap; word-wrap: break-word;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">curl\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -X\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> POST\u003C/span>\u003Cspan style=\"color:#79B8FF\"> \\\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  -H\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> \"Content-Type: application/json\"\u003C/span>\u003Cspan style=\"color:#79B8FF\"> \\\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  -H\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> \"X-API-Key: your_api_key\"\u003C/span>\u003Cspan style=\"color:#79B8FF\"> \\\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  -d\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> '{\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9ECBFF\">    \"resource\": \"service\",\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9ECBFF\">    \"name\": \"my-app-service\",\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9ECBFF\">    \"namespace\": \"default\",\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9ECBFF\">    \"query\": \"Why can't\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> I\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> connect\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> to\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> this\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> service?\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9ECBFF\">  }' \u003C/span>\u003Cspan style=\"color:#79B8FF\">\\\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9ECBFF\">  http://localhost:8080/api/v1/mcp/troubleshoot\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>\u003Cstrong>What MCP Detects:\u003C/strong>\u003C/p>\n\u003Cul>\n\u003Cli>Selector mismatches between service and pods\u003C/li>\n\u003Cli>Port configuration issues\u003C/li>\n\u003Cli>Endpoint availability\u003C/li>\n\u003Cli>Pod readiness issues\u003C/li>\n\u003Cli>Network policy restrictions\u003C/li>\n\u003Cli>Service type misconfigurations\u003C/li>\n\u003Cli>External name resolution issues (for ExternalName services)\u003C/li>\n\u003C/ul>\n\u003Cp>\u003Cstrong>Example Troubleshooting Output:\u003C/strong>\u003C/p>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto; white-space: pre-wrap; word-wrap: break-word;\" tabindex=\"0\" data-language=\"json\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">{\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  \"success\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#79B8FF\">true\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  \"analysis\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"The service 'my-app-service' is not working correctly because there are no endpoints being selected. The service uses the selector 'app=my-app,tier=frontend', but examining the pods in the namespace, I can see that the pods have the labels 'app=my-app,tier=web'. The mismatch in the 'tier' label (frontend vs web) is preventing the service from selecting any pods...\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  \"troubleshootResult\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: {\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">    \"issues\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: [\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">      {\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">        \"title\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"Selector Mismatch\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">        \"category\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"ServiceSelectorIssue\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">        \"severity\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"Error\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">        \"source\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"Kubernetes\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">        \"description\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"Service selector 'app=my-app,tier=frontend' doesn't match any pods (pods have 'app=my-app,tier=web')\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">      }\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">    ],\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">    \"recommendations\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: [\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9ECBFF\">      \"Update the service selector to match the actual pod labels: 'app=my-app,tier=web'\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9ECBFF\">      \"Alternatively, update the pod labels to match the service selector\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9ECBFF\">      \"Verify that pods are in the 'Running' state and passing readiness probes\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">    ]\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">  }\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">}\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch3 id=\"troubleshooting-ingresses\">Troubleshooting Ingresses\u003C/h3>\n\u003Cp>Ingress resources configure external access to services, and issues often relate to hostname mismatches or TLS configuration.\u003C/p>\n\u003Cp>\u003Cstrong>Example Request:\u003C/strong>\u003C/p>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto; white-space: pre-wrap; word-wrap: break-word;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">curl\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -X\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> POST\u003C/span>\u003Cspan style=\"color:#79B8FF\"> \\\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  -H\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> \"Content-Type: application/json\"\u003C/span>\u003Cspan style=\"color:#79B8FF\"> \\\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  -H\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> \"X-API-Key: your_api_key\"\u003C/span>\u003Cspan style=\"color:#79B8FF\"> \\\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  -d\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> '{\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9ECBFF\">    \"resource\": \"ingress\",\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9ECBFF\">    \"name\": \"my-app-ingress\",\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9ECBFF\">    \"namespace\": \"default\",\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9ECBFF\">    \"query\": \"Why is this ingress returning 404 errors?\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9ECBFF\">  }'\u003C/span>\u003Cspan style=\"color:#79B8FF\"> \\\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9ECBFF\">  http://localhost:8080/api/v1/mcp/troubleshoot\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>\u003Cstrong>What MCP Detects:\u003C/strong>\u003C/p>\n\u003Cul>\n\u003Cli>Backend service existence and configuration\u003C/li>\n\u003Cli>Path routing rules\u003C/li>\n\u003Cli>TLS certificate issues\u003C/li>\n\u003Cli>Ingress controller availability\u003C/li>\n\u003Cli>Host name configurations\u003C/li>\n\u003Cli>Annotation misconfigurations\u003C/li>\n\u003Cli>Service port mappings\u003C/li>\n\u003C/ul>\n\u003Ch2 id=\"troubleshooting-gitops-resources\">Troubleshooting GitOps Resources\u003C/h2>\n\u003Cp>Kubernetes Claude MCP excels at diagnosing issues in GitOps workflows by correlating information between Kubernetes, ArgoCD, and GitLab.\u003C/p>\n\u003Ch3 id=\"troubleshooting-argocd-applications\">Troubleshooting ArgoCD Applications\u003C/h3>\n\u003Cp>\u003Cstrong>Example Request:\u003C/strong>\u003C/p>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto; white-space: pre-wrap; word-wrap: break-word;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">curl\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -X\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> POST\u003C/span>\u003Cspan style=\"color:#79B8FF\"> \\\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  -H\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> \"Content-Type: application/json\"\u003C/span>\u003Cspan style=\"color:#79B8FF\"> \\\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  -H\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> \"X-API-Key: your_api_key\"\u003C/span>\u003Cspan style=\"color:#79B8FF\"> \\\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  -d\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> '{\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9ECBFF\">    \"resource\": \"application\",\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9ECBFF\">    \"name\": \"my-argocd-app\",\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9ECBFF\">    \"namespace\": \"argocd\",\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9ECBFF\">    \"query\": \"Why is this application out of sync?\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9ECBFF\">  }'\u003C/span>\u003Cspan style=\"color:#79B8FF\"> \\\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9ECBFF\">  http://localhost:8080/api/v1/mcp/troubleshoot\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>\u003Cstrong>What MCP Detects:\u003C/strong>\u003C/p>\n\u003Cul>\n\u003Cli>Sync status issues\u003C/li>\n\u003Cli>Sync history and recent failures\u003C/li>\n\u003Cli>Git repository connectivity issues\u003C/li>\n\u003Cli>Manifest validation errors\u003C/li>\n\u003Cli>Resource differences between desired and actual state\u003C/li>\n\u003Cli>Health status issues\u003C/li>\n\u003Cli>Related Kubernetes resources\u003C/li>\n\u003C/ul>\n\u003Cp>\u003Cstrong>Example Troubleshooting Output:\u003C/strong>\u003C/p>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto; white-space: pre-wrap; word-wrap: break-word;\" tabindex=\"0\" data-language=\"json\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">{\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  \"success\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#79B8FF\">true\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  \"analysis\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"The ArgoCD application 'my-argocd-app' is out of sync because there are local changes to the Deployment resource that differ from the version in Git. Specifically, someone has manually scaled the deployment from 3 replicas (as defined in Git) to 5 replicas using kubectl...\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  \"troubleshootResult\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: {\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">    \"issues\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: [\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">      {\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">        \"title\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"Manual Modification\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">        \"category\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"SyncIssue\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">        \"severity\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"Warning\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">        \"source\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"ArgoCD\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">        \"description\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"Deployment 'my-app' was manually modified: replicas changed from 3 to 5\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">      }\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">    ],\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">    \"recommendations\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: [\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9ECBFF\">      \"Use 'argocd app sync my-argocd-app' to revert to the state defined in Git\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9ECBFF\">      \"Update the Git repository to reflect the desired replica count\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9ECBFF\">      \"Enable self-healing in the ArgoCD application to prevent manual modifications\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">    ]\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">  }\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">}\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch3 id=\"investigating-commit-impact\">Investigating Commit Impact\u003C/h3>\n\u003Cp>When a deployment fails after a GitLab commit, you can analyze the commit’s impact:\u003C/p>\n\u003Cp>\u003Cstrong>Example Request:\u003C/strong>\u003C/p>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto; white-space: pre-wrap; word-wrap: break-word;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">curl\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -X\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> POST\u003C/span>\u003Cspan style=\"color:#79B8FF\"> \\\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  -H\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> \"Content-Type: application/json\"\u003C/span>\u003Cspan style=\"color:#79B8FF\"> \\\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  -H\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> \"X-API-Key: your_api_key\"\u003C/span>\u003Cspan style=\"color:#79B8FF\"> \\\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  -d\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> '{\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9ECBFF\">    \"projectId\": \"mygroup/myproject\",\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9ECBFF\">    \"commitSha\": \"abcdef1234567890\",\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9ECBFF\">    \"query\": \"How has this commit affected Kubernetes resources and what issues has it caused?\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9ECBFF\">  }'\u003C/span>\u003Cspan style=\"color:#79B8FF\"> \\\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9ECBFF\">  http://localhost:8080/api/v1/mcp/commit\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>\u003Cstrong>What MCP Analyzes:\u003C/strong>\u003C/p>\n\u003Cul>\n\u003Cli>Files changed in the commit\u003C/li>\n\u003Cli>Connected ArgoCD applications\u003C/li>\n\u003Cli>Affected Kubernetes resources\u003C/li>\n\u003Cli>Subsequent pipeline results\u003C/li>\n\u003Cli>Changes in resource configurations\u003C/li>\n\u003Cli>Introduction of new errors or warnings\u003C/li>\n\u003C/ul>\n\u003Ch2 id=\"advanced-troubleshooting-scenarios\">Advanced Troubleshooting Scenarios\u003C/h2>\n\u003Ch3 id=\"multi-resource-analysis\">Multi-Resource Analysis\u003C/h3>\n\u003Cp>You can troubleshoot complex issues by instructing Claude to correlate multiple resources:\u003C/p>\n\u003Cp>\u003Cstrong>Example Request:\u003C/strong>\u003C/p>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto; white-space: pre-wrap; word-wrap: break-word;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">curl\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -X\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> POST\u003C/span>\u003Cspan style=\"color:#79B8FF\"> \\\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  -H\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> \"Content-Type: application/json\"\u003C/span>\u003Cspan style=\"color:#79B8FF\"> \\\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  -H\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> \"X-API-Key: your_api_key\"\u003C/span>\u003Cspan style=\"color:#79B8FF\"> \\\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  -d\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> '{\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9ECBFF\">    \"query\": \"Analyze the connectivity issue between the frontend deployment and the backend service in the 'myapp' namespace. Check both the deployment and the service configurations.\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9ECBFF\">  }'\u003C/span>\u003Cspan style=\"color:#79B8FF\"> \\\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9ECBFF\">  http://localhost:8080/api/v1/mcp\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch3 id=\"diagram-generation\">Diagram Generation\u003C/h3>\n\u003Cp>For complex troubleshooting scenarios, you can request diagram generation to visualize relationships:\u003C/p>\n\u003Cp>\u003Cstrong>Example Request:\u003C/strong>\u003C/p>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto; white-space: pre-wrap; word-wrap: break-word;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">curl\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -X\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> POST\u003C/span>\u003Cspan style=\"color:#79B8FF\"> \\\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  -H\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> \"Content-Type: application/json\"\u003C/span>\u003Cspan style=\"color:#79B8FF\"> \\\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  -H\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> \"X-API-Key: your_api_key\"\u003C/span>\u003Cspan style=\"color:#79B8FF\"> \\\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  -d\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> '{\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9ECBFF\">    \"resource\": \"deployment\",\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9ECBFF\">    \"name\": \"my-app\",\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9ECBFF\">    \"namespace\": \"default\",\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9ECBFF\">    \"query\": \"Create a diagram showing this deployment's\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> relationship\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> to\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> all\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> associated\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> resources,\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> including\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> services,\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> ingresses,\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> configmaps,\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> and\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> secrets.\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9ECBFF\">  }' \u003C/span>\u003Cspan style=\"color:#79B8FF\">\\\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9ECBFF\">  http://localhost:8080/api/v1/mcp/resource\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>Claude can generate Mermaid diagrams within its response to visualize the relationships.\u003C/p>\n\u003Ch2 id=\"troubleshooting-best-practices\">Troubleshooting Best Practices\u003C/h2>\n\u003Cp>When using Kubernetes Claude MCP for troubleshooting:\u003C/p>\n\u003Col>\n\u003Cli>\u003Cstrong>Start specific\u003C/strong>: Begin with the resource that’s showing symptoms\u003C/li>\n\u003Cli>\u003Cstrong>Go broad\u003C/strong>: If needed, expand to related resources\u003C/li>\n\u003Cli>\u003Cstrong>Use specific queries\u003C/strong>: The more specific your query, the better Claude can help\u003C/li>\n\u003Cli>\u003Cstrong>Include context\u003C/strong>: Mention what you’ve already tried or specific symptoms\u003C/li>\n\u003Cli>\u003Cstrong>Follow recommendations\u003C/strong>: Try the recommended fixes one at a time\u003C/li>\n\u003Cli>\u003Cstrong>Iterate\u003C/strong>: Use follow-up queries to dive deeper\u003C/li>\n\u003C/ol>\n\u003Ch2 id=\"real-time-troubleshooting\">Real-Time Troubleshooting\u003C/h2>\n\u003Cp>For ongoing issues, you can set up continuous monitoring:\u003C/p>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto; white-space: pre-wrap; word-wrap: break-word;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Watch a resource and get alerts when issues are detected\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">watch\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -n\u003C/span>\u003Cspan style=\"color:#79B8FF\"> 30\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> 'curl -s -X POST \\\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9ECBFF\">  -H \"Content-Type: application/json\" \\\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9ECBFF\">  -H \"X-API-Key: your_api_key\" \\\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9ECBFF\">  -d \"{\\\"resource\\\":\\\"deployment\\\",\\\"name\\\":\\\"my-app\\\",\\\"namespace\\\":\\\"default\\\",\\\"query\\\":\\\"Report any new issues\\\"}\" \\\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9ECBFF\">  http://localhost:8080/api/v1/mcp/troubleshoot | jq .troubleshootResult.issues'\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch2 id=\"troubleshooting-reference\">Troubleshooting Reference\u003C/h2>\n\u003Cp>Here’s a quick reference of what to check for common Kubernetes issues:\u003C/p>\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\u003Ctable>\u003Cthead>\u003Ctr>\u003Cth>Symptom\u003C/th>\u003Cth>Resource to Check\u003C/th>\u003Cth>Common Issues\u003C/th>\u003C/tr>\u003C/thead>\u003Ctbody>\u003Ctr>\u003Ctd>Application not starting\u003C/td>\u003Ctd>Pod\u003C/td>\u003Ctd>Image pull errors, resource constraints, configuration issues\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>Cannot connect to app\u003C/td>\u003Ctd>Service\u003C/td>\u003Ctd>Selector mismatch, port configuration, pod health\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>External access failing\u003C/td>\u003Ctd>Ingress\u003C/td>\u003Ctd>Path configuration, backend service, TLS issues\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>Scaling issues\u003C/td>\u003Ctd>Deployment\u003C/td>\u003Ctd>Resource constraints, pod disruption budgets, affinity rules\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>Configuration issues\u003C/td>\u003Ctd>ConfigMap/Secret\u003C/td>\u003Ctd>Missing keys, invalid format, mounting issues\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>Persistent storage issues\u003C/td>\u003Ctd>PVC\u003C/td>\u003Ctd>Storage class, capacity issues, access modes\u003C/td>\u003C/tr>\u003Ctr>\u003Ctd>GitOps sync failures\u003C/td>\u003Ctd>ArgoCD Application\u003C/td>\u003Ctd>Git repo issues, manifest errors, resource conflicts\u003C/td>\u003C/tr>\u003C/tbody>\u003C/table>",{"headings":392,"localImagePaths":439,"remoteImagePaths":440,"frontmatter":441,"imagePaths":444},[393,394,397,400,403,406,409,412,415,418,421,424,427,430,433,436],{"depth":30,"slug":377,"text":380},{"depth":32,"slug":395,"text":396},"getting-started-with-troubleshooting","Getting Started with Troubleshooting",{"depth":32,"slug":398,"text":399},"troubleshooting-common-resource-types","Troubleshooting Common Resource Types",{"depth":39,"slug":401,"text":402},"troubleshooting-pods","Troubleshooting Pods",{"depth":39,"slug":404,"text":405},"troubleshooting-deployments","Troubleshooting Deployments",{"depth":39,"slug":407,"text":408},"troubleshooting-services","Troubleshooting Services",{"depth":39,"slug":410,"text":411},"troubleshooting-ingresses","Troubleshooting Ingresses",{"depth":32,"slug":413,"text":414},"troubleshooting-gitops-resources","Troubleshooting GitOps Resources",{"depth":39,"slug":416,"text":417},"troubleshooting-argocd-applications","Troubleshooting ArgoCD Applications",{"depth":39,"slug":419,"text":420},"investigating-commit-impact","Investigating Commit Impact",{"depth":32,"slug":422,"text":423},"advanced-troubleshooting-scenarios","Advanced Troubleshooting Scenarios",{"depth":39,"slug":425,"text":426},"multi-resource-analysis","Multi-Resource Analysis",{"depth":39,"slug":428,"text":429},"diagram-generation","Diagram Generation",{"depth":32,"slug":431,"text":432},"troubleshooting-best-practices","Troubleshooting Best Practices",{"depth":32,"slug":434,"text":435},"real-time-troubleshooting","Real-Time Troubleshooting",{"depth":32,"slug":437,"text":438},"troubleshooting-reference","Troubleshooting Reference",[],[],{"title":380,"description":381,"date":442,"order":383,"tags":443},["Date","2025-03-01T00:00:00.000Z"],[367,385],[],"troubleshooting-resources.md","api-overview",{"id":446,"data":448,"body":456,"filePath":457,"digest":458,"rendered":459,"legacyId":545},{"title":449,"description":450,"date":451,"order":452,"tags":453,"draft":21},"API Overview","Comprehensive documentation of the Kubernetes Claude MCP REST API endpoints, parameters, and response formats.",["Date","2025-03-01T00:00:00.000Z"],5,[454,455],"api","reference","# API Overview\n\nKubernetes Claude MCP provides a comprehensive REST API for interacting with Kubernetes resources, ArgoCD applications, GitLab repositories, and Claude's AI capabilities. This document provides an overview of all available endpoints, their parameters, and response formats.\n\n## API Structure\n\nThe API is organized into the following sections:\n\n- **General**: Health check and general information\n- **Kubernetes API**: Direct access to Kubernetes resources\n- **ArgoCD API**: Access to ArgoCD applications and sync status\n- **MCP API**: AI-powered analysis and troubleshooting\n\nAll API calls require authentication using an API key, which is passed in the `X-API-Key` header or as a bearer token in the `Authorization` header.\n\n```bash\n# Using X-API-Key header\ncurl -H \"X-API-Key: your_api_key\" https://mcp.example.com/api/v1/health\n\n# Using Authorization header\ncurl -H \"Authorization: Bearer your_api_key\" https://mcp.example.com/api/v1/health\n```\n\n## Health Check\n\n### GET /api/v1/health\n\nCheck the health status of the server and its connected services.\n\n**Response:**\n\n```json\n{\n  \"status\": \"ok\",\n  \"services\": {\n    \"kubernetes\": \"available\",\n    \"argocd\": \"available\",\n    \"gitlab\": \"available\",\n    \"claude\": \"assumed available\"\n  }\n}\n```\n\nThe `status` field will be `ok` if all required services are available, or `degraded` if some services are unavailable.\n\n## Kubernetes API\n\n### GET /api/v1/namespaces\n\nList all namespaces in the Kubernetes cluster.\n\n**Response:**\n\n```json\n{\n  \"namespaces\": [\n    \"default\",\n    \"kube-system\",\n    \"monitoring\",\n    \"argocd\"\n  ]\n}\n```\n\n### GET /api/v1/resources/{kind}?namespace={ns}\n\nList all resources of a specific kind, optionally filtered by namespace.\n\n**Parameters:**\n- `kind`: The Kubernetes resource kind (e.g., `pod`, `deployment`, `service`)\n- `namespace`: (Optional) The namespace to filter by\n\n**Response:**\n\n```json\n{\n  \"resources\": [\n    {\n      \"apiVersion\": \"v1\",\n      \"kind\": \"Pod\",\n      \"metadata\": {\n        \"name\": \"example-pod\",\n        \"namespace\": \"default\",\n        \"...\": \"...\"\n      },\n      \"spec\": { \"...\": \"...\" },\n      \"status\": { \"...\": \"...\" }\n    },\n    // More resources...\n  ]\n}\n```\n\n### GET /api/v1/resources/{kind}/{name}?namespace={ns}\n\nGet a specific resource by kind, name, and namespace.\n\n**Parameters:**\n- `kind`: The Kubernetes resource kind\n- `name`: The resource name\n- `namespace`: (Optional) The namespace of the resource\n\n**Response:**\n\n```json\n{\n  \"apiVersion\": \"v1\",\n  \"kind\": \"Pod\",\n  \"metadata\": {\n    \"name\": \"example-pod\",\n    \"namespace\": \"default\",\n    \"...\": \"...\"\n  },\n  \"spec\": { \"...\": \"...\" },\n  \"status\": { \"...\": \"...\" }\n}\n```\n\n### GET /api/v1/events?namespace={ns}&resource={kind}&name={name}\n\nGet events related to a specific resource.\n\n**Parameters:**\n- `namespace`: The namespace of the resource\n- `resource`: The resource kind\n- `name`: The resource name\n\n**Response:**\n\n```json\n{\n  \"events\": [\n    {\n      \"reason\": \"Created\",\n      \"message\": \"Created container nginx\",\n      \"type\": \"Normal\",\n      \"count\": 1,\n      \"firstTime\": \"2025-03-01T12:00:00Z\",\n      \"lastTime\": \"2025-03-01T12:00:00Z\",\n      \"object\": {\n        \"kind\": \"Pod\",\n        \"name\": \"example-pod\",\n        \"namespace\": \"default\"\n      }\n    },\n    // More events...\n  ]\n}\n```\n\n## ArgoCD API\n\n### GET /api/v1/argocd/applications\n\nList all ArgoCD applications.\n\n**Response:**\n\n```json\n{\n  \"applications\": [\n    {\n      \"metadata\": {\n        \"name\": \"example-app\",\n        \"namespace\": \"argocd\"\n      },\n      \"spec\": {\n        \"source\": {\n          \"repoURL\": \"https://github.com/example/repo.git\",\n          \"path\": \"manifests\",\n          \"targetRevision\": \"HEAD\"\n        },\n        \"destination\": {\n          \"server\": \"https://kubernetes.default.svc\",\n          \"namespace\": \"default\"\n        }\n      },\n      \"status\": {\n        \"sync\": {\n          \"status\": \"Synced\"\n        },\n        \"health\": {\n          \"status\": \"Healthy\"\n        }\n      }\n    },\n    // More applications...\n  ]\n}\n```\n\n### GET /api/v1/argocd/applications/{name}\n\nGet a specific ArgoCD application by name.\n\n**Parameters:**\n- `name`: The ArgoCD application name\n\n**Response:**\n\n```json\n{\n  \"metadata\": {\n    \"name\": \"example-app\",\n    \"namespace\": \"argocd\"\n  },\n  \"spec\": {\n    \"source\": {\n      \"repoURL\": \"https://github.com/example/repo.git\",\n      \"path\": \"manifests\",\n      \"targetRevision\": \"HEAD\"\n    },\n    \"destination\": {\n      \"server\": \"https://kubernetes.default.svc\",\n      \"namespace\": \"default\"\n    }\n  },\n  \"status\": {\n    \"sync\": {\n      \"status\": \"Synced\"\n    },\n    \"health\": {\n      \"status\": \"Healthy\"\n    }\n  }\n}\n```\n\n## MCP API\n\nThe MCP API provides access to Claude's AI capabilities for analyzing Kubernetes resources and GitOps workflows.\n\n### POST /api/v1/mcp\n\nGeneric MCP request for Claude analysis.\n\n**Request:**\n\n```json\n{\n  \"action\": \"string\",\n  \"resource\": \"string\",\n  \"name\": \"string\",\n  \"namespace\": \"string\",\n  \"query\": \"string\",\n  \"commitSha\": \"string\",\n  \"projectId\": \"string\",\n  \"resourceSpecs\": {},\n  \"context\": \"string\"\n}\n```\n\n**Response:**\n\n```json\n{\n  \"success\": true,\n  \"message\": \"Successfully processed request\",\n  \"analysis\": \"Detailed analysis from Claude...\",\n  \"actions\": [\"suggested actions...\"],\n  \"context\": {}\n}\n```\n\n### POST /api/v1/mcp/resource\n\nAnalyze a specific Kubernetes resource.\n\n**Request:**\n\n```json\n{\n  \"resource\": \"pod\",\n  \"name\": \"example-pod\",\n  \"namespace\": \"default\",\n  \"query\": \"Is this pod healthy? If not, what are the issues?\"\n}\n```\n\n**Response:**\n\n```json\n{\n  \"success\": true,\n  \"message\": \"Successfully processed queryResource request\",\n  \"analysis\": \"Detailed analysis of the pod's health status...\",\n  \"context\": {\n    \"kind\": \"Pod\",\n    \"name\": \"example-pod\",\n    \"namespace\": \"default\",\n    \"argoApplication\": {},\n    \"gitlabProject\": {},\n    \"events\": []\n  }\n}\n```\n\n### POST /api/v1/mcp/commit\n\nAnalyze the impact of a specific GitLab commit.\n\n**Request:**\n\n```json\n{\n  \"projectId\": \"group/project\",\n  \"commitSha\": \"abcdef123456\",\n  \"query\": \"What changes were made in this commit and how do they affect the deployed resources?\"\n}\n```\n\n**Response:**\n\n```json\n{\n  \"success\": true,\n  \"message\": \"Successfully processed queryCommit request\",\n  \"analysis\": \"Detailed analysis of the commit and its impact...\",\n  \"context\": {\n    \"commit\": {},\n    \"affectedResources\": []\n  }\n}\n```\n\n### POST /api/v1/mcp/troubleshoot\n\nTroubleshoot a specific Kubernetes resource.\n\n**Request:**\n\n```json\n{\n  \"resource\": \"deployment\",\n  \"name\": \"example-deployment\",\n  \"namespace\": \"default\",\n  \"query\": \"Why is this deployment not scaling properly?\"\n}\n```\n\n**Response:**\n\n```json\n{\n  \"success\": true,\n  \"message\": \"Successfully processed troubleshoot request\",\n  \"analysis\": \"Detailed troubleshooting analysis...\",\n  \"troubleshootResult\": {\n    \"issues\": [\n      {\n        \"title\": \"Resource Constraint\",\n        \"category\": \"ResourceIssue\",\n        \"severity\": \"Warning\",\n        \"source\": \"Kubernetes\",\n        \"description\": \"Deployment cannot scale due to insufficient CPU resources\"\n      }\n    ],\n    \"recommendations\": [\n      \"Increase CPU request to allow for additional replicas\",\n      \"Check node resources to ensure sufficient capacity\"\n    ]\n  }\n}\n```\n\n## Error Handling\n\nAll API endpoints return standard HTTP status codes:\n\n- `200 OK`: Request was successful\n- `400 Bad Request`: Invalid request format or parameters\n- `401 Unauthorized`: Missing or invalid API key\n- `404 Not Found`: Resource not found\n- `500 Internal Server Error`: Server error\n\nError responses include a JSON body with details:\n\n```json\n{\n  \"error\": \"Failed to get resource\",\n  \"details\": \"pod 'example-pod' not found in namespace 'default'\"\n}\n```\n\n## Pagination\n\nFor endpoints that return collections, pagination is supported using the following query parameters:\n\n- `limit`: Maximum number of items to return (default: 100)\n- `page`: Page number to return (default: 1)\n\nExample:\n\n```\nGET /api/v1/resources/pods?namespace=default&limit=10&page=2\n```\n\nResponse includes pagination metadata:\n\n```json\n{\n  \"resources\": [...],\n  \"pagination\": {\n    \"total\": 25,\n    \"pages\": 3,\n    \"currentPage\": 2,\n    \"limit\": 10\n  }\n}\n```\n\n## API Versioning\n\nThe API version is included in the URL path (`/api/v1/`). Future API versions will be made available at different paths (e.g., `/api/v2/`) to ensure backward compatibility.\n\n## Rate Limiting\n\nThe API implements rate limiting to prevent abuse. Rate limits vary by endpoint:\n\n- General endpoints: 100 requests per minute\n- Kubernetes endpoints: 60 requests per minute\n- ArgoCD endpoints: 60 requests per minute\n- MCP endpoints: 20 requests per minute\n\nRate limit information is included in response headers:\n\n- `X-RateLimit-Limit`: Total requests allowed per minute\n- `X-RateLimit-Remaining`: Remaining requests in the current window\n- `X-RateLimit-Reset`: Seconds until the rate limit resets\n\n## Webhook Support\n\nIn addition to the REST API, Kubernetes Claude MCP supports webhooks for event-driven integration:\n\n### POST /api/v1/webhooks/gitlab\n\nGitLab webhook for automatic analysis of commits.\n\n### POST /api/v1/webhooks/argocd\n\nArgoCD webhook for automatic analysis of sync events.\n\n## API Examples\n\nFor detailed examples of using the API, see the following guides:\n\n- [Basic API Usage](/docs/examples/basic-usage)\n- [Troubleshooting with the API](/docs/examples/troubleshooting)\n- [CI/CD Integration](/docs/examples/cicd-integration)\n- [Custom Prompts](/docs/examples/custom-prompts)\n\n## API Client Libraries\n\nOfficial client libraries are available for:\n\n- Go: `github.com/blankcut/kubernetes-mcp-client-go`\n- Python: `kubernetes-mcp-client`\n- JavaScript/TypeScript: `kubernetes-mcp-client-js`\n\nExample using the Go client:\n\n```go\nimport \"github.com/blankcut/kubernetes-mcp-client-go\"\n\nclient := mcp.NewClient(\"https://mcp.example.com\", \"your_api_key\")\n\nresponse, err := client.AnalyzeResource(\"pod\", \"example-pod\", \"default\", \"Is this pod healthy?\")\nif err != nil {\n    // Handle error\n}\n\nfmt.Println(response.Analysis)\n```","src/content/docs/api-overview.md","09fa595f4dd369be",{"html":460,"metadata":461},"\u003Ch1 id=\"api-overview\">API Overview\u003C/h1>\n\u003Cp>Kubernetes Claude MCP provides a comprehensive REST API for interacting with Kubernetes resources, ArgoCD applications, GitLab repositories, and Claude’s AI capabilities. This document provides an overview of all available endpoints, their parameters, and response formats.\u003C/p>\n\u003Ch2 id=\"api-structure\">API Structure\u003C/h2>\n\u003Cp>The API is organized into the following sections:\u003C/p>\n\u003Cul>\n\u003Cli>\u003Cstrong>General\u003C/strong>: Health check and general information\u003C/li>\n\u003Cli>\u003Cstrong>Kubernetes API\u003C/strong>: Direct access to Kubernetes resources\u003C/li>\n\u003Cli>\u003Cstrong>ArgoCD API\u003C/strong>: Access to ArgoCD applications and sync status\u003C/li>\n\u003Cli>\u003Cstrong>MCP API\u003C/strong>: AI-powered analysis and troubleshooting\u003C/li>\n\u003C/ul>\n\u003Cp>All API calls require authentication using an API key, which is passed in the \u003Ccode>X-API-Key\u003C/code> header or as a bearer token in the \u003Ccode>Authorization\u003C/code> header.\u003C/p>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto; white-space: pre-wrap; word-wrap: break-word;\" tabindex=\"0\" data-language=\"bash\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Using X-API-Key header\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">curl\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -H\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> \"X-API-Key: your_api_key\"\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> https://mcp.example.com/api/v1/health\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Using Authorization header\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#B392F0\">curl\u003C/span>\u003Cspan style=\"color:#79B8FF\"> -H\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> \"Authorization: Bearer your_api_key\"\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> https://mcp.example.com/api/v1/health\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch2 id=\"health-check\">Health Check\u003C/h2>\n\u003Ch3 id=\"get-apiv1health\">GET /api/v1/health\u003C/h3>\n\u003Cp>Check the health status of the server and its connected services.\u003C/p>\n\u003Cp>\u003Cstrong>Response:\u003C/strong>\u003C/p>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto; white-space: pre-wrap; word-wrap: break-word;\" tabindex=\"0\" data-language=\"json\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">{\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  \"status\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"ok\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  \"services\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: {\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">    \"kubernetes\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"available\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">    \"argocd\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"available\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">    \"gitlab\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"available\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">    \"claude\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"assumed available\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">  }\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">}\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>The \u003Ccode>status\u003C/code> field will be \u003Ccode>ok\u003C/code> if all required services are available, or \u003Ccode>degraded\u003C/code> if some services are unavailable.\u003C/p>\n\u003Ch2 id=\"kubernetes-api\">Kubernetes API\u003C/h2>\n\u003Ch3 id=\"get-apiv1namespaces\">GET /api/v1/namespaces\u003C/h3>\n\u003Cp>List all namespaces in the Kubernetes cluster.\u003C/p>\n\u003Cp>\u003Cstrong>Response:\u003C/strong>\u003C/p>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto; white-space: pre-wrap; word-wrap: break-word;\" tabindex=\"0\" data-language=\"json\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">{\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  \"namespaces\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: [\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9ECBFF\">    \"default\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9ECBFF\">    \"kube-system\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9ECBFF\">    \"monitoring\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9ECBFF\">    \"argocd\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">  ]\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">}\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch3 id=\"get-apiv1resourceskindnamespacens\">GET /api/v1/resources/{kind}?namespace={ns}\u003C/h3>\n\u003Cp>List all resources of a specific kind, optionally filtered by namespace.\u003C/p>\n\u003Cp>\u003Cstrong>Parameters:\u003C/strong>\u003C/p>\n\u003Cul>\n\u003Cli>\u003Ccode>kind\u003C/code>: The Kubernetes resource kind (e.g., \u003Ccode>pod\u003C/code>, \u003Ccode>deployment\u003C/code>, \u003Ccode>service\u003C/code>)\u003C/li>\n\u003Cli>\u003Ccode>namespace\u003C/code>: (Optional) The namespace to filter by\u003C/li>\n\u003C/ul>\n\u003Cp>\u003Cstrong>Response:\u003C/strong>\u003C/p>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto; white-space: pre-wrap; word-wrap: break-word;\" tabindex=\"0\" data-language=\"json\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">{\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  \"resources\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: [\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">    {\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">      \"apiVersion\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"v1\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">      \"kind\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"Pod\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">      \"metadata\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: {\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">        \"name\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"example-pod\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">        \"namespace\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"default\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">        \"...\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"...\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">      },\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">      \"spec\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: { \u003C/span>\u003Cspan style=\"color:#79B8FF\">\"...\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"...\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> },\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">      \"status\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: { \u003C/span>\u003Cspan style=\"color:#79B8FF\">\"...\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"...\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> }\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">    },\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\">    // More resources...\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">  ]\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">}\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch3 id=\"get-apiv1resourceskindnamenamespacens\">GET /api/v1/resources/{kind}/{name}?namespace={ns}\u003C/h3>\n\u003Cp>Get a specific resource by kind, name, and namespace.\u003C/p>\n\u003Cp>\u003Cstrong>Parameters:\u003C/strong>\u003C/p>\n\u003Cul>\n\u003Cli>\u003Ccode>kind\u003C/code>: The Kubernetes resource kind\u003C/li>\n\u003Cli>\u003Ccode>name\u003C/code>: The resource name\u003C/li>\n\u003Cli>\u003Ccode>namespace\u003C/code>: (Optional) The namespace of the resource\u003C/li>\n\u003C/ul>\n\u003Cp>\u003Cstrong>Response:\u003C/strong>\u003C/p>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto; white-space: pre-wrap; word-wrap: break-word;\" tabindex=\"0\" data-language=\"json\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">{\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  \"apiVersion\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"v1\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  \"kind\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"Pod\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  \"metadata\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: {\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">    \"name\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"example-pod\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">    \"namespace\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"default\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">    \"...\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"...\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">  },\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  \"spec\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: { \u003C/span>\u003Cspan style=\"color:#79B8FF\">\"...\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"...\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> },\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  \"status\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: { \u003C/span>\u003Cspan style=\"color:#79B8FF\">\"...\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"...\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> }\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">}\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch3 id=\"get-apiv1eventsnamespacensresourcekindnamename\">GET /api/v1/events?namespace={ns}&resource={kind}&name={name}\u003C/h3>\n\u003Cp>Get events related to a specific resource.\u003C/p>\n\u003Cp>\u003Cstrong>Parameters:\u003C/strong>\u003C/p>\n\u003Cul>\n\u003Cli>\u003Ccode>namespace\u003C/code>: The namespace of the resource\u003C/li>\n\u003Cli>\u003Ccode>resource\u003C/code>: The resource kind\u003C/li>\n\u003Cli>\u003Ccode>name\u003C/code>: The resource name\u003C/li>\n\u003C/ul>\n\u003Cp>\u003Cstrong>Response:\u003C/strong>\u003C/p>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto; white-space: pre-wrap; word-wrap: break-word;\" tabindex=\"0\" data-language=\"json\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">{\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  \"events\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: [\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">    {\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">      \"reason\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"Created\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">      \"message\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"Created container nginx\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">      \"type\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"Normal\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">      \"count\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#79B8FF\">1\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">      \"firstTime\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"2025-03-01T12:00:00Z\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">      \"lastTime\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"2025-03-01T12:00:00Z\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">      \"object\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: {\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">        \"kind\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"Pod\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">        \"name\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"example-pod\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">        \"namespace\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"default\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">      }\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">    },\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\">    // More events...\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">  ]\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">}\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch2 id=\"argocd-api\">ArgoCD API\u003C/h2>\n\u003Ch3 id=\"get-apiv1argocdapplications\">GET /api/v1/argocd/applications\u003C/h3>\n\u003Cp>List all ArgoCD applications.\u003C/p>\n\u003Cp>\u003Cstrong>Response:\u003C/strong>\u003C/p>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto; white-space: pre-wrap; word-wrap: break-word;\" tabindex=\"0\" data-language=\"json\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">{\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  \"applications\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: [\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">    {\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">      \"metadata\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: {\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">        \"name\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"example-app\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">        \"namespace\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"argocd\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">      },\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">      \"spec\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: {\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">        \"source\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: {\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">          \"repoURL\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"https://github.com/example/repo.git\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">          \"path\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"manifests\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">          \"targetRevision\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"HEAD\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">        },\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">        \"destination\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: {\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">          \"server\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"https://kubernetes.default.svc\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">          \"namespace\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"default\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">        }\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">      },\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">      \"status\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: {\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">        \"sync\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: {\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">          \"status\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"Synced\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">        },\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">        \"health\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: {\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">          \"status\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"Healthy\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">        }\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">      }\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">    },\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\">    // More applications...\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">  ]\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">}\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch3 id=\"get-apiv1argocdapplicationsname\">GET /api/v1/argocd/applications/{name}\u003C/h3>\n\u003Cp>Get a specific ArgoCD application by name.\u003C/p>\n\u003Cp>\u003Cstrong>Parameters:\u003C/strong>\u003C/p>\n\u003Cul>\n\u003Cli>\u003Ccode>name\u003C/code>: The ArgoCD application name\u003C/li>\n\u003C/ul>\n\u003Cp>\u003Cstrong>Response:\u003C/strong>\u003C/p>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto; white-space: pre-wrap; word-wrap: break-word;\" tabindex=\"0\" data-language=\"json\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">{\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  \"metadata\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: {\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">    \"name\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"example-app\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">    \"namespace\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"argocd\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">  },\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  \"spec\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: {\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">    \"source\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: {\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">      \"repoURL\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"https://github.com/example/repo.git\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">      \"path\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"manifests\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">      \"targetRevision\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"HEAD\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">    },\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">    \"destination\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: {\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">      \"server\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"https://kubernetes.default.svc\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">      \"namespace\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"default\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">    }\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">  },\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  \"status\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: {\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">    \"sync\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: {\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">      \"status\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"Synced\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">    },\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">    \"health\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: {\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">      \"status\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"Healthy\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">    }\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">  }\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">}\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch2 id=\"mcp-api\">MCP API\u003C/h2>\n\u003Cp>The MCP API provides access to Claude’s AI capabilities for analyzing Kubernetes resources and GitOps workflows.\u003C/p>\n\u003Ch3 id=\"post-apiv1mcp\">POST /api/v1/mcp\u003C/h3>\n\u003Cp>Generic MCP request for Claude analysis.\u003C/p>\n\u003Cp>\u003Cstrong>Request:\u003C/strong>\u003C/p>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto; white-space: pre-wrap; word-wrap: break-word;\" tabindex=\"0\" data-language=\"json\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">{\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  \"action\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"string\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  \"resource\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"string\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  \"name\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"string\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  \"namespace\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"string\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  \"query\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"string\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  \"commitSha\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"string\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  \"projectId\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"string\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  \"resourceSpecs\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: {},\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  \"context\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"string\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">}\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>\u003Cstrong>Response:\u003C/strong>\u003C/p>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto; white-space: pre-wrap; word-wrap: break-word;\" tabindex=\"0\" data-language=\"json\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">{\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  \"success\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#79B8FF\">true\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  \"message\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"Successfully processed request\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  \"analysis\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"Detailed analysis from Claude...\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  \"actions\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: [\u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"suggested actions...\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">],\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  \"context\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: {}\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">}\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch3 id=\"post-apiv1mcpresource\">POST /api/v1/mcp/resource\u003C/h3>\n\u003Cp>Analyze a specific Kubernetes resource.\u003C/p>\n\u003Cp>\u003Cstrong>Request:\u003C/strong>\u003C/p>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto; white-space: pre-wrap; word-wrap: break-word;\" tabindex=\"0\" data-language=\"json\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">{\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  \"resource\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"pod\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  \"name\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"example-pod\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  \"namespace\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"default\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  \"query\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"Is this pod healthy? If not, what are the issues?\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">}\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>\u003Cstrong>Response:\u003C/strong>\u003C/p>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto; white-space: pre-wrap; word-wrap: break-word;\" tabindex=\"0\" data-language=\"json\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">{\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  \"success\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#79B8FF\">true\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  \"message\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"Successfully processed queryResource request\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  \"analysis\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"Detailed analysis of the pod's health status...\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  \"context\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: {\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">    \"kind\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"Pod\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">    \"name\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"example-pod\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">    \"namespace\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"default\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">    \"argoApplication\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: {},\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">    \"gitlabProject\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: {},\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">    \"events\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: []\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">  }\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">}\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch3 id=\"post-apiv1mcpcommit\">POST /api/v1/mcp/commit\u003C/h3>\n\u003Cp>Analyze the impact of a specific GitLab commit.\u003C/p>\n\u003Cp>\u003Cstrong>Request:\u003C/strong>\u003C/p>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto; white-space: pre-wrap; word-wrap: break-word;\" tabindex=\"0\" data-language=\"json\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">{\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  \"projectId\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"group/project\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  \"commitSha\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"abcdef123456\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  \"query\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"What changes were made in this commit and how do they affect the deployed resources?\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">}\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>\u003Cstrong>Response:\u003C/strong>\u003C/p>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto; white-space: pre-wrap; word-wrap: break-word;\" tabindex=\"0\" data-language=\"json\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">{\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  \"success\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#79B8FF\">true\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  \"message\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"Successfully processed queryCommit request\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  \"analysis\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"Detailed analysis of the commit and its impact...\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  \"context\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: {\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">    \"commit\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: {},\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">    \"affectedResources\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: []\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">  }\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">}\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch3 id=\"post-apiv1mcptroubleshoot\">POST /api/v1/mcp/troubleshoot\u003C/h3>\n\u003Cp>Troubleshoot a specific Kubernetes resource.\u003C/p>\n\u003Cp>\u003Cstrong>Request:\u003C/strong>\u003C/p>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto; white-space: pre-wrap; word-wrap: break-word;\" tabindex=\"0\" data-language=\"json\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">{\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  \"resource\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"deployment\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  \"name\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"example-deployment\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  \"namespace\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"default\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  \"query\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"Why is this deployment not scaling properly?\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">}\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>\u003Cstrong>Response:\u003C/strong>\u003C/p>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto; white-space: pre-wrap; word-wrap: break-word;\" tabindex=\"0\" data-language=\"json\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">{\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  \"success\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#79B8FF\">true\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  \"message\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"Successfully processed troubleshoot request\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  \"analysis\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"Detailed troubleshooting analysis...\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  \"troubleshootResult\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: {\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">    \"issues\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: [\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">      {\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">        \"title\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"Resource Constraint\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">        \"category\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"ResourceIssue\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">        \"severity\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"Warning\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">        \"source\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"Kubernetes\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">        \"description\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"Deployment cannot scale due to insufficient CPU resources\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">      }\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">    ],\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">    \"recommendations\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: [\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9ECBFF\">      \"Increase CPU request to allow for additional replicas\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#9ECBFF\">      \"Check node resources to ensure sufficient capacity\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">    ]\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">  }\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">}\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch2 id=\"error-handling\">Error Handling\u003C/h2>\n\u003Cp>All API endpoints return standard HTTP status codes:\u003C/p>\n\u003Cul>\n\u003Cli>\u003Ccode>200 OK\u003C/code>: Request was successful\u003C/li>\n\u003Cli>\u003Ccode>400 Bad Request\u003C/code>: Invalid request format or parameters\u003C/li>\n\u003Cli>\u003Ccode>401 Unauthorized\u003C/code>: Missing or invalid API key\u003C/li>\n\u003Cli>\u003Ccode>404 Not Found\u003C/code>: Resource not found\u003C/li>\n\u003Cli>\u003Ccode>500 Internal Server Error\u003C/code>: Server error\u003C/li>\n\u003C/ul>\n\u003Cp>Error responses include a JSON body with details:\u003C/p>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto; white-space: pre-wrap; word-wrap: break-word;\" tabindex=\"0\" data-language=\"json\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">{\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  \"error\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"Failed to get resource\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  \"details\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"pod 'example-pod' not found in namespace 'default'\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">}\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch2 id=\"pagination\">Pagination\u003C/h2>\n\u003Cp>For endpoints that return collections, pagination is supported using the following query parameters:\u003C/p>\n\u003Cul>\n\u003Cli>\u003Ccode>limit\u003C/code>: Maximum number of items to return (default: 100)\u003C/li>\n\u003Cli>\u003Ccode>page\u003C/code>: Page number to return (default: 1)\u003C/li>\n\u003C/ul>\n\u003Cp>Example:\u003C/p>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto; white-space: pre-wrap; word-wrap: break-word;\" tabindex=\"0\" data-language=\"plaintext\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan>GET /api/v1/resources/pods?namespace=default&limit=10&page=2\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Cp>Response includes pagination metadata:\u003C/p>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto; white-space: pre-wrap; word-wrap: break-word;\" tabindex=\"0\" data-language=\"json\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">{\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  \"resources\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: [\u003C/span>\u003Cspan style=\"color:#FDAEB7;font-style:italic\">...\u003C/span>\u003Cspan style=\"color:#E1E4E8\">],\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  \"pagination\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: {\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">    \"total\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#79B8FF\">25\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">    \"pages\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#79B8FF\">3\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">    \"currentPage\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#79B8FF\">2\u003C/span>\u003Cspan style=\"color:#E1E4E8\">,\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">    \"limit\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">: \u003C/span>\u003Cspan style=\"color:#79B8FF\">10\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">  }\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">}\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n\u003Ch2 id=\"api-versioning\">API Versioning\u003C/h2>\n\u003Cp>The API version is included in the URL path (\u003Ccode>/api/v1/\u003C/code>). Future API versions will be made available at different paths (e.g., \u003Ccode>/api/v2/\u003C/code>) to ensure backward compatibility.\u003C/p>\n\u003Ch2 id=\"rate-limiting\">Rate Limiting\u003C/h2>\n\u003Cp>The API implements rate limiting to prevent abuse. Rate limits vary by endpoint:\u003C/p>\n\u003Cul>\n\u003Cli>General endpoints: 100 requests per minute\u003C/li>\n\u003Cli>Kubernetes endpoints: 60 requests per minute\u003C/li>\n\u003Cli>ArgoCD endpoints: 60 requests per minute\u003C/li>\n\u003Cli>MCP endpoints: 20 requests per minute\u003C/li>\n\u003C/ul>\n\u003Cp>Rate limit information is included in response headers:\u003C/p>\n\u003Cul>\n\u003Cli>\u003Ccode>X-RateLimit-Limit\u003C/code>: Total requests allowed per minute\u003C/li>\n\u003Cli>\u003Ccode>X-RateLimit-Remaining\u003C/code>: Remaining requests in the current window\u003C/li>\n\u003Cli>\u003Ccode>X-RateLimit-Reset\u003C/code>: Seconds until the rate limit resets\u003C/li>\n\u003C/ul>\n\u003Ch2 id=\"webhook-support\">Webhook Support\u003C/h2>\n\u003Cp>In addition to the REST API, Kubernetes Claude MCP supports webhooks for event-driven integration:\u003C/p>\n\u003Ch3 id=\"post-apiv1webhooksgitlab\">POST /api/v1/webhooks/gitlab\u003C/h3>\n\u003Cp>GitLab webhook for automatic analysis of commits.\u003C/p>\n\u003Ch3 id=\"post-apiv1webhooksargocd\">POST /api/v1/webhooks/argocd\u003C/h3>\n\u003Cp>ArgoCD webhook for automatic analysis of sync events.\u003C/p>\n\u003Ch2 id=\"api-examples\">API Examples\u003C/h2>\n\u003Cp>For detailed examples of using the API, see the following guides:\u003C/p>\n\u003Cul>\n\u003Cli>\u003Ca href=\"/docs/examples/basic-usage\">Basic API Usage\u003C/a>\u003C/li>\n\u003Cli>\u003Ca href=\"/docs/examples/troubleshooting\">Troubleshooting with the API\u003C/a>\u003C/li>\n\u003Cli>\u003Ca href=\"/docs/examples/cicd-integration\">CI/CD Integration\u003C/a>\u003C/li>\n\u003Cli>\u003Ca href=\"/docs/examples/custom-prompts\">Custom Prompts\u003C/a>\u003C/li>\n\u003C/ul>\n\u003Ch2 id=\"api-client-libraries\">API Client Libraries\u003C/h2>\n\u003Cp>Official client libraries are available for:\u003C/p>\n\u003Cul>\n\u003Cli>Go: \u003Ccode>github.com/blankcut/kubernetes-mcp-client-go\u003C/code>\u003C/li>\n\u003Cli>Python: \u003Ccode>kubernetes-mcp-client\u003C/code>\u003C/li>\n\u003Cli>JavaScript/TypeScript: \u003Ccode>kubernetes-mcp-client-js\u003C/code>\u003C/li>\n\u003C/ul>\n\u003Cp>Example using the Go client:\u003C/p>\n\u003Cpre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto; white-space: pre-wrap; word-wrap: break-word;\" tabindex=\"0\" data-language=\"go\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#F97583\">import\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> \"\u003C/span>\u003Cspan style=\"color:#B392F0\">github.com/blankcut/kubernetes-mcp-client-go\u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">client \u003C/span>\u003Cspan style=\"color:#F97583\">:=\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> mcp.\u003C/span>\u003Cspan style=\"color:#B392F0\">NewClient\u003C/span>\u003Cspan style=\"color:#E1E4E8\">(\u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"https://mcp.example.com\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">, \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"your_api_key\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">)\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">response, err \u003C/span>\u003Cspan style=\"color:#F97583\">:=\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> client.\u003C/span>\u003Cspan style=\"color:#B392F0\">AnalyzeResource\u003C/span>\u003Cspan style=\"color:#E1E4E8\">(\u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"pod\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">, \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"example-pod\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">, \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"default\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">, \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"Is this pod healthy?\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">)\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#F97583\">if\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> err \u003C/span>\u003Cspan style=\"color:#F97583\">!=\u003C/span>\u003Cspan style=\"color:#79B8FF\"> nil\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> {\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\">    // Handle error\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">}\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">fmt.\u003C/span>\u003Cspan style=\"color:#B392F0\">Println\u003C/span>\u003Cspan style=\"color:#E1E4E8\">(response.Analysis)\u003C/span>\u003C/span>\u003C/code>\u003C/pre>",{"headings":462,"localImagePaths":539,"remoteImagePaths":540,"frontmatter":541,"imagePaths":544},[463,464,467,470,473,476,479,482,485,488,491,494,497,500,503,506,509,512,515,518,521,524,527,530,533,536],{"depth":30,"slug":446,"text":449},{"depth":32,"slug":465,"text":466},"api-structure","API Structure",{"depth":32,"slug":468,"text":469},"health-check","Health Check",{"depth":39,"slug":471,"text":472},"get-apiv1health","GET /api/v1/health",{"depth":32,"slug":474,"text":475},"kubernetes-api","Kubernetes API",{"depth":39,"slug":477,"text":478},"get-apiv1namespaces","GET /api/v1/namespaces",{"depth":39,"slug":480,"text":481},"get-apiv1resourceskindnamespacens","GET /api/v1/resources/${kind}?namespace=${ns}",{"depth":39,"slug":483,"text":484},"get-apiv1resourceskindnamenamespacens","GET /api/v1/resources/${kind}/${name}?namespace=${ns}",{"depth":39,"slug":486,"text":487},"get-apiv1eventsnamespacensresourcekindnamename","GET /api/v1/events?namespace=${ns}&resource=${kind}&name=${name}",{"depth":32,"slug":489,"text":490},"argocd-api","ArgoCD API",{"depth":39,"slug":492,"text":493},"get-apiv1argocdapplications","GET /api/v1/argocd/applications",{"depth":39,"slug":495,"text":496},"get-apiv1argocdapplicationsname","GET /api/v1/argocd/applications/${name}",{"depth":32,"slug":498,"text":499},"mcp-api","MCP API",{"depth":39,"slug":501,"text":502},"post-apiv1mcp","POST /api/v1/mcp",{"depth":39,"slug":504,"text":505},"post-apiv1mcpresource","POST /api/v1/mcp/resource",{"depth":39,"slug":507,"text":508},"post-apiv1mcpcommit","POST /api/v1/mcp/commit",{"depth":39,"slug":510,"text":511},"post-apiv1mcptroubleshoot","POST /api/v1/mcp/troubleshoot",{"depth":32,"slug":513,"text":514},"error-handling","Error Handling",{"depth":32,"slug":516,"text":517},"pagination","Pagination",{"depth":32,"slug":519,"text":520},"api-versioning","API Versioning",{"depth":32,"slug":522,"text":523},"rate-limiting","Rate Limiting",{"depth":32,"slug":525,"text":526},"webhook-support","Webhook Support",{"depth":39,"slug":528,"text":529},"post-apiv1webhooksgitlab","POST /api/v1/webhooks/gitlab",{"depth":39,"slug":531,"text":532},"post-apiv1webhooksargocd","POST /api/v1/webhooks/argocd",{"depth":32,"slug":534,"text":535},"api-examples","API Examples",{"depth":32,"slug":537,"text":538},"api-client-libraries","API Client Libraries",[],[],{"title":449,"description":450,"date":542,"order":452,"tags":543},["Date","2025-03-01T00:00:00.000Z"],[454,455],[],"api-overview.md"]
```
Page 5/5FirstPrevNextLast