def get(self, server):
        """
        Returns ServerConfig instance with configuration given server.

        :raises ServerConfigConflictError:
            if configuration directory contains configuration for same server
            multiple times

        :raises ServerConfigMissingUrlError: if URL is not specified in the configuration

        :raises ServerConfigNotFoundError: if configuration for given server is not found
        """
        server_config = self.config.get(server)
        try:
            while server_config is None:
                new_config = self._read_next_config()
                server_config = new_config.get(server)
                new_config.update(self.config)
                self.config = new_config
        except StopIteration:
            return _default_server_configuration(server)

        if CONFIG_URL_KEY_NAME not in server_config:
            message = "'%s' must be specified in configuration for '%s'" \
                % (CONFIG_URL_KEY_NAME, server)
            raise ServerConfigMissingUrlError(message)

        return ServerConfig(server_config)