create_temp_directory
Creates a temporary directory for storing code index data in the code-index-mcp server to enable repository analysis and search functionality.
Instructions
Create the temporary directory used for storing index data.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Implementation Reference
- src/code_index_mcp/server.py:288-292 (registration)MCP tool registration decorator and thin handler wrapper that delegates to manage_temp_directory helper.@mcp.tool() @handle_mcp_tool_errors(return_type='dict') def create_temp_directory() -> Dict[str, Any]: """Create the temporary directory used for storing index data.""" return manage_temp_directory('create')
- src/code_index_mcp/server.py:288-292 (handler)The registered MCP tool handler function for create_temp_directory.@mcp.tool() @handle_mcp_tool_errors(return_type='dict') def create_temp_directory() -> Dict[str, Any]: """Create the temporary directory used for storing index data.""" return manage_temp_directory('create')
- Core helper function implementing the temp directory creation logic, called by the MCP handler. Handles both create and check actions.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) )
- Alternative class-based helper method with similar temp directory creation logic (possibly unused for MCP).def create_temp_directory(self) -> Dict[str, Any]: """ Create the temporary directory for settings. Returns: Dictionary with creation results """ temp_dir = self.get_temp_directory_path() existed_before = os.path.exists(temp_dir) try: os.makedirs(temp_dir, exist_ok=True) return { "temp_directory": temp_dir, "exists": os.path.exists(temp_dir), "is_directory": os.path.isdir(temp_dir), "existed_before": existed_before, "created": not existed_before } except (OSError, IOError) as e: return { "temp_directory": temp_dir, "exists": False, "error": str(e) }