Skip to main content
Glama
DrDroidLab

Grafana MCP Server

grafana_fetch_folders

Retrieve all Grafana folders with metadata and permissions to organize and manage dashboard access.

Instructions

Fetches all folders from Grafana with their metadata and permissions.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Implementation Reference

  • The handler logic that makes the API request to Grafana to fetch folders and processes the response.
    def grafana_fetch_folders(self) -> dict[str, Any]:
        """
        Fetches all folders from Grafana.
    
        Returns:
            Dict containing list of folders
        """
        try:
            url = f"{self.__host}/api/folders"
            logger.info("Fetching all folders")
    
            response = requests.get(url, headers=self.headers, verify=self.__ssl_verify, timeout=20)
    
            if response.status_code == 200:
                folders = response.json()
                # Extract relevant information
                folder_list = []
                for folder in folders:
                    folder_list.append(
                        {
                            "id": folder.get("id"),
                            "uid": folder.get("uid"),
                            "title": folder.get("title"),
                            "url": folder.get("url"),
                            "has_acl": folder.get("hasAcl", False),
                            "can_save": folder.get("canSave", False),
                            "can_edit": folder.get("canEdit", False),
                            "can_admin": folder.get("canAdmin", False),
                            "created": folder.get("created"),
                            "updated": folder.get("updated"),
                            "created_by": folder.get("createdBy"),
                            "updated_by": folder.get("updatedBy"),
                            "version": folder.get("version"),
                        }
                    )
    
                return {
                    "status": "success",
                    "total_count": len(folder_list),
                    "folders": folder_list,
                }
            else:
                raise Exception(f"Failed to fetch folders. Status: {response.status_code}, Response: {response.text}")
    
        except Exception as e:
            logger.error(f"Error fetching folders: {e!s}")
            raise e

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/DrDroidLab/grafana-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server