Skip to main content
Glama

Fetch JSONPath MCP

by ackness

Fetch JSONPath MCP

A Model Context Protocol (MCP) server that provides tools for fetching and extracting JSON data from URLs using JSONPath patterns.

🎯 Why Use This?

Reduce LLM Token Usage & Hallucination - Instead of fetching entire JSON responses and wasting tokens, extract only the data you need.

Traditional Fetch vs JSONPath Extract

❌ Traditional fetch (wasteful):

// API returns 2000+ tokens { "data": [ { "id": 1, "name": "Alice", "email": "alice@example.com", "avatar": "https://...", "profile": { "bio": "Long bio text...", "settings": {...}, "preferences": {...}, "metadata": {...} }, "posts": [...], "followers": [...], "created_at": "2023-01-01", "updated_at": "2024-01-01" }, // ... 50 more users ], "pagination": {...}, "meta": {...} }

✅ JSONPath extract (efficient):

// Only 10 tokens - exactly what you need! ["Alice", "Bob", "Charlie"]

Using pattern: data[*].name saves 99% tokens and eliminates model hallucination from irrelevant data.

Installation

For most IDEs, use the uvx tool to run the server.

{ "mcpServers": { "fetch-jsonpath-mcp": { "command": "uvx", "args": [ "fetch-jsonpath-mcp" ] } } }
claude mcp add fetch-jsonpath-mcp -- uvx fetch-jsonpath-mcp
{ "mcpServers": { "fetch-jsonpath-mcp": { "command": "uvx", "args": ["fetch-jsonpath-mcp"] } } }

Add this to your Windsurf MCP config file. See Windsurf MCP docs for more info.

Windsurf Local Server Connection
{ "mcpServers": { "fetch-jsonpath-mcp": { "command": "uvx", "args": ["fetch-jsonpath-mcp"] } } }
"mcp": { "servers": { "fetch-jsonpath-mcp": { "type": "stdio", "command": "uvx", "args": ["fetch-jsonpath-mcp"] } } }

Development Setup

1. Install Dependencies

uv sync

2. Start Demo Server (Optional)

# Install demo server dependencies uv add fastapi uvicorn # Start demo server on port 8080 uv run demo-server

3. Run MCP Server

uv run fetch-jsonpath-mcp

Demo Server Data

The demo server at http://localhost:8080 returns:

{ "foo": [{"baz": 1, "qux": "a"}, {"baz": 2, "qux": "b"}], "bar": { "items": [10, 20, 30], "config": {"enabled": true, "name": "example"} }, "metadata": {"version": "1.0.0"} }

Available Tools

get-json

Extract JSON data using JSONPath patterns.

{ "name": "get-json", "arguments": { "url": "http://localhost:8080", "pattern": "foo[*].baz" } }

Returns: [1, 2]

get-text

Get raw text content from any URL.

{ "name": "get-text", "arguments": { "url": "http://localhost:8080" } }

Returns: {"foo": [{"baz": 1, "qux": "a"}, {"baz": 2, "qux": "b"}], "bar": {"items": [10, 20, 30], "config": {"enabled": true, "name": "example"}}, "metadata": {"version": "1.0.0"}}

batch-get-json

Process multiple URLs with different JSONPath patterns.

{ "name": "batch-get-json", "arguments": { "requests": [ {"url": "http://localhost:8080", "pattern": "foo[*].baz"}, {"url": "http://localhost:8080", "pattern": "bar.items[*]"} ] } }

Returns: [[1, 2], [10, 20, 30]]

batch-get-text

Get text content from multiple URLs.

{ "name": "batch-get-text", "arguments": { "urls": ["http://localhost:8080", "http://localhost:8080"] } }

Returns: ["JSON content...", "JSON content..."]

JSONPath Examples

This project uses jsonpath-ng for JSONPath implementation.

PatternResultDescription
foo[*].baz[1, 2]Get all baz values
bar.items[*][10, 20, 30]Get all items
metadata.version["1.0.0"]Get version

For complete JSONPath syntax reference, see the jsonpath-ng documentation.

🚀 Performance Benefits

  • Token Efficiency: Extract only needed data, not entire JSON responses
  • Faster Processing: Smaller payloads = faster LLM responses
  • Reduced Hallucination: Less irrelevant data = more accurate outputs
  • Cost Savings: Fewer tokens = lower API costs
  • Better Focus: Clean data helps models stay on task

Configuration

Set environment variables:

export JSONRPC_MCP_TIMEOUT=30 export JSONRPC_MCP_HEADERS='{"Authorization": "Bearer token"}' export JSONRPC_MCP_PROXY="http://proxy.example.com:8080"

Development

# Run tests pytest # Check code quality ruff check --fix
Install Server
A
security – no known vulnerabilities
F
license - not found
A
quality - confirmed to work

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

Enables efficient extraction of specific data from JSON APIs using JSONPath patterns, reducing token usage by up to 99% compared to fetching entire responses. Supports single and batch operations for both JSON extraction and raw text retrieval from URLs.

  1. 🎯 Why Use This?
    1. Traditional Fetch vs JSONPath Extract
  2. Installation
    1. Windsurf Local Server Connection
  3. Development Setup
    1. 1. Install Dependencies
    2. 2. Start Demo Server (Optional)
    3. 3. Run MCP Server
  4. Demo Server Data
    1. Available Tools
      1. get-json
      2. get-text
      3. batch-get-json
      4. batch-get-text
    2. JSONPath Examples
      1. 🚀 Performance Benefits
        1. Configuration
          1. Development

            Related MCP Servers

            • A
              security
              A
              license
              A
              quality
              Enables extracting data from websites using natural language prompts, allowing users to specify exactly what content they want in plain English and returning structured JSON data.
              Last updated -
              1
              614
              6
              TypeScript
              MIT License
              • Apple
              • Linux
            • A
              security
              F
              license
              A
              quality
              Provides functionality to fetch web content in various formats, including HTML, JSON, plain text, and Markdown with support for custom headers.
              Last updated -
              4
              101,918
              3
              TypeScript
            • -
              security
              F
              license
              -
              quality
              Provides functionality to fetch and transform web content in various formats (HTML, JSON, plain text, and Markdown) through simple API calls.
              Last updated -
              101,918
              1
              TypeScript
            • A
              security
              A
              license
              A
              quality
              A powerful tool for fetching and extracting text content from web pages and APIs, supporting web scraping, REST API requests, and Google Custom Search integration.
              Last updated -
              4
              2
              JavaScript
              MIT License
              • Linux

            View all related MCP servers

            MCP directory API

            We provide all the information about MCP servers via our MCP API.

            curl -X GET 'https://glama.ai/api/mcp/v1/servers/ackness/fetch-jsonpath-mcp'

            If you have feedback or need assistance with the MCP directory API, please join our Discord server