Tool: list_attack_paths
Lists simulated attack paths showing step-by-step how an adversary could exploit vulnerabilities and misconfigurations to reach high-value cloud assets. Use this tool to prioritize remediation based on actual attack exposure and toxic combinations.
The following code sample shows how to use curl to call the list_attack_paths MCP tool.
| Curl Request |
|---|
curl --location 'https://securitycenter.googleapis.com/mcp/investigate' \ --header 'content-type: application/json' \ --header 'accept: application/json, text/event-stream' \ --data '{ "method": "tools/call", "params": { "name": "list_attack_paths", "arguments": { // provide these details according to the tool's MCP specification } }, "jsonrpc": "2.0", "id": 1 }' |
Input Schema
Request message for listing the attack paths for a given simulation or valued resource.
ListAttackPathsRequest
| JSON representation |
|---|
{ "parent": string, "filter": string, "pageToken": string, "pageSize": integer } |
| Fields | |
|---|---|
parent |
Required. Name of parent to list attack paths. Valid formats: |
filter |
The filter expression that filters the attack path in the response. Supported fields:
|
pageToken |
The value returned by the last |
pageSize |
The maximum number of results to return in a single response. Default is 10, minimum is 1, maximum is 1000. |
Output Schema
Response message for listing the attack paths for a given simulation or valued resource.
ListAttackPathsResponse
| JSON representation |
|---|
{
"attackPaths": [
{
object ( |
| Fields | |
|---|---|
attackPaths[] |
The attack paths that the attack path simulation identified. |
nextPageToken |
Token to retrieve the next page of results, or empty if there are no more results. |
AttackPath
| JSON representation |
|---|
{ "name": string, "pathNodes": [ { object ( |
| Fields | |
|---|---|
name |
The attack path name, for example, |
pathNodes[] |
A list of nodes that exist in this attack path. |
edges[] |
A list of the edges between nodes in this attack path. |
AttackPathNode
| JSON representation |
|---|
{ "resource": string, "resourceType": string, "displayName": string, "associatedFindings": [ { object ( |
| Fields | |
|---|---|
resource |
The name of the resource at this point in the attack path. The format of the name follows the Cloud Asset Inventory resource name format |
resourceType |
|
displayName |
Human-readable name of this resource. |
associatedFindings[] |
The findings associated with this node in the attack path. |
uuid |
Unique id of the attack path node. |
attackSteps[] |
A list of attack step nodes that exist in this attack path node. |
PathNodeAssociatedFinding
| JSON representation |
|---|
{ "canonicalFinding": string, "findingCategory": string, "name": string } |
| Fields | |
|---|---|
canonicalFinding |
Canonical name of the associated findings. Example: |
findingCategory |
The additional taxonomy group within findings from a given source. |
name |
Full resource name of the finding. |
AttackStepNode
| JSON representation |
|---|
{
"uuid": string,
"type": enum ( |
| Fields | |
|---|---|
uuid |
Unique ID for one Node |
type |
Attack step type. Can be either AND, OR or DEFENSE |
displayName |
User friendly name of the attack step |
labels |
Attack step labels for metadata An object containing a list of |
description |
Attack step description |
LabelsEntry
| JSON representation |
|---|
{ "key": string, "value": string } |
| Fields | |
|---|---|
key |
|
value |
|
AttackPathEdge
| JSON representation |
|---|
{ "source": string, "destination": string } |
| Fields | |
|---|---|
source |
The attack node uuid of the source node. |
destination |
The attack node uuid of the destination node. |
NodeType
The type of the incoming attack step node.
| Enums | |
|---|---|
NODE_TYPE_UNSPECIFIED |
Type not specified |
NODE_TYPE_AND |
Incoming edge joined with AND |
NODE_TYPE_OR |
Incoming edge joined with OR |
NODE_TYPE_DEFENSE |
Incoming edge is defense |
NODE_TYPE_ATTACKER |
Incoming edge is attacker |
Tool Annotations
Tool annotations are sent to MCP clients to describe the basic risk of a given tool. Most clients treat these hints as untrusted, but they can be used to decide when a confirmation prompt might be sent to a user.
Along with the title string, the following boolean hints are defined as follows:
readOnlyHint: If true, the tool doesn't modify its environment. Default: false.destructiveHint: If true, then the tool can perform destructive actions. If false, then the tool can only perform additive actions. Default: true.idempotentHint: If true, then calling the tool repeatedly with the same arguments will have no additional effect on its environment. Default: false.openWorldHint: If true, then the tool can interact with an 'open world' of external entities. If false, then the tool can only interact with internal entities. For example, a web search tool would be open world, while a memory tool would not be open world.
Destructive Hint: ❌ | Idempotent Hint: ✅ | Read Only Hint: ✅ | Open World Hint: ❌