Kubernetes MCP Server ð
ããŒã«ã«Kubernetes MCP Server ð ã«ã€ããŠ
Kubernetes MCP Serverã¯ãéçºè ãéçšæ åœè ãAIããŒã«ãKubernetesã¯ã©ã¹ã¿ãŒãæäœããããã®ãµãŒããŒã§ãããªãœãŒã¹ç¢ºèªããã°ååŸãäžéšã®ç®¡çæäœã«å¯Ÿå¿ããèªã¿åãå°çšã¢ãŒãã§å€æŽãå¶éã§ããŸãã
äž»ãªæ©èœ
- 01ã¯ã©ã¹ã¿ãŒã®ãªãœãŒã¹ãšç¶æ ã®ç¢ºèª
- 02Podãã°ã®ååŸ
- 03Podåé€ãšãããã€ã®ã¹ã±ãŒãªã³ã°
- 04stdioãšSSEã®ãã©ã³ã¹ããŒã
- 05èªã¿åãå°çšã¢ãŒããšåå空éå¶é
掻çšã·ãŒã³
- 01Podããããã€ããµãŒãã¹ã®ç¶æ 確èª
- 02Podãã°ãã¯ã©ã¹ã¿ãŒåé¡ã®èª¿æ»
- 03AIããŒã«ããã®ã¯ã©ã¹ã¿ãŒæäœ
MCP 察å¿
KubernetesãªãœãŒã¹ã®ç §äŒããã°ååŸã管çæäœãããŒã«ãšããŠMCPã¯ã©ã€ã¢ã³ãã«å ¬éããŸããstdioãšSSEã«å¯Ÿå¿ããèªã¿åãå°çšã«èšå®ã§ããŸãã
èšå®
ããŒã«ã«ãµãŒããŒã®èšå®ã¯ã©ã®ã¯ã©ã€ã¢ã³ãã§ãå ±éã§ããã³ããŒããŠã¯ã©ã€ã¢ã³ãã® MCP èšå®ãã¡ã€ã«ã«è²Œãä»ããŠãã ããã
ãã®ãµãŒããŒã®ããã±ãŒãžããªã¢ãŒããšã³ããã€ã³ãã¯ãŸã ååŸã§ããŠããŸããããããžã§ã¯ãã® README ã®æé ã«åŸã£ãŠãã ããã
ããŒã«
ããŒã«ã«ãµãŒããŒã®ããŒã«ã¯ãã·ã³äžã§èµ·åããŠåããŠååŸã§ããŸããã¡ã³ãããŒã¯ãŸã ããŒã«äžèЧãæäŸããŠããŸããã
詳现
Kubernetes MCP ãµãŒã㌠ð
Kubernetes MCP ãµãŒããŒã¯ãKubernetes API ãšã·ãŒã ã¬ã¹ã«é£æºãã Model Context Protocol (MCP) ãµãŒããŒã§ããéçºè ãéçšæ åœè ãAI ããŒã«åãã«ãé«åºŠãªèªååãšæäœæ©èœãæäŸããŸãã
ç®æ¬¡
- Kubernetes MCP ãµãŒã㌠ð
æŠèŠ ð
ãã® MCP ãµãŒããŒã䜿çšãããšãAI ããŒã«ãèªç¶èšèªã§ Kubernetes ã¯ã©ã¹ã¿ãŒãæäœããæ¬¡ã®æ©èœãå©çšã§ããŸãã
- ð ã¯ã©ã¹ã¿ãŒã®ãªãœãŒã¹ãååŸããŠåæãã
- ð ãããã€ã¡ã³ãããããããµãŒãã¹ãç£èŠãã
- ð ïž AI ã€ã³ã¿ãŒãã§ãŒã¹ãéããŠäžè¬ç㪠kubectl æäœãå®è¡ãã
- ð§ AI ã¢ã·ã¹ã¿ã³ã¹ãå©çšããŠã¯ã©ã¹ã¿ãŒã®åé¡ããã©ãã«ã·ã¥ãŒãã£ã³ã°ãã
åææ¡ä»¶ â
- API ã«ã¢ã¯ã»ã¹ã§ãã Kubernetes ã¯ã©ã¹ã¿ãŒ
- æå¹ãª kubeconfig ãã¡ã€ã«ãŸãã¯ãµãŒãã¹ã¢ã«ãŠã³ãã®èªèšŒæ å ±
- å¿ èŠãªæäœã«å¯Ÿããé©å㪠RBAC æš©é
ã€ã³ã¹ããŒã« ð»
Claude Desktop ã§ã®äœ¿çš
以äžã Claude Desktop ã®èšå®ãã¡ã€ã«ïŒmacOS ã§ã¯ ~/Library/Application Support/Claude/claude_desktop_config.jsonãWindows ã§ã¯ %APPDATA%\Claude\claude_desktop_config.jsonïŒã«è¿œå ããŸãã
{
"mcpServers": {
"kubernetes": {
"command": "path/to/k8smcp",
"args": [
"stdio",
"--kubeconfig=/path/to/your/kubeconfig"
]
}
}
}
VS Code ã§ã®äœ¿çš
以äžã VS Code ã®ãŠãŒã¶ãŒèšå®ïŒJSONïŒãã¡ã€ã«ããŸãã¯ã¯ãŒã¯ã¹ããŒã¹å
ã® .vscode/mcp.json ã«è¿œå ããŸãã
{
"mcp": {
"inputs": [
{
"type": "promptString",
"id": "kubeconfig_path",
"description": "Path to kubeconfig file",
"default": "${env:HOME}/.kube/config"
}
],
"servers": {
"kubernetes": {
"command": "path/to/k8smcp",
"args": [
"stdio",
"--kubeconfig=/path/to/your/kubeconfig"
]
}
}
}
}
Cline ã§ã®äœ¿çš
Cline ã®èšå®ãã¡ã€ã«ïŒãConfigure MCP ServersããéžæããåŸã® path/to/cline_mcp_settings.jsonïŒã«ä»¥äžã远å ããŸãã
{
"mcpServers": {
"kubernetes": {
"disabled": false,
"timeout": 60,
"command": "path/to/k8smcp",
"args": [
"stdio",
"--read-only=false"
"--kubeconfig=/path/to/your/kubeconfig"
],
"env": {
"K8S_MCP_TOOLSETS": "all"
},
"transportType": "stdio"
}
}
}
command ã®å€ã k8smcp å®è¡ãã¡ã€ã«ãžã®ãã¹ã«æŽæ°ããŠãã ããããµãŒããŒã®èšå®ã«ã¯ args ãŸã㯠env ã䜿çšã§ããŸãã
ãœãŒã¹ãããã«ããã
ãªããžããªãã¯ããŒã³ããŠããã€ããªããã«ãããŸãã
git clone https://github.com/briankscheong/k8s-mcp-server.git
cd k8s-mcp-server
make build
ãŸãã¯ãGo ã䜿ã£ãŠçŽæ¥ã€ã³ã¹ããŒã«ããŸãã
go install github.com/briankscheong/k8s-mcp-server/cmd/k8s-mcp-server@latest
ã³ãã³ãã©ã€ã³ãªãã·ã§ã³ âšïž
A Kubernetes MCP Server that provides tools for interacting with Kubernetes clusters.
Environment Variables:
K8S_MCP_KUBECONFIG Path to kubeconfig file
K8S_MCP_NAMESPACE Default Kubernetes namespace
K8S_MCP_IN_CLUSTER Use in-cluster config (true/false)
K8S_MCP_READ_ONLY Restrict to read-only operations (true/false)
K8S_MCP_RESOURCE_TYPES Comma-separated list of resource types
K8S_MCP_TOOLSETS Comma-separated list of toolsets to enable
K8S_MCP_EXPORT_TRANSLATIONS Export translations (true/false)
Usage:
k8smcp [command]
Available Commands:
completion Generate the autocompletion script for the specified shell
help Help about any command
sse Start sse server
stdio Start stdio server
Flags:
--export-translations Save translations to a JSON file
-h, --help help for k8smcp
--in-cluster Use in-cluster config instead of kubeconfig file
--kubeconfig string Path to the kubeconfig file (default "/Users/briancheong/.kube/config")
--namespace string Default Kubernetes namespace to target (default "default")
--read-only Restrict operations to read-only (no create, update, delete) (default true)
--resource-types strings Comma separated list of Kubernetes resource types to enable (pods,deployments,services,configmaps,namespaces,nodes) (default [all])
--toolsets strings Comma separated list of tools to enable (default [all])
-v, --version version for k8smcp
Use "k8smcp [command] --help" for more information about a command.
ãµãŒããŒãã©ã³ã¹ããŒãã®ãªãã·ã§ã³ ð
stdio
stdio ãã©ã³ã¹ããŒãã¯ããã©ã«ãã§ãããããŒã«ã«é£æºã§ã¯ã»ãšãã©ã®ãŠãŒã¶ãŒã«æšå¥šããããªãã·ã§ã³ã§ãã
k8smcp stdio --kubeconfig=/path/to/your/kubeconfig
SSE
sse ãã©ã³ã¹ããŒãã¯ãHTTP ããŒã¹ã® JSON-RPC ã¡ãã»ãŒãžãã©ã³ã¹ããŒãããµããŒãããŸããã¯ã©ã€ã¢ã³ãæ¥ç¶çšã®ããŒããå
¬éããå¿
èŠããã Kubernetes ã¯ã©ã¹ã¿ãŒã«ãµãŒããŒããããã€ããå Žåã«äŸ¿å©ã§ãã
k8smcp sse --in-cluster=true
ã¡ã¢
ãµãŒããŒã Kubernetes ã¯ã©ã¹ã¿ãŒã«ãããã€ããå Žåã¯ã
--in-cluster=trueãã©ã°ãèšå®ããå¿ èŠããããŸãã
ã¢ã¯ã»ã¹å¶åŸ¡ ð
ããã©ã«ãã§ã¯ããµãŒããŒã¯æå®ããã kubeconfig ãŸãã¯ãµãŒãã¹ã¢ã«ãŠã³ãã®æš©éãé©çšããŸããã»ãã¥ãªãã£ã匷åããã«ã¯ã次ã®ããšãã§ããŸãã
- RBAC æš©éãå¶éããå°çšã®ãµãŒãã¹ã¢ã«ãŠã³ããäœæãã
- åå空éããŸããæäœãé²ããããåå空éã®å¶éãèšå®ãã
- ã¯ã©ã¹ã¿ãŒã®ç¶æ ã倿Žãããªããããèªã¿åãå°çšã¢ãŒããæå¹ã«ãã
ããŒã« ð§°
Kubernetes MCP ãµãŒããŒã¯ãKubernetes ã¯ã©ã¹ã¿ãŒãæäœããããã®å æ¬çãªããŒã«ã»ãããæäŸããŸãã
ãªãœãŒã¹æäœ ðŠ
-
get_pod - ç¹å®ã®ãããã®è©³çްæ å ±ãååŸããŸã
namespaceïŒãããã®åå空éïŒæååãä»»æãããã©ã«ãã¯çŸåšã®åå空éïŒnameïŒãããåïŒæååãå¿ é ïŒ
-
list_pods - åå空éå ã®ããããäžèŠ§è¡šç€ºããŸã
namespaceïŒããããäžèŠ§è¡šç€ºããåå空éïŒæååãä»»æãããã©ã«ãã¯çŸåšã®åå空éïŒlabel_selectorïŒã©ãã«ã»ã¬ã¯ã¿ãŒã§ããããçµã蟌ã¿ãŸãïŒæååãä»»æïŒfield_selectorïŒãã£ãŒã«ãã»ã¬ã¯ã¿ãŒã§ããããçµã蟌ã¿ãŸãïŒæååãä»»æïŒ
-
get_pod_logs - ãããã®ãã°ãååŸããŸã
namespaceïŒãããã®åå空éïŒæååãä»»æãããã©ã«ãã¯çŸåšã®åå空éïŒnameïŒãããåïŒæååãå¿ é ïŒcontainerïŒã³ã³ãããŒåïŒæååãä»»æãããã©ã«ãã¯æåã®ã³ã³ãããŒïŒtail_linesïŒæ«å°ŸããååŸããè¡æ°ïŒæ°å€ãä»»æïŒpreviousïŒåã®ã³ã³ãããŒã€ã³ã¹ã¿ã³ã¹ã®ãã°ãååŸããŸãïŒããŒã«å€ãä»»æïŒ
-
get_deployment - ç¹å®ã®ãããã€ã¡ã³ãã®æ å ±ãååŸããŸã
namespaceïŒãããã€ã¡ã³ãã®åå空éïŒæååãä»»æãããã©ã«ãã¯çŸåšã®åå空éïŒnameïŒãããã€ã¡ã³ãåïŒæååãå¿ é ïŒ
-
list_deployments - åå空éå ã®ãããã€ã¡ã³ããäžèŠ§è¡šç€ºããŸã
namespaceïŒãããã€ã¡ã³ããäžèŠ§è¡šç€ºããåå空éïŒæååãä»»æãããã©ã«ãã¯çŸåšã®åå空éïŒlabel_selectorïŒã©ãã«ã»ã¬ã¯ã¿ãŒã§ãããã€ã¡ã³ããçµã蟌ã¿ãŸãïŒæååãä»»æïŒ
-
get_service - ç¹å®ã®ãµãŒãã¹ã®æ å ±ãååŸããŸã
namespaceïŒãµãŒãã¹ã®åå空éïŒæååãä»»æãããã©ã«ãã¯çŸåšã®åå空éïŒnameïŒãµãŒãã¹åïŒæååãå¿ é ïŒ
-
list_services - åå空éå ã®ãµãŒãã¹ãäžèŠ§è¡šç€ºããŸã
namespaceïŒãµãŒãã¹ãäžèŠ§è¡šç€ºããåå空éïŒæååãä»»æãããã©ã«ãã¯çŸåšã®åå空éïŒlabel_selectorïŒã©ãã«ã»ã¬ã¯ã¿ãŒã§ãµãŒãã¹ãçµã蟌ã¿ãŸãïŒæååãä»»æïŒ
-
get_configmap - ç¹å®ã® ConfigMap ã®æ å ±ãååŸããŸã
namespaceïŒConfigMap ã®åå空éïŒæååãä»»æãããã©ã«ãã¯çŸåšã®åå空éïŒnameïŒConfigMap åïŒæååãå¿ é ïŒ
-
list_configmaps - åå空éå ã® ConfigMap ãäžèŠ§è¡šç€ºããŸã
namespaceïŒConfigMap ãäžèŠ§è¡šç€ºããåå空éïŒæååãä»»æãããã©ã«ãã¯çŸåšã®åå空éïŒlabel_selectorïŒã©ãã«ã»ã¬ã¯ã¿ãŒã§ ConfigMap ãçµã蟌ã¿ãŸãïŒæååãä»»æïŒ
-
list_namespaces - ã¯ã©ã¹ã¿ãŒå ã®ãã¹ãŠã®åå空éãäžèŠ§è¡šç€ºããŸã
- å¿ èŠãªãã©ã¡ãŒã¿ãŒã¯ãããŸãã
-
list_nodes - ã¯ã©ã¹ã¿ãŒå ã®ãã¹ãŠã®ããŒããäžèŠ§è¡šç€ºããŸã
- å¿ èŠãªãã©ã¡ãŒã¿ãŒã¯ãããŸãã
管çæäœ âïž
-
delete_pod - åå空éããããããåé€ããŸã
namespaceïŒãããã®åå空éïŒæååãä»»æãããã©ã«ãã¯çŸåšã®åå空éïŒnameïŒãããåïŒæååãå¿ é ïŒgrace_period_secondsïŒåé€ãŸã§ã®ç¶äºæéïŒæ°å€ãä»»æïŒ
-
scale_deployment - ãããã€ã¡ã³ãã®ã¬ããªã«æ°ãæå®ããæ°ã«ã¹ã±ãŒãªã³ã°ããŸã
namespaceïŒãããã€ã¡ã³ãã®åå空éïŒæååãä»»æãããã©ã«ãã¯çŸåšã®åå空éïŒnameïŒãããã€ã¡ã³ãåïŒæååãå¿ é ïŒreplicasïŒã¬ããªã«æ°ïŒæ°å€ãå¿ é ïŒ
éèŠ
ããã©ã«ãã§ã¯ãã¯ã©ã¹ã¿ãŒå ã®ãªãœãŒã¹ã倿ŽããããŒã«ã¯ç¡å¹ã«ãªã£ãŠããŸããæå¹ã«ããã«ã¯ã
--read-only=falseãã©ã°ãŸãã¯K8S_MCP_READ_ONLY=falseç°å¢å€æ°ãèšå®ããå¿ èŠããããŸãã
ä»åŸã®æ©èœåŒ·å ð®
- ãããã现ããªã¢ã¯ã»ã¹å¶åŸ¡ãå®çŸãããRBAC ãšã®é£æºåŒ·å
- ããå€ãã® Kubernetes ãªãœãŒã¹ãžã®å¯Ÿå¿
- ã«ã¹ã¿ã ãªãœãŒã¹å®çŸ©ïŒCRDïŒãžã®å¯Ÿå¿
- ãããã€ã¡ã³ãåãã® Helm ãã£ãŒãç®¡çæ©èœ
- ã¯ã©ã¹ã¿ãŒã®ç£èŠããã³ã¢ã©ãŒãæ©èœãšã®é£æº
- è€æ°ã®ã¯ã©ã¹ã¿ãŒæ¥ç¶ã®åæå©çšãžã®å¯Ÿå¿
ã³ã³ããªãã¥ãŒã·ã§ã³ ð¥
ã³ã³ããªãã¥ãŒã·ã§ã³ãæè¿ããŸãïŒãæ°è»œã«ãã«ãªã¯ãšã¹ããéä¿¡ããŠãã ããã
- ãªããžããªããã©ãŒã¯ããŸã
- æ©èœãã©ã³ããäœæããŸãïŒ
git checkout -b feature/amazing-featureïŒ - 倿Žãã³ãããããŸãïŒ
git commit -m 'Add some amazing feature'ïŒ - ãã©ã³ãã«ããã·ã¥ããŸãïŒ
git push origin feature/amazing-featureïŒ - ãã«ãªã¯ãšã¹ããäœæããŸã
ã©ã€ã»ã³ã¹ âïž
ãã®ãããžã§ã¯ã㯠MIT License ã®ããšã§ã©ã€ã»ã³ã¹ãããŠããŸãã詳现㯠LICENSE ãã¡ã€ã«ãã芧ãã ããã
Kubernetes ãš AI ã®ã³ãã¥ããã£ã®ããã«ãâ€ïž ã蟌ããŠéçºããŸããã
ã³ã¡ã³ã
MCP ã¯åããŠã§ããïŒ
ãããã³ã«ã®æŠèŠããæåã®ãµãŒããŒã®å°å ¥ãŸã§ãããããçåã«ãŸãšããŠçããŸãã
AI ã¢ããªã±ãŒã·ã§ã³ãå€éšã®ããŒã«ãããŒã¿ãœãŒã¹ã«çµ±äžçãªæ¹æ³ã§æ¥ç¶ããããã®ãªãŒãã³ãªãããã³ã«ã§ããã¯ã©ã€ã¢ã³ãã¯ã¢ãã«ãšã®å¯Ÿè©±ãæ ããMCP ãµãŒããŒã¯ããŒã«ã»ãªãœãŒã¹ã»ããã³ãããã³ãã¬ãŒããæäŸããŸããæšæºã¡ãã»ãŒãžã§ããåãããããã1 ã€ã®ãµãŒããŒãè€æ°ã®ã¯ã©ã€ã¢ã³ãã§åå©çšã§ããŸãã