Tool: list_cases
Lists all cases for a given Chronicle instance.
Retrieves a paginated list of all cases, allowing for a comprehensive overview of security incidents and investigations. This tool is essential for security operations, enabling analysts and managers to view, filter, and prioritize cases based on various criteria.
Workflow Integration: - Used to populate a case queue or dashboard in a security management UI, providing a real-time view of the incident landscape. - Essential for generating reports on case metrics, such as case volume, time to resolution, and analyst workload. - Enables automated systems to query for specific types of cases that may require automated enrichment or triage actions. - Provides the foundational data for building custom analytics and visualizations on top of Chronicle's case management system.
Use Cases: - An analyst lists all open cases assigned to them to prioritize their daily workload. - A SOC manager generates a report of all critical-priority cases created in the last week. - An automated playbook queries for all new cases related to a specific environment to begin an automated investigation. - Search for all cases with a specific tag to track a particular threat campaign.
Filtering and Ordering: - The 'filter' parameter allows for powerful, SQL-like queries to narrow down the list of cases. You can filter on fields like 'display_name', 'assignee', 'priority', 'stage', 'status', 'tags', 'products', 'environment', 'important', 'incident', 'description', 'CreateTime', 'UpdateTime', and more. - The Priority options are: ['PRIORITY_UNSPECIFIED', 'PRIORITY_INFO', 'PRIORITY_LOW', 'PRIORITY_MEDIUM', 'PRIORITY_HIGH', 'PRIORITY_CRITICAL']. - The Stage options are: ['Research', 'Improvement', 'Incident', 'Investigation', 'Assessment', 'Triage']. - The Status options are: ['OPENED', 'CLOSED']. - The 'CreateTime' and 'UpdateTime' fields are Unix timestamps in milliseconds and can be filtered using comparison operators (e.g., '>', '<', '>=', '<='). - The 'order_by' parameter controls the sorting of the returned cases. You can sort by fields like 'CreateTime', 'priority', or 'UpdateTime' in ascending or descending order.
Args: project_id (str): Google Cloud project ID (required). customer_id (str): Chronicle customer ID (required). region (str): Chronicle region (e.g., "us", "europe") (required). page_size (int, optional): The maximum number of cases to return in a single response. The default is 50, and the maximum is 1000. page_token (str, optional): A token for fetching a specific page of results, obtained from a previous call. filter (str, optional): A filter string to apply to the list of cases. Supported fields include 'DisplayName', 'Assignee', 'Priority', 'Stage', 'Status', 'Tags', 'Products', 'Environment', 'CreateTime', 'UpdateTime', and more. Example: "Priority='PRIORITY_CRITICAL' AND Status='OPENED'" order_by (str, optional): A comma-separated list of fields to sort the results by. Add 'desc' for descending order. Example: "Priority desc, CreateTime asc" expand (str, optional): A comma-separated list of related resources to include in the response. Supported values: 'tasks', 'tags', 'products'.
Returns: ListCasesResponse: A response object containing a list of Case objects and a next_page_token if more results are available. Each Case object contains the following key fields: - Name (str): The full resource name of the case. - Id (int): The unique identifier for the case. - DisplayName (str): The title or display name of the case. - Stage (str): The current stage of the case (e.g., "Triage", "Investigation"). - Priority (str): The priority of the case (e.g., "PRIORITY_HIGH"). - Assignee (str): The user or group assigned to the case. - Description (str): A detailed description of the case. - Status (str): The current status of the case (e.g., "OPENED", "CLOSED"). - CreateTime (int): The creation timestamp of the case in milliseconds. - UpdateTime (int): The last update timestamp of the case in milliseconds. - Tags (list of str): A list of tags associated with the case. - Products (list of str): A list of products associated with the case. Returns an error message if the parent instance is not found or the request is invalid.
Example Usage: # List the first 10 cases for a specific instance list_cases(project_id='123', region='us', customer_id='abc', page_size=10)
# List all critical priority cases, sorted by their creation time
list_cases(project_id='123', region='us', customer_id='abc', filter="priority='PRIORITY_CRITICAL'", order_by="CreateTime desc")
# To list cases created in the last hour, filter by CreateTime using a unix timestamp in milliseconds for 1 hour ago, for example:
# list_cases(project_id='123', region='us', customer_id='abc', filter="CreateTime > 1730801400000")
Next Steps (using MCP-enabled tools): - Iterate through the list of cases to perform bulk operations or analysis. - Use 'get_case' with a case's resource name to fetch its full details. - Use 'update_case' to modify the properties of a specific case, such as its assignee or stage. - Use 'list_case_comments' to retrieve the discussion and history for a particular case.
The following sample demonstrate how to use curl to invoke the list_cases MCP tool.
| Curl Request |
|---|
curl --location 'https://chronicle.googleapis.com/mcp' \ --header 'content-type: application/json' \ --header 'accept: application/json, text/event-stream' \ --data '{ "method": "tools/call", "params": { "name": "list_cases", "arguments": { // provide these details according to the tool's MCP specification } }, "jsonrpc": "2.0", "id": 1 }' |
Input Schema
Request message for ListCases. Next ID: 9
ListCasesRequest
| JSON representation |
|---|
{ "projectId": string, "customerId": string, "region": string, "pageSize": integer, "pageToken": string, "filter": string, "orderBy": string, "expand": string } |
| Fields | |
|---|---|
projectId |
Project ID of the customer. |
customerId |
Customer ID of the customer. |
region |
Region of the customer. |
pageSize |
Page size. |
pageToken |
Page token. |
filter |
Filter. |
orderBy |
Order by. |
expand |
Expand. |
Output Schema
Response message for ListCases.
ListCasesResponse
| JSON representation |
|---|
{
"cases": [
{
object ( |
| Fields | |
|---|---|
cases[] |
The list of cases. |
nextPageToken |
A token, which can be sent as |
totalSize |
The total number of results matching the request. |
Case
| JSON representation |
|---|
{ "name": string, "creatorUserId": string, "creatorUser": string, "lastModifyingUserId": string, "lastModifyingUser": string, "createTime": string, "updateTime": string, "displayName": string, "alertCount": integer, "stage": string, "priority": enum ( |
| Fields | |
|---|---|
name |
Identifier. The unique name(ID) of the Case. Format: projects/{project}/locations/{location}/instances/{instance}/cases/{case} |
creatorUserId |
Output only. Case creator id. Used for homepage/requests feature. |
creatorUser |
Output only. Resource association for the creator. |
lastModifyingUserId |
Output only. Last user who modified the case. replaced old property name: LastModifyingUser. |
lastModifyingUser |
Output only. Resource association for the modifying user. |
createTime |
Output only. The creation time of the record in milliseconds. |
updateTime |
Output only. The modification time of the record in milliseconds. |
displayName |
Required. Case title, limited to 200 characters. Replaces old property: Title. |
alertCount |
Output only. Alerts in case. |
stage |
Required. The stage of the Case. For example, "Triage", "Incident", "Investigation". Stages are defined in "chronicle.googleapis.com/CaseStageDefinition". The default stage option is "Triage". |
priority |
Required. Default value is HIGH. Case priority. For example, "Informative", "Low", "Medium", "High", "Critical". |
assignee |
Optional. This can be a user or a @SocRole, default value is the default soc-role defined in Settings. |
assignedUser |
Output only. Resource association for the assignee. |
description |
Optional. Case description. Limit chars to 1000. |
type |
Required. Case type. |
environment |
Required. Case logical environments. |
moveEnvironment |
Optional. Case environment move details. |
status |
Output only. Case data status. |
score |
Optional. Attack exposure score, how risky the case. |
workflowStatus |
Output only. Case playbook status. |
sla |
Optional. SLA for the case. |
alertsSla |
Optional. Aggregated alerts SLA. (alert has SLA as well). |
source |
Output only. The source that created the case. Possible values: "Server", "User", "Simulated", "Merge", "AlertMove" |
tags[] |
Optional. CaseTags associated with the case. |
products[] |
Optional. Products associated with the case. Contains Name of product (e.g. WinEventLog:Security/DLP_Product). Replaces old property: "Product". |
closureDetails |
Optional. Case closure details. |
tasks[] |
Output only. Tasks associated with the case. |
Union field
|
|
important |
Optional. Additional way to specify case importance. The default is false. |
Union field
|
|
incident |
Optional. Additional way to specify if the case marked as incident. The default is false. |
Union field
|
|
overflowCase |
Output only. Case without events, was reduced by the connector service due to a large amount of data. During ingestion if the "alert package" crosses a specific threshold, the alert will be trimmed due to security reasons (DDOS attacks, etc..) |
Union field
|
|
involvedSuspiciousEntity |
Optional. If has involved suspicious entity in the case. |
MoveEnvironment
| JSON representation |
|---|
{ "shouldDeleteOldCase": boolean } |
| Fields | |
|---|---|
shouldDeleteOldCase |
Optional. If the case should be deleted on move to the new environment. |
Sla
| JSON representation |
|---|
{
"expirationTime": string,
"criticalExpirationTime": string,
"expirationStatus": enum ( |
| Fields | |
|---|---|
expirationTime |
Required. SLA expiration time in unix format as milliseconds. Old prop: SlaExpiration. |
criticalExpirationTime |
Required. SLA critical expiration time in unix format as milliseconds, old prop: SlaCriticalExpiration. |
expirationStatus |
Output only. SLA expiration status. |
remainingTimeSinceLastPause |
Output only. Remaining time since last pause. |
CaseTag
| JSON representation |
|---|
{ "displayName": string, "alert": string, // Union field |
| Fields | |
|---|---|
displayName |
Output only. The name of the tag |
alert |
Output only. For tags set by playbook action, this is relevant during MoveAlert. Replaces old property: "Indicator". |
Union field
|
|
priority |
Output only. During ingestion if more than one tag matches the criteria, the one with the priority will be chosen. Available options: 1-5. |
CaseProduct
| JSON representation |
|---|
{ "displayName": string, "alert": string } |
| Fields | |
|---|---|
displayName |
Output only. Display name of the product. |
alert |
Output only. Replaces old property: "AlertIdentifier". |
CaseClosureDetails
| JSON representation |
|---|
{ "reason": enum ( |
| Fields | |
|---|---|
reason |
Output only. Case closure reason. |
rootCause |
Output only. Case closure root cause. |
caseClosedAction |
Output only. Case closed action. |
comment |
Output only. Case closure comment. |
Task
| JSON representation |
|---|
{ "name": string, "id": string, "createTime": string, "updateTime": string, "content": string, "dueTime": string, "title": string, "author": string, "lastAuthor": string, "assignee": string, "status": enum ( |
| Fields | |
|---|---|
name |
Identifier. The unique name(ID) of the task. Format: projects/{project}/locations/{location}/instances/{instance}/tasks/{task} |
id |
Output only. The unique ID of the task. |
createTime |
Output only. The creation time of the task. |
updateTime |
Output only. The last update time of the task. |
content |
Required. The task content, limited to 4096 characters. |
dueTime |
Optional. The due time for the task in ms. When specified during task creation, must be in the future. Is optional as deadlines can exist without a specific scheduled time. |
title |
Required. The task title, minimum length of 3 characters and maximum of 50 characters. |
author |
Output only. The user who created the task. |
lastAuthor |
Output only. The last editor of the task. |
assignee |
Required. The assignee of the task. |
status |
Required. The status of the task. todo change to task startus enum |
resolver |
Output only. The user who resolved the task. |
comment |
Required. Comment added during task resolution, limited to 4096 characters. |
resolutionTime |
Output only. The resolution time of the task in ms. |
caseId |
Optional. Associated case id (if task is related to a specific case) Can be optional as tasks may exist independently or be associated with a specific case. |
Union field
|
|
favorite |
Optional. Determines whether the task is marked as favorite. |
Tool Annotations
Destructive Hint: ❌ | Idempotent Hint: ✅ | Read Only Hint: ✅ | Open World Hint: ❌