Honeycomb MCP
Interactúa con los datos de observabilidad de Honeycomb usando el Model Context Protocol.
Servidor MCP alojado
npx add-mcp 'https://mcp.honeycomb.io/mcp'Se instala en Claude Code, Codex, Cursor y más
Documentación
Honeycomb MCP
⚠️ OBSOLETO: Este servidor MCP autoalojado está obsoleto. Por favor, migre a la solución alojada Honeycomb Model Context Protocol (MCP) en Documentación de Honeycomb MCP.
Un servidor Model Context Protocol para interactuar con datos de observabilidad de Honeycomb. Este servidor permite que LLMs como Claude analicen y consulten directamente sus datasets de Honeycomb en múltiples entornos.

Requisitos
- Node.js 18+
- Clave API de Honeycomb con permisos completos:
- Acceso de consulta para análisis
- Acceso de lectura para SLOs y Triggers
- Acceso a nivel de entorno para operaciones de datasets
Honeycomb MCP es efectivamente una interfaz alternativa completa para Honeycomb, por lo que necesita permisos amplios para la API.
Solo Honeycomb Enterprise
Actualmente, esto solo está disponible para clientes de Honeycomb Enterprise.
Cómo funciona
Hoy, este es un proceso de servidor único que debe ejecutar en su propia computadora. No está autenticado. Toda la información utiliza STDIO entre su cliente y el servidor.
Instalación
pnpm install
pnpm run build
El artefacto de compilación se coloca en la carpeta /build.
Configuración
Para usar este servidor MCP, debe proporcionar claves API de Honeycomb mediante variables de entorno en su configuración MCP.
{
"mcpServers": {
"honeycomb": {
"command": "node",
"args": [
"/fully/qualified/path/to/honeycomb-mcp/build/index.mjs"
],
"env": {
"HONEYCOMB_API_KEY": "your_api_key"
}
}
}
}
Para múltiples entornos:
{
"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"
}
}
}
}
Importante: Estas variables de entorno deben configurarse en el bloque env de su configuración MCP.
Configuración para la UE
Los clientes de la UE también deben configurar una configuración HONEYCOMB_API_ENDPOINT, ya que el MCP utiliza por defecto la instancia fuera de la UE.
# Optional custom API endpoint (defaults to https://api.honeycomb.io)
HONEYCOMB_API_ENDPOINT=https://api.eu1.honeycomb.io/
Configuración de caché
El servidor MCP implementa caché para todas las llamadas API de Honeycomb que no son de consulta para mejorar el rendimiento y reducir el uso de la API. El caché se puede configurar usando estas variables de entorno:
# 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
Compatibilidad de clientes
Honeycomb MCP ha sido probado con los siguientes clientes:
Es probable que funcione con otros clientes.
Características
- Consultar datasets de Honeycomb en múltiples entornos
- Ejecutar consultas de análisis con soporte para:
- Múltiples tipos de cálculo (COUNT, AVG, P95, etc.)
- Desgloses y filtros
- Análisis basado en tiempo
- Monitorear SLOs y su estado (solo Enterprise)
- Analizar columnas y patrones de datos
- Ver y analizar Triggers
- Acceder a metadatos de datasets e información de esquema
- Rendimiento optimizado con caché basado en TTL para todas las llamadas API que no son de consulta
Recursos
Acceda a datasets de Honeycomb usando URIs en el formato:
honeycomb://{environment}/{dataset}
Por ejemplo:
honeycomb://production/api-requestshoneycomb://staging/backend-services
La respuesta del recurso incluye:
- Nombre del dataset
- Información de columnas (nombre, tipo, descripción)
- Detalles del esquema
Herramientas
-
list_datasets: Listar todos los datasets en un entorno{ "environment": "production" } -
get_columns: Obtener información de columnas para un dataset{ "environment": "production", "dataset": "api-requests" } -
run_query: Ejecutar consultas de análisis con opciones enriquecidas{ "environment": "production", "dataset": "api-requests", "calculations": [ { "op": "COUNT" }, { "op": "P95", "column": "duration_ms" } ], "breakdowns": ["service.name"], "time_range": 3600 } -
analyze_columns: Analiza columnas específicas en un dataset ejecutando consultas estadísticas y devolviendo métricas calculadas. -
list_slos: Listar todos los SLOs para un dataset{ "environment": "production", "dataset": "api-requests" } -
get_slo: Obtener información detallada de un SLO{ "environment": "production", "dataset": "api-requests", "sloId": "abc123" } -
list_triggers: Listar todos los triggers para un dataset{ "environment": "production", "dataset": "api-requests" } -
get_trigger: Obtener información detallada de un trigger{ "environment": "production", "dataset": "api-requests", "triggerId": "xyz789" } -
get_trace_link: Generar un enlace profundo a un trace específico en la interfaz de Honeycomb -
get_instrumentation_help: Proporciona orientación sobre instrumentación OpenTelemetry{ "language": "python", "filepath": "app/services/payment_processor.py" }
Ejemplos de consultas con Claude
Pregunte a Claude cosas como:
- "¿Qué datasets están disponibles en el entorno de producción?"
- "Muéstrame la latencia P95 para el servicio API durante la última hora"
- "¿Cuál es la tasa de error desglosada por nombre de servicio?"
- "¿Hay algún SLO cerca de incumplir su presupuesto?"
- "Muéstrame todos los triggers activos en el entorno de staging"
- "¿Qué columnas están disponibles en el dataset de API de producción?"
Respuestas optimizadas de herramientas
Todas las respuestas de herramientas están optimizadas para reducir el uso de la ventana de contexto mientras se mantiene la información esencial:
- Listar datasets: Devuelve solo nombre, slug y descripción
- Obtener columnas: Devuelve información de columnas simplificada centrada en nombre, tipo y descripción
- Ejecutar consulta:
- Incluye resultados reales y metadatos necesarios
- Agrega estadísticas resumidas calculadas automáticamente
- Solo incluye datos de series para consultas de mapas de calor
- Omite metadatos verbosos, enlaces y detalles de ejecución
- Analizar columna:
- Devuelve valores principales, conteos y estadísticas clave
- Calcula automáticamente métricas numéricas cuando corresponde
- Información de SLO: Simplificada a indicadores de estado clave y métricas de rendimiento
- Información de trigger: Centrada en estado del trigger, condiciones y objetivos de notificación
Esta optimización asegura que las respuestas sean concisas pero completas, permitiendo que los LLMs procesen más datos dentro de las limitaciones de contexto.
Especificación de consulta para run_query
La herramienta run_query admite una especificación de consulta integral:
-
calculations: Matriz de operaciones a realizar
- Operaciones admitidas: 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
- Algunas operaciones como COUNT y CONCURRENCY no requieren una columna
- Ejemplo:
{"op": "HEATMAP", "column": "duration_ms"}
-
filters: Matriz de condiciones de filtro
- Operadores admitidos: =, !=, >, >=, <, <=, starts-with, does-not-start-with, exists, does-not-exist, contains, does-not-contain, in, not-in
- Ejemplo:
{"column": "error", "op": "=", "value": true}
-
filter_combination: "AND" u "OR" (el valor predeterminado es "AND")
-
breakdowns: Matriz de columnas para agrupar resultados
- Ejemplo:
["service.name", "http.status_code"]
- Ejemplo:
-
orders: Matriz que especifica cómo ordenar los resultados
- Debe hacer referencia a columnas de desgloses o cálculos
- La operación HEATMAP no se puede usar en orders
- Ejemplo:
{"op": "COUNT", "order": "descending"}
-
time_range: Rango de tiempo relativo en segundos (por ejemplo, 3600 para la última hora)
- Se puede combinar con start_time o end_time, pero no con ambos
-
start_time y end_time: Marcas de tiempo UNIX para rangos de tiempo absolutos
-
having: Filtrar resultados basados en valores de cálculo
- Ejemplo:
{"calculate_op": "COUNT", "op": ">", "value": 100}
- Ejemplo:
Ejemplos de consultas
Aquí hay algunos ejemplos de consultas del mundo real:
Encontrar llamadas API lentas
{
"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"}
]
}
Distribución de llamadas a BD (última semana)
{
"environment": "production",
"dataset": "api-requests",
"calculations": [
{"column": "duration_ms", "op": "HEATMAP"}
],
"filters": [
{"column": "db.statement", "op": "exists"}
],
"breakdowns": ["db.statement"],
"time_range": 604800
}
Conteo de excepciones por excepción y llamador
{
"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"}
]
}
Desarrollo
pnpm install
pnpm run build
Licencia
MIT