get_key
Retrieve detailed encryption key information from Oracle Cloud Infrastructure, including algorithm, shape, and version details for security management.
Instructions
Get detailed information about a specific encryption key.
Note: You must first get a vault to obtain its management_endpoint.
Args:
key_id: OCID of the key to retrieve
management_endpoint: Management endpoint from the vault (get from vault details)
Returns:
Detailed key information including algorithm, shape, and versions
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| key_id | Yes | ||
| management_endpoint | Yes |
Implementation Reference
- mcp_server_oci/mcp_server.py:1473-1493 (handler)MCP tool registration and handler for 'get_key'. This async function is decorated with @mcp.tool(name='get_key') and handles the tool execution by calling the underlying helper with OCI config and parameters.@mcp.tool(name="get_key") @mcp_tool_wrapper( start_msg="Getting encryption key details for {key_id}...", success_msg="Retrieved key details successfully", error_prefix="Error getting key details" ) async def mcp_get_key(ctx: Context, key_id: str, management_endpoint: str) -> Dict[str, Any]: """ Get detailed information about a specific encryption key. Note: You must first get a vault to obtain its management_endpoint. Args: key_id: OCID of the key to retrieve management_endpoint: Management endpoint from the vault (get from vault details) Returns: Detailed key information including algorithm, shape, and versions """ return get_key(oci_clients["config"], management_endpoint, key_id)
- Core helper function implementing the OCI KMS key retrieval logic. Creates a KMSManagementClient using the vault's management endpoint and fetches/formats key details.def get_key(config: dict, management_endpoint: str, key_id: str) -> Dict[str, Any]: """ Get details of a specific key. Args: config: OCI config dict management_endpoint: Management endpoint from the vault key_id: OCID of the key Returns: Details of the key """ try: # Create KMS Management client with the vault's management endpoint kms_management_client = oci.key_management.KmsManagementClient(config, service_endpoint=management_endpoint) key = kms_management_client.get_key(key_id).data key_details = { "id": key.id, "display_name": key.display_name, "compartment_id": key.compartment_id, "lifecycle_state": key.lifecycle_state, "time_created": str(key.time_created), "vault_id": key.vault_id, "protection_mode": key.protection_mode, "algorithm": key.algorithm, "current_key_version": key.current_key_version, "key_shape": { "algorithm": key.key_shape.algorithm if key.key_shape else None, "length": key.key_shape.length if key.key_shape else None, "curve_id": key.key_shape.curve_id if key.key_shape else None, } if key.key_shape else None, "is_primary": key.is_primary, "replica_details": { "replication_id": key.replica_details.replication_id if key.replica_details else None, } if key.replica_details else None, } logger.info(f"Retrieved details for key {key_id}") return key_details except Exception as e: logger.exception(f"Error getting key details: {e}") raise
- mcp_server_oci/mcp_server.py:71-80 (registration)Import statement registering the get_key helper function from the security tools module for use in the MCP server.from mcp_server_oci.tools.security import ( list_security_lists, get_security_list, list_network_security_groups, get_network_security_group, list_vaults, get_vault, list_keys, get_key, )