k8sgpt/pkg/server
Umesh Kaul 3a1187ad5a
feat: add streamable-http support for MCP server (#1546)
* use mcp library to support streamable http and fix resourceResponse

Signed-off-by: Umesh Kaul <umeshkaul@gmail.com>

* added name and version for mcp server

Signed-off-by: Umesh Kaul <umeshkaul@gmail.com>

* added tests

Signed-off-by: Umesh Kaul <umeshkaul@gmail.com>

* chore: fixed linter

Signed-off-by: AlexsJones <alexsimonjones@gmail.com>

* fixed linter issues in server_test.go

Signed-off-by: Umesh Kaul <umeshkaul@gmail.com>

---------

Signed-off-by: Umesh Kaul <umeshkaul@gmail.com>
Signed-off-by: AlexsJones <alexsimonjones@gmail.com>
Co-authored-by: AlexsJones <alexsimonjones@gmail.com>
2025-07-18 15:14:54 +01:00
..
analyze fix: prevent npe by handling checking error in NewAnalysis call (#1365) 2025-01-31 14:26:35 +00:00
client_example feat: add MCP support (#1471) 2025-04-29 09:22:44 +01:00
config feat: add MCP support (#1471) 2025-04-29 09:22:44 +01:00
example feat: add MCP support (#1471) 2025-04-29 09:22:44 +01:00
query fix: config ai provider in query (#1457) 2025-04-15 11:11:40 +01:00
log.go
mcp.go feat: add streamable-http support for MCP server (#1546) 2025-07-18 15:14:54 +01:00
README.md feat: add MCP support (#1471) 2025-04-29 09:22:44 +01:00
server_test.go feat: add streamable-http support for MCP server (#1546) 2025-07-18 15:14:54 +01:00
server.go fix: [Bug] Make lint command is not working (#1282) 2024-10-30 10:49:44 +00:00

K8sGPT MCP Server

This directory contains the implementation of the Mission Control Protocol (MCP) server for K8sGPT. The MCP server allows K8sGPT to be integrated with other tools that support the MCP protocol.

Components

  • mcp.go: The main MCP server implementation
  • server.go: The HTTP server implementation
  • tools.go: Tool definitions for the MCP server

Features

The MCP server provides the following features:

  1. Analyze Kubernetes Resources: Analyze Kubernetes resources in a cluster
  2. Get Cluster Information: Retrieve information about the Kubernetes cluster

Usage

To use the MCP server, you need to:

  1. Initialize the MCP server with a Kubernetes client
  2. Start the server
  3. Connect to the server using an MCP client

Example:

client, err := kubernetes.NewForConfig(config)
if err != nil {
    log.Fatalf("Failed to create Kubernetes client: %v", err)
}

mcpServer := server.NewMCPServer(client)
if err := mcpServer.Start(); err != nil {
    log.Fatalf("Failed to start MCP server: %v", err)
}

Integration

The MCP server can be integrated with other tools that support the MCP protocol, such as:

  • Mission Control
  • Other MCP-compatible tools

License

This code is licensed under the Apache License 2.0.