Grafana Loki Mcp

Grafana Loki Mcp

🚀 Grafana-Loki MCP 服务器

Grafana-Loki MCP 服务器是一个基于 FastMCP 的服务器,它允许用户通过 Grafana 对 Loki 日志进行查询操作,为日志管理和分析提供了便利。

🚀 快速开始

在使用 Grafana-Loki MCP 服务器之前,需要进行相应的配置。以下是 MCP 服务器的配置示例:

{
"mcpServers": {
"loki": {
"command": "uvx",
"args": [
"grafana-loki-mcp",
"-u",
"GRAFANA_URL",
"-k",
"GRAFANA_API_KEY"
]
}
}
}
  • GRAFANA_URL:您的 Grafana 实例 URL。
  • GRAFANA_API_KEY:具备相应权限的 Grafana API 密钥。

✨ 主要特性

  • 日志查询:支持对 Loki 日志进行查询操作。
  • 标签与值获取:可以获取日志中的标签和对应的值。
  • 结果格式化:支持将查询结果格式化为文本、JSON 和 Markdown 三种形式。
  • 双协议支持:支持 stdioSSE 两种传输协议。

📦 安装指南

使用 pip 安装

pip install grafana-loki-mcp

开发环境安装

  1. 克隆仓库:
git clone https://github.com/tumf/grafana-loki-mcp.git
cd grafana-loki-mcp
  1. 安装依赖项:
pip install -r requirements.txt
  1. 运行测试:
python -m pytest tests/

💻 使用示例

基础用法

环境变量设置

export GRAFANA_URL="http://localhost:3000"
export GRAFANA_API_KEY="your_api_key_here"

命令行启动服务器

grafana-loki-mcp --config config.yaml

示例配置文件 config.yaml

mcpServers:
loki:
command: uvx
args:
- grafana-loki-mcp
- -u
- http://localhost:3000
- -k
- your_api_key_here

高级用法

示例代码

import asyncio
from pygql import client

async def main():
# 初始化客户端
cli = await client("http://localhost:8090")

# 查询日志
results = await cli.call(
"query_loki",
{
"query": '{app="my-app"} |= "error"',
"limit": 50,
"max_per_line": 100,
"start": "now-6h",
"end": "now"
}
)

# 格式化结果
formatted = await cli.call(
"format_loki_results",
{
"results": results,
"format_type": "markdown",
"max_per_line": 100
}
)

print(formatted)

asyncio.run(main())

📚 详细文档

可用工具

查询日志 (query_loki)

{
"query": "{app=\"my-app\"} |= \"error\"",
"limit": 50,
"max_per_line": 100,
"start": "now-6h",
"end": "now"
}

获取标签 (get_loki_labels)

{
"query": "{__name__}"
}

格式化结果 (format_loki_results)

{
"results": "...",
"format_type": "markdown",
"max_per_line": 100
}

开发相关

测试

运行测试套件:

pytest tests/ -v

代码规范

使用以下工具确保代码规范:

文档查看

查看 官方文档 了解详细信息。

📄 许可证

本项目遵循 MIT 许可证,具体内容请参见 LICENSE 文件。

  • 0 关注
  • 0 收藏,24 浏览
  • system 提出于 2025-10-06 10:18

相似服务问题

相关AI产品