使用说明
简单的Loki MCP服务器
洛基MCP服务器是 模型上下文协议(MCP) 使用以下命令查询Grafana Loki日志的界面 logcli该服务器使AI助手能够直接访问和分析来自Loki的日志数据。
特性
- 使用完整的LogQL支持查询Loki日志
- 获取标签值和元数据
- 通过环境变量或配置文件提供身份验证和配置支持
- 以不同的输出格式(默认、原始、JSON行)提供格式化结果
- 当出现以下情况时,自动回退到HTTP API
logcli在环境中不可用
先决条件
- Node.js v16或更高版本
- TypeScript
- (可选) 格拉法娜·洛基logcli 已安装并可在PATH中访问。如果
logcli不可用,服务器将自动使用Loki HTTP API - 访问Loki服务器实例
安装
通过Smithery安装
通过以下方式自动安装克劳德桌面的Simple Loki MCP服务器 史密瑟里:
npx -y @smithery/cli install @ghrud92/simple-loki-mcp --client claude
对于MCP
{
"mcpServers": {
"simple-loki": {
"command": "npx",
"args": ["-y", "simple-loki-mcp"],
"env": {
"LOKI_ADDR": "https://loki.sup.band"
}
}
}
}
npm
- 克隆存储库:
git clone https://github.com/ghrud92/loki-mcp.git
cd loki-mcp
- 安装依赖项:
npm install
- 构建项目:
npm run build
可用的MCP工具
查询loki
使用过滤选项从Loki查询日志。
参数:
query(必填):Loki查询字符串(LogQL)from:开始时间戳(例如“2023-01-01T12:00:00Z”)to:结束时间戳(例如“2023-01-01T13:00:00Z”)limit:要返回的最大日志数batch:查询结果的批量大小output:输出格式(“默认”、“原始”或“jsonl”)quiet:抑制查询元数据forward:按时间顺序显示结果
获取标签值
检索特定标签的所有值。
参数:
label(必需):标签名称以获取值
获取标签
检索所有可用标签。
无需参数。
配置
您可以使用以下方式配置Loki访问:
环境变量
LOKI_ADDR:洛基服务器地址(URL)LOKI_USERNAME:基本身份验证的用户名LOKI_PASSWORD:基本身份验证密码LOKI_TENANT_ID:多租户洛基的租户IDLOKI_BEARER_TOKEN:用于身份验证的承载令牌LOKI_BEARER_TOKEN_FILE:包含承载令牌的文件LOKI_CA_FILE:TLS的自定义CA文件LOKI_CERT_FILE:TLS的客户端证书文件LOKI_KEY_FILE:TLS的客户端密钥文件LOKI_ORG_ID:多组织设置的组织IDLOKI_TLS_SKIP_VERIFY:跳过TLS验证(“true”或“false”)LOKI_CONFIG_PATH:配置文件的自定义路径DEBUG:启用调试日志记录
备注:当客户端使用HTTP API模式时(当
logcli不可用),相同的配置参数用于身份验证和连接到Loki服务器。
配置文件
或者,创建一个 logcli-config.yaml 文件位于以下位置之一:
- 由指定的自定义路径
LOKI_CONFIG_PATH - 当前工作目录
- 您的主目录(
~/.logcli-config.yaml)
示例配置文件:
addr: https://loki.example.com
username: user
password: pass
tenant_id: mytenant
用法
启动服务器:
npm start
发展:
npm run dev
实现细节
自动回退到HTTP API
服务器将自动检查 logcli 已安装并在环境中可用:
- 如果
logcli如果可用,它将用于所有查询,提供CLI工具的全部功能 - 如果
logcli不可用,服务器将自动恢复使用Loki HTTP API:- 无需额外配置
- 相同的身份验证参数用于HTTP API
- 响应格式与CLI输出一致
- 在这两种模式下都应用了每个查询1000个日志的默认限制
这种自动检测可确保服务器在不同环境中无缝工作,无需手动配置。
发展
# Run linter
npm run lint
# Fix linting issues
npm run lint:fix
# Run tests
npm run test
许可证
此项目根据MIT许可证获得许可-请参阅 许可证.md 文件以获取详细信息。