Skip to main content
Glama

蜂窝微通道板

用于与 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