loki阅读器mcp
工具
| 工具 | 说明 |
|---|---|
loki_query | 在单个时间点进行即时查询 |
loki_query_range | 跨时间窗口的范围查询 |
loki_get_labels | 列出所有可用的标签名称 |
loki_get_label_values | 获取特定标签的所有值 |
loki_get_series | 获取与流选择器匹配的唯一标签集 |
所有工具都返回格式化的markdown,并包括对身份验证、连接和查询失败的错误处理。
设置
1.创建虚拟环境
python -m venv .
source bin/activate2.安装依赖项
pip install mcp[cli] loki-reader-core python-dotenv pydantic针对loki阅读器核心的本地开发:
pip install -e ../loki-reader-core3.配置环境
cp example.env .env编辑 .env 使用您的Loki连接详细信息:
| 变量 | 必填 | 描述 |
|---|---|---|
LOKI_URL | 是 | Loki服务器的基本URL |
LOKI_USER | 否 | 基本身份验证的用户名 |
LOKI_PASS | 否 | 基本身份验证密码 |
LOKI_CA_CERT | 否 | CA证书PEM文件的路径 |
LOKI_ORG_ID | 对于多租户设置,没有 | X-Scope-ArgID |
4.运行测试
pip install pytest pytest-asyncio
pytest tests/ -v使用Claude代码
添加到您的项目 .mcp.json:
{
"mcpServers": {
"loki": {
"command": "/path/to/loki-reader-mcp/bin/python",
"args": ["/path/to/loki-reader-mcp/loki_mcp_server.py"]
}
}
}配置后,Claude Code可以使用自然语言直接查询您的Loki日志。所有时间戳都使用Unix纳秒(Loki的原生格式)。
项目结构
loki_mcp_server.py # FastMCP entry point with lifespan and tool registration
formatting.py # Markdown response formatters
models/
query_input.py # QueryInput, QueryRangeInput (Pydantic)
label_input.py # GetLabelsInput, GetLabelValuesInput, GetSeriesInput
tools/
query_tools.py # loki_query, loki_query_range
label_tools.py # loki_get_labels, loki_get_label_values, loki_get_series
tests/
test_models.py # Input validation tests
test_tools.py # Tool tests with mocked LokiClient许可证
麻省理工学院
