Skip to main content
Glama

get_error_log

Retrieve Home Assistant error logs to identify issues, count errors and warnings, and analyze integration mentions for troubleshooting.

Instructions

Get the Home Assistant error log for troubleshooting

Returns: A dictionary containing: - log_text: The full error log text - error_count: Number of ERROR entries found - warning_count: Number of WARNING entries found - integration_mentions: Map of integration names to mention counts - error: Error message if retrieval failed

Examples: Returns errors, warnings count and integration mentions Best Practices: - Use this tool when troubleshooting specific Home Assistant errors - Look for patterns in repeated errors - Pay attention to timestamps to correlate errors with events - Focus on integrations with many mentions in the log

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Implementation Reference

  • Main tool handler function for 'get_error_log'. Registered via @async_handler decorator. Schema defined via @mcp.tool() decorator and comprehensive docstring. Delegates execution to the helper function.
    @mcp.tool()
    @async_handler("get_error_log")
    async def get_error_log() -> Dict[str, Any]:
        """
        Get the Home Assistant error log for troubleshooting
        
        Returns:
            A dictionary containing:
            - log_text: The full error log text
            - error_count: Number of ERROR entries found
            - warning_count: Number of WARNING entries found
            - integration_mentions: Map of integration names to mention counts
            - error: Error message if retrieval failed
            
        Examples:
            Returns errors, warnings count and integration mentions
        Best Practices:
            - Use this tool when troubleshooting specific Home Assistant errors
            - Look for patterns in repeated errors
            - Pay attention to timestamps to correlate errors with events
            - Focus on integrations with many mentions in the log    
        """
        logger.info("Getting Home Assistant error log")
        return await get_hass_error_log()
  • Core helper function implementing the error log retrieval logic. Fetches from HA /api/error_log endpoint, parses for ERROR/WARNING counts, extracts [integration] mentions via regex, handles HTTP and exception errors gracefully.
    @handle_api_errors
    async def get_hass_error_log() -> Dict[str, Any]:
        """
        Get the Home Assistant error log for troubleshooting
        
        Returns:
            A dictionary containing:
            - log_text: The full error log text
            - error_count: Number of ERROR entries found
            - warning_count: Number of WARNING entries found
            - integration_mentions: Map of integration names to mention counts
            - error: Error message if retrieval failed
        """
        try:
            # Call the Home Assistant API error_log endpoint
            url = f"{HA_URL}/api/error_log"
            headers = get_ha_headers()
            
            async with httpx.AsyncClient() as client:
                response = await client.get(url, headers=headers, timeout=30)
                
                if response.status_code == 200:
                    log_text = response.text
                    
                    # Count errors and warnings
                    error_count = log_text.count("ERROR")
                    warning_count = log_text.count("WARNING")
                    
                    # Extract integration mentions
                    import re
                    integration_mentions = {}
                    
                    # Look for patterns like [mqtt], [zwave], etc.
                    for match in re.finditer(r'\[([a-zA-Z0-9_]+)\]', log_text):
                        integration = match.group(1).lower()
                        if integration not in integration_mentions:
                            integration_mentions[integration] = 0
                        integration_mentions[integration] += 1
                    
                    return {
                        "log_text": log_text,
                        "error_count": error_count,
                        "warning_count": warning_count,
                        "integration_mentions": integration_mentions
                    }
                else:
                    return {
                        "error": f"Error retrieving error log: {response.status_code} {response.reason_phrase}",
                        "details": response.text,
                        "log_text": "",
                        "error_count": 0,
                        "warning_count": 0,
                        "integration_mentions": {}
                    }
        except Exception as e:
            logger.error(f"Error retrieving Home Assistant error log: {str(e)}")
            return {
                "error": f"Error retrieving error log: {str(e)}",
                "log_text": "",
                "error_count": 0,
                "warning_count": 0,
                "integration_mentions": {}
            }

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/voska/hass-mcp'

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