JSON MCP Server

Local 2025-08-31 23:43:22 0

A Model Context Protocol server implementation that enables LLMs to query and manipulate JSON data using JSONPath syntax with extended operations for filtering, sorting, transforming, and aggregating data.


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.

JSON Server MCP server

Installation & Usage

# Using npx with specific version (recommended)
npx @gongrzhe/[email protected]

# Install specific version globally
npm install -g @gongrzhe/[email protected]

# 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 source
    • jsonPath (string): JSONPath expression with optional operations
  • filter

  • Filter JSON data using conditions
  • Input:
    • url (string): URL of the JSON data source
    • jsonPath (string): Base JSONPath expression
    • condition (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])

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/[email protected]"
    ]
  }
}

Alternatively, you can use the node command directly if you have the package installed:

{
  "json": {
    "command": "node",
    "args": [
      "path/to/build/index.js"
    ]
  }
}

Development

Building from Source

  1. Clone the repository
  2. Install dependencies:
    npm install
  3. Build the project:
    npm run build

Notes

  1. All JSONPath expressions start with $ representing the root object
  2. Array indices are zero-based
  3. String values in operations should be wrapped in quotes
  4. Date operations support 'days', 'months', and 'years' units
  5. Numeric operations support basic arithmetic operators (+, -, *, /)

License

MIT

[
  {
    "description": "Query JSON data using JSONPath syntax",
    "inputSchema": {
      "properties": {
        "jsonPath": {
          "description": "JSONPath expression (e.g. $.store.book[*].author)",
          "type": "string"
        },
        "url": {
          "description": "URL of the JSON data source",
          "type": "string"
        }
      },
      "required": [
        "url",
        "jsonPath"
      ],
      "type": "object"
    },
    "name": "query"
  },
  {
    "description": "Filter JSON data using conditions",
    "inputSchema": {
      "properties": {
        "condition": {
          "description": "Filter condition (e.g. @.price < 10)",
          "type": "string"
        },
        "jsonPath": {
          "description": "Base JSONPath expression",
          "type": "string"
        },
        "url": {
          "description": "URL of the JSON data source",
          "type": "string"
        }
      },
      "required": [
        "url",
        "jsonPath",
        "condition"
      ],
      "type": "object"
    },
    "name": "filter"
  }
]