A universal control plane for managing MCP servers and providing intelligent tool discovery for AI agents.
In German, Muster means "pattern" or "sample." This project provides the building blocks for AI agents to discover patterns and collect samples from any digital environment. It gives them a universal protocol to interact with the world.
Muster is a universal control plane built on the Model Context Protocol (MCP) that solves the MCP server management problem for platform engineers and AI agents.
As a platform engineer, you interact with countless services: Kubernetes, Prometheus, Grafana, Flux, ArgoCD, cloud providers, and custom tooling. While tools like Terraform and Kubernetes operators provide unified orchestration interfaces, debugging and monitoring still requires jumping between different tools and contexts.
The MCP Revolution: LLM agents (in VSCode, Cursor, etc.) + MCP servers should solve this by giving agents direct access to your tools. There are already many excellent MCP servers available (Kubernetes, Prometheus, Grafana, Flux, etc.).
But there's a problem:
Muster solves this by creating a meta-MCP server that manages all your MCP servers and provides your agent with intelligent tool discovery capabilities.
muster serve
starts the control plane that manages your MCP server processesmuster agent
as an MCP server in your IDElist_tools
, filter_tools
, call_tool
graph TD
subgraph "Your IDE (VSCode/Cursor)"
Agent["š¤ AI Agent"]
IDE["IDE MCP Config"]
end
subgraph "Muster Control Plane"
MusterAgent["šÆ muster agent<br/>(Meta-MCP Server)"]
MusterServe["āļø muster serve<br/>(Process Manager)"]
subgraph "Managed MCP Servers"
K8s["š· Kubernetes<br/>(kubectl, helm)"]
Prom["š Prometheus<br/>(metrics, alerts)"]
Grafana["š Grafana<br/>(dashboards)"]
Flux["š Flux<br/>(GitOps)"]
end
end
Agent <-->|"MCP Protocol"| MusterAgent
MusterAgent <--> MusterServe
MusterServe <--> K8s
MusterServe <--> Prom
MusterServe <--> Grafana
MusterServe <--> Flux
Your agent can now:
# Discover available tools dynamically
agent: "What Kubernetes tools are available?"
ā filter_tools(pattern="kubernetes")
# Find the right tool for the task
agent: "I need to check pod logs"
ā filter_tools(description="logs")
# Execute tools on-demand
agent: "Show me failing pods in default namespace"
ā call_tool(name="x_kubernetes_get_pods", args={"namespace": "default", "status": "failed"})
localCommand
) or containerized (container
) (coming soon!)--yolo
)Once your agent discovers how to complete a task, persist it as a workflow:
name: debug-failing-pods
steps:
- id: find-pods
tool: x_kubernetes_get_pods
args:
namespace: "{{ .namespace }}"
status: "failed"
- id: get-logs
tool: x_kubernetes_get_logs
args:
pod: "{{ steps.find-pods.podName }}"
lines: 100
Benefits:
Many MCP servers need setup (port-forwarding, authentication, etc.). ServiceClasses define these prerequisites:
name: prometheus-access
startTool: x_kubernetes_port_forward
args:
service: "prometheus-server"
namespace: "monitoring"
localPort: 9090
healthCheck:
url: "http://localhost:9090/api/v1/status"
Complete Integration Example:
git clone https://github.com/giantswarm/muster.git
cd muster && go build .
Create kubernetes-server.yaml
:
apiVersion: muster.io/v1
kind: MCPServer
name: kubernetes
spec:
type: localCommand
command: ["mcp-kubernetes"]
autoStart: true
Register it:
./muster create mcpserver kubernetes.yaml
Configure your IDE to use Muster's agent as an MCP server:
Cursor/VSCode settings.json:
{
"mcpServers": {
"muster": {
"command": "muster",
"args": ["standalone"]
}
}
}
Your agent now has meta-capabilities:
list_tools
: Show all available toolsfilter_tools
: Find tools by name/descriptiondescribe_tool
: Get detailed tool informationcall_tool
: Execute any tool dynamicallyServiceClass for cluster access
name: cluster-login
version: "1.0.0"
serviceConfig:
serviceType: "auth"
args:
cluster:
type: "string"
required: true
lifecycleTools:
start: { tool: "x_teleport_kube_login" }
Workflow to compare pods on two clusters
# Workflow for cross-cluster investigation
name: compare-pod-on-staging-prod
input_schema:
type: "object"
properties:
namespace: { type: "string" }
pod: { type: "string" }
required: ["namespace", "pod"]
steps:
- id: staging-context
tool: core_service_create
args:
serviceClassName: "cluster-login"
name: "staging-context"
params:
cluster: "staging"
- id: prod-context
tool: core_service_create
args:
serviceClassName: "cluster-login"
name: "staging-context"
params:
cluster: "production"
- id: wait-for-step
- id: compare-resources
tool: workflow_compare_pods_on_clusters
args:
# Prometheus access with port-forwarding
name: prometheus-tunnel
startTool: k8s_port_forward
args:
service: "prometheus-server"
localPort: 9090
---
# Grafana dashboard access
name: grafana-tunnel
startTool: k8s_port_forward
args:
service: "grafana"
localPort: 3000
---
# Complete monitoring workflow
name: investigation-setup
steps:
- id: setup-prometheus
serviceClass: prometheus-tunnel
- id: setup-grafana
serviceClass: grafana-tunnel
- id: configure-prometheus-mcp
tool: core_mcpserver_create
args:
name: "prometheus"
type: "localCommand"
command: ["mcp-server-prometheus"]
env:
PROMETHEUS_URL: "http://localhost:9090"
Muster is a Giant Swarm project, built to empower platform engineers and AI agents with intelligent infrastructure control.
Manage your Storyblok CMS using natural language through AI tools.
A starter project for building MCP servers with TypeScript and Bun.
Enables AI assistants to use a Neo4j knowledge graph for standardized coding workflows, acting as a dynamic instruction manual and project memory.
Manage DDEV projects, enabling LLM applications to interact with local development environments through the MCP protocol.
A Node.js project demonstrating MCP client and server interactions for tool poisoning attacks, requiring an Anthropic API key.
Flag features, manage company data, and control feature access using Bucket.
A server for processing semantic embeddings, requiring external data files mounted via a Docker volume.
Interact with your MLOps and LLMOps pipelines through your ZenML MCP server
A comprehensive toolkit for AI-driven development, offering file system operations, code analysis, execution, web searching, and system information retrieval.
An MCP server offering PureScript development tools for AI assistants. Requires Node.js and the PureScript compiler for full functionality.