Skip to content

feat(secops): add comprehensive Chronicle 1P SOAR tool suite and docs - #282

Open
dandye wants to merge 8 commits into
mainfrom
soar_trigger
Open

feat(secops): add comprehensive Chronicle 1P SOAR tool suite and docs#282
dandye wants to merge 8 commits into
mainfrom
soar_trigger

Conversation

@dandye

@dandye dandye commented Aug 13, 2026

Copy link
Copy Markdown
Collaborator

Comprehensive Chronicle 1P SOAR Tool Suite & Documentation

This PR introduces full first-party (1P) Chronicle SOAR integration to google-secops-mcp. It expands the server beyond SIEM detections and investigations into complete case management, SOAR reaction triggers, alert grouping, forensic event telemetry streaming, entity investigations, third-party integrations with live connectivity testing, playbook management, connector events, and comprehensive documentation.


1. Summary of Changes

A. Case Management & SOAR Reactive Triggers (case_management.py)

  • Resource Operations: list_cases, get_case, update_case (with automatic FieldMask generation).
  • Automated SOAR Reaction Triggers:
    • change_case_priority: Dispatches Chronicle SOAR Case Priority Changed trigger.
    • change_case_stage: Dispatches Chronicle SOAR Case Stage Changed trigger.
    • assign_case: Dispatches Chronicle SOAR Case Assignee Changed trigger.
    • set_custom_case_fields: Dispatches Chronicle SOAR Custom Case Field Changed trigger.
  • Triage & Evidence Journal:
    • add_case_tag, remove_case_tag, add_case_insight.
    • pause_case_sla, resume_case_sla, close_case, reopen_case.
    • list_case_comments, create_case_comment (alias: post_case_comment).
  • Parallel Multi-Resource Aggregation:
    • get_case_full_details: Concurrently fetches case metadata, all attached alerts, and analyst comments via asyncio.gather in a single unified payload.

B. Case Alert Management & Telemetry Forensics (case_alert_management.py)

  • Alert Operations: list_case_alerts, get_case_alert, update_case_alert, move_case_alert, add_alert_tag, remove_alert_tag.
  • Automated Reaction Triggers:
    • change_alert_priority: Dispatches Chronicle SOAR Alert Priority Changed trigger.
    • set_alert_custom_fields: Dispatches Chronicle SOAR Alert Custom Field Changed trigger.
  • Correlations & Raw Telemetry:
    • list_alert_group_identifiers_by_case: Correlates multi-alert incident structures.
    • list_events_by_alert (alias: list_involved_events): Streams raw forensic telemetry events that triggered the alert.

C. Entity Investigation (entity_investigation.py)

  • SOAR Entity Forensics: get_involved_entity, list_involved_entities, get_entities_by_alert_group_identifiers.
  • Enrichment & Global Search: get_entity_details, search_entity (with v1alpha query parameter fallback).

D. Integration Management & Live Testing (integration_management.py)

  • Integration Discovery: list_integrations, list_integration_actions, list_integration_instances (/integrations/{id}/integrationInstances).
  • Live Connectivity Testing: execute_integration_instance_test (POST .../integrationInstances/{id}:executeTest) to verify third-party credentials (e.g. VirusTotal, Slack, SentinelOne) before invoking actions.
  • Action Execution: execute_manual_action, get_action_result_by_id.

E. Playbook Lifecycle & Execution (playbook_management.py)

  • list_playbooks (supports v1alpha/legacyPlaybooks:legacyGetWorkflowMenuCardsWithEnvFilter with standard fallback to /v1/.../playbooks).
  • get_playbook, list_playbook_instances, execute_playbook (alias: trigger_playbook).

F. Connector Event Management (connector_event_management.py)

  • list_connector_events, get_connector_event.

G. Documentation & Usage Guides

  • docs/servers/secops_mcp.md: Complete reference documentation covering all parameters, defaults, return types, and end-to-end workflow examples (Example 9: Case Triage & Trigger Workflow, Example 10: VirusTotal Integration Test & Action Execution).
  • server/secops/README.md: Categorized tool index and feature summary.

2. Test Verification & Code Quality

  • Unit Tests: 22/22 tests passing under pytest and python -m unittest with hermetic mocks:
    • tests/test_secops_case_management.py (15 tests)
    • tests/test_secops_soar_parity.py (7 tests)
  • Live Tenant Testing: Verified live against Chronicle SecOps tenant (secops-demo-env, instance a13f6726-efed-452e-9008-8fe0d3cb0f75):
    • list_cases: 200 OK
    • list_integrations: 200 OK (42 configured integrations)
    • list_integration_instances: 200 OK (VirusTotalV3 instance 3e9496eb-09cd-4b3c-a4ce-4c788d6663a7)
    • execute_integration_instance_test: 200 OK ({"successful": true, "message": "Successfully connected to the VirusTotal server..."})
    • list_playbooks: 200 OK (50 active playbooks)
    • search_entity: 200 OK
  • Style: Fully conforms to the Google Python Style Guide (§3.10.1 %s lazy logging, type hints, Google docstrings).

dandye added 2 commits August 31, 2026 20:44
- Implement Chronicle 1P CaseService tools (list_cases, get_case, update_case, change_case_priority, change_case_stage, assign_case, set_custom_case_fields, add_case_tag, remove_case_tag, add_case_insight, pause_case_sla, resume_case_sla, close_case, reopen_case)
- Implement Chronicle 1P CaseAlertService tools (list_case_alerts, get_case_alert, update_case_alert, change_alert_priority, set_alert_custom_fields, move_case_alert, add_alert_tag, remove_alert_tag)
- Support 6 SOAR reaction triggers via Chronicle 1P REST APIs
- Add comprehensive test suite in test_secops_case_management.py
dandye added 6 commits August 31, 2026 20:44
- Add case comments tools (list_case_comments, create_case_comment, post_case_comment) and consolidated get_case_full_details in case_management.py
- Add alert grouping and event telemetry tools (list_alert_group_identifiers_by_case, list_events_by_alert, list_involved_events) in case_alert_management.py
- Add entity investigation tools (get_involved_entity, list_involved_entities, get_entities_by_alert_group_identifiers, get_entity_details, search_entity) in entity_investigation.py
- Add integration and manual action execution tools (list_integrations, list_integration_actions, list_integration_instances, execute_manual_action, get_action_result_by_id) in integration_management.py
- Add playbook tools (list_playbooks, get_playbook, list_playbook_instances, execute_playbook, trigger_playbook) in playbook_management.py
- Add connector event tools (list_connector_events, get_connector_event) in connector_event_management.py
- Export modules in tools/__init__.py and add unit test suite in tests/test_secops_soar_parity.py
@dandye dandye changed the title feat(secops): add Chronicle 1P Case and Case Alert Management MCP tools feat(secops): add comprehensive Chronicle 1P SOAR tool suite and docs Sep 1, 2026
@dandye
dandye marked this pull request as ready for review September 1, 2026 01:52
@dandye
dandye requested a review from a team September 1, 2026 01:52
@dandye dandye added enhancement New feature or request ready-for-review python Pull requests that update python code labels Sep 1, 2026
@dandye
dandye requested a review from goog-cmmartin September 1, 2026 01:52

@goog-cmmartin goog-cmmartin left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request python Pull requests that update python code ready-for-review

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants