hny-mcp

MIT License
2
12
  • Linux
  • Apple

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Integrations

  • Required runtime environment for operating the MCP server, with version 16+ needed.

  • Package manager used for installation and building the MCP server.

ハニカムMCP

Honeycombの可観測性データとやり取りするためのモデルコンテキストプロトコルサーバー。このサーバーにより、ClaudeのようなLLMは、複数の環境にまたがるHoneycombデータセットを直接分析およびクエリできるようになります。

ハニカムエンタープライズのみ

現在、これは 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ブロックで設定する必要があります

EU構成

MCP はデフォルトで非 EU インスタンスに設定されるため、EU のお客様はHONEYCOMB_API_ENDPOINT構成も設定する必要があります。

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

キャッシュ構成

MCPサーバーは、パフォーマンスの向上とAPI使用量の削減のため、クエリ以外のすべてのHoneycomb 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 とそのステータスを監視する (エンタープライズのみ)
  • 列とデータパターンを分析する
  • トリガーの表示と分析
  • データセットのメタデータとスキーマ情報にアクセスする
  • すべての非クエリ API 呼び出しに対して TTL ベースのキャッシュによるパフォーマンスの最適化

リソース

Honeycomb データセットには、次の形式の URI を使用してアクセスします: 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" }

クロードとのクエリ例

クロードに次のような質問をしてください:

  • 「本番環境で利用できるデータセットは何ですか?」
  • 「過去 1 時間の API サービスの P95 レイテンシを表示してください」
  • 「サービス名別のエラー率はどれくらいですか?」
  • 「予算を超過しそうな SLO はありますか?」
  • 「ステージング環境内のすべてのアクティブなトリガーを表示する」
  • 「本番環境の API データセットではどのような列が利用できますか?」

最適化されたツール応答

すべてのツール応答は、重要な情報を維持しながらコンテキスト ウィンドウの使用を減らすように最適化されています。

  • データセットの一覧: 名前、スラッグ、説明のみを返します
  • 列を取得: 名前、タイプ、説明に焦点を当てた合理化された列情報を返します
  • クエリを実行:
    • 実際の結果と必要なメタデータが含まれています
    • 自動的に計算された要約統計を追加します
    • ヒートマップクエリのシリーズデータのみが含まれます
    • 詳細なメタデータ、リンク、実行の詳細を省略します
  • 分析列:
    • 上位の値、カウント、主要な統計を返します
    • 適切な場合に数値メトリックを自動的に計算します
  • 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"}
  • フィルター: フィルター条件の配列
    • サポートされている演算子: =、!=、>、>=、<、<=、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」)
  • 内訳: 結果をグループ化する列の配列
    • 例: ["service.name", "http.status_code"]
  • 順序: 結果の並べ替え方法を指定する配列
    • 内訳または計算から列を参照する必要があります
    • HEATMAP操作は注文では使用できません
    • 例: {"op": "COUNT", "order": "descending"}
  • time_range : 相対的な時間範囲(秒単位)(例:過去1時間の場合は3600)
    • start_time または end_time のいずれかと組み合わせることができますが、両方と組み合わせることはできません。
  • start_timeend_time : 絶対時間範囲の UNIX タイムスタンプ
  • : 計算値に基づいて結果をフィルタリングする
    • 例: {"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

要件

  • Node.js 16以上
  • 適切な権限を持つ Honeycomb API キー:
    • 分析のためのクエリアクセス
    • SLO とトリガーの読み取りアクセス
    • データセット操作の環境レベルのアクセス

ライセンス

マサチューセッツ工科大学

You must be authenticated.

A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

Honeycombの可観測性データとやり取りするためのサーバー。このサーバーにより、ClaudeのようなLLMはHoneycombデータセットを直接分析およびクエリできるようになります。

  1. Honeycomb Enterprise Only
    1. How it works
      1. Installation
        1. Configuration
          1. EU Configuration
          2. Caching Configuration
        2. Client compatibility
          1. Features
            1. Resources
            2. Tools
            3. Example Queries with Claude
            4. Optimized Tool Responses
            5. Query Specification for run_query
            6. Example Queries
          2. Development
            1. Requirements
              1. License
                ID: 8zeou4ict1