1. Conduid
  2. Analytics
  3. Loki
MCP server · Analytics

Loki

An MCP server to easily search and retrieve logs from Grafana Loki

Unclaimed BSD-3-Clause mcplokigrafanalogsaillm
64Good

Scored 23 hours ago · breakdown

About Loki

Loki is an MCP server published by lexfrei in the Analytics category: an MCP server to easily search and retrieve logs from Grafana Loki.

The repository has 1 stars and 0 forks, with the last commit 4 months ago. Recent commit activity is the strongest signal that reported issues will get attention.

Install

Claude Code
claude mcp add loki -- npx -y @elad12390/loki-mcp
npx
npx -y @elad12390/loki-mcp

This server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.

Ask AI

✦

Ask AI about Loki

Powered by Claude · Grounded in docs

I know everything about Loki. Ask me about installation, configuration, usage, or troubleshooting.

Security checks

  • ✓README presentThe repository ships documentation.
  • ✓License declaredUsable under a stated license.
  • !Scoped permissionsDoesn't declare a permission scope. Assume it can do anything its process can.

3 checks have not been run yet.

Releases

v1.1.0v1.1.0 · 3 Mar 2026Changelog 🐛 renovate: enable platform automerge 🐛 ci: use podman and loki in release notes template Installation Add to your MCP client configuration: { "mcpServers": { "loki": { "command": "podman", "args": [ "run", "--rm", "-i", "-e",…
v1.0.0v1.0.0 · 18 Dec 2025Changelog ✨ tools: add loki_ready and loki_config tools (#3) 🔄 readme: add go install method and update examples (#2) Installation Add to your MCP client configuration: { "mcpServers": { "loki": { "command": "podman", "args": [ "run",…
v0.0.2v0.0.2 · 18 Dec 2025Changelog 🐛 tools: update jsonschema struct tags for MCP SDK v1.1.0 (#1) Installation Add to your MCP client configuration: { "mcpServers": { "loki": { "command": "docker", "args": [ "run", "--rm", "-i", "-e",…
v0.0.1v0.0.1 · 18 Dec 2025Changelog ✨ initial implementation of MCP server for Loki Installation Add to your MCP client configuration: { "mcpServers": { "loki": { "command": "docker", "args": [ "run", "--rm", "-i", "-e", "LOKI_URL=http://host.docker.internal:3100",…

README

MCP Loki

Go Version License Release Release

MCP server for querying Grafana Loki logs. Enables LLMs to search and analyze logs via the Model Context Protocol.

Features

  • LogQL Queries — Execute range queries with flexible time ranges
  • Label Discovery — List labels and their values for query building
  • Series Exploration — Find log streams matching label selectors
  • Index Statistics — Get cardinality and size metrics
  • Prompt Templates — Ready-made LogQL patterns for common log analysis tasks
  • Multiple Auth Methods — Basic auth, Bearer token, multi-tenant (X-Scope-OrgID)
  • Multi-arch Images — linux/amd64 and linux/arm64
  • Signed Images — Verified with cosign keyless signing

Quick Start

Container (Podman/Docker)

Add to your MCP client configuration:

{
  "mcpServers": {
    "loki": {
      "command": "podman",
      "args": [
        "run", "--rm", "-i",
        "-e", "LOKI_URL=http://loki:3100",
        "ghcr.io/lexfrei/mcp-loki:latest"
      ]
    }
  }
}

Go Install

go install github.com/lexfrei/mcp-loki/cmd/mcp-loki@latest

MCP client configuration:

{
  "mcpServers": {
    "loki": {
      "command": "mcp-loki",
      "env": {
        "LOKI_URL": "http://loki:3100"
      }
    }
  }
}

Configuration

All configuration is done via environment variables:

Variable Required Default Description
LOKI_URL No http://localhost:3100 Loki server URL
LOKI_USERNAME No — Basic auth username
LOKI_PASSWORD No — Basic auth password
LOKI_TOKEN No — Bearer token (alternative to basic auth)
LOKI_ORG_ID No — X-Scope-OrgID header for multi-tenant Loki
MCP_HTTP_PORT No — Enable HTTP SSE transport on this port

Authentication Examples

No authentication (local Loki):

{
  "command": "podman",
  "args": [
    "run", "--rm", "-i",
    "-e", "LOKI_URL=http://loki:3100",
    "ghcr.io/lexfrei/mcp-loki:latest"
  ]
}

Basic authentication:

{
  "command": "podman",
  "args": [
    "run", "--rm", "-i",
    "-e", "LOKI_URL=https://loki.example.com",
    "-e", "LOKI_USERNAME=admin",
    "-e", "LOKI_PASSWORD=secret",
    "ghcr.io/lexfrei/mcp-loki:latest"
  ]
}

Bearer token (Grafana Cloud):

{
  "command": "podman",
  "args": [
    "run", "--rm", "-i",
    "-e", "LOKI_URL=https://logs-prod-us-central1.grafana.net",
    "-e", "LOKI_TOKEN=glc_xxx",
    "-e", "LOKI_ORG_ID=123456",
    "ghcr.io/lexfrei/mcp-loki:latest"
  ]
}

Available Tools

loki_query

Execute LogQL queries against Loki.

Parameter Type Required Description
query string Yes LogQL query string
start string No Start time (RFC3339, relative like 1h, or now)
end string No End time (RFC3339, relative, or now)
limit int No Maximum entries to return (default: 100)
direction string No forward or backward (default: backward)

Example:

Query the last hour of nginx error logs:
- query: {app="nginx"} |= "error"
- start: 1h
- limit: 50

loki_labels

Get label names or values for a specific label.

Parameter Type Required Description
name string No Label name to get values for (omit for all labels)
start string No Start time
end string No End time

Example:

Get all label names: (no parameters)
Get values for "app" label: name=app

loki_series

Find log streams matching label selectors.

Parameter Type Required Description
match []string Yes Label selector(s), e.g., {app="nginx"}
start string No Start time
end string No End time

Example:

Find all nginx streams: match=["{app=\"nginx\"}"]

loki_stats

Get index statistics for a query.

Parameter Type Required Description
query string Yes LogQL selector
start string No Start time
end string No End time

Example:

Get stats for nginx logs: query={app="nginx"}

loki_ready

Check if Loki is ready to accept requests. No parameters required.

loki_config

Get Loki server configuration in YAML format. No parameters required.

Available Prompts

error_logs

Find error logs for a specific application.

Argument Required Default Description
app Yes — Application name to search errors for
timerange No 1h Time range (e.g. 1h, 30m, 7d)

rate_query

Calculate the rate of log lines matching a selector.

Argument Required Default Description
selector Yes — LogQL stream selector (e.g. {app="nginx"})
interval No 5m Rate interval (e.g. 5m, 1h)

top_label_values

Find top N values for a label by log volume.

Argument Required Default Description
selector Yes — LogQL stream selector (e.g. {app="nginx"})
label Yes — Label name to group by
n No 10 Number of top values to return
interval No 5m Rate interval (e.g. 5m, 1h)

Time Formats

All time parameters accept:

  • RFC3339: 2024-01-15T10:30:00Z
  • Relative: 30s, 5m, 1h, 7d (seconds, minutes, hours, days ago)
  • Keyword: now

Verification

Container images are signed with cosign keyless signing:

cosign verify ghcr.io/lexfrei/mcp-loki:latest \
  --certificate-identity-regexp=https://github.com/lexfrei/mcp-loki \
  --certificate-oidc-issuer=https://token.actions.githubusercontent.com

License

BSD-3-Clause

README copy captured when this server was indexed; it may lag the repository. The original is authoritative.

Questions

About Loki

How do I install Loki?

Run claude mcp add loki -- npx -y @elad12390/loki-mcp, then add the server to your MCP client's configuration.

Is Loki safe to use with an AI agent?

Its trust score is 64 out of 100 (good). It passes 2 of the 3 static security checks run so far; the failures are listed above. It has no ConduID identity yet, so agent calls to it are not receipted.

Is Loki still maintained?

Yes — the last commit was 4 months ago. The repository has 1 stars and 0 forks.