Loki MCP Server is a Model Context Protocol (MCP) interface for querying Grafana Loki logs using logcli
. The server enables AI assistants to access and analyze log data from Loki directly.
- Query Loki logs with full LogQL support
- Get label values and metadata
- Authentication and configuration support via environment variables or config files
- Provides formatted results in different output formats (default, raw, JSON lines)
- Automatic fallback to HTTP API when
logcli
is not available in the environment
- Node.js v16 or higher
- TypeScript
- (Optional) Grafana Loki logcli installed and accessible in your PATH. If
logcli
is not available, the server will automatically use the Loki HTTP API instead - Access to a Loki server instance
To install Simple Loki MCP Server for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @ghrud92/simple-loki-mcp --client claude
{
"mcpServers": {
"simple-loki": {
"command": "npx",
"args": ["-y", "simple-loki-mcp"],
"env": {
"LOKI_ADDR": "https://loki.sup.band"
}
}
}
}
- Clone the repository:
git clone https://github.com/ghrud92/loki-mcp.git
cd loki-mcp
- Install dependencies:
npm install
- Build the project:
npm run build
Query logs from Loki with filtering options.
Parameters:
query
(required): Loki query string (LogQL)from
: Start timestamp (e.g. "2023-01-01T12:00:00Z")to
: End timestamp (e.g. "2023-01-01T13:00:00Z")limit
: Maximum number of logs to returnbatch
: Batch size for query resultsoutput
: Output format ("default", "raw", or "jsonl")quiet
: Suppress query metadataforward
: Display results in chronological order
Retrieve all values for a specific label.
Parameters:
label
(required): Label name to get values for
Retrieve all available labels.
No parameters required.
You can configure Loki access using:
LOKI_ADDR
: Loki server address (URL)LOKI_USERNAME
: Username for basic authLOKI_PASSWORD
: Password for basic authLOKI_TENANT_ID
: Tenant ID for multi-tenant LokiLOKI_BEARER_TOKEN
: Bearer token for authenticationLOKI_BEARER_TOKEN_FILE
: File containing bearer tokenLOKI_CA_FILE
: Custom CA file for TLSLOKI_CERT_FILE
: Client certificate file for TLSLOKI_KEY_FILE
: Client key file for TLSLOKI_ORG_ID
: Organization ID for multi-org setupsLOKI_TLS_SKIP_VERIFY
: Skip TLS verification ("true" or "false")LOKI_CONFIG_PATH
: Custom path to config fileDEBUG
: Enable debug logging
Note: When the client is using the HTTP API mode (when
logcli
is not available), the same configuration parameters are used to authenticate and connect to the Loki server.
Alternatively, create a logcli-config.yaml
file in one of these locations:
- Custom path specified by
LOKI_CONFIG_PATH
- Current working directory
- Your home directory (
~/.logcli-config.yaml
)
Example config file:
addr: https://loki.example.com
username: user
password: pass
tenant_id: mytenant
Start the server:
npm start
For development:
npm run dev
The server will automatically check if logcli
is installed and available in the environment:
- If
logcli
is available, it will be used for all queries, providing the full functionality of the CLI tool - If
logcli
is not available, the server will automatically fall back to using the Loki HTTP API:- No additional configuration is needed
- The same authentication parameters are used for the HTTP API
- Response formatting is consistent with the CLI output
- Default limit of 1000 logs per query is applied in both modes
This automatic detection ensures that the server works seamlessly in different environments without manual configuration.
# Run linter
npm run lint
# Fix linting issues
npm run lint:fix
# Run tests
npm run test
This project is licensed under the MIT License - see the LICENSE.md file for details.