
Lumino MCP Server
io.github.georedPublished by GitHub account georedv0.9.2Updated Oct 24, 2026
AI-powered SRE observability for Kubernetes/OpenShift with 40+ Tekton debugging tools
Overview
Lets an assistant inspect Kubernetes and OpenShift clusters, debug Tekton pipelines, and analyze logs, events, and certificates.
- What you can do
- Lumino exposes 40+ tools for cluster operations: listing namespaces and pods, querying arbitrary Kubernetes resources, label-based search, and archived-resource lookup. It covers Tekton CI/CD with PipelineRun and TaskRun listing, log retrieval, failure root-cause analysis, and cross-cluster pipeline tracing. Additional tools summarize and semantically search logs, detect anomalies, analyze events, forecast resource bottlenecks, check certificate expiry, and simulate configuration changes.
- When to use it
- Useful for SRE and platform work where an assistant should investigate cluster health, triage failed pipelines, or explain incidents from logs and events. Best when you already have kubectl or oc access and want read-oriented diagnostics rather than cluster administration.
- Requirements
- Runs locally over stdio as a Python package (Python 3.10+; uvx or pip install). Needs a valid kubeconfig with read permissions, supplied via the KUBECONFIG environment variable or the default kubeconfig path. Optional Prometheus or Thanos endpoints and tokens enable metrics and forecasting; optional KubeArchive enables historical queries.
Installation
In SourceWeft
- Open Lumino MCP Server in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
LUMINO MCP Server
[License] [Python] [MCP] [PyPI]
An open source MCP (Model Context Protocol) server empowering SREs with intelligent observability, predictive analytics, and AI-driven automation across Kubernetes, OpenShift, and Tekton environments.
Table of Contents
- Overview
- Features
- Quick Start
- Team Onboarding Guide
- Prerequisites
- Installation
- Usage Examples
- Configuration
- ML Model Persistence
- KubeArchive Integration
- Prometheus/Thanos Integration
- Available Tools
- Architecture
- How It Works
- MCP Client Integration
- Performance Considerations
- Troubleshooting
- Dependencies
- Contributing
- Security
- License
- Acknowledgments
Team Onboarding Guide
New to the SPRE MCP diagnostics stack (Lumino, PagerDuty, Slack, DevLake, ngit-memory, GitHub, GitLab, Konflux Portal, Sumo Logic, Jira)? Start here:
- docs/ONBOARDING_GUIDE.md — setup, first diagnostic, troubleshooting, three worked examples, and expected tool outputs
Overview
LUMINO MCP Server transforms how Site Reliability Engineers (SREs) and DevOps teams interact with Kubernetes clusters. By exposing 39 specialized tools through the Model Context Protocol, it enables AI assistants to:
- Monitor cluster health, resources, and pipeline status in real-time
- Analyze logs, events, and anomalies using statistical and ML techniques
- Troubleshoot failed pipelines with automated root cause analysis
- Predict resource bottlenecks and potential issues before they occur
- Simulate configuration changes to assess impact before deployment
Features
Kubernetes & OpenShift Operations
- Namespace and pod management
- Resource querying with flexible output formats
- Label-based resource search across clusters
- OpenShift operator and MachineConfigPool status
- etcd log analysis
Tekton Pipeline Intelligence
- Pipeline and task run monitoring across namespaces
- Detailed log retrieval with optional cleaning
- Failed pipeline root cause analysis
- Cross-cluster pipeline tracing
- CI/CD performance baselining
Advanced Log Analysis
- Smart log summarization with configurable detail levels
- Streaming analysis for large log volumes
- Hybrid analysis combining multiple strategies
- Semantic search using NLP techniques
- Anomaly detection with severity classification
Predictive & Proactive Monitoring
- Statistical anomaly detection using z-score analysis
- Predictive log analysis for early warning
- Resource bottleneck forecasting
- Certificate health monitoring with expiry alerts
- TLS certificate issue investigation
Event Intelligence
- Smart event retrieval with multiple strategies
- Progressive event analysis (overview to deep-dive)
- Advanced analytics with ML pattern detection
- Log-event correlation
Simulation & What-If Analysis
- Monte Carlo simulation for configuration changes
- Impact analysis before deployment
- Risk assessment with configurable tolerance
- Affected component identification
Quick Start
Get started with LUMINO in under 2 minutes:
For Claude Code CLI Users (Easiest)
Simply ask Claude Code to provision the Lumino MCP server for you by pasting this prompt:
For Other MCP Clients
Choose your preferred installation method:
- MCPM (Recommended):
mcpm install @spre-sre/lumino-mcp-server - Manual Setup: See detailed MCP Client Integration instructions
Verify Installation
Once installed, test with a simple query:
Prerequisites
Required
- Python 3.10 or higher - Core runtime
- MCP Client - One of:
For Kubernetes Features
- Kubernetes/OpenShift Access - Valid kubeconfig with read permissions
- RBAC Permissions - Ability to list pods, namespaces, and other resources
Optional (Recommended)
- uv - Faster dependency management than pip
- MCPM - Easiest installation experience
- Prometheus - For advanced metrics and forecasting features
Installation
Using uv (recommended)
Using pip
Usage
Local Mode (stdio transport)
By default, the server runs in local mode using stdio transport, suitable for direct integration with MCP clients:
Kubernetes Mode (HTTP streaming transport)
When running inside Kubernetes, set the namespace environment variable to enable HTTP streaming:
The server automatically detects the environment and switches transport modes.
Usage Examples
🔍 Intelligent Root Cause Analysis
Investigate and diagnose complex failures with automated analysis:
🎯 Predictive Intelligence & Forecasting
Anticipate problems before they impact your systems:
🧪 Simulation & What-If Analysis
Test changes safely before applying them to production:
🗺️ Topology & Dependency Mapping
Understand system architecture and component relationships:
🔬 Advanced Investigation & Forensics
Deep-dive into complex issues with multi-faceted analysis:
📊 CI/CD Pipeline Intelligence
Optimize and troubleshoot your continuous delivery pipelines:
🎨 Progressive Event Analysis
Multi-level event investigation from overview to deep-dive:
🚀 Real-Time Monitoring & Alerts
Stay informed about cluster health and pipeline status:
🔐 Security & Compliance
Ensure cluster security and certificate management:
📈 Advanced Analytics & ML Insights
Leverage machine learning for pattern detection:
Configuration
Kubernetes Authentication
The server automatically detects Kubernetes configuration:
- In-cluster config - When running inside a Kubernetes pod
- Local kubeconfig - When running locally (uses
~/.kube/config)
Environment Variables
ML Model Persistence
The predictive_log_analyzer tool persists trained ML models and training data locally in ~/.lumino/. This enables model reuse across server restarts and incremental learning from historical failure patterns.
Directory Structure
Model IDs follow the pattern predictive_log_v1_YYYYMMDD_HHMMSS.
Training Data Database
The SQLite database (training_data.db) contains four tables:
All four tables define a cluster_id column for multi-cluster support. Currently, only log_samples and failure_labels actively populate it during writes; log_failure_correlations and training_runs leave it NULL. The cluster ID is derived from the active kubeconfig context name (e.g. api-stone-prod-p02-hjvn-p1-openshiftapps-com:6443) or falls back to in-cluster-{KUBERNETES_SERVICE_HOST} when running inside a pod.
Clearing Stale Data
Programmatic cleanup via the manage_prediction_training_data tool (action cleanup):
cleanup_old_models(max_age_days=30, keep_min=3)-- removes models older than 30 days, always keeping the 3 most recentcleanup_old_data(max_age_days=90)-- removes log samples, failure labels, and correlations older than 90 days
Manual cleanup:
Disk usage note: Models accumulate over time. The default cleanup keeps models up to 30 days old with a minimum of 3 retained. Training data is kept for 90 days. Run the manage_prediction_training_data tool with action cleanup periodically to reclaim disk space.
KubeArchive Integration
KubeArchive stores Kubernetes resources off-cluster and provides a REST API for historical resource states and logs. LUMINO uses KubeArchive as a fallback when pods, PipelineRuns, or TaskRuns have been garbage-collected from the live cluster. The query_kubearchive tool queries this archive transparently.
Endpoint Auto-Discovery
The endpoint is discovered automatically using a 5-step chain (first match wins):
KUBEARCHIVE_HOSTenvironment variable (highest priority)- OpenShift Route named
kubearchive-api-serverin namespaces:kubearchive,product-kubearchive,default - Kubernetes Ingress named
kubearchive-api-serverin the same namespaces - Kubernetes Service named
kubearchive-api-server(in-cluster DNS:https://kubearchive-api-server.<namespace>.svc.cluster.local:<port>) - Kubeconfig-based Route inference -- constructs candidate URLs from the API server domain (pattern:
https://kubearchive-api-server-{namespace}.apps.{cluster-domain}) and probes/livez
Results are cached at startup. On connection failure, the cache is cleared and re-probed on the next request.
Local Development (Port-Forwarding)
When running outside the cluster, if an in-cluster Service endpoint is discovered (step 4), LUMINO automatically sets up kubectl port-forward:
- Tries ports 8081--8090, then falls back to a system-assigned port
- The port-forward process is auto-started and auto-cleaned up on server exit
- If
kubectlis not available, LUMINO logs a manual fallback command for the user
Authentication
KubeArchive authentication uses the following priority chain:
- Provided token (from constructor / previous session)
- In-cluster service account token (
/var/run/secrets/kubernetes.io/serviceaccount/token) - Existing Kubernetes client token (extracted from the API client initialized at server startup)
- OpenShift
oc whoami -ttoken (for OpenShift clusters) - Auto-created short-lived service account token (
kubectl create token, 1-hour duration, Kubernetes only)
Resource Management & Cleanup
The KubeArchiveEndpointDiscovery class implements robust subprocess cleanup for kubectl port-forward processes to prevent resource leaks.
Recommended Usage: Context Manager
Use the with statement for deterministic cleanup:
Automatic Cleanup Layers
When used without explicit context management, the class provides three fallback cleanup mechanisms:
atexithandler — Cleans up port-forward on normal interpreter shutdown- Signal handlers (
SIGTERM/SIGINT) — Graceful cleanup on termination, chains to original handlers __del__finalizer — Last-resort fallback (not guaranteed timing)
The context manager approach is preferred for deterministic resource cleanup.
KubeArchive Configuration
See the Configuration section above for KUBEARCHIVE_HOST and KUBEARCHIVE_ENABLED environment variables.
Prometheus/Thanos Integration
LUMINO auto-discovers Prometheus or Thanos Query endpoints for the prometheus_query, resource_bottleneck_forecaster, and ci_cd_performance_baselining_tool tools. Thanos Query implements the Prometheus HTTP API and is preferred when available since it provides a unified, deduplicated view across replicas.
Endpoint Discovery Priority
Auto-discovery order depends on runtime environment:
- In-cluster: Thanos services --> Prometheus services --> Prometheus Operator CRD --> OpenShift Routes
- Local/outside cluster: OpenShift Routes --> Thanos services --> Prometheus Operator CRD --> Prometheus services
Auto-Discovery Details
OpenShift Routes: Searches the openshift-monitoring namespace. Prefers the thanos-querier route over prometheus-k8s. Falls back to any route with prometheus in the name. Detects protocol from TLS termination config.
Thanos Services: Searches namespaces openshift-monitoring, monitoring, thanos, observability, kube-prometheus. Priority service names: thanos-query-frontend, thanos-querier, thanos-query. Also searches via label selectors: app.kubernetes.io/name=thanos-query, app.kubernetes.io/component=query,app.kubernetes.io/name=thanos, app=thanos-query, app=thanos-querier.
Prometheus Services: Searches namespaces openshift-monitoring, monitoring, prometheus, kube-prometheus, observability. Priority service names: prometheus-server, prometheus-k8s, prometheus. Also searches via label selectors: app=prometheus, app.kubernetes.io/name=prometheus, app.kubernetes.io/component=prometheus.
Prometheus Operator CRD: Discovers via monitoring.coreos.com/v1 Prometheus custom resources and their associated services (pattern: prometheus-{name} in the same namespace).
Prometheus/Thanos Authentication
Authentication for Prometheus/Thanos uses the following 5 methods in priority order:
oc whoami -t-- fresh OpenShift token (most reliable for OpenShift)- Re-read kubeconfig file for current token
- In-memory Kubernetes client config token
- ServiceAccount token file (
/var/run/secrets/kubernetes.io/serviceaccount/token) - Environment variables:
PROMETHEUS_TOKEN,OPENSHIFT_TOKEN,OC_TOKEN(checked in that order)
Configuration Example
Note: The endpoint cache has a 5-minute TTL. If you change THANOS_URL or PROMETHEUS_URL at runtime, the new value takes effect on the next query.
Available Tools
Kubernetes Core (5 tools)
Tekton Pipelines (6 tools)
Log Analysis (8 tools)
Event Analysis (3 tools)
Failure Analysis & RCA (2 tools)
Resource Monitoring (4 tools)
Namespace Investigation (2 tools)
Certificate & Security (2 tools)
OpenShift Specific (3 tools)
CI/CD Performance (2 tools)
Topology & Prediction (3 tools)
Simulation (1 tool)
Architecture
How It Works
LUMINO acts as a bridge between AI assistants and your Kubernetes infrastructure through the Model Context Protocol:
Workflow
- User Query → AI assistant receives natural language request
- MCP Translation → Assistant converts query to appropriate tool calls
- LUMINO Processing → Server executes Kubernetes/Prometheus operations
- Data Analysis → ML/statistical algorithms process raw data
- AI Synthesis → Assistant formats results into human-readable insights
Key Features
- Minimal Local State - Queries cluster in real-time; optional ML model persistence in
~/.lumino/for predictive analytics (see ML Model Persistence) - Automatic Transport Detection - Switches between stdio (local) and HTTP (K8s) modes
- Token Budget Management - Adaptive strategies to handle large log volumes
- Intelligent Caching - Smart caching for frequently accessed data
- Security First - Uses existing kubeconfig RBAC permissions, no separate auth
MCP Client Integration
Method 1: Using MCPM (Recommended for Claude Code CLI / Gemini CLI)
The easiest way to install LUMINO MCP Server for Claude Code CLI or Gemini CLI is using MCPM - an MCP server package manager.
Install MCPM
Requirements: Go 1.23+, Git, Python 3.10+, uv (or pip)
Install LUMINO MCP Server
Short syntax explained:
@owner/repo- Installs from GitHub (default:https://github.com/owner/repo.git)gl:@owner/repo- Installs from GitLab (https://gitlab.com/owner/repo.git)- Full URL - Works with any Git repository
This will:
- Clone the repository to
~/.mcp/servers/lumino-mcp-server/ - Auto-detect Python project and install dependencies using
uv(or pip) - Register with Claude Code CLI or Gemini CLI configuration automatically
Manage LUMINO
Method 2: Manual Configuration
If you prefer manual setup or need to configure Claude Desktop / Cursor, follow these client-specific guides:
Claude Desktop
-
Find your config file location:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
- macOS:
-
Add LUMINO configuration:
-
Restart Claude Desktop
-
Verify: Look for the hammer icon (🔨) in Claude Desktop to see available tools
Claude Code CLI
Option A: Using MCPM (see Method 1 above)
Option B: Automatic Provisioning via Claude Code (Recommended and easiest way)
Copy and paste the provisioning prompt from the Quick Start section above into Claude Code. Claude will clone the repository, install dependencies, and configure the MCP server for your project.
Option C: Manual Configuration
- Clone and install:
- Create
.mcp.jsonin your project root (for project-local config) or update~/.claude.json(for global config):
Important: Replace /absolute/path/to/lumino-mcp-server with the actual absolute path where you cloned the repository (e.g., /Users/username/projects/lumino-mcp-server).
- Verify installation:
Gemini CLI
Option A: Using MCPM (Recommended - see Method 1 above)
Option B: Manual Configuration
-
Find your config file location:
- macOS/Linux:
~/.config/gemini/mcp_servers.json - Windows:
%APPDATA%\gemini\mcp_servers.json
- macOS/Linux:
-
Add LUMINO configuration:
- Verify installation:
Cursor IDE
-
Open Cursor Settings:
- Press
Cmd+,(macOS) orCtrl+,(Windows/Linux) - Search for "MCP" or "Model Context Protocol"
- Press
-
Add MCP Server Configuration:
In Cursor's MCP settings, add:
Alternative - Using Cursor's settings.json:
- Open Command Palette (
Cmd+Shift+PorCtrl+Shift+P) - Type "Preferences: Open User Settings (JSON)"
- Add the MCP configuration:
-
Restart Cursor IDE
-
Verify: Open Cursor's AI chat and check if LUMINO tools are available
Configuration Notes
Replace /path/to/lumino-mcp-server with the actual path where you cloned the repository:
Environment Variables (optional):
Add these to the env section if needed:
Using Alternative Python Package Managers
With pip instead of uv
Note: Ensure you've activated the virtual environment first:
With poetry
Testing Your Configuration
After configuring any client, test the connection:
-
Check if tools are loaded:
- Claude Desktop: Look for 🔨 hammer icon
- Claude Code CLI:
claude mcp list - Gemini CLI:
gemini mcp list - Cursor: Check AI chat for available tools
-
Test a simple query:
- Check server logs (if issues):
Expected output:
Advanced Configuration
Multiple Clusters
Configure multiple LUMINO instances for different clusters:
Custom Log Level
Supported Transports
The server automatically detects the appropriate transport:
- stdio - For local desktop integrations (Claude Desktop, Claude Code CLI, Gemini CLI, Cursor)
- streamable-http - For Kubernetes deployments (when
KUBERNETES_NAMESPACEis set)
Performance Considerations
Optimizing for Large Clusters
LUMINO is designed to handle clusters of any size efficiently:
Token Budget Management
LUMINO automatically manages AI context limits:
- Adaptive Sampling - Smart tools auto-sample data when volumes are high
- Progressive Loading - Stream analysis processes data in chunks
- Token Budgets - Configurable limits prevent context overflow
- Hybrid Strategies - Automatically selects best analysis approach
Query Optimization Tips
Use Namespace Filtering
Specify Time Windows
Leverage Smart Tools
Use Progressive Analysis
Performance Metrics
Caching Strategy
LUMINO uses intelligent caching for frequently accessed data:
- 15-minute cache - For web-fetched content
- Session cache - For hybrid log analysis
- ML model persistence - Predictive models and training data stored locally in
~/.lumino/(see ML Model Persistence)
Concurrent Requests
The server handles multiple concurrent requests efficiently:
- Thread-safe operations - Safe parallel tool execution
- Connection pooling - Reuses Kubernetes API connections
- Async HTTP - Non-blocking Prometheus queries
Resource Usage
Server Resource Requirements
Note: LUMINO requires minimal resources. ML models and training data are persisted locally in ~/.lumino/ (see ML Model Persistence). Most processing happens in the AI assistant.
Troubleshooting
Common Issues
No Kubernetes cluster found
Ensure you have a valid kubeconfig at ~/.kube/config or are running inside a cluster.
Permission denied for resources
Check your RBAC permissions. The server needs read access to the resources you want to query.
Tool timeout For large clusters, some tools may timeout. Use filtering options (namespace, labels) to reduce scope.
Dependencies
mcp[cli]>=1.10.1- Model Context Protocol SDKkubernetes>=32.0.1- Kubernetes Python clientpandas>=2.0.0- Data analysisscikit-learn>=1.6.1- ML algorithmsprometheus-client>=0.22.0- Prometheus integrationaiohttp>=3.12.2- Async HTTP client
Contributing
Contributions are welcome! Please read our Contributing Guide before submitting pull requests.
Security
For security vulnerabilities, please see our Security Policy.
License
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
Acknowledgments
- Built with FastMCP framework
- Inspired by the needs of SRE teams managing complex Kubernetes environments
Source: README.md at commit 571ed71
Tools
0Version history
1- v0.9.2LatestSep 16, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts