Skip to main content
Glama

get_volume

Retrieve detailed information about a specific Oracle Cloud Infrastructure Block Storage volume, including size, performance tier, and backup policy, by providing its OCID.

Instructions

Get detailed information about a specific Block Storage volume.

Args:
    volume_id: OCID of the volume to retrieve

Returns:
    Detailed volume information including size, performance tier, and backup policy

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
volume_idYes

Implementation Reference

  • The core handler function that retrieves detailed information about a specific OCI block volume using the BlockstorageClient. It extracts and formats volume properties into a dictionary.
    def get_volume(block_storage_client: oci.core.BlockstorageClient, volume_id: str) -> Dict[str, Any]:
        """
        Get details of a specific volume.
        
        Args:
            block_storage_client: OCI BlockStorage client
            volume_id: OCID of the volume
            
        Returns:
            Details of the volume
        """
        try:
            volume = block_storage_client.get_volume(volume_id).data
            
            volume_details = {
                "id": volume.id,
                "display_name": volume.display_name,
                "compartment_id": volume.compartment_id,
                "availability_domain": volume.availability_domain,
                "size_in_mbs": volume.size_in_mbs,
                "size_in_gbs": volume.size_in_gbs,
                "lifecycle_state": volume.lifecycle_state,
                "time_created": str(volume.time_created),
                "volume_group_id": volume.volume_group_id,
                "is_hydrated": volume.is_hydrated,
                "vpus_per_gb": volume.vpus_per_gb,
                "is_auto_tune_enabled": volume.is_auto_tune_enabled,
                "auto_tuned_vpus_per_gb": volume.auto_tuned_vpus_per_gb,
                "kms_key_id": volume.kms_key_id,
                "source_details": {
                    "type": volume.source_details.type if volume.source_details else None,
                    "id": volume.source_details.id if volume.source_details else None,
                } if volume.source_details else None,
            }
            
            logger.info(f"Retrieved details for volume {volume_id}")
            return volume_details
            
        except Exception as e:
            logger.exception(f"Error getting volume details: {e}")
            raise
  • MCP tool registration for 'get_volume'. This async wrapper function registers the tool with the FastMCP server, provides input validation via type hints, adds logging and error handling via mcp_tool_wrapper, and delegates to the core handler.
    @mcp.tool(name="get_volume")
    @mcp_tool_wrapper(
        start_msg="Getting volume details for {volume_id}...",
        success_msg="Retrieved volume details successfully",
        error_prefix="Error getting volume details"
    )
    async def mcp_get_volume(ctx: Context, volume_id: str) -> Dict[str, Any]:
        """
        Get detailed information about a specific Block Storage volume.
    
        Args:
            volume_id: OCID of the volume to retrieve
    
        Returns:
            Detailed volume information including size, performance tier, and backup policy
        """
        return get_volume(oci_clients["block_storage"], volume_id)

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/jopsis/mcp-server-oci'

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