Discover how Metoro MCP enables AI integration with Kubernetes clusters via the Model Context Protocol
The Metoro MCP (Model Context Protocol) Server allows you to interact with your Kubernetes cluster through the Claude Desktop App, enabling seamless integration between AI applications like Claude Desktop and external data sources and tools. This repository contains a Golang-based implementation of the MCP protocol, which provides a standardized way for large language models (LLMs) to query metadata about your Kubernetes environment directly from within an LLM application.
Metoro is an observability platform designed for microservices running in Kubernetes. It uses eBPF based instrumentation to generate deep telemetry without code changes and sends this data to its backend, where it can be visualized using the Metoro frontend. The MCP server exposes these APIs to LLMs, allowing them to ask questions about your cluster topology, pods, services, and other metadata stored in the Metoro platform.
The Metoro MCP Server supports a wide range of capabilities that are essential for seamlessly integrating with AI applications. Key features include:
Below is a Mermaid diagram illustrating the flow of data between the AI application and the server:
graph TD
A[AI Application] -->|MCP Client| B[MCP Protocol]
B --> C[MCP Server]
C --> D[Data Source/Tool]
style A fill:#e1f5fe
style C fill:#f3e5f5
style D fill:#e8f5e8
The Metoro MCP architecture is built on top of the Golang MCP SDK, ensuring compatibility and robustness. The protocol implementation follows best practices for efficiency and safety, with a particular focus on secure authentication and data integrity.
Here's the current compatibility matrix for different MCP clients:
MCP Client | Resources | Tools | Prompts | Status |
---|---|---|---|---|
Claude Desktop | ✅ | ✅ | ✅ | Full Support |
Continue | ✅ | ✅ | ✅ | Full Support |
Cursor | ❌ | ✅ | ❌ | Tools Only |
Getting started with the Metoro MCP Server involves several steps:
brew install go
(macOS) or sudo apt-get install golang
(Ubuntu).git clone https://github.com/metoro-io/metoro-mcp-server.git
.cd metoro-mcp-server
.go build -o metoro-mcp-server
.If you already have a Metoro account:
claude_desktop_config.json
in ~/Library/Application Support/Claude/
with the following content:{
"mcpServers": {
"metoro-mcp-server": {
"command": "<path-to-executable>/metoro-mcp-server",
"args": [],
"env": {
"METORO_AUTH_TOKEN" : "<your auth token>",
"METORO_API_URL": "https://us-east.metoro.io"
}
}
}
}
If you do not have a Metoro account, you can still explore the live demo environment:
claude_desktop_config.json
in the same directory with the following content:{
"mcpServers": {
"metoro-mcp-server": {
"command": "<path-to-executable>/metoro-mcp-server",
"args": [],
"env": {
"METORO_AUTH_TOKEN" : "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjdXN0b21lcklkIjoiOThlZDU1M2QtYzY4ZC00MDRhLWFhZjItNDM2ODllNWJiMGUzIiwiZW1haWwiOiJ0ZXN0QGNocmlzYmF0dGFyYmVlLmNvbSIsImV4cCI6MTgyMTI0NzIzN30.7G6alDpcZh_OThYj293Jce5rjeOBqAhOlANR_Fl5auw",
"METORO_API_URL": "https://demo.us-east.metoro.io"
}
}
}
}
Imagine a scenario where an LLM is queried about current resource usage across multiple pods. The MCP Server pulls this data from Metoro's eBPF-generated telemetry and presents it in JSON format to the LLM, allowing it to make informed decisions.
package main
import (
"fmt"
"log"
mcp "github.com/metoro-io/mcp-golang"
)
func main() {
// Connect to MCP Server
client := mcp.NewClient("metoro-mcp-server", "https://us-east.metoro.io")
if err := client.Login("<your auth token>"); err != nil {
log.Fatalf("Failed to login: %v", err)
}
resp, err := client.QueryJSON("/api/v1/pods/usage")
if err != nil {
log.Fatalf("Failed to query data: %v", err)
}
fmt.Printf("Current usage: %+v\n", resp)
}
Another typical use case involves setting up an alert when a pod's CPU usage exceeds a certain threshold. The MCP Server listens for such conditions, generates alerts, and sends notifications to relevant stakeholders.
package main
import (
"log"
mcp "github.com/metoro-io/mcp-golang"
)
func main() {
// Connect to MCP Server and set up monitoring
client := mcp.NewClient("metoro-mcp-server", "https://us-east.metoro.io")
if err := client.Login("<your auth token>"); err != nil {
log.Fatalf("Failed to login: %v", err)
}
// Start monitoring for high CPU usage events
alerts, err := client.SubscribeEvents("/api/v1/pods/usage/cpu_threshold:high")
if err != nil {
log.Fatalf("Failed to subscribe: %v", err)
}
for alert := range alerts {
log.Printf("Alert received: %+v\n", alert)
}
}
The Metoro MCP Server is compatible with several LLM clients:
The performance of the Metoro MCP Server is tested against various Kubernetes environments and LLM clients to ensure reliability. The compatibility matrix highlights areas where specific tools or resources may require additional configuration.
In this setup, real-time monitoring of deployment statuses and pod health is critical. MCP integration allows operations teams to respond quickly to alerts generated by the Metoro platform, ensuring minimal downtime.
Developers can use custom prompts to build sophisticated applications that leverage Kubernetes metadata in real time. These prompts facilitate quicker development cycles and more robust application performance monitoring.
By following these guidelines and insights, users can effectively leverage the Metoro MCP Server to enhance their Kubernetes management through advanced LLM capabilities integrated into their workflow processes.
RuinedFooocus is a local AI image generator and chatbot image server for seamless creative control
Simplify MySQL queries with Java-based MysqlMcpServer for easy standard input-output communication
Access NASA APIs for space data, images, asteroids, weather, and exoplanets via MCP integration
Build stunning one-page websites track engagement create QR codes monetize content easily with Acalytica
Learn to set up MCP Airflow Database server for efficient database interactions and querying airflow data
Explore CoRT MCP server for advanced self-arguing AI with multi-LLM inference and enhanced evaluation methods