Grafana

Official

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

Integrations

  • Provides access to Grafana dashboards, data sources, and ecosystem tools, enabling search and retrieval of dashboards, querying of data sources (Prometheus, Loki), incident management, alerting capabilities, and OnCall functionality.

  • Allows querying Prometheus data sources, retrieving metric metadata, listing metric names, and exploring label names and values to analyze time series data.

Servidor MCP de Grafana

Un servidor de Protocolo de Contexto de Modelo (MCP) para Grafana.

Esto proporciona acceso a su instancia de Grafana y al ecosistema circundante.

Características

  • [x] Buscar paneles de control
  • [x] Obtener el panel por UID
  • [x] Listar y obtener información de la fuente de datos
  • [ ] Consultar fuentes de datos
    • [x] Prometeo
    • [x] Loki
      • [x] Consultas de registro
      • [x] Consultas métricas
    • [ ] Ritmo
    • [ ] Piroscopio
  • [x] Consultar metadatos de Prometheus
    • [x] Metadatos métricos
    • [x] Nombres de métricas
    • [x] Nombres de etiquetas
    • [x] Valores de etiqueta
  • [x] Consultar metadatos de Loki
    • [x] Nombres de etiquetas
    • [x] Valores de etiqueta
    • [x] Estadísticas
  • [x] Buscar, crear, actualizar y cerrar incidentes
  • [ ] Iniciar investigaciones de Sift y ver los resultados
  • [ ] Alerta
    • [x] Listar y obtener información de reglas de alerta
    • [x] Obtener estados de reglas de alerta (activación/normal/error/etc.)
    • [ ] Crear y cambiar reglas de alerta
    • [x] Lista de puntos de contacto
    • [ ] Crear y cambiar puntos de contacto
  • [x] Acceda a la funcionalidad de Grafana OnCall
    • [x] Enumerar y administrar horarios
    • [x] Obtener detalles del turno
    • [x] Obtener los usuarios de guardia actuales
    • [x] Lista de equipos y usuarios
    • [ ] Lista de grupos de alerta

La lista de herramientas es configurable, por lo que puede elegir qué herramientas quiere que estén disponibles para el cliente MCP. Esto resulta útil si no utiliza alguna funcionalidad o si no desea ocupar demasiado espacio en la ventana de contexto. Para deshabilitar una categoría de herramientas, utilice el indicador --disable-<category> al iniciar el servidor. Por ejemplo, para deshabilitar las herramientas OnCall, utilice --disable-oncall .

Herramientas

HerramientaCategoríaDescripción
search_dashboardsBuscarBuscar paneles de control
get_dashboard_by_uidPanelObtener un panel por uid
list_datasourcesFuentes de datosLista de fuentes de datos
get_datasource_by_uidFuentes de datosObtener una fuente de datos por uid
get_datasource_by_nameFuentes de datosObtener una fuente de datos por nombre
query_prometheusPrometeoEjecutar una consulta en una fuente de datos de Prometheus
list_prometheus_metric_metadataPrometeoLista de metadatos de métricas
list_prometheus_metric_namesPrometeoLista de nombres de métricas disponibles
list_prometheus_label_namesPrometeoLista de nombres de etiquetas que coinciden con un selector
list_prometheus_label_valuesPrometeoLista de valores para una etiqueta específica
list_incidentsIncidenteLista de incidentes en Grafana Incident
create_incidentIncidenteCrear un incidente en Grafana Incident
add_activity_to_incidentIncidenteAgregar un elemento de actividad a un incidente en Grafana Incident
resolve_incidentIncidenteResolver un incidente en Grafana Incident
query_loki_logsLokiConsultar y recuperar registros utilizando LogQL (consultas de registros o métricas)
list_loki_label_namesLokiEnumere todos los nombres de etiquetas disponibles en los registros
list_loki_label_valuesLokiLista de valores para una etiqueta de registro específica
query_loki_statsLokiObtener estadísticas sobre los flujos de registros
list_alert_rulesAlertaLista de reglas de alerta
get_alert_rule_by_uidAlertaObtener regla de alerta por UID
list_oncall_schedulesDe guardiaLista de horarios de Grafana OnCall
get_oncall_shiftDe guardiaObtenga detalles de un turno específico de OnCall
get_current_oncall_usersDe guardiaObtener usuarios que actualmente están de guardia para un horario específico
list_oncall_teamsDe guardiaLista de equipos de Grafana OnCall
list_oncall_usersDe guardiaLista de usuarios de Grafana OnCall

Uso

  1. Cree una cuenta de servicio en Grafana con permisos suficientes para usar las herramientas que desee, genere un token de cuenta de servicio y cópielo al portapapeles para usarlo en el archivo de configuración. Consulte la documentación de Grafana para obtener más información.
  2. Descargue la última versión de mcp-grafana desde la página de versiones y colóquela en su $PATH .Si tiene instalada una cadena de herramientas Go, también puede compilarla e instalarla desde el código fuente. Para ello, utilice la variable de entorno GOBIN para especificar el directorio donde se instalará el binario. Esta variable también debe estar en su PATH .
    GOBIN="$HOME/go/bin" go install github.com/grafana/mcp-grafana/cmd/mcp-grafana@latest
  3. Agregue la configuración del servidor al archivo de configuración del cliente. Por ejemplo, para Claude Desktop:
    { "mcpServers": { "grafana": { "command": "mcp-grafana", "args": [], "env": { "GRAFANA_URL": "http://localhost:3000", "GRAFANA_API_KEY": "<your service account token>" } } } }

Nota: si ve Error: spawn mcp-grafana ENOENT en Claude Desktop, debe especificar la ruta completa a mcp-grafana .

Modo de depuración

Puede habilitar el modo de depuración para el transporte de Grafana añadiendo la opción -debug al comando. Esto proporcionará un registro detallado de las solicitudes y respuestas HTTP entre el servidor MCP y la API de Grafana, lo cual puede ser útil para la resolución de problemas.

Para utilizar el modo de depuración con la configuración de Claude Desktop, actualice su configuración de la siguiente manera:

{ "mcpServers": { "grafana": { "command": "mcp-grafana", "args": ["-debug"], "env": { "GRAFANA_URL": "http://localhost:3000", "GRAFANA_API_KEY": "<your service account token>" } } } }

Desarrollo

¡Agradecemos sus contribuciones! Abra un problema o envíe una solicitud de incorporación de cambios si tiene alguna sugerencia o mejora.

Este proyecto está escrito en Go. Instale Go siguiendo las instrucciones para su plataforma.

Para ejecutar el servidor, utilice:

make run

También puedes ejecutar el servidor usando el transporte SSE dentro de Docker. Para crear la imagen, usa

make build-image

Y para ejecutar la imagen, usa:

docker run -it --rm -p 8000:8000 mcp-grafana:latest

Pruebas

Hay tres tipos de pruebas disponibles:

  1. Pruebas unitarias (no se requieren dependencias externas):
make test-unit

También puedes ejecutar pruebas unitarias con:

make test
  1. Pruebas de integración (requiere que los contenedores Docker estén en funcionamiento):
make test-integration
  1. Pruebas en la nube (requiere instancia de Grafana en la nube y credenciales):
make test-cloud

Nota: Las pruebas en la nube se configuran automáticamente en CI. Para el desarrollo local, deberá configurar su propia instancia y credenciales de Grafana Cloud.

Las pruebas de integración más completas requerirán que una instancia de Grafana se ejecute localmente en el puerto 3000; puede iniciar una con Docker Compose:

docker-compose up -d

Las pruebas de integración se pueden ejecutar con:

make test-all

Si va a agregar más herramientas, incorpore pruebas de integración para ellas. Las pruebas existentes deberían ser un buen punto de partida.

Pelusa

Para depurar el código, ejecute:

make lint

Esto incluye un linter personalizado que busca comas sin escape en las etiquetas de estructura jsonschema . Las comas en los campos description deben escaparse con \\, para evitar el truncamiento silencioso. Puede ejecutar este linter con:

make lint-jsonschema

Consulte la documentación de JSONSchema Linter para obtener más detalles.

Licencia

Este proyecto está licenciado bajo la Licencia Apache, Versión 2.0 .

-
security - not tested
A
license - permissive license
-
quality - not tested

Un servidor de Protocolo de Contexto de Modelo (MCP) para Grafana.

Esto proporciona acceso a su instancia de Grafana y al ecosistema circundante.

  1. Features
    1. Tools
  2. Usage
    1. Debug Mode
  3. Development
    1. Testing
    2. Linting
  4. License
    ID: s29pkmp7d9