Kubeshark MCP Server
ทางการการเข้าถึง MCP สำหรับการรับส่งข้อมูลเครือข่าย L4 และ L7 ทั่วทั้งคลัสเตอร์ แพ็กเก็ต API และเพย์โหลดที่สมบูรณ์
เอกสาร
Kubeshark MCP Server
Kubeshark MCP (Model Context Protocol) เซิร์ฟเวอร์ช่วยให้ผู้ช่วย AI อย่าง Claude Desktop, Cursor และไคลเอนต์ที่รองรับ MCP อื่นๆ สามารถสืบค้นทราฟฟิกเครือข่าย Kubernetes แบบเรียลไทม์ได้
ทักษะ AI
MCP มอบเครื่องมือ — ทักษะ AI สอนให้เอเจนต์รู้วิธีใช้งาน ทักษะเปลี่ยนความสามารถ MCP ดิบๆ ให้กลายเป็นเวิร์กโฟลว์เฉพาะโดเมน เช่น การวิเคราะห์สาเหตุหลัก การกรองทราฟฟิก และการสืบสวนทางนิติวิทยาศาสตร์ ดู skills README สำหรับการติดตั้งและการใช้งาน
| ทักษะ | คำอธิบาย |
|---|---|
network-rca | การวิเคราะห์สาเหตุหลักของเครือข่าย — การสืบสวนย้อนหลังแบบอิงสแนปช็อตด้วยเส้นทาง PCAP และการแยกส่วน |
kfl | ผู้เชี่ยวชาญตัวกรอง KFL2 — เขียน แก้ไขจุดบกพร่อง และปรับแต่งการสืบค้นทราฟฟิกในทุกโปรโตคอลที่รองรับ |
คุณสมบัติ
- การวิเคราะห์ทราฟฟิก L7 API: สืบค้นธุรกรรม HTTP, gRPC, Redis, Kafka, DNS
- โฟลว์เครือข่าย L4: ดูโฟลว์ TCP/UDP พร้อมสถิติทราฟฟิก
- การจัดการคลัสเตอร์: เริ่ม/หยุดการปรับใช้ Kubeshark (พร้อมการควบคุมความปลอดภัย)
- สแนปช็อต PCAP: สร้างและส่งออกการจับข้อมูลเครือข่าย
- พรอมต์ในตัว: พรอมต์ที่กำหนดค่าไว้ล่วงหน้าสำหรับงานวิเคราะห์ทั่วไป
การติดตั้ง
1. ติดตั้ง Kubeshark CLI
# macOS
brew install kubeshark
# Linux
sh <(curl -Ls https://kubeshark.com/install)
# Windows (PowerShell)
choco install kubeshark
หรือดาวน์โหลดจาก GitHub Releases
2. กำหนดค่า Claude Desktop
เพิ่มลงในการกำหนดค่า Claude Desktop ของคุณ:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
ค่าเริ่มต้น (ต้องมีการเข้าถึง kubectl / บริบท kube)
{
"mcpServers": {
"kubeshark": {
"command": "kubeshark",
"args": ["mcp"]
}
}
}
ด้วยพาธ kubeconfig ที่ระบุอย่างชัดเจน:
{
"mcpServers": {
"kubeshark": {
"command": "kubeshark",
"args": ["mcp", "--kubeconfig", "/path/to/.kube/config"]
}
}
}
โหมด URL (ไม่ต้องใช้ kubectl)
ใช้เมื่อเครื่องไม่มีการเข้าถึง kubectl หรือบริบท kube เชื่อมต่อโดยตรงกับการปรับใช้ Kubeshark ที่มีอยู่:
{
"mcpServers": {
"kubeshark": {
"command": "kubeshark",
"args": ["mcp", "--url", "https://kubeshark.example.com"]
}
}
}
พร้อมการดำเนินการทำลายล้าง
{
"mcpServers": {
"kubeshark": {
"command": "kubeshark",
"args": ["mcp", "--allow-destructive", "--kubeconfig", "/path/to/.kube/config"]
}
}
}
3. สร้างการกำหนดค่า
ใช้ CLI เพื่อสร้างการกำหนดค่า:
kubeshark mcp --mcp-config --url https://kubeshark.example.com
เครื่องมือที่พร้อมใช้งาน
การวิเคราะห์ทราฟฟิก (ทุกโหมด)
| เครื่องมือ | คำอธิบาย |
|---|---|
list_workloads | แสดงรายการพ็อด บริการ เนมสเปซที่มีทราฟฟิกที่สังเกตได้ |
list_api_calls | สืบค้นธุรกรรม L7 API ด้วยการกรอง KFL |
get_api_call | รับข้อมูลโดยละเอียดเกี่ยวกับการเรียก API เฉพาะ |
get_api_stats | รับสถิติ API แบบรวม |
list_l4_flows | แสดงรายการโฟลว์เครือข่าย L4 (TCP/UDP) |
get_l4_flow_summary | รับสรุปการเชื่อมต่อ L4 |
list_snapshots | แสดงรายการสแนปช็อต PCAP ทั้งหมด |
create_snapshot | สร้างสแนปช็อต PCAP ใหม่ |
get_dissection_status | ตรวจสอบสถานะการแยกวิเคราะห์โปรโตคอล L7 |
enable_dissection | เปิดใช้งานการแยกส่วนโปรโตคอล L7 |
disable_dissection | ปิดใช้งานการแยกส่วนโปรโตคอล L7 |
การจัดการคลัสเตอร์ (โหมดพร็อกซีเท่านั้น)
| เครื่องมือ | คำอธิบาย | ต้องการ |
|---|---|---|
check_kubeshark_status | ตรวจสอบว่า Kubeshark กำลังทำงานอยู่หรือไม่ | - |
start_kubeshark | ปรับใช้ Kubeshark กับคลัสเตอร์ | --allow-destructive |
stop_kubeshark | ลบ Kubeshark ออกจากคลัสเตอร์ | --allow-destructive |
พรอมต์ที่พร้อมใช้งาน
| พรอมต์ | คำอธิบาย |
|---|---|
analyze_traffic | วิเคราะห์รูปแบบทราฟฟิก API และระบุปัญหา |
find_errors | ค้นหาและสรุปข้อผิดพลาดและความล้มเหลวของ API |
trace_request | ติดตามเส้นทางคำขอผ่านไมโครเซอร์วิส |
show_topology | แสดงโทโพโลยีการสื่อสารของบริการ |
latency_analysis | วิเคราะห์รูปแบบเวลาแฝงและระบุปลายทางที่ช้า |
security_audit | ตรวจสอบทราฟฟิกเพื่อหาข้อกังวลด้านความปลอดภัย |
compare_traffic | เปรียบเทียบรูปแบบทราฟฟิกระหว่างช่วงเวลา |
debug_connection | แก้ไขจุดบกพร่องปัญหาการเชื่อมต่อระหว่างบริการ |
ตัวอย่างการสนทนา
User: Show me all HTTP 500 errors in the last hour
Claude: I'll query the API traffic for 500 errors.
[Calling list_api_calls with kfl="http and response.status == 500"]
Found 12 HTTP 500 errors:
1. POST /api/checkout -> payment-service (500)
Time: 10:23:45 | Latency: 2340ms
...
User: What services are communicating with the database?
Claude: Let me check the L4 flows to the database.
[Calling list_l4_flows with dst_filter="postgres"]
Found 5 services connecting to postgres:5432:
- orders-service: 456KB transferred
- users-service: 123KB transferred
...
ตัวเลือก CLI
| ตัวเลือก | คำอธิบาย |
|---|---|
--url | URL โดยตรงไปยัง Kubeshark Hub |
--kubeconfig | พาธไปยังไฟล์ kubeconfig |
--allow-destructive | เปิดใช้งานการดำเนินการเริ่ม/หยุด |
--list-tools | แสดงรายการเครื่องมือที่พร้อมใช้งานและออก |
--mcp-config | พิมพ์ JSON การกำหนดค่า Claude Desktop |
KFL (Kubeshark Filter Language)
สืบค้นทราฟฟิกโดยใช้ไวยากรณ์ KFL:
# HTTP requests to a specific path
http and request.path == "/api/users"
# Errors only
response.status >= 400
# Specific source pod
src.pod.name == "frontend-.*"
# Multiple conditions
http and src.namespace == "default" and response.status == 500
MCP Registry
Kubeshark ถูกเผยแพร่ไปยัง MCP Registry โดยอัตโนมัติในทุกการเผยแพร่
server.json ในไดเรกทอรีนี้เป็นไฟล์อ้างอิง ข้อมูลเมตาของรีจิสทรีจริง (เวอร์ชัน, แฮช SHA256) ถูกสร้างขึ้นโดยอัตโนมัติระหว่างเวิร์กโฟลว์การเผยแพร่ ดู .github/workflows/release.yml สำหรับรายละเอียด
ลิงก์
ใบอนุญาต
Apache-2.0