An MCP server for semantic log querying via Loki.
Loki MCP Server
An MCP (Model Context Protocol) server for semantic log querying via Loki. Designed to help AI models answer natural language questions about your cluster logs.
Features
- Error Summary: Aggregate errors across your cluster with breakdowns by type
- Pod Restart Detection: Find crashing/restarting pods
- Log Search: Regex-based log search across your cluster
- Namespace/Pod Discovery: List available namespaces and query specific pods
- Semantic Tool Design: Tool names and parameters match natural language questions
Tools
`get_error_summary`
Get a summary of errors happening in your cluster.
namespace: Filter to specific namespace (empty = all)hours: Look back this many hours (default: 1)
`find_pod_restarts`
Find pods that have restarted or crashed recently.
namespace: Filter to specific namespace (empty = all)hours: Look back this many hours (default: 1)
`search_logs`
Search logs with a regex pattern.
query: Regex pattern to search fornamespace: Filter to specific namespace (empty = all)hours: Look back this many hours (default: 1)limit: Maximum log lines to return (default: 100)
`list_namespaces`
List all namespaces that have logs in Loki.
`get_pod_logs`
Get logs for a specific pod.
pod_name: Pod name (supports wildcards likeollama*)namespace: Namespace of the pod (empty = search all)hours: Look back this many hours (default: 1)limit: Maximum log lines to return (default: 100)
Development
# Install dependencies
uv sync
# Run the server
uv run server.py
The server exposes FastMCP over streamable HTTP at /mcp (default port 8000).
Deployment (In-Cluster)
Add to your local-k8s-apps Helm values with:
- Deployment with the MCP server
- Exposed via HTTP on port 8000
- Environment variable:
LOKI_URLpointing to Loki service
The Ollama MCP bridge will load this server's tools and expose them to the model.
Tools (5)
get_error_summaryGet a summary of errors happening in your cluster.find_pod_restartsFind pods that have restarted or crashed recently.search_logsSearch logs with a regex pattern.list_namespacesList all namespaces that have logs in Loki.get_pod_logsGet logs for a specific pod.Environment Variables
LOKI_URLrequiredThe URL pointing to the Loki serviceConfiguration
{"mcpServers": {"loki": {"command": "uv", "args": ["run", "server.py"], "env": {"LOKI_URL": "http://your-loki-url:3100"}}}}