JSON-MCP-Server
by: GongRzhe
JSON handling and processing microservice server
📌Overview
Purpose: To provide a server implementation of the JSON Model Context Protocol (MCP) for easy querying and manipulation of JSON data, enabling LLMs to interact seamlessly with JSON.
Overview: The JSON MCP Server allows users to perform complex queries and manipulations on JSON data through standardized tools. This facilitates easier integration with various applications and enhances the capabilities of language models when dealing with structured data.
Key Features:
-
Query Tool: Enables querying JSON data using JSONPath syntax with extended operations, allowing users to specify a data source URL and create detailed queries for efficient data retrieval.
-
Filter Tool: Allows users to filter JSON data based on specified conditions, offering more granular control over the data returned from a JSON data source.
JSON MCP Server
A JSON Model Context Protocol (MCP) server implementation for querying and manipulating JSON data. This server enables LLMs to interact with JSON data through a set of standardized tools.
Installation & Usage
# Using npx with specific version (recommended)
npx @gongrzhe/server-json-mcp@1.0.3
# Install specific version globally
npm install -g @gongrzhe/server-json-mcp@1.0.3
# Run after global installation
server-json-mcp
Components
Tools
-
query
- Query JSON data using JSONPath syntax with extended operations
- Input:
url
(string): URL of the JSON data sourcejsonPath
(string): JSONPath expression with optional operations
-
filter
- Filter JSON data using conditions
- Input:
url
(string): URL of the JSON data sourcejsonPath
(string): Base JSONPath expressioncondition
(string): Filter condition
Supported Operations
Array Operations
- Slicing:
$[0:5]
,$[-3:]
,$[1:4]
- Sorting:
$.sort(price)
,$.sort(-price)
- Distinct:
$.distinct()
- Transformations:
- Map:
$.map(fieldName)
- Flatten:
$.flatten()
- Union:
$.union([1,2,3])
- Intersection:
$.intersection([1,2,3])
- Map:
String Operations
- Case:
$.toLowerCase()
,$.toUpperCase()
- Tests:
$.startsWith('test')
,$.endsWith('test')
- Search:
$.contains('test')
,$.matches('pattern')
Numeric Operations
- Math:
$.math(+10)
,$.pow2()
- Rounding:
$.round()
,$.floor()
,$.ceil()
- Functions:
$.abs()
,$.sqrt()
Date Operations
- Format:
$.format('YYYY-MM-DD')
- Check:
$.isToday()
- Modify:
$.add(1, 'days')
Aggregation Operations
- Group:
$.groupBy(category)
- Stats:
$.sum(price)
,$.avg(price)
,$.min(price)
,$.max(price)
Configuration
Usage with Claude Desktop
To use this server with the Claude Desktop app, add the following configuration to your claude_desktop_config.json
:
{
"json": {
"command": "npx",
"args": [
"@gongrzhe/server-json-mcp@1.0.3"
]
}
}
Alternatively, use the node command directly if you have the package installed:
{
"json": {
"command": "node",
"args": [
"path/to/build/index.js"
]
}
}
Development
Building from Source
- Clone the repository
- Install dependencies:
npm install
- Build the project:
npm run build
Notes
- All JSONPath expressions start with
$
representing the root object - Array indices are zero-based
- String values in operations should be wrapped in quotes
- Date operations support 'days', 'months', and 'years' units
- Numeric operations support basic arithmetic operators (+, -, *, /)
License
MIT