Skip to main content
Glama
honeycombio
by honeycombio

蜂窝微通道板

用于与 Honeycomb 可观测性数据交互的模型上下文协议服务器。该服务器使像 Claude 这样的法学硕士 (LLM) 能够跨多个环境直接分析和查询 Honeycomb 数据集。

蜂窝 MCP 徽标

要求

  • Node.js 18+

  • 具有完全权限的 Honeycomb API 密钥:

    • 查询分析访问权限

    • SLO 和触发器的读取权限

    • 数据集操作的环境级别访问

Honeycomb MCP 实际上是 Honeycomb 的完整替代接口,因此您需要对 API 拥有广泛的权限。

Related MCP server: Redis

仅限 Honeycomb Enterprise

目前,该功能仅适用于 Honeycomb Enterprise 客户。

工作原理

目前,这是一个单服务器进程**,您必须在自己的计算机上运行**。它无需身份验证。所有信息都使用客户端和服务器之间的 STDIO 进行传输。

安装

pnpm install
pnpm run build

构建工件进入/build文件夹。

配置

要使用此 MCP 服务器,您需要通过 MCP 配置中的环境变量提供 Honeycomb API 密钥。

{
    "mcpServers": {
      "honeycomb": {
        "command": "node",
        "args": [
          "/fully/qualified/path/to/honeycomb-mcp/build/index.mjs"
        ],
        "env": {
          "HONEYCOMB_API_KEY": "your_api_key"
        }
      }
    }
}

对于多种环境:

{
    "mcpServers": {
      "honeycomb": {
        "command": "node",
        "args": [
          "/fully/qualified/path/to/honeycomb-mcp/build/index.mjs"
        ],
        "env": {
          "HONEYCOMB_ENV_PROD_API_KEY": "your_prod_api_key",
          "HONEYCOMB_ENV_STAGING_API_KEY": "your_staging_api_key"
        }
      }
    }
}

重要提示:在 MCP 配置的env块中设置。

欧盟配置

由于 MCP 默认为非欧盟实例,因此欧盟客户还必须设置HONEYCOMB_API_ENDPOINT配置。

# Optional custom API endpoint (defaults to https://api.honeycomb.io)
HONEYCOMB_API_ENDPOINT=https://api.eu1.honeycomb.io/

缓存配置

MCP 服务器为所有非查询 Honeycomb API 调用实现了缓存,以提高性能并减少 API 使用率。您可以使用以下环境变量配置缓存:

# Enable/disable caching (default: true)
HONEYCOMB_CACHE_ENABLED=true

# Default TTL in seconds (default: 300)
HONEYCOMB_CACHE_DEFAULT_TTL=300

# Resource-specific TTL values in seconds (defaults shown)
HONEYCOMB_CACHE_DATASET_TTL=900    # 15 minutes
HONEYCOMB_CACHE_COLUMN_TTL=900     # 15 minutes
HONEYCOMB_CACHE_BOARD_TTL=900      # 15 minutes
HONEYCOMB_CACHE_SLO_TTL=900        # 15 minutes
HONEYCOMB_CACHE_TRIGGER_TTL=900    # 15 minutes
HONEYCOMB_CACHE_MARKER_TTL=900     # 15 minutes
HONEYCOMB_CACHE_RECIPIENT_TTL=900  # 15 minutes
HONEYCOMB_CACHE_AUTH_TTL=3600      # 1 hour

# Maximum cache size (items per resource type)
HONEYCOMB_CACHE_MAX_SIZE=1000

客户端兼容性

Honeycomb MCP 已通过以下客户端测试:

它可能会与其他客户端合作。

特征

  • 跨多个环境查询 Honeycomb 数据集

  • 运行分析查询并支持以下功能:

    • 多种计算类型(COUNT、AVG、P95 等)

    • 细分和过滤器

    • 基于时间的分析

  • 监控 SLO 及其状态(仅限企业)

  • 分析列和数据模式

  • 查看和分析触发器

  • 访问数据集元数据和架构信息

  • 通过基于 TTL 的缓存优化所有非查询 API 调用的性能

资源

使用以下格式的 URI 访问 Honeycomb 数据集: honeycomb://{environment}/{dataset}

例如:

  • honeycomb://production/api-requests

  • honeycomb://staging/backend-services

资源响应包括:

  • 数据集名称

  • 列信息(名称、类型、描述)

  • 架构详细信息

工具

  • list_datasets :列出环境中的所有数据集

    { "environment": "production" }
  • get_columns :获取数据集的列信息

    {
      "environment": "production",
      "dataset": "api-requests"
    }
  • run_query :使用丰富的选项运行分析查询

    {
      "environment": "production",
      "dataset": "api-requests",
      "calculations": [
        { "op": "COUNT" },
        { "op": "P95", "column": "duration_ms" }
      ],
      "breakdowns": ["service.name"],
      "time_range": 3600
    }
  • analyze_columns :通过运行统计查询并返回计算指标来分析数据集中的特定列。

  • list_slos :列出数据集的所有 SLO

    {
      "environment": "production",
      "dataset": "api-requests"
    }
  • get_slo :获取详细的 SLO 信息

    {
      "environment": "production",
      "dataset": "api-requests",
      "sloId": "abc123"
    }
  • list_triggers :列出数据集的所有触发器

    {
      "environment": "production",
      "dataset": "api-requests"
    }
  • get_trigger :获取详细的触发器信息

    {
      "environment": "production",
      "dataset": "api-requests",
      "triggerId": "xyz789"
    }
  • get_trace_link :生成指向 Honeycomb UI 中特定跟踪的深层链接

  • get_instrumentation_help :提供 OpenTelemetry 检测指导

    {
      "language": "python",
      "filepath": "app/services/payment_processor.py"
    }

Claude 的示例查询

向克劳德询问以下问题:

  • “生产环境中有哪些可用的数据集?”

  • “显示过去一小时内 API 服务的 P95 延迟”

  • “按服务名称细分的错误率是多少?”

  • “有哪些 SLO 接近超出预算?”

  • “显示暂存环境中的所有活动触发器”

  • “生产 API 数据集中有哪些可用的列?”

优化工具响应

所有工具响应都经过优化,以减少上下文窗口的使用,同时保留基本信息:

  • 列出数据集:仅返回名称、slug 和描述

  • 获取列:返回简化的列信息,重点关注名称、类型和描述

  • 运行查询

    • 包括实际结果和必要的元数据

    • 添加自动计算的汇总统计数据

    • 仅包含热图查询的系列数据

    • 省略详细的元数据、链接和执行细节

  • 分析列

    • 返回最高值、计数和关键统计数据

    • 在适当的时候自动计算数值指标

  • SLO 信息:精简为关键状态指标和绩效指标

  • 触发信息:重点关注触发状态、条件、通知对象

这种优化确保响应简洁而完整,从而允许 LLM 在上下文限制内处理更多数据。

run_query的查询规范

run_query工具支持全面的查询规范:

  • 计算:要执行的操作数组

    • 支持的操作:COUNT、CONCURRENCY、COUNT_DISTINCT、HEATMAP、SUM、AVG、MAX、MIN、P001、P01、P05、P10、P25、P50、P75、P90、P95、P99、P999、RATE_AVG、RATE_SUM、RATE_MAX

    • 某些操作(例如 COUNT 和 CONCURRENCY)不需要列

    • 例如: {"op": "HEATMAP", "column": "duration_ms"}

  • filters :过滤条件数组

    • 支持的运算符:=、!=、>、>=、<、<=、starts-with、does-not-start-with、exists、does-not-exist、contains、does-not-contain、in、not-in

    • 例如: {"column": "error", "op": "=", "value": true}

  • filter_combination :“AND”或“OR”(默认为“AND”)

  • breakdowns :按列对结果进行分组的数组

    • 例如: ["service.name", "http.status_code"]

  • orders :指定如何对结果进行排序的数组

    • 必须引用细分或计算中的列

    • HEATMAP 操作不能用于订单

    • 例如: {"op": "COUNT", "order": "descending"}

  • time_range :相对时间范围(以秒为单位)(例如,过去一小时为 3600 秒)

    • 可以与 start_time 或 end_time 结合使用,但不能同时与两者结合使用

  • start_timeend_time :绝对时间范围的 UNIX 时间戳

  • having :根据计算值过滤结果

    • 例如: {"calculate_op": "COUNT", "op": ">", "value": 100}

示例查询

以下是一些真实示例查询:

查找缓慢的 API 调用

{
  "environment": "production",
  "dataset": "api-requests",
  "calculations": [
    {"column": "duration_ms", "op": "HEATMAP"},
    {"column": "duration_ms", "op": "MAX"}
  ],
  "filters": [
    {"column": "trace.parent_id", "op": "does-not-exist"}
  ],
  "breakdowns": ["http.target", "name"],
  "orders": [
    {"column": "duration_ms", "op": "MAX", "order": "descending"}
  ]
}

DB 调用分布(上周)

{
  "environment": "production",
  "dataset": "api-requests",
  "calculations": [
    {"column": "duration_ms", "op": "HEATMAP"}
  ],
  "filters": [
    {"column": "db.statement", "op": "exists"}
  ],
  "breakdowns": ["db.statement"],
  "time_range": 604800
}

按异常和调用者统计的异常数量

{
  "environment": "production",
  "dataset": "api-requests",
  "calculations": [
    {"op": "COUNT"}
  ],
  "filters": [
    {"column": "exception.message", "op": "exists"},
    {"column": "parent_name", "op": "exists"}
  ],
  "breakdowns": ["exception.message", "parent_name"],
  "orders": [
    {"op": "COUNT", "order": "descending"}
  ]
}

发展

pnpm install
pnpm run build

执照

麻省理工学院

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/honeycombio/honeycomb-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server