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] Paneles de control
- [x] Obtener el panel por UID
- [x] Actualizar o crear un panel (DESCARGO DE RESPONSABILIDAD: Tenga cuidado con las ventanas de contexto. Consulte https://github.com/grafana/mcp-grafana/issues/101 para obtener más detalles)
- [x] Obtener el título, la cadena de consulta y la información de la fuente de datos (incluido el UID y el tipo, si está disponible) de cada panel en un tablero
- [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
- [x] Iniciar investigaciones de Sift y ver los resultados
- [x] Crear investigaciones
- [x] Enumere las investigaciones con un parámetro límite
- [x] Obtener investigación
- [x] Obtener análisis
- [x] Encuentre patrones de error en los registros usando Sift
- [x] Encuentra solicitudes lentas usando Sift
- [ ] Agregar herramientas en los otros controles de tamizado
- [ ] 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
- [x] Funcionalidad de administrador
- [ ] Lista de usuarios
- [x] Lista de equipos
- [ ] Lista de roles
- [ ] Enumere las asignaciones de roles
- [ ] Asignaciones de roles de depuración
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 |
---|---|---|
list_teams | Administración | Listar todos los equipos |
search_dashboards | Buscar | Buscar paneles de control |
get_dashboard_by_uid | Panel | Obtener un panel por uid |
update_dashboard | Panel | Actualizar o crear un nuevo panel |
get_dashboard_panel_queries | Panel | Obtener el título del panel, las consultas, el UID de la fuente de datos y el tipo desde un tablero |
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 |
get_investigation | Tamizar a | Recuperar una investigación de Sift existente por su UUID |
get_analysis | Tamizar a | Recuperar un análisis específico de una investigación de Sift |
list_investigations | Tamizar a | Recuperar una lista de investigaciones de Sift con un límite opcional |
find_error_pattern_logs | Tamizar a | Encuentra patrones de error elevados en los registros de Loki. |
find_slow_requests | Tamizar a | Encuentra solicitudes lentas de las fuentes de datos de tempo relevantes. |
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.
- Tiene varias opciones para instalar
mcp-grafana
:- Imagen de Docker : utilice la imagen de Docker prediseñada desde Docker Hub:
- Descargar binario : descargue la última versión de
mcp-grafana
desde la página de versiones y colóquela en su$PATH
. - Compilar desde el código fuente : 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 suPATH
.
- Imagen de Docker : utilice la imagen de Docker prediseñada desde Docker Hub:
- Agregue la configuración del servidor al archivo de configuración del cliente. Por ejemplo, para Claude Desktop:Si se utiliza el binario:Si usa Docker:
Nota: si ve
Error: spawn mcp-grafana ENOENT
en Claude Desktop, debe especificar la ruta completa amcp-grafana
.
Uso de VSCode con un servidor MCP remoto
Asegúrese de que su .vscode/settings.json
incluya:
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:
Si se utiliza el binario:
Si usa Docker:
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 una imagen de Docker personalizada. 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
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Un servidor de Protocolo de Contexto de Modelo (MCP) para Grafana.
Esto proporciona acceso a su instancia de Grafana y al ecosistema circundante.
Related MCP Servers
- AsecurityFlicenseAqualityA Model Context Protocol (MCP) server that provides programmatic access to the Supabase Management API. This server allows AI models and other clients to manage Supabase projects and organizations through a standardized interface.Last updated -88427JavaScript
- AsecurityAlicenseAqualityA beginner-friendly Model Context Protocol (MCP) server that helps users understand MCP concepts, provides interactive examples, and lists available MCP servers. This server is designed to be a helpful companion for developers working with MCP. Also comes with a huge list of servers you can install.Last updated -3936JavaScriptApache 2.0
- -securityAlicense-qualityMCP Server simplifies the implementation of the Model Context Protocol by providing a user-friendly API to create custom tools and manage server workflows efficiently.Last updated -43TypeScriptMIT License
- -securityAlicense-qualityMCP Server provides a simpler API to interact with the Model Context Protocol by allowing users to define custom tools and services to streamline workflows and processes.Last updated -132TypeScriptMIT License