Tool: create_reference_list
Create a new reference list in Chronicle SIEM.
Creates a reference list containing a collection of values that can be referenced in detection rules. Reference lists are useful for maintaining lists of known entities like IP addresses, domains, usernames, or other indicators that enhance detection logic.
Workflow Integration: - Use to create curated lists of security-relevant entities for detection enhancement. - Essential for maintaining allowlists, blocklists, or other categorized entity collections. - Enables dynamic detection rule behavior without hardcoding values in rule logic. - Supports threat intelligence integration by storing IOC lists in a searchable format.
Use Cases: - Create lists of trusted domains or IP ranges to reduce false positives. - Maintain lists of privileged user accounts for monitoring access patterns. - Store lists of malicious file hashes for detection and blocking. - Build collections of known bad domains from threat intelligence feeds. - Create regex patterns for detecting specific attack signatures or behaviors.
Syntax Types: - STRING: Exact string matching (default) - CIDR: IP address ranges and CIDR blocks - REGEX: Regular expression patterns for flexible matching
Args: name (str): Unique name for the reference list (used to reference in detection rules). This will be the ID. description (str): Description of the reference list's purpose and contents. entries (List[str]): List of values to include in the reference list. project_id (str): Google Cloud project ID (required). customer_id (str): Chronicle customer ID (required). region (str): Chronicle region (e.g., "us", "europe") (required). syntax_type (str): Type of matching to use. Valid values: "STRING", "CIDR", "REGEX". Defaults to "STRING".
Returns: str: Success message with the created reference list details. Returns error message if list creation fails.
Example Usage: # Create a list of administrative accounts create_reference_list( name="admin_accounts", description="Administrative user accounts for privilege monitoring", entries=["admin", "administrator", "root", "system", "service"], project_id="my-project", customer_id="my-customer", region="us", syntax_type="STRING" )
# Create a list of trusted networks
create_reference_list(
name="trusted_networks",
description="Internal network ranges that are considered trusted",
entries=["10.0.0.0/8", "192.168.0.0/16", "172.16.0.0/12"],
project_id="my-project",
customer_id="my-customer",
region="us",
syntax_type="CIDR"
)
Next Steps (using MCP-enabled tools): - Reference the list in detection rules using the list name (e.g., reference_list.admin_accounts). - Update the list using update_reference_list as your data changes. - Retrieve the list contents using get_reference_list to verify entries. - Create detection rules that leverage the list for enhanced threat detection. - Set up automated processes to maintain the list with current threat intelligence.
The following sample demonstrate how to use curl to invoke the create_reference_list 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": "create_reference_list", "arguments": { // provide these details according to the tool's MCP specification } }, "jsonrpc": "2.0", "id": 1 }' |
Input Schema
Request message for CreateReferenceList.
CreateReferenceListRequest
| JSON representation |
|---|
{ "projectId": string, "customerId": string, "region": string, "name": string, "description": string, "entries": [ string ], "syntaxType": string } |
| Fields | |
|---|---|
projectId |
Project ID of the customer. |
customerId |
Customer ID of the customer. |
region |
Region of the customer. |
name |
Name of the reference list to create. |
description |
Description of the reference list. |
entries[] |
Entries of the reference list. |
syntaxType |
Syntax type of the reference list. |
Output Schema
A reference list. Reference lists are user-defined lists of values which users can use in multiple Rules.
ReferenceList
| JSON representation |
|---|
{ "name": string, "displayName": string, "revisionCreateTime": string, "description": string, "entries": [ { object ( |
| Fields | |
|---|---|
name |
Identifier. The resource name of the reference list. Format: |
displayName |
Output only. The unique display name of the reference list. |
revisionCreateTime |
Output only. The timestamp when the reference list was last updated. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
description |
Required. A user-provided description of the reference list. |
entries[] |
Required. The entries of the reference list. When listed, they are returned in the order that was specified at creation or update. The combined size of the values of the reference list may not exceed 6MB. This is returned only when the view is REFERENCE_LIST_VIEW_FULL. |
rules[] |
Output only. The resource names for the associated self-authored Rules that use this reference list. This is returned only when the view is REFERENCE_LIST_VIEW_FULL. |
syntaxType |
Required. The syntax type indicating how list entries should be validated. |
ruleAssociationsCount |
Output only. The count of self-authored rules using the reference list. |
scopeInfo |
The scope info of the reference list. During reference list creation, if this field is not set, the reference list without scopes (an unscoped list) will be created for an unscoped user. For a scoped user, this field must be set. During reference list update, if scope_info is requested to be updated, this field must be set. |
Timestamp
| JSON representation |
|---|
{ "seconds": string, "nanos": integer } |
| Fields | |
|---|---|
seconds |
Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be between -62135596800 and 253402300799 inclusive (which corresponds to 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z). |
nanos |
Non-negative fractions of a second at nanosecond resolution. This field is the nanosecond portion of the duration, not an alternative to seconds. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be between 0 and 999,999,999 inclusive. |
ReferenceListEntry
| JSON representation |
|---|
{ "value": string } |
| Fields | |
|---|---|
value |
Required. The value of the entry. Maximum length is 512 characters. |
ScopeInfo
| JSON representation |
|---|
{
"referenceListScope": {
object ( |
| Fields | |
|---|---|
referenceListScope |
Required. The list of scope names of the reference list, if the list is empty the reference list is treated as unscoped. |
ReferenceListScope
| JSON representation |
|---|
{ "scopeNames": [ string ] } |
| Fields | |
|---|---|
scopeNames[] |
Optional. The list of scope names of the reference list. The scope names should be full resource names and should be of the format: |
Tool Annotations
Destructive Hint: ❌ | Idempotent Hint: ❌ | Read Only Hint: ❌ | Open World Hint: ❌