Kubernetes Port Forward – Mcp Server について
Kubernetes のサービス検出と kubectl のポートフォワード管理を、MCP クライアントや LLM 向けに提供します。1 回の呼び出しで複数サービスを転送でき、ログ用の別ウィンドウも任意で開けます。
主な機能
- 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
Kubernetes サービスの検出と、kubectl port-forward セッションの実行(必要に応じて個別のログウィンドウを使用)を行うツールを提供する Model Context Protocol(MCP)サーバーです。自然言語を構造化されたツール呼び出しに変換する MCP クライアント/LLM 向けに設計されています。
Kubernetes Port Forward MCP と kubectl port-forward の比較
このパッケージは、標準的な kubectl のワークフローに MCP インターフェース を提供します。
kubectl:namespace/pod/ポートがすでに正確にわかっていて、手動で制御したい場合に最適です。- MCP:エージェントがサービスを検出し、ツール呼び出しで 1 つまたは複数のポートフォワードを実行する場合に最適です。
主な機能
- サービスの検出:namespace を一覧表示し、実行中の pod からサービス(短い名前 → 環境 → namespace)を推測します。
- 1 つのセッションで複数のサービスを利用:1 回のツール呼び出しで複数のポートフォワードを開始します。
- LLM に使いやすい API:
start_k8s_port_forwardは配列を受け取るため、サービスごとに異なるnamespace、environment、localPort、remotePortを指定できます。 - ログ出力(任意):サービスごとに、OS レベルの別のターミナルウィンドウで
kubectl logs -fを開きます。
目次
要件
- Node.js 18 以降
- インストール済みで、クラスターへのアクセスが設定された
kubectl - VS Code、Cursor、Windsurf、Claude Desktop、Cline、またはその他の MCP クライアント
クイックスタート
- このサーバーを MCP クライアントに追加します(下記の「はじめに」にある設定を使用してください)。
- アシスタントに「利用可能な Kubernetes サービスを一覧表示して」と依頼します。
- アシスタントに「api サービスをローカルポート 3002 で実行して」と依頼します。
- 返された 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 サーバーを管理するための対話型 UI が開きます。
詳しくは、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"]
}
}
}
LM Studio
ボタンをクリックしてインストール:
または手動でインストール:
右サイドバーの Program -> Install -> Edit mcp.json に移動します。上記の標準設定を使用してください。
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 で GitHub Copilot エージェントとともに Kubernetes Port Forward MCP サーバーを利用できるようになります。
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 のドキュメントに従ってください。上記の標準設定を使用してください。
使用例
クイックリファレンス(自然言語 → ツール呼び出し)
-
「api と auth サービスをローカルポート 3002、3003 で実行」
→list_k8s_services({})thenstart_k8s_port_forward({ services: [{ serviceName: "api", localPort: 3002 }, { serviceName: "auth", localPort: 3003 }] }) -
「shared services 名前空間の order サービスをローカルポート 3000 で実行」
→start_k8s_port_forward({ services: [{ serviceName: "order", namespace: "shared-services", localPort: 3000 }] }) -
「shared services 名前空間の order サービスをリモートポート 3000、ローカルポート 3000 で実行」
→start_k8s_port_forward({ services: [{ serviceName: "order", namespace: "shared-services", localPort: 3000, remotePort: 3000 }] }) -
「qa 環境の api サービスをローカルポート 3001 で実行」
→start_k8s_port_forward({ services: [{ serviceName: "api", environment: "qa", localPort: 3001 }] }) -
「production 名前空間の prod 環境にある auth サービスをローカルポート 3002 で実行」
→start_k8s_port_forward({ services: [{ serviceName: "auth", environment: "prod", namespace: "production", localPort: 3002 }] }) -
「すべてのポートフォワードを停止」
→stop_k8s_port_forward({})
詳細なワークフローの例
ユーザー:"qa 環境の frontend サービスをポート 3001 で実行"
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
- タイトル:ポートフォワードの開始
- 説明:1 つ以上のサービスのポートフォワーディングを開始します。
- パラメーター:
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 サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。