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
Herramienta | Categoría | Descripción |
---|---|---|
search_dashboards | Buscar | Buscar paneles de control |
get_dashboard_by_uid | Panel | Obtener un panel por uid |
list_datasources | Fuentes de datos | Lista de fuentes de datos |
get_datasource_by_uid | Fuentes de datos | Obtener una fuente de datos por uid |
get_datasource_by_name | Fuentes de datos | Obtener una fuente de datos por nombre |
query_prometheus | Prometeo | Ejecutar una consulta en una fuente de datos de Prometheus |
list_prometheus_metric_metadata | Prometeo | Lista de metadatos de métricas |
list_prometheus_metric_names | Prometeo | Lista de nombres de métricas disponibles |
list_prometheus_label_names | Prometeo | Lista de nombres de etiquetas que coinciden con un selector |
list_prometheus_label_values | Prometeo | Lista de valores para una etiqueta específica |
list_incidents | Incidente | Lista de incidentes en Grafana Incident |
create_incident | Incidente | Crear un incidente en Grafana Incident |
add_activity_to_incident | Incidente | Agregar un elemento de actividad a un incidente en Grafana Incident |
resolve_incident | Incidente | Resolver un incidente en Grafana Incident |
query_loki_logs | Loki | Consultar y recuperar registros utilizando LogQL (consultas de registros o métricas) |
list_loki_label_names | Loki | Enumere todos los nombres de etiquetas disponibles en los registros |
list_loki_label_values | Loki | Lista de valores para una etiqueta de registro específica |
query_loki_stats | Loki | Obtener estadísticas sobre los flujos de registros |
list_alert_rules | Alerta | Lista de reglas de alerta |
get_alert_rule_by_uid | Alerta | Obtener regla de alerta por UID |
list_oncall_schedules | De guardia | Lista de horarios de Grafana OnCall |
get_oncall_shift | De guardia | Obtenga detalles de un turno específico de OnCall |
get_current_oncall_users | De guardia | Obtener usuarios que actualmente están de guardia para un horario específico |
list_oncall_teams | De guardia | Lista de equipos de Grafana OnCall |
list_oncall_users | De guardia | Lista de usuarios de Grafana OnCall |
Uso
- 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.
- 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 entornoGOBIN
para especificar el directorio donde se instalará el binario. Esta variable también debe estar en suPATH
.Copy - Agregue la configuración del servidor al archivo de configuración del cliente. Por ejemplo, para Claude Desktop:Copy
Nota: si ve
Error: spawn mcp-grafana ENOENT
en Claude Desktop, debe especificar la ruta completa amcp-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:
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:
También puedes ejecutar el servidor usando el transporte SSE dentro de Docker. Para crear la imagen, usa
Y para ejecutar la imagen, usa:
Pruebas
Hay tres tipos de pruebas disponibles:
- Pruebas unitarias (no se requieren dependencias externas):
También puedes ejecutar pruebas unitarias con:
- Pruebas de integración (requiere que los contenedores Docker estén en funcionamiento):
- Pruebas en la nube (requiere instancia de Grafana en la nube y credenciales):
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:
Las pruebas de integración se pueden ejecutar con:
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:
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:
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 .
This server cannot be installed
Un servidor de Protocolo de Contexto de Modelo (MCP) para Grafana.
Esto proporciona acceso a su instancia de Grafana y al ecosistema circundante.