关于 Kubernetes Port Forward – Mcp Server
为 MCP 客户端和 LLM 提供 Kubernetes 服务发现与 kubectl 端口转发工具,可通过调用启动单个或多个服务的转发,并可选择在独立终端窗口查看日志。
主要功能
- 01列出命名空间与服务
- 02按环境推断服务位置
- 03单次启动多个端口转发
- 04配置本地与远程端口
- 05可选独立窗口跟踪日志
- 06停止活动的转发进程
适用场景
- 01查找集群中的服务及其环境
- 02将多个服务映射到本地端口
- 03按指定命名空间启动转发
- 04停止由服务启动的端口转发
MCP 相关
该 MCP 服务向客户端暴露命名空间和服务查询、启动与停止端口转发的工具。转发通过 kubectl 执行,并可选择打开日志窗口。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
4收录的工具列表 · 更新于 3 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| services | array | 是 | 服务配置数组;每项可使用不同的 localPort、remotePort 和 namespace。 |
详细介绍
Kubernetes Port Forward MCP
一个 Model Context Protocol(MCP)服务,提供发现 Kubernetes 服务和运行 kubectl port-forward 会话的工具(可选择为每项服务打开单独的日志窗口)。它专为能够将自然语言转换为结构化工具调用的 MCP 客户端/大模型而设计。
Kubernetes Port Forward MCP 与 kubectl port-forward
此软件包在标准 kubectl 工作流之上提供 MCP 接口。
kubectl:适用于你已知确切的命名空间/Pod/端口,并且倾向于手动控制的情况。- MCP:适用于由 Agent 发现服务,并通过工具调用启动一个或多个端口转发的情况。
主要功能
- 服务发现:列出命名空间,并根据运行中的 Pod 推断服务(短名称 → 环境 → 命名空间)。
- 单个会话中转发多项服务:一次工具调用即可启动多个端口转发。
- 适合大模型的 API:
start_k8s_port_forward接受一个数组,因此每项服务都可以使用不同的namespace、environment、localPort和remotePort。 - 可选日志:为每项服务在单独的操作系统终端窗口中打开
kubectl logs -f。
目录
要求
- Node.js 18 或更高版本
- 已安装
kubectl,并已配置集群访问权限 - VS Code、Cursor、Windsurf、Claude Desktop、Cline 或任何其他 MCP 客户端
快速开始
- 将此服务添加到你的 MCP 客户端中(使用下方“入门指南”中的配置)。
- 向助手询问:“列出可用的 Kubernetes 服务。”
- 向助手询问:“在本地端口 3002 上运行 api 服务。”
- 打开返回的 URL(例如
http://localhost:3002)。 - 完成后,询问:“停止所有端口转发。”
入门
首先,使用你的客户端安装 Kubernetes Port Forward MCP 服务。
标准配置适用于大多数 MCP 客户端:
{
"mcpServers": {
"k8s-port-forward": {
"command": "npx",
"args": ["-y", "k8s-port-forward-mcp@latest"]
}
}
}
Amp
可通过 Amp VS Code 扩展的设置界面添加,或更新你的 settings.json 文件:
"amp.mcpServers": {
"k8s-port-forward": {
"command": "npx",
"args": [
"-y",
"k8s-port-forward-mcp@latest"
]
}
}
Amp CLI 设置:
通过下面的 amp mcp add 命令添加:
amp mcp add k8s-port-forward -- npx -y k8s-port-forward-mcp@latest
Antigravity
通过 Antigravity 设置添加,或更新你的配置文件:
{
"mcpServers": {
"k8s-port-forward": {
"command": "npx",
"args": ["-y", "k8s-port-forward-mcp@latest"]
}
}
}
Claude Code
使用 Claude Code CLI 添加 Kubernetes Port Forward MCP 服务:
claude mcp add k8s-port-forward npx -y k8s-port-forward-mcp@latest
Claude Desktop
按照 MCP 安装指南操作,并使用上面的标准配置。
Cline
按照配置 MCP 服务一节中的说明操作。
示例:本地设置
将以下内容添加到你的 cline_mcp_settings.json 文件中:
{
"mcpServers": {
"k8s-port-forward": {
"type": "stdio",
"command": "npx",
"timeout": 30,
"args": ["-y", "k8s-port-forward-mcp@latest"],
"disabled": false
}
}
}
Codex
使用 Codex CLI 添加 Kubernetes Port Forward MCP 服务:
codex mcp add k8s-port-forward npx "-y" "k8s-port-forward-mcp@latest"
或者,创建或编辑配置文件 ~/.codex/config.toml 并添加:
[mcp_servers.k8s-port-forward]
command = "npx"
args = ["-y", "k8s-port-forward-mcp@latest"]
有关更多信息,请参阅 Codex MCP 文档。
Copilot
使用 Copilot CLI 以交互方式添加 Kubernetes Port Forward MCP 服务:
/mcp add
或者,创建或编辑配置文件 ~/.copilot/mcp-config.json 并添加:
{
"mcpServers": {
"k8s-port-forward": {
"type": "local",
"command": "npx",
"tools": ["*"],
"args": ["-y", "k8s-port-forward-mcp@latest"]
}
}
}
有关更多信息,请参阅 Copilot CLI 文档。
Cursor
点击按钮进行安装:
或手动安装:
前往 Cursor Settings -> MCP -> Add new MCP Server。名称可自行设定,选择 command 类型,并使用命令 npx -y k8s-port-forward-mcp@latest。你也可以点击 Edit 来验证配置或添加命令参数。
Factory
使用 Factory CLI 添加 Kubernetes Port Forward MCP 服务:
droid mcp add k8s-port-forward "npx -y k8s-port-forward-mcp@latest"
或者,在 Factory droid 中输入 /mcp,打开用于管理 MCP 服务的交互式界面。
有关更多信息,请参阅 Factory MCP 文档。
Gemini CLI
按照 MCP 安装指南操作,并使用上面的标准配置。
Goose
#### 点击按钮进行安装:或手动安装:
前往 Advanced settings -> Extensions -> Add custom extension。名称可自行设置,类型选择 STDIO,并将 command 设置为 npx -y k8s-port-forward-mcp@latest。点击“Add Extension”。
Kiro
按照 MCP 服务文档操作。例如,在 .kiro/settings/mcp.json 中:
{
"mcpServers": {
"k8s-port-forward": {
"command": "npx",
"args": ["-y", "k8s-port-forward-mcp@latest"]
}
}
}
opencode
按照 MCP 服务文档操作。例如,在 ~/.config/opencode/opencode.json 中:
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"k8s-port-forward": {
"type": "local",
"command": ["npx", "-y", "k8s-port-forward-mcp@latest"],
"enabled": true
}
}
}
Qodo Gen
在 VSCode 或 IntelliJ 中打开 Qodo Gen 聊天面板 -> Connect more tools -> + Add new MCP -> 粘贴上面的标准配置。
点击 Save。
VS Code
点击按钮进行安装:
或手动安装:
按照 MCP 安装指南操作,并使用上面的标准配置。你也可以使用 VS Code CLI 安装 Kubernetes Port Forward MCP 服务:
# For VS Code
code --add-mcp '{"name":"k8s-port-forward","command":"npx","args":["-y","k8s-port-forward-mcp@latest"]}'
安装后,即可在 VS Code 中将 Kubernetes Port Forward MCP 服务与 GitHub Copilot Agent 配合使用。
Warp
前往 Settings -> AI -> Manage MCP Servers -> + Add,以添加 MCP 服务。使用上面的标准配置。
或者,在 Warp 提示词中使用斜杠命令 /add-mcp,并粘贴上面的标准配置:
{
"mcpServers": {
"k8s-port-forward": {
"command": "npx",
"args": [
"-y",
"k8s-port-forward-mcp@latest"
]
}
}
}
Windsurf
按照 Windsurf MCP 文档操作。使用上面的标准配置。
示例
快速参考(自然语言 → 工具调用)
-
“在本地端口 3002、3003 上运行 api 和 auth 服务”
→list_k8s_services({})thenstart_k8s_port_forward({ services: [{ serviceName: "api", localPort: 3002 }, { serviceName: "auth", localPort: 3003 }] }) -
“在本地端口 3000 上运行来自 shared services 命名空间的 order 服务”
→start_k8s_port_forward({ services: [{ serviceName: "order", namespace: "shared-services", localPort: 3000 }] }) -
“在本地端口 3000 上运行来自 shared services 命名空间、远程端口为 3000 的 order 服务”
→start_k8s_port_forward({ services: [{ serviceName: "order", namespace: "shared-services", localPort: 3000, remotePort: 3000 }] }) -
“在本地端口 3001 上运行 qa 环境中的 api 服务”
→start_k8s_port_forward({ services: [{ serviceName: "api", environment: "qa", localPort: 3001 }] }) -
“在本地端口 3002 上运行来自 production 命名空间的 prod 环境中的 auth 服务”
→start_k8s_port_forward({ services: [{ serviceName: "auth", environment: "prod", namespace: "production", localPort: 3002 }] }) -
“停止所有端口转发”
→stop_k8s_port_forward({})
详细工作流示例
用户:“在端口 3001 上运行 qa 环境中的 frontend 服务”
AI 工作流:
- 调用
list_k8s_services({}),查找准确的服务名称。 - 收到列表,其中包含例如
frontend: qa (ns: ...), dev (ns: ...)。 - 调用
start_k8s_port_forward({ services: [{ serviceName: "frontend", environment: "qa", localPort: 3001 }] })。 - 结果:端口转发在 MCP 服务进程中运行;如果
includeLogs为 true,日志会在单独的窗口中打开。工具结果包含http://localhost:3001和准确的 kubectl 命令。
工具
服务发现
-
list_k8s_namespaces
- 标题:列出命名空间
- 描述:列出所有可用的 Kubernetes 命名空间。
- 参数:无
- 只读:true
-
list_k8s_services
- 标题:列出服务
- 描述:按简称和环境分组列出可用服务。
- 参数:
namespace(string,可选):将结果筛选到某个命名空间。
- 只读:true
端口转发
-
start_k8s_port_forward
- 标题:启动端口转发
- 描述:为一个或多个服务启动端口转发。
- 参数:
services(array,必填):服务配置列表。serviceName(string,必填):服务简称。(请先调用list_k8s_services。)localPort(number,必填):要绑定的本地端口(1-65535)。namespace(string,可选):目标命名空间。remotePort(number,可选):远程(集群)端口。environment(string,可选):dev|qa|stg|prod。includeLogs(boolean,可选):是否在单独的窗口中打开日志(默认值:true)。
- 只读:false
-
stop_k8s_port_forward
- 标题:停止端口转发
- 描述:停止此 MCP 服务启动的所有活动端口转发进程。
- 参数:无
- 只读:false
验证与调试
由于 MCP 服务会在后台启动实际的 kubectl 进程,你可能需要确认当前正在运行的进程,并查看执行的准确命令。
检查正在运行的 kubectl 进程
Windows(PowerShell):
# List all kubectl processes
tasklist /fi "imagename eq kubectl.exe"
# See the exact commands with process IDs
Get-CimInstance Win32_Process -Filter "Name='kubectl.exe'" | Select-Object ProcessId,CommandLine
Linux/macOS:
# List all kubectl processes
ps aux | grep kubectl
# See the exact commands with process IDs
ps -ef | grep kubectl
这有助于你:
- 确认端口转发确实正在运行
- 查看正在使用的准确命名空间和端口
- 找出可能需要手动终止的卡住进程
- 通过检查实际命令来调试连接问题
常见故障及解决方法
- 端口已被占用:选择另一个本地端口,或停止冲突进程。
- 连接被拒绝:检查服务名称、命名空间和所选环境。
- 没有日志窗口:在端口转发请求中设置
includeLogs: true。 - 进程卡住:按 PID 终止进程(Windows 上使用
taskkill /PID <pid>,Linux/macOS 上使用kill <pid>)。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。