返回市场
签纳兹-MCP服务器

签纳兹-MCP服务器

作者:DrDroidLab11 星标更新:2025-07-24

项目介绍

Signoz MCP 服务器

观看演示视频 📽️ https://youtube.com/shorts/jxjmGyXXz7A

可用工具

通过MCP服务器可以使用以下工具:

  • test_connection: 验证与您的Signoz实例的连接和配置。
  • fetch_dashboards: 列出Signoz中所有可用的仪表板。
  • fetch_dashboard_details: 根据ID检索特定仪表板的详细信息。这些信息包含仪表板的元数据,而不是实时面板数据。
  • fetch_dashboard_data: 根据名称和时间范围获取给定仪表板的所有面板数据。
  • fetch_apm_metrics: 根据服务和时间范围检索标准APM指标(请求率、错误率、延迟、apdex等)。
  • fetch_services: 获取Signoz中的所有已监控服务,并可选地根据时间范围进行过滤。
  • execute_clickhouse_query: 通过Signoz API执行自定义Clickhouse SQL查询,并支持时间范围。
  • execute_builder_query: 执行Signoz构建器查询以获取自定义指标和聚合,并支持时间范围。
  • fetch_traces_or_logs: 使用ClickHouse SQL从SigNoz获取跟踪或日志。指定data_type('traces'或'logs')、时间范围、服务名称和限制。返回跟踪或日志的表格结果。

🚀 使用方法及需求

1. 获取您的Signoz API端点及(可选)API密钥

  1. 确保您有一个正在运行的Signoz实例(自托管或云)。
  2. (可选)如果您的Signoz实例需要健康检查端点的API密钥,请从Signoz UI生成或获取它。

2. 安装及运行选项

2A. 使用uv安装并运行(推荐用于本地开发)

2A.1. 使用uv安装依赖项

uv venv .venv
source .venv/bin/activate
uv sync

2A.2. 使用uv运行服务器

uv run -m src.signoz_mcp_server.mcp_server
  • 您也可以使用uv来运行其他入口脚本。
  • 确保您的config.yamlmcp_server.py在同一目录下,或者设置所需的环境变量(参见配置部分)。

2B. 使用Docker Compose运行(推荐用于生产/容器化环境)

  1. 编辑src/signoz_mcp_server/config.yaml,添加您的Signoz详情(主机、API密钥如需)。
  2. 启动服务器:
    docker-compose up -d
    
    • 默认情况下,服务器将在HTTP(SSE)模式下运行在8000端口。
    • 您可以通过环境变量覆盖配置(参见下面)。

3. 配置

服务器按以下优先级加载配置:

  1. 环境变量(推荐用于Docker/CI):
    • SIGNOZ_HOST: Signoz实例URL(例如:https://your-signoz-instance.com
    • SIGNOZ_API_KEY: Signoz API密钥(可选)
    • SIGNOZ_SSL_VERIFY: truefalse(默认:true
    • MCP_SERVER_PORT: 运行服务器的端口(默认:8000
    • MCP_SERVER_DEBUG: true_false(默认:true
  2. YAML文件备选config.yaml):
    signoz:
      host: "https://your-signoz-instance.com"
      api_key: "your-signoz-api-key-here" # 可选
      ssl_verify: "true"
    server:
      port: 8000
      debug: true
    

4. 与AI助手集成(例如,Claude Desktop,Cursor)

您可以将此MCP服务器与支持MCP协议的任何工具集成。以下是主要选项:

4A. 使用Docker Compose或Docker(使用环境变量,类似于mcp-grafana)

{
  "mcpServers": {
    "signoz": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "-e",
        "SIGNOZ_HOST",
        "-e",
        "SIGNOZ_API_KEY",
        "-e",
        "SIGNOZ_SSL_VERIFY",
        "drdroidlab/signoz-mcp-server",
        "-t",
        "stdio"
      ],
      "env": {
        "SIGNOZ_HOST": "https://your-signoz-instance.com",
        "SIGNOZ_API_KEY": "your-signoz-api-key-here",
        "SIGNOZ_SSL_VERIFY": "true"
      }
    }
  }
}
  • 参数-t stdio是为了兼容Docker MCP客户端(强制使用stdio握手模式)。
  • 根据部署需求调整卷路径或环境变量。

4C. 连接到已运行的MCP服务器(HTTP/SSE)

如果您已经在运行一个MCP服务器(例如,在远程主机、云VM或Kubernetes上),可以直接将您的AI助手或工具连接到其HTTP端点。

示例:Claude Desktop或其他类似工具

{
  "mcpServers": {
    "signoz": {
      "url": "http://your-server-host:8000/mcp"
    }
  }
}
  • your-server-host替换为您实际运行MCP服务器的主机。
  • 对于本地设置,使用localhost作为服务器主机(即http://localhost:8000/mcp)。
  • 使用http进行本地或未加密部署,使用https进行生产或加密部署。
  • 确保服务器可以从客户端机器访问(检查防火墙、安全组等)。

示例:MCP配置YAML

mcp:
  endpoint: "http://your-server-host:8000/mcp"
  protocolVersion: "2025-06-18"
  • your-server-host替换为您实际运行MCP服务器的主机。
  • 对于本地设置,使用localhost作为服务器主机(即http://localhost:8000/mcp)。
  • 根据MCP服务器的部署方式,在URL方案中使用httphttps
  • 不需要指定commandargs——只需指向HTTP端点。
  • 对于支持HTTP上的MCP的任何工具或助手,这都适用。
  • 服务器必须在HTTP(SSE)模式下运行(此实现的默认设置)。

健康检查

curl http://localhost:8000/health

服务器默认运行在8000端口。


其他:

  1. 在任何地方需要帮助?加入我们的Slack社区,并在#mcp频道留言。
  2. 想尝试而不设置?遵循此文档在DrDroid云平台上快速开始。