@gongrzhe/server-json-mcp
v1.0.3
Published
A service that provides powerful JSON querying capabilities using JSONPath syntax and additional features.
Downloads
226
Readme
JSON Query Service
A service that provides powerful JSON querying capabilities using JSONPath syntax and additional features.
Features
1. Basic JSONPath Queries
{
"url": "https://api.example.com/data",
"jsonPath": "$[0]", // Get first element
"jsonPath": "$[*]", // Get all elements
"jsonPath": "$.fieldName", // Get specific field
"jsonPath": "$[*].fieldName" // Get field from all elements
}
2. Array Operations
Array Slicing
{
"jsonPath": "$[0:5]", // Get first 5 elements
"jsonPath": "$[-3:]", // Get last 3 elements
"jsonPath": "$[1:4]" // Get elements from index 1 to 3
}
Array Length
{
"jsonPath": "$.length()" // Get array length
}
3. Field Selection
{
"jsonPath": "$[*].title", // Select single field
"jsonPath": "$[*][title,body]", // Select multiple fields
"jsonPath": "$[0,1,2].title" // Select field from specific indices
}
4. Filtering
Using JSONPath Filter
{
"jsonPath": "$[?(@.id > 95)]", // Greater than
"jsonPath": "$[?(@.id >= 95)]", // Greater than or equal
"jsonPath": "$[?(@.id < 5)]", // Less than
"jsonPath": "$[?(@.userId == 1)]" // Equal to
}
Using Filter Tool
{
"url": "https://api.example.com/data",
"jsonPath": "$[*]",
"condition": "@.id < 5" // Numeric comparison
}
{
"jsonPath": "$[*]",
"condition": "@.title == 'example'" // String comparison
}
5. Combining Operations
{
"jsonPath": "$[0:5][?(@.id > 2)]", // Slice then filter
"jsonPath": "$[?(@.userId == 1)].title", // Filter then select field
"jsonPath": "$[-3:][title,body]" // Get last 3 items with specific fields
}
Usage
Query Tool
{
"url": "https://api.example.com/data",
"jsonPath": "<your-jsonpath-expression>"
}
Filter Tool
{
"url": "https://api.example.com/data",
"jsonPath": "<base-jsonpath>",
"condition": "<filter-condition>"
}
Examples
- Get first 5 posts
{
"url": "https://jsonplaceholder.typicode.com/posts",
"jsonPath": "$[0:5]"
}
- Get titles of posts by user 1
{
"url": "https://jsonplaceholder.typicode.com/posts",
"jsonPath": "$[?(@.userId == 1)].title"
}
- Get last 3 posts with specific fields
{
"url": "https://jsonplaceholder.typicode.com/posts",
"jsonPath": "$[-3:][title,body]"
}
- Filter posts with ID less than 5
{
"url": "https://jsonplaceholder.typicode.com/posts",
"jsonPath": "$[*]",
"condition": "@.id < 5"
}
Notes
- All JSONPath expressions start with
$
representing the root object - Array indices are zero-based
- Filter conditions in the filter tool support basic comparison operators (
>
,>=
,<
,<=
,==
,!=
) - String values in filter conditions should be wrapped in quotes
- The service supports both JSONPath filtering and a separate filter tool for more complex conditions