Skip to content

feat: add case close root cause discovery tools (#124) - #314

Open
dandye wants to merge 1 commit into
mainfrom
feat/issue-124-case-close-root-causes
Open

feat: add case close root cause discovery tools (#124)#314
dandye wants to merge 1 commit into
mainfrom
feat/issue-124-case-close-root-causes

Conversation

@dandye

@dandye dandye commented Sep 9, 2026

Copy link
Copy Markdown
Collaborator

Summary

Resolves #124 by adding tools to discover case close root causes and close reasons in both the legacy SOAR MCP server and the Chronicle 1P API MCP server.

Problem

Closing a case in Google SecOps requires specifying a valid root_cause and reason configured for the tenant. Prior to this PR, neither MCP server exposed a way to discover allowed root causes, leaving agents and analysts unable to determine valid values needed to close cases.

Changes

1. Legacy SOAR (server/secops-soar)

  • API Endpoint: Added Endpoints.GET_ROOT_CAUSE_CLOSE_RECORDS (/api/external/v1/settings/GetRootCauseCloseRecords) in secops_soar_mcp/utils/consts.py.
  • Tool: Added list_case_close_root_causes tool in secops_soar_mcp/case_management.py. Maps integer close reasons (0: Malicious, 1: NotMalicious, 2: Maintenance, 3: Inconclusive) and returns tenant root causes.
  • Tests: Added unit test suite in server/secops-soar/tests/unit/test_case_management.py.
  • Docs: Updated docs/servers/secops_soar_mcp.md with tool documentation and response example.

2. Chronicle 1P API (server/secops)

  • Tool: Added list_case_close_definitions tool in secops_mcp/tools/case_close_definitions.py. Queries caseCloseDefinitions with pagination (page_size, page_token) and filter parameters (filter, order_by) using chronicle_paginated_request.
  • Export: Exported in secops_mcp/tools/__init__.py.
  • Tests: Added unit test suite in server/secops/tests/test_case_close_definitions_unit.py.
  • Docs: Updated docs/servers/secops_mcp.md under a new Case Management section.

Verification

All unit tests pass across both server packages:

  • server/secops-soar: 7/7 unit tests passing (pytest server/secops-soar/tests/unit)
  • server/secops: 28/28 unit tests passing (pytest server/secops/tests)

Closes #124

- Add list_case_close_root_causes tool in secops-soar MCP server to discover
  configured case close root causes and map reasons (Malicious, NotMalicious,
  Maintenance, Inconclusive) via GetRootCauseCloseRecords.
- Add list_case_close_definitions tool in secops MCP server to query Chronicle
  1P caseCloseDefinitions with pagination and filtering support.
- Add unit test suites for both tools with full coverage of default and filtered
  requests as well as error handling.
- Update documentation in docs/servers/secops_soar_mcp.md and
  docs/servers/secops_mcp.md.

Closes #124
@dandye
dandye requested a review from a team September 9, 2026 02:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Need case-close-root-causes in order to close cases

1 participant