Chronosphere
Obtén logs, métricas, trazas y eventos de la plataforma de observabilidad Chronosphere.
Documentación
Servidor MCP de Chronosphere
Servidor MCP para Chronosphere. Proporciona herramientas para obtener logs, métricas, trazas, eventos, así como entidades seleccionadas.
Este proyecto utiliza semver para las versiones de lanzamiento. Aún no hemos llegado a la versión 1.0, por lo que pueden ocurrir cambios importantes en versiones menores.
Configuración de MCP con hosts populares (claude desktop, cursor)
Servidor remoto
La forma más fácil de usar el servidor MCP es mediante nuestro servidor remoto alojado:
Autenticación
Puedes usar un token de API de Chronosphere o OAuth con el servidor MCP de Chronosphere. Para usar MCP con OAuth, el cliente MCP debe ser compatible con OAuth.
El soporte de OAuth es nuevo y no ha sido probado con todos los clientes. Si no funciona para ti, por favor reporta el problema al soporte de Chronosphere en Slack con la siguiente información:
- El cliente MCP que estás usando (por ejemplo, VS code, codex, cursor, etc.)
- Los pasos que seguiste para intentar la autenticación
- El error que estás viendo.
Configuración basada en encabezados
Algunos hosts de MCP te permiten adjuntar encabezados HTTP personalizados a las solicitudes enviadas al servidor MCP. El servidor MCP de Chronosphere admite los siguientes encabezados orientados al usuario.
Deshabilitar herramientas (X-Chrono-MCP-Disable-Tools)
Usa este encabezado para ocultar herramientas específicas de la lista de herramientas expuesta a tu cliente MCP.
- Formato: lista separada por comas de nombres de herramientas MCP (la columna Nombre de la herramienta en la tabla de Herramientas disponibles)
- Valor de ejemplo:
query_logs_range,render_prometheus_range_query - Notas: se ignoran los espacios en blanco; los nombres de herramientas desconocidos se ignoran
Cursor/VSCode
{
"mcpServers": {
"chronosphere": {
"url": "https://<org name>.chronosphere.io/api/mcp/mcp",
"headers": {
"Authorization": "Bearer <chronosphere api token>",
"X-Chrono-MCP-Disable-Tools": "<optional list of tools to disable>"
}
}
}
}
Esta configuración debería funcionar para Cursor y VSCode. Omite la sección headers para usar OAuth en lugar de un token de API de Chronosphere.
Elimina X-Chrono-MCP-Disable-Tools para exponer todas las herramientas.
Más detalles para VSCode aquí y Cursor aquí
Claude code
Agregar el servidor MCP de chronosphere a claude code
claude mcp add -t http \
-H "Authorization: Bearer ${CHRONOSPHERE_API_TOKEN}" \
-H "X-Chrono-MCP-Disable-Tools: <list of tools to disable>" \
chronosphere "https://${CHRONOSPHERE_ORG_NAME}.chronosphere.io/api/mcp/mcp"
Puedes omitir el encabezado de Authorization si estás usando OAuth. Una vez que estés en claude, escribe /mcp y selecciona el servidor para iniciar sesión y activar el flujo de OAuth.
Elimina el encabezado X-Chrono-MCP-Disable-Tools para exponer todas las herramientas.
Más detalles aquí
Codex CLI
experimental_use_rmcp_client = true
[mcp_servers.chronosphere]
url = "https://<org_name>.chronosphere.io/api/mcp/mcp"
bearer_token = "<chronosphere api token>"
Para el inicio de sesión con OAuth, debes habilitar experimental_use_rmcp_client = true y luego ejecutar codex mcp login chronosphere
Más detalles aquí
Gemini CLI
CHRONOSPHERE_ORG_NAME=<your org>
CHRONOSPHERE_API_TOKEN=<your api token>
gemini mcp add chronosphere "https://${CHRONOSPHERE_ORG_NAME}.chronosphere.io/api/mcp/mcp" \
-H "Authorization: Bearer ${CHRONOSPHERE_API_TOKEN}" \
-H "X-Chrono-MCP-Disable-Tools: <list of tools to disable>"
# Drop the -H authorization header option if you want to use OAuth.
Consulta la documentación de MCP de Gemini para obtener más información.
Compilación desde el código fuente
Primero compila el binario
make chronomcp
{
"mcpServers": {
"chronosphere-mcp": {
"command": "<PATH/TO/REPO>/bin/chronomcp",
"args": [
"-c",
"<PATH/TO/REPO>/config.yaml"
],
"env": {
"CHRONOSPHERE_ORG_NAME": "<your org here>",
"CHRONOSPHERE_API_TOKEN": "<your api token here>"
}
}
}
}
Desarrollo
Ejecutar el servidor
Autenticación en Chronosphere
Este servidor MCP utiliza los mismos métodos de autenticación que chronoctl. De forma predeterminada, el Makefile espera que el token de API esté almacenado en .chronosphere_api_token.
Ejecutar el servidor mcp
make run-chronomcp CHRONOSPHERE_ORG_NAME=<your org here> CHRONOSPHERE_API_TOKEN=<your api token here>
Depuración de herramientas MCP
El proyecto MCP proporciona un inspector útil para llamar directamente a las APIs de las herramientas. Para usarlo:
- Inicia el servidor MCP con transporte HTTP transmisible
make run-chronomcp CONFIG_FILE=./config.http.yaml CHRONOSPHERE_ORG_NAME=<your org here> - Ejecuta
npx @modelcontextprotocol/inspector node build/index.js. - Abre http://localhost:6274/#resources, completa
http://0.0.0.0:8081/mcpen la URL, con el tipo de transporte Streamable HTTP.
Herramientas disponibles
| Grupo | Nombre de la herramienta | Descripción |
|---|---|---|
| configapi | get_classic_dashboard | Obtener recurso de classic-dashboards |
| configapi | get_dashboard | Obtener recurso de dashboards |
| configapi | get_drop_rule | Obtener recurso de drop-rules |
| configapi | get_mapping_rule | Obtener recurso de mapping-rules |
| configapi | get_monitor | Obtener recurso de monitors |
| configapi | get_notification_policy | Obtener recurso de notification-policies |
| configapi | get_recording_rule | Obtener recurso de recording-rules |
| configapi | get_rollup_rule | Obtener recurso de rollup-rules |
| configapi | get_slo | Obtener recurso de slos |
| configapi | list_classic_dashboards | Listar recursos de classic-dashboards |
| configapi | list_dashboards | Listar recursos de dashboards |
| configapi | list_drop_rules | Listar recursos de drop-rules |
| configapi | list_mapping_rules | Listar recursos de mapping-rules |
| configapi | list_monitors | Listar recursos de monitors |
| configapi | list_notification_policies | Listar recursos de notification-policies |
| configapi | list_recording_rules | Listar recursos de recording-rules |
| configapi | list_rollup_rules | Listar recursos de rollup-rules |
| configapi | list_slos | Listar recursos de slos |
| events | get_events_metadata | Listar propiedades que puedes consultar en eventos |
| events | list_events | Listar eventos de una consulta determinada |
| events | list_events_label_values | Listar valores para un nombre de etiqueta determinado |
| logs | get_log | Obtener un mensaje de log completo por su ID. El ID es el identificador único del log. |
| logs | get_log_histogram | Obtener histograma de logs de una consulta determinada |
| logs | list_log_field_names | Listar nombres de campos de logs |
| logs | list_log_field_values | Listar valores de campos de logs |
| logs | query_logs_range | Ejecutar una consulta de rango para logs. Este endpoint devuelve logs como timeSeries o gridData. Puede devolver una gran cantidad de datos, así que ten cuidado al poner el resultado de esta dirección en contexto. U... |
| metrics | list_prometheus_label_names | Devuelve la lista de nombres de etiquetas (claves) disponibles en métricas que coinciden con los selectores dados. Usa esta herramienta cuando necesites descubrir qué etiquetas están disponibles en métricas o servicios específicos. Ejempl... |
| metrics | list_prometheus_label_values | Devuelve la lista de valores para un nombre de etiqueta específico, opcionalmente filtrado por selectores. Usa esta herramienta cuando conozcas el nombre de la etiqueta y quieras descubrir qué valores tiene en tus métricas. Comú... |
| metrics | list_prometheus_series | Devuelve la serie temporal completa (conjuntos completos de etiquetas con todos los pares clave-valor) que coinciden con los selectores dados. Cada resultado muestra la combinación exacta de etiquetas para una serie temporal activa. Usa esta herram... |
| metrics | list_prometheus_series_metadata | |
| metrics | query_prometheus_instant | Evalúa una consulta instantánea de Prometheus en un solo punto en el tiempo |
| metrics | query_prometheus_range | Ejecuta una consulta PromQL de Prometheus en un rango de tiempo especificado y devuelve puntos de datos de series temporales como JSON. Admite sintaxis PromQL estándar más funciones personalizadas de Chronosphere: - cardinality_estimat... |
| metrics | render_prometheus_range_query | Evalúa una consulta de expresión de Prometheus en un rango de tiempo y la renderiza como una imagen PNG. |
| metric_usage | list_metric_usages_by_label_name | Lista estadísticas de uso de métricas agrupadas por nombre de etiqueta. Usa esto para encontrar etiquetas no utilizadas o de alta cardinalidad que podrían eliminarse. |
| metric_usage | list_metric_usages_by_metric_name | Lista estadísticas de uso de métricas agrupadas por nombre de métrica. Usa esto para encontrar métricas no utilizadas o subutilizadas que podrían eliminarse para reducir costos. |
| metric_usage | list_rule_evaluations | Lista problemas de evaluación de reglas para monitores y reglas de grabación. Usa esto para identificar monitores o reglas de grabación que están fallando o tienen problemas. |
| monitors | list_monitor_statuses | Lista el estado actual de los monitores en Chronosphere. Devuelve estados de monitores con estados de alerta y detalles opcionales de señal y serie. |
| traces | list_traces | Listar trazas de una consulta determinada |
Nota: Para regenerar esta tabla después de actualizaciones de herramientas, ejecuta: make tools-gen && go run scripts/generate-tools-table.go
Lanzamientos
Usamos goreleaser para gestionar los lanzamientos.
Necesitarás un token de github y colocarlo en un archivo .github_release_token. El token necesita al menos los siguientes permisos
content: writeissues: write
Para crear un nuevo lanzamiento, primero crea una etiqueta:
git tag vX.Y.Z
git push origin vX.Y.Z
Luego ejecuta el siguiente comando para realizar una prueba en seco del lanzamiento:
```sh
make release-dry-run
# verify the release looks good, then run:
make release