Skip to main content
Glama

check_temp_directory

Verify the temporary directory location for storing code index data to ensure proper operation and data management.

Instructions

Check the temporary directory used for storing index data.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Implementation Reference

  • Core handler function manage_temp_directory that implements the check_temp_directory tool logic when action='check'. Directly called by the MCP tool registration.
    def manage_temp_directory(action: str) -> Dict[str, Any]:
        """
        Manage temporary directory operations.
    
        This is a standalone function that doesn't require project context.
        Handles the logic for create_temp_directory and check_temp_directory MCP tools.
    
        Args:
            action: The action to perform ('create' or 'check')
    
        Returns:
            Dictionary with directory information and operation results
    
        Raises:
            ValueError: If action is invalid or operation fails
        """
        if action not in ['create', 'check']:
            raise ValueError(f"Invalid action: {action}. Must be 'create' or 'check'")
    
        # Try to get the actual temp directory from index manager, fallback to default
        try:
            index_manager = get_index_manager()
            temp_dir = index_manager.temp_dir if index_manager.temp_dir else os.path.join(tempfile.gettempdir(), SETTINGS_DIR)
        except:
            temp_dir = os.path.join(tempfile.gettempdir(), SETTINGS_DIR)
    
        if action == 'create':
            existed_before = os.path.exists(temp_dir)
    
            try:
                # Use ProjectSettings to handle directory creation consistently
                ProjectSettings("", skip_load=True)
    
                result = ResponseFormatter.directory_info_response(
                    temp_directory=temp_dir,
                    exists=os.path.exists(temp_dir),
                    is_directory=os.path.isdir(temp_dir)
                )
                result["existed_before"] = existed_before
                result["created"] = not existed_before
    
                return result
    
            except (OSError, IOError, ValueError) as e:
                return ResponseFormatter.directory_info_response(
                    temp_directory=temp_dir,
                    exists=False,
                    error=str(e)
                )
    
        else:  # action == 'check'
            result = ResponseFormatter.directory_info_response(
                temp_directory=temp_dir,
                exists=os.path.exists(temp_dir),
                is_directory=os.path.isdir(temp_dir) if os.path.exists(temp_dir) else False
            )
            result["temp_root"] = tempfile.gettempdir()
    
            # If the directory exists, list its contents
            if result["exists"] and result["is_directory"]:
                try:
                    contents = os.listdir(temp_dir)
                    result["contents"] = contents
                    result["subdirectories"] = []
    
                    # Check each subdirectory
                    for item in contents:
                        item_path = os.path.join(temp_dir, item)
                        if os.path.isdir(item_path):
                            subdir_info = {
                                "name": item,
                                "path": item_path,
                                "contents": os.listdir(item_path) if os.path.exists(item_path) else []
                            }
                            result["subdirectories"].append(subdir_info)
    
                except (OSError, PermissionError) as e:
                    result["error"] = str(e)
    
            return result
  • MCP tool registration with @mcp.tool() decorator. Delegates execution to manage_temp_directory('check').
    @mcp.tool()
    @handle_mcp_tool_errors(return_type='dict')
    def check_temp_directory() -> Dict[str, Any]:
        """Check the temporary directory used for storing index data."""
        return manage_temp_directory('check')
  • Alternative or supporting handler method in SettingsTool class that performs identical directory check logic.
    def check_temp_directory(self) -> Dict[str, Any]:
        """
        Check the status of the temporary directory.
    
        Returns:
            Dictionary with directory status information
        """
        temp_dir = self.get_temp_directory_path()
    
        result = {
            "temp_directory": temp_dir,
            "temp_root": tempfile.gettempdir(),
            "exists": os.path.exists(temp_dir),
            "is_directory": os.path.isdir(temp_dir) if os.path.exists(temp_dir) else False
        }
    
        # If the directory exists, list its contents
        if result["exists"] and result["is_directory"]:
            try:
                contents = os.listdir(temp_dir)
                result["contents"] = contents
                result["subdirectories"] = []
    
                # Check each subdirectory
                for item in contents:
                    item_path = os.path.join(temp_dir, item)
                    if os.path.isdir(item_path):
                        subdir_info = {
                            "name": item,
                            "path": item_path,
                            "contents": os.listdir(item_path) if os.path.exists(item_path) else []
                        }
                        result["subdirectories"].append(subdir_info)
    
            except (OSError, PermissionError) as e:
                result["error"] = str(e)
    
        return result

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/johnhuang316/code-index-mcp'

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