grafana_get_dashboard_config
Retrieve dashboard configuration details from Grafana's database to access metadata and settings for monitoring and analysis workflows.
Instructions
Retrieves dashboard configuration details from the database. Queries the connectors_connectormetadatamodelstore table for dashboard metadata.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| dashboard_uid | Yes | Dashboard UID |
Implementation Reference
- The actual implementation of the tool logic that interacts with the Grafana API to fetch dashboard configuration details.
def grafana_get_dashboard_config_details(self, dashboard_uid: str) -> dict[str, Any]: """ Retrieves dashboard configuration details from the database. Args: dashboard_uid: Dashboard UID Returns: Dict containing dashboard configuration metadata """ try: # This would typically query a database, but for now we'll use Grafana API url = f"{self.__host}/api/dashboards/uid/{dashboard_uid}" logger.info(f"Fetching dashboard config for UID: {dashboard_uid}") response = requests.get(url, headers=self.headers, verify=self.__ssl_verify, timeout=20) if response.status_code == 200: dashboard_data = response.json() return { "status": "success", "dashboard_uid": dashboard_uid, "dashboard": dashboard_data.get("dashboard", {}), "meta": dashboard_data.get("meta", {}), } else: raise Exception(f"Failed to fetch dashboard config. Status: {response.status_code}, Response: {response.text}") except Exception as e: logger.error(f"Error fetching dashboard config: {e!s}") raise e - src/grafana_mcp_server/mcp_server.py:184-193 (registration)The schema and registration definition of the 'grafana_get_dashboard_config' tool.
{ "name": "grafana_get_dashboard_config", "description": "Retrieves dashboard configuration details from the database. " "Queries the connectors_connectormetadatamodelstore table for dashboard metadata.", "inputSchema": { "type": "object", "properties": {"dashboard_uid": {"type": "string", "description": "Dashboard UID"}}, "required": ["dashboard_uid"], }, }, - The server-side wrapper function that orchestrates the tool call and delegates execution to the processor.
def grafana_get_dashboard_config(dashboard_uid): """Get dashboard configuration details""" try: grafana_processor = current_app.config.get("grafana_processor") if not grafana_processor: return { "status": "error", "message": "Grafana processor not initialized. Check configuration.", } result = grafana_processor.grafana_get_dashboard_config_details(dashboard_uid) return result except Exception as e: