firewalla-mcp-server
Version:
Model Context Protocol (MCP) server for Firewalla MSP API - Provides real-time network monitoring, security analysis, and firewall management through 28 specialized tools compatible with any MCP client
173 lines • 5.41 kB
TypeScript
/**
* Advanced search tool handlers
*/
import { BaseToolHandler, type ToolArgs, type ToolResponse } from './base.js';
import type { FirewallaClient } from '../../firewalla/client.js';
import type { ScoringCorrelationParams } from '../../validation/field-mapper.js';
export interface BaseSearchArgs extends ToolArgs {
query: string;
limit: number;
offset?: number;
cursor?: string;
sort_by?: string;
sort_order?: 'asc' | 'desc';
group_by?: string;
aggregate?: boolean;
force_refresh?: boolean;
}
export interface SearchFlowsArgs extends BaseSearchArgs {
time_range?: {
start?: string;
end?: string;
};
geographic_filters?: {
countries?: string[];
continents?: string[];
regions?: string[];
cities?: string[];
asns?: string[];
hosting_providers?: string[];
exclude_vpn?: boolean;
exclude_cloud?: boolean;
min_risk_score?: number;
};
include_analytics?: boolean;
}
export interface SearchAlarmsArgs extends BaseSearchArgs {
time_range?: {
start?: string;
end?: string;
};
}
export interface SearchRulesArgs extends BaseSearchArgs {
}
export interface SearchDevicesArgs extends BaseSearchArgs {
time_range?: {
start?: string;
end?: string;
};
}
export interface SearchTargetListsArgs extends BaseSearchArgs {
}
export interface SearchCrossReferenceArgs extends ToolArgs {
primary_query: string;
secondary_queries: string[];
correlation_field: string;
limit?: number;
}
export interface SearchEnhancedCrossReferenceArgs extends ToolArgs {
primary_query: string;
secondary_queries: string[];
correlation_params: ScoringCorrelationParams;
limit?: number;
}
export interface GetCorrelationSuggestionsArgs extends ToolArgs {
primary_query: string;
secondary_queries: string[];
}
export interface SearchAlarmsByGeographyArgs extends ToolArgs {
query?: string;
geographic_filters?: {
countries?: string[];
continents?: string[];
regions?: string[];
high_risk_countries?: boolean;
exclude_known_providers?: boolean;
threat_analysis?: boolean;
};
limit: number;
sort_by?: string;
group_by?: string;
}
export interface GetGeographicStatisticsArgs extends ToolArgs {
entity_type: 'flows' | 'alarms';
time_range?: {
start: string;
end: string;
};
analysis_type?: 'summary' | 'detailed' | 'threat_intelligence';
group_by?: 'country' | 'continent' | 'region' | 'asn' | 'provider';
limit?: number;
}
export declare class SearchFlowsHandler extends BaseToolHandler {
name: string;
description: string;
category: "search";
constructor();
execute(args: ToolArgs, firewalla: FirewallaClient): Promise<ToolResponse>;
}
export declare class SearchAlarmsHandler extends BaseToolHandler {
name: string;
description: string;
category: "search";
constructor();
execute(args: ToolArgs, firewalla: FirewallaClient): Promise<ToolResponse>;
}
export declare class SearchRulesHandler extends BaseToolHandler {
name: string;
description: string;
category: "search";
constructor();
execute(args: ToolArgs, firewalla: FirewallaClient): Promise<ToolResponse>;
}
export declare class SearchDevicesHandler extends BaseToolHandler {
name: string;
description: string;
category: "search";
execute(args: ToolArgs, firewalla: FirewallaClient): Promise<ToolResponse>;
}
export declare class SearchTargetListsHandler extends BaseToolHandler {
name: string;
description: string;
category: "search";
constructor();
execute(args: ToolArgs, firewalla: FirewallaClient): Promise<ToolResponse>;
}
export declare class SearchCrossReferenceHandler extends BaseToolHandler {
name: string;
description: string;
category: "search";
constructor();
execute(args: ToolArgs, firewalla: FirewallaClient): Promise<ToolResponse>;
}
export declare class SearchEnhancedCrossReferenceHandler extends BaseToolHandler {
name: string;
description: string;
category: "search";
constructor();
execute(args: ToolArgs, firewalla: FirewallaClient): Promise<ToolResponse>;
/**
* Extract a simple summary from correlation item data
*/
private extractItemSummary;
/**
* Assess the overall quality of correlations found
*/
private assessCorrelationQuality;
/**
* Generate actionable recommendations based on correlation results
*/
private generateCorrelationRecommendations;
}
export declare class GetCorrelationSuggestionsHandler extends BaseToolHandler {
name: string;
description: string;
category: "search";
constructor();
execute(args: ToolArgs, firewalla: FirewallaClient): Promise<ToolResponse>;
}
export declare class SearchAlarmsByGeographyHandler extends BaseToolHandler {
name: string;
description: string;
category: "search";
constructor();
execute(args: ToolArgs, firewalla: FirewallaClient): Promise<ToolResponse>;
}
export declare class GetGeographicStatisticsHandler extends BaseToolHandler {
name: string;
description: string;
category: "search";
constructor();
execute(args: ToolArgs, firewalla: FirewallaClient): Promise<ToolResponse>;
}
//# sourceMappingURL=search.d.ts.map