group_capture_analysis
Analyze network traffic by grouping data to identify patterns and hotspots, enabling efficient inspection with reduced token usage for debugging and monitoring.
Instructions
Group analyzed traffic so the agent can inspect hot spots with lower token cost.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| source | Yes | ||
| group_by | Yes | ||
| capture_id | No | ||
| recording_path | No | ||
| preset | No | api_focus | |
| host_contains | No | ||
| path_contains | No | ||
| method_in | No | ||
| status_in | No | ||
| resource_class_in | No | ||
| min_priority_score | No | ||
| request_header_name | No | ||
| request_header_value_contains | No | ||
| response_header_name | No | ||
| response_header_value_contains | No | ||
| request_content_type | No | ||
| response_content_type | No | ||
| request_body_contains | No | ||
| response_body_contains | No | ||
| request_json_query | No | ||
| response_json_query | No | ||
| max_groups | No | ||
| max_preview_chars | No | ||
| max_headers_per_side | No | ||
| scan_limit | No |
Implementation Reference
- charles_mcp/tools/history.py:140-201 (handler)The handler for the 'group_capture_analysis' tool. It constructs a traffic query and uses the traffic_query_service to group the capture results.
async def group_capture_analysis( ctx: ToolContext, source: str, group_by: TrafficGroupBy, capture_id: Optional[str] = None, recording_path: Optional[str] = None, preset: TrafficPreset = "api_focus", host_contains: Optional[str] = None, path_contains: Optional[str] = None, method_in: Optional[list[str]] = None, status_in: Optional[list[int]] = None, resource_class_in: Optional[list[str]] = None, min_priority_score: Optional[int] = None, request_header_name: Optional[str] = None, request_header_value_contains: Optional[str] = None, response_header_name: Optional[str] = None, response_header_value_contains: Optional[str] = None, request_content_type: Optional[str] = None, response_content_type: Optional[str] = None, request_body_contains: Optional[str] = None, response_body_contains: Optional[str] = None, request_json_query: Optional[str] = None, response_json_query: Optional[str] = None, max_groups: int = 10, max_preview_chars: int = 128, max_headers_per_side: int = 6, scan_limit: int = 500, ) -> CaptureAnalysisGroupsResult: """Group analyzed traffic so the agent can inspect hot spots with lower token cost.""" deps = get_tool_dependencies(ctx) query = build_traffic_query( preset=preset, host_contains=host_contains, path_contains=path_contains, method_in=method_in, status_in=status_in, resource_class_in=resource_class_in, min_priority_score=min_priority_score, request_header_name=request_header_name, request_header_value_contains=request_header_value_contains, response_header_name=response_header_name, response_header_value_contains=response_header_value_contains, request_content_type=request_content_type, response_content_type=response_content_type, request_body_contains=request_body_contains, response_body_contains=response_body_contains, request_json_query=request_json_query, response_json_query=response_json_query, include_body_preview=False, max_items=max_groups, max_preview_chars=max_preview_chars, max_headers_per_side=max_headers_per_side, scan_limit=scan_limit, ) return await deps.traffic_query_service.group_capture( source=source, group_by=group_by, capture_id=capture_id, recording_path=recording_path, query=query, max_groups=max_groups, )