Precise JSON extraction and navigation tools that let agents surgically access exactly the data they need from complex responses.
$.users[0].emailGet email of first user
$.products[*].priceGet all product prices
$.orders[?(@.status=="pending")].idGet IDs of pending orders only
$..emailFind all email fields at any depth
$.items[0:10]Get first 10 items
Extract values using JSONPath expressions
Returns: array of matchesGet first matching value only
Returns: single value or nullCount matching elements
Returns: integer countNavigate to specific path in JSON
Returns: subtree at pathGet all keys at a path
Returns: array of key namesList all paths matching pattern
Returns: array of path strings// Map values to new structure
{
"tool": "json_transform",
"arguments": {
"data": original,
"template": {
"users": "$.data.users[*].{name,email}",
"count": "$.data.total"
}
}
}// Aggregate numeric values
{
"tool": "json_aggregate",
"arguments": {
"data": sales_data,
"operations": {
"total": "sum($.orders[*].amount)",
"average": "avg($.orders[*].amount)",
"max": "max($.orders[*].amount)"
}
}
}| Tool Name | Purpose | Example |
|---|---|---|
| json_extract | Extract values by path | $.users[*].id |
| json_filter | Filter by condition | $[?(@.age>18)] |
| json_slice | Array slicing | $.items[0:5] |
| json_transform | Reshape data | {name,email} |
| json_aggregate | Compute aggregates | sum($.*.price) |
Stop sending entire payloads. Let agents extract exactly what they need.