@gongrzhe/server-json-mcp
v1.0.3
Published
A service that provides powerful JSON querying capabilities using JSONPath syntax and additional features.
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
