get_subnet
Retrieve detailed information about a specific Oracle Cloud Infrastructure subnet, including CIDR blocks, security lists, and routing configurations.
Instructions
Get detailed information about a specific subnet.
Args:
subnet_id: OCID of the subnet to retrieve
Returns:
Detailed subnet information including CIDR, security lists, and routing
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| subnet_id | Yes |
Implementation Reference
- mcp_server_oci/tools/network.py:170-210 (handler)Core handler function implementing the get_subnet tool logic: fetches subnet details from OCI API, formats response dictionary with key properties including CIDR block, security lists, and optional IPv6.def get_subnet(network_client: oci.core.VirtualNetworkClient, subnet_id: str) -> Dict[str, Any]: """ Get details of a specific subnet. Args: network_client: OCI VirtualNetwork client subnet_id: OCID of the subnet Returns: Details of the subnet """ try: # Get the subnet details subnet = network_client.get_subnet(subnet_id).data # Format the subnet details subnet_details = { "id": subnet.id, "name": subnet.display_name, "lifecycle_state": subnet.lifecycle_state, "cidr_block": subnet.cidr_block, "availability_domain": subnet.availability_domain, "compartment_id": subnet.compartment_id, "vcn_id": subnet.vcn_id, "route_table_id": subnet.route_table_id, "dhcp_options_id": subnet.dhcp_options_id, "security_list_ids": subnet.security_list_ids, "time_created": str(subnet.time_created), "prohibit_public_ip_on_vnic": subnet.prohibit_public_ip_on_vnic, } # Add IPv6 CIDR block if available if hasattr(subnet, 'ipv6_cidr_block') and subnet.ipv6_cidr_block: subnet_details["ipv6_cidr_block"] = subnet.ipv6_cidr_block logger.info(f"Retrieved details for subnet {subnet_id}") return subnet_details except Exception as e: logger.exception(f"Error getting subnet details: {e}") raise
- mcp_server_oci/mcp_server.py:658-675 (registration)MCP tool registration for 'get_subnet': defines the async MCP handler mcp_get_subnet, applies common wrapper for logging/error handling, imports and calls the core handler from network.py.@mcp.tool(name="get_subnet") @mcp_tool_wrapper( start_msg="Getting subnet details for {subnet_id}...", success_msg="Retrieved subnet details successfully", error_prefix="Error getting subnet details" ) async def mcp_get_subnet(ctx: Context, subnet_id: str) -> Dict[str, Any]: """ Get detailed information about a specific subnet. Args: subnet_id: OCID of the subnet to retrieve Returns: Detailed subnet information including CIDR, security lists, and routing """ return get_subnet(oci_clients["network"], subnet_id)
- mcp_server_oci/mcp_server.py:34-41 (registration)Import statement bringing in the get_subnet handler function from network.py for use in tool registrations.from mcp_server_oci.tools.network import ( list_vcns, get_vcn, list_subnets, get_subnet, list_vnics, get_vnic, )