You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
|**HTTP Requests**|`get_http_requests_data`| Fetches HTTP request data (timeseries, summaries, and grouped timeseries across dimensions like `deviceType`, `botClass`) |
16
+
|**L7 Attacks**|`get_l7_attack_data`| Fetches L7 attack data (timeseries, summaries, and grouped timeseries across dimensions like `mitigationProduct`, `ipVersion`) |
16
17
|**Autonomous Systems**|`list_autonomous_systems`| Lists ASes; filter by location and sort by population size |
17
18
||`get_as_details`| Retrieves detailed info for a specific ASN |
18
19
|**IP Addresses**|`get_ip_details`| Provides details about a specific IP address |
Copy file name to clipboardExpand all lines: apps/radar/src/tools/radar.ts
+62-1Lines changed: 62 additions & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -17,6 +17,7 @@ import {
17
17
DomainParam,
18
18
DomainRankingTypeParam,
19
19
HttpDimensionParam,
20
+
L7AttackDimensionParam,
20
21
IpParam,
21
22
LocationArrayParam,
22
23
LocationListParam,
@@ -268,7 +269,7 @@ export function registerRadarTools(agent: RadarMCP) {
268
269
'get_http_requests_data',
269
270
'Retrieve HTTP request trends. Provide either a `dateRange`, or both `dateStart` and `dateEnd`, to define the time window. '+
270
271
'Use arrays to compare multiple filters — the array index determines which series each filter value belongs to.'+
271
-
'For each filter series, you must provide a corresponding `dateRange`, or a `dateStart`/`dateEnd` pair.',
272
+
'For each filter series, you must provide a corresponding `dateRange`, or a `dateStart`/`dateEnd` pair. For parsing the results here are some suggestions: Analyze the data if the response is a summary, If the response is a timeseries visualize the data',
272
273
{
273
274
dateRange: DateRangeArrayParam.optional(),
274
275
dateStart: DateStartArrayParam.optional(),
@@ -322,4 +323,64 @@ export function registerRadarTools(agent: RadarMCP) {
322
323
}
323
324
}
324
325
)
326
+
327
+
328
+
agent.server.tool(
329
+
'get_l7_attack_data',
330
+
'Retrieve L7 app attack trends. Provide either a `dateRange`, or both `dateStart` and `dateEnd`, to define the time window. '+
331
+
'Use arrays to compare multiple filters — the array index determines which series each filter value belongs to.'+
332
+
'For each filter series, you must provide a corresponding `dateRange`, or a `dateStart`/`dateEnd` pair.',
333
+
{
334
+
dateRange: DateRangeArrayParam.optional(),
335
+
dateStart: DateStartArrayParam.optional(),
336
+
dateEnd: DateEndArrayParam.optional(),
337
+
asn: AsnArrayParam,
338
+
continent: ContinentArrayParam,
339
+
location: LocationArrayParam,
340
+
format: DataFormatParam,
341
+
dimension: L7AttackDimensionParam,
342
+
},
343
+
async({ dateStart, dateEnd, dateRange, asn, location, continent, format, dimension })=>{
344
+
try{
345
+
if(format!=='timeseries'&&!dimension){
346
+
thrownewError(`The '${format}' format requires a 'dimension' to group the data.`)
0 commit comments