mirror of
https://github.com/kubeshark/kubeshark.git
synced 2026-02-14 18:09:51 +00:00
* Add MCP Registry support with MCPB package format - Update release workflow to create .mcpb artifacts for MCP Registry - Update server.json to use MCPB registry type with GitHub namespace - Use io.github.kubeshark/mcp namespace for GitHub authentication - Add SHA256 placeholders (to be updated after first release) * Add automated MCP Registry publishing to release workflow - Add workflow_dispatch trigger with dry_run option for testing - Add mcp-publish job that runs after release completes - Generate server.json dynamically with correct version and SHA256 hashes - Install and run mcp-publisher automatically - Update static server.json to reference file with placeholders - Add MCP Registry section to README The release workflow now automatically publishes to the MCP Registry when a new version is tagged. No manual steps required. * Refactor: Extract MCP publishing to separate workflow - Create mcp-publish.yml that triggers on release:published - Simplify release.yml to focus on building and releasing - MCP workflow has its own workflow_dispatch for testing - Cleaner separation of concerns * Address PR review feedback - Update actions/checkout to v4 - Add OIDC permissions for MCP Registry authentication - Change trigger from release:published to workflow_call - Release workflow now calls mcp-publish after artifacts are uploaded - Keep workflow_dispatch for manual testing * Add mcp-publisher login step before publish
179 lines
6.4 KiB
JSON
179 lines
6.4 KiB
JSON
{
|
|
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
|
|
"name": "io.github.kubeshark/mcp",
|
|
"displayName": "Kubeshark",
|
|
"description": "Real-time Kubernetes network traffic visibility and API analysis for HTTP, gRPC, Redis, Kafka, DNS.",
|
|
"icon": "https://raw.githubusercontent.com/kubeshark/assets/refs/heads/master/logo/ico/icon.ico",
|
|
"repository": {
|
|
"url": "https://github.com/kubeshark/kubeshark",
|
|
"source": "github"
|
|
},
|
|
"homepage": "https://kubeshark.com",
|
|
"license": "Apache-2.0",
|
|
"version": "AUTO_GENERATED_AT_RELEASE",
|
|
"authors": [
|
|
{
|
|
"name": "Kubeshark",
|
|
"url": "https://kubeshark.com"
|
|
}
|
|
],
|
|
"categories": [
|
|
"kubernetes",
|
|
"networking",
|
|
"observability",
|
|
"debugging",
|
|
"security"
|
|
],
|
|
"_note": "version and packages.fileSha256 are auto-generated at release time by .github/workflows/release.yml",
|
|
"tags": ["kubernetes", "network", "traffic", "api", "http", "grpc", "kafka", "redis", "dns", "pcap", "wireshark", "tcpdump", "observability", "debugging", "microservices"],
|
|
"packages": [
|
|
{
|
|
"registryType": "mcpb",
|
|
"identifier": "https://github.com/kubeshark/kubeshark/releases/download/vX.Y.Z/kubeshark-mcp_darwin_arm64.mcpb",
|
|
"fileSha256": "AUTO_GENERATED",
|
|
"transport": { "type": "stdio" }
|
|
},
|
|
{
|
|
"registryType": "mcpb",
|
|
"identifier": "https://github.com/kubeshark/kubeshark/releases/download/vX.Y.Z/kubeshark-mcp_darwin_amd64.mcpb",
|
|
"fileSha256": "AUTO_GENERATED",
|
|
"transport": { "type": "stdio" }
|
|
},
|
|
{
|
|
"registryType": "mcpb",
|
|
"identifier": "https://github.com/kubeshark/kubeshark/releases/download/vX.Y.Z/kubeshark-mcp_linux_arm64.mcpb",
|
|
"fileSha256": "AUTO_GENERATED",
|
|
"transport": { "type": "stdio" }
|
|
},
|
|
{
|
|
"registryType": "mcpb",
|
|
"identifier": "https://github.com/kubeshark/kubeshark/releases/download/vX.Y.Z/kubeshark-mcp_linux_amd64.mcpb",
|
|
"fileSha256": "AUTO_GENERATED",
|
|
"transport": { "type": "stdio" }
|
|
},
|
|
{
|
|
"registryType": "mcpb",
|
|
"identifier": "https://github.com/kubeshark/kubeshark/releases/download/vX.Y.Z/kubeshark-mcp_windows_amd64.mcpb",
|
|
"fileSha256": "AUTO_GENERATED",
|
|
"transport": { "type": "stdio" }
|
|
}
|
|
],
|
|
"tools": [
|
|
{
|
|
"name": "check_kubeshark_status",
|
|
"description": "Check if Kubeshark is currently running in the cluster. Read-only operation.",
|
|
"mode": "proxy"
|
|
},
|
|
{
|
|
"name": "start_kubeshark",
|
|
"description": "Deploy Kubeshark to the Kubernetes cluster. Requires --allow-destructive flag.",
|
|
"mode": "proxy",
|
|
"destructive": true
|
|
},
|
|
{
|
|
"name": "stop_kubeshark",
|
|
"description": "Remove Kubeshark from the Kubernetes cluster. Requires --allow-destructive flag.",
|
|
"mode": "proxy",
|
|
"destructive": true
|
|
},
|
|
{
|
|
"name": "list_workloads",
|
|
"description": "List pods, services, namespaces, and nodes with observed L7 traffic.",
|
|
"mode": "all"
|
|
},
|
|
{
|
|
"name": "list_api_calls",
|
|
"description": "Query L7 API transactions (HTTP, gRPC, Redis, Kafka, DNS) with KFL filtering.",
|
|
"mode": "all"
|
|
},
|
|
{
|
|
"name": "get_api_call",
|
|
"description": "Get detailed information about a specific API call including headers and body.",
|
|
"mode": "all"
|
|
},
|
|
{
|
|
"name": "get_api_stats",
|
|
"description": "Get aggregated API statistics and metrics.",
|
|
"mode": "all"
|
|
},
|
|
{
|
|
"name": "list_l4_flows",
|
|
"description": "List L4 (TCP/UDP) network flows with traffic statistics.",
|
|
"mode": "all"
|
|
},
|
|
{
|
|
"name": "get_l4_flow_summary",
|
|
"description": "Get L4 connectivity summary including top talkers and cross-namespace traffic.",
|
|
"mode": "all"
|
|
},
|
|
{
|
|
"name": "list_snapshots",
|
|
"description": "List all PCAP snapshots.",
|
|
"mode": "all"
|
|
},
|
|
{
|
|
"name": "create_snapshot",
|
|
"description": "Create a new PCAP snapshot of captured traffic.",
|
|
"mode": "all"
|
|
},
|
|
{
|
|
"name": "get_dissection_status",
|
|
"description": "Check L7 protocol parsing status.",
|
|
"mode": "all"
|
|
},
|
|
{
|
|
"name": "enable_dissection",
|
|
"description": "Enable L7 protocol dissection.",
|
|
"mode": "all"
|
|
},
|
|
{
|
|
"name": "disable_dissection",
|
|
"description": "Disable L7 protocol dissection.",
|
|
"mode": "all"
|
|
}
|
|
],
|
|
"prompts": [
|
|
{ "name": "analyze_traffic", "description": "Analyze API traffic patterns and identify issues" },
|
|
{ "name": "find_errors", "description": "Find and summarize API errors and failures" },
|
|
{ "name": "trace_request", "description": "Trace a request path through microservices" },
|
|
{ "name": "show_topology", "description": "Show service communication topology" },
|
|
{ "name": "latency_analysis", "description": "Analyze latency patterns and identify slow endpoints" },
|
|
{ "name": "security_audit", "description": "Audit traffic for security concerns" },
|
|
{ "name": "compare_traffic", "description": "Compare traffic patterns between time periods" },
|
|
{ "name": "debug_connection", "description": "Debug connectivity issues between services" }
|
|
],
|
|
"configuration": {
|
|
"properties": {
|
|
"url": {
|
|
"type": "string",
|
|
"description": "Direct URL to Kubeshark Hub (e.g., https://kubeshark.example.com). When set, connects directly without kubectl/proxy.",
|
|
"examples": ["https://kubeshark.example.com", "http://localhost:8899"]
|
|
},
|
|
"kubeconfig": {
|
|
"type": "string",
|
|
"description": "Path to kubeconfig file for proxy mode.",
|
|
"examples": ["~/.kube/config", "/path/to/.kube/config"]
|
|
},
|
|
"allow-destructive": {
|
|
"type": "boolean",
|
|
"description": "Enable destructive operations (start_kubeshark, stop_kubeshark). Default: false for safety.",
|
|
"default": false
|
|
}
|
|
}
|
|
},
|
|
"modes": {
|
|
"url": {
|
|
"description": "Connect directly to an existing Kubeshark deployment via URL. Cluster management tools are disabled.",
|
|
"args": ["mcp", "--url", "${url}"]
|
|
},
|
|
"proxy": {
|
|
"description": "Connect via kubectl port-forward. Requires kubeconfig access to the cluster.",
|
|
"args": ["mcp", "--kubeconfig", "${kubeconfig}"]
|
|
},
|
|
"proxy-destructive": {
|
|
"description": "Proxy mode with destructive operations enabled.",
|
|
"args": ["mcp", "--kubeconfig", "${kubeconfig}", "--allow-destructive"]
|
|
}
|
|
}
|
|
}
|