Token导航 LogoToken导航TokenDH.com
Kubernetes MCP In Kilocode logo
浏览器工具未说明官方级别未说明来源级核验

Kubernetes MCP In Kilocode

MCP Server

在KiloCode工作空间中设置本地Kubernetes MCP服务器,通过AI辅助命令管理Kubernetes集群。

工具数

4

提示词数

0

GitHub Stars

3

资源数

0
集群管理开发工具HTMLKubernetes管理

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

ashishpatel26

提供方

ashishpatel26

最后核验

2026/5/17 20:20

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

Kubernetes mcp(千码)

如何在kilocode中设置Kubernetes MCP

在KiloCode中设置Kubernetes MCP服务器

本指南提供了在KiloCode工作区中设置本地Kubernetes MCP服务器的分步说明,允许您通过AI辅助命令管理Kubernetes集群。

先决条件

  • 已安装Node.js和npm
  • 访问npm注册表(@modelcontextprotocol/sdk可能需要IT批准)
  • kubectl已配置并连接到Kubernetes集群
  • KiloCode工作区

步骤1:创建MCP服务器目录结构

mkdir -p mcp/kubernetes-server/src

第二步:创建package.json

创建 mcp/kubernetes-server/package.json 内容如下:

{
  "name": "kubernetes-server",
  "version": "0.1.0",
  "type": "module",
  "scripts": {
    "build": "tsc && chmod +x build/index.js"
  },
  "dependencies": {
    "@modelcontextprotocol/sdk": "^0.4.0",
    "zod": "^3.22.4"
  },
  "devDependencies": {
    "@types/node": "^20.0.0",
    "typescript": "^5.0.0"
  }
}

步骤3:创建tsconfig.json

创建 mcp/kubernetes-server/tsconfig.json 内容如下:

{
  "compilerOptions": {
    "target": "ES2022",
    "module": "ES2022",
    "moduleResolution": "node",
    "outDir": "./build",
    "rootDir": "./src",
    "strict": true,
    "esModuleInterop": true,
    "skipLibCheck": true,
    "forceConsistentCasingInFileNames": true
  },
  "include": ["src/**/*"],
  "exclude": ["node_modules", "build"]
}

步骤4:创建服务器实现

创建 mcp/kubernetes-server/src/index.ts 内容如下:

#!/usr/bin/env node
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
import { z } from "zod";
import { execSync } from "child_process";

// Create an MCP server
const server = new McpServer({
  name: "kubernetes-server",
  version: "0.1.0"
});

// Tool for getting pods
server.tool(
  "get_pods",
  {
    namespace: z.string().optional().describe("Namespace to list pods from"),
    selector: z.string().optional().describe("Label selector"),
    output: z.string().optional().describe("Output format (json, yaml, wide, etc.)")
  },
  async ({ namespace, selector, output = "wide" }) => {
    try {
      let cmd = `kubectl get pods`;
      if (namespace) cmd += ` -n ${namespace}`;
      if (selector) cmd += ` -l ${selector}`;
      cmd += ` -o ${output}`;
      const result = execSync(cmd, { encoding: 'utf8' });
      return {
        content: [{ type: "text", text: result }]
      };
    } catch (error: any) {
      return {
        content: [{ type: "text", text: `Error: ${error.message}` }],
        isError: true
      };
    }
  }
);

// Tool for describing a pod
server.tool(
  "describe_pod",
  {
    name: z.string().describe("Pod name"),
    namespace: z.string().optional().describe("Namespace")
  },
  async ({ name, namespace }) => {
    try {
      let cmd = `kubectl describe pod ${name}`;
      if (namespace) cmd += ` -n ${namespace}`;
      const result = execSync(cmd, { encoding: 'utf8' });
      return {
        content: [{ type: "text", text: result }]
      };
    } catch (error: any) {
      return {
        content: [{ type: "text", text: `Error: ${error.message}` }],
        isError: true
      };
    }
  }
);

// Tool for getting logs
server.tool(
  "logs",
  {
    name: z.string().describe("Pod name"),
    namespace: z.string().optional().describe("Namespace"),
    container: z.string().optional().describe("Container name"),
    tail: z.number().optional().describe("Number of lines to tail")
  },
  async ({ name, namespace, container, tail }) => {
    try {
      let cmd = `kubectl logs ${name}`;
      if (namespace) cmd += ` -n ${namespace}`;
      if (container) cmd += ` -c ${container}`;
      if (tail) cmd += ` --tail=${tail}`;
      const result = execSync(cmd, { encoding: 'utf8' });
      return {
        content: [{ type: "text", text: result }]
      };
    } catch (error: any) {
      return {
        content: [{ type: "text", text: `Error: ${error.message}` }],
        isError: true
      };
    }
  }
);

// Tool for getting services
server.tool(
  "get_services",
  {
    namespace: z.string().optional().describe("Namespace"),
    output: z.string().optional().describe("Output format")
  },
  async ({ namespace, output = "wide" }) => {
    try {
      let cmd = `kubectl get services`;
      if (namespace) cmd += ` -n ${namespace}`;
      cmd += ` -o ${output}`;
      const result = execSync(cmd, { encoding: 'utf8' });
      return {
        content: [{ type: "text", text: result }]
      };
    } catch (error: any) {
      return {
        content: [{ type: "text", text: `Error: ${error.message}` }],
        isError: true
      };
    }
  }
);

// Start the server
const transport = new StdioServerTransport();
await server.connect(transport);
console.error('Kubernetes MCP server running on stdio');

步骤5:安装依赖项

导航到服务器目录并安装依赖项:

cd mcp/kubernetes-server
npm install

注: 如果遇到403错误,请联系您的IT管理员,以允许访问npmjs.org上的@modelcontextprotocol/sdk包。

步骤6:构建服务器

编译TypeScript代码:

npm run build

步骤7:配置KiloCode MCP设置

更新 .kilocode/mcp.json 在工作区根目录中包含本地服务器:

{
  "mcpServers": {
    "kubernetes-mcp-server": {
      "command": "node",
      "args": ["mcp/kubernetes-server/build/index.js"]
    }
  }
}

步骤8:验证设置

重新启动KiloCode或重新加载窗口以加载新的MCP服务器。现在,您可以使用以下命令:

  • “获取顾问命名空间中的所有Pod”
  • “描述顾问服务舱”
  • “显示特定pod的日志”
  • “列出群集中的服务”

故障排除

  • 403 npm错误: 阻止包访问的安全策略
  • 构建失败: 确保安装了TypeScript和依赖项
  • MCP未加载: 检查.kilocode/mcp.json语法和路径

可用工具

  • get_pods:列出带有可选命名空间和标签过滤器的Pod
  • describe_pod:获取详细的pod信息
  • logs:检索容器日志
  • get_services:列出命名空间中的服务

目录标签

目录标签

集群管理开发工具HTMLKubernetes管理本地部署AI辅助工具

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

4

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明none部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP