Fetch JSONPath▌

by ackness
Fetch JSONPath retrieves and extracts data from HTTP APIs using JSONPath, supporting batch processing, custom headers, p
Fetches and extracts data from HTTP endpoints using JSONPath patterns with support for batch processing, custom headers, proxy configuration, and concurrent operations for efficient web API data retrieval.
best for
- / Developers working with large JSON APIs who need specific data
- / Automating data extraction from multiple web endpoints
- / Reducing LLM token costs when processing API responses
- / Web scraping with intelligent content extraction
capabilities
- / Extract specific JSON fields from APIs using JSONPath patterns
- / Fetch text content from web pages with HTML-to-Markdown conversion
- / Process multiple URLs concurrently in batch operations
- / Configure custom headers and proxy settings for requests
- / Filter and transform JSON data with arithmetic operations
- / Use extended JSONPath functions like len, keys, and filtering
what it does
Fetches data from web APIs and extracts only the specific JSON fields you need using JSONPath patterns, reducing token usage by up to 99%. Supports batch processing and concurrent requests.
about
Fetch JSONPath is a community-built MCP server published by ackness that provides AI assistants with tools and capabilities via the Model Context Protocol. Fetch JSONPath retrieves and extracts data from HTTP APIs using JSONPath, supporting batch processing, custom headers, p It is categorized under search web. This server exposes 4 tools that AI clients can invoke during conversations and coding sessions.
how to install
You can install Fetch JSONPath in your AI client of choice. Use the install panel on this page to get one-click setup for Cursor, Claude Desktop, VS Code, and other MCP-compatible clients. This server runs locally on your machine via the stdio transport.
license
MIT
Fetch JSONPath is released under the MIT license. This is a permissive open-source license, meaning you can freely use, modify, and distribute the software.
readme
Fetch JSONPath MCP
A Model Context Protocol (MCP) server that provides tools for fetching JSON data and web content from URLs. Features intelligent content extraction, multiple HTTP methods, and browser-like headers for reliable web scraping.
🎯 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"
]
}
}
}
<details>
<summary><b>Install in Claude Code</b></summary>
claude mcp add fetch-jsonpath-mcp -- uvx fetch-jsonpath-mcp
</details>
<details>
<summary><b>Install in Cursor</b></summary>
{
"mcpServers": {
"fetch-jsonpath-mcp": {
"command": "uvx",
"args": ["fetch-jsonpath-mcp"]
}
}
}
</details>
<details>
<summary><b>Install in Windsurf</b></summary>
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"]
}
}
}
</details>
<details>
<summary><b>Install in VS Code</b></summary>
"mcp": {
"servers": {
"fetch-jsonpath-mcp": {
"type": "stdio",
"command": "uvx",
"args": ["fetch-jsonpath-mcp"]
}
}
}
</details>
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
fetch-json
Extract JSON data using JSONPath patterns with support for all HTTP methods.
{
"name": "fetch-json",
"arguments": {
"url": "http://localhost:8080",
"pattern": "foo[*].baz",
"method": "GET"
}
}
Returns: [1, 2]
Parameters:
url(required): Target URLpattern(optional): JSONPath pattern for data extractionmethod(optional): HTTP method (GET, POST, PUT, DELETE, etc.) - Default: "GET"data(optional): Request body for POST/PUT requestsheaders(optional): Additional HTTP headers
fetch-text
Fetch web content with intelligent text extraction. Defaults to Markdown format for better readability.
{
"name": "fetch-text",
"arguments": {
"url": "http://localhost:8080",
"output_format": "clean_text"
}
}
Returns: Clean text representation of the JSON data
Output Formats:
"markdown"(default): Converts HTML to clean Markdown format"clean_text": Pure text with HTML tags removed"raw_html": Original HTML content
Parameters:
url(required): Target URLmethod(optional): HTTP method - Default: "GET"data(optional): Request body for POST/PUT requestsheaders(optional): Additional HTTP headersoutput_format(optional): Output format - Default: "markdown"
batch-fetch-json
Process multiple URLs with different JSONPath patterns concurrently.
{
"name": "batch-fetch-json",
"arguments": {
"requests": [
{"url": "http://localhost:8080", "pattern": "foo[*].baz"},
{"url": "http://localhost:8080", "pattern": "bar.items[*]"}
]
}
}
Returns: [{"url": "http://localhost:8080", "pattern": "foo[*].baz", "success": true, "content": [1, 2]}, {"url": "http://localhost:8080", "pattern": "bar.items[*]", "success": true, "content": [10, 20, 30]}]
Request Object Parameters:
url(required): Target URLpattern(optional): JSONPath patternmethod(optional): HTTP method - Default: "GET"data(optional): Request bodyheaders(optional): Additional HTTP headers
batch-fetch-text
Fetch content from multiple URLs with intelligent text extraction.
{
"name": "batch-fetch-text",
"arguments": {
"requests": [
"http://localhost:8080",
{"url": "http://localhost:8080", "output_format": "raw_html"}
],
"output_format": "markdown"
}
}
Returns: `[{"url": "http://localhost:8080", "success": true, "content": "# Demo Server Data
..."}, {"url": "http://localhost:8080", "success": true, "content": "{"foo": [{"baz": 1, "qux": "a"}, {"baz": 2, "qux": "b"}]..."}]`
Supports:
- Simple URL strings
- Full request objects with custom methods and headers
- Mixed input types in the same batch
JSONPath Examples
This project uses jsonpath-ng for JSONPath implementation.
| Pattern | Result | Description |
|---|---|---|
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
- Smart Headers: Default browser headers prevent blocking and improve access
- Markdown Conversion: Clean, readable format that preserves structure
Configuration
Set environment variables to customize behavior:
# Request timeout in seconds (default: 10.0)
export JSONRPC_MCP_TIMEOUT=30
# SSL verification (default: true)
export JSONRPC_MCP_VERIFY=false
# Follow redirects (default: true)
export JSONRPC_MCP_FOLLOW_REDIRECTS=true
# Custom headers (will be merged with default browser headers)
export JSONRPC_MCP_HEADERS='{"Authorization": "Bearer token"}'
# HTTP proxy configuration
export JSONRPC_MCP_PROXY="http://proxy.example.com:8080"
Default Browser Headers: The server automatically includes realistic browser headers to prevent blocking:
- User-Agent: Chrome browser simulation
- Accept: Standard browser content types
- Accept-Language, Accept-Encoding: Browser defaults
- Security headers: Sec-Fetch-* headers for modern browsers
Custom headers in JSONRPC_MCP_HEADERS will override defaults when there are conflicts.
Development
# Run tests
pytest
# Check code quality
ruff check --fix
# Build and test locally
uv build
What's New in v1.1.0
- ✨ Multi-Method HTTP Support: GET, POST, PUT, DELETE, PATCH, HEAD, OPTIONS
- 🔄 Tool Renaming:
get-json→fetch-json,get-text→fetch-text - 📄 Markdown Conversion: Default HTML to Markdown conversion with
markdownify - 🌐 Smart Browser Headers: Automatic browser simulation headers
- 🎛️ Format Control: Three output formats for text content (markdown, clean_text, raw_html)
- 🚀 Enhanced Batch Processing: Support for different methods in batch operations
FAQ
- What is the Fetch JSONPath MCP server?
- Fetch JSONPath is a Model Context Protocol (MCP) server profile on explainx.ai. MCP lets AI hosts (e.g. Claude Desktop, Cursor) call tools and resources through a standard interface; this page summarizes categories, install hints, and community ratings.
- How do MCP servers relate to agent skills?
- Skills are reusable instruction packages (often SKILL.md); MCP servers expose live capabilities. Teams frequently combine both—skills for workflows, MCP for APIs and data. See explainx.ai/skills and explainx.ai/mcp-servers for parallel directories.
- How are reviews shown for Fetch JSONPath?
- This profile displays 10 aggregated ratings (sample rows for discoverability plus signed-in user reviews). Average score is about 4.5 out of 5—verify behavior in your own environment before production use.
Ratings
4.5★★★★★10 reviews- ★★★★★Shikha Mishra· Oct 10, 2024
Fetch JSONPath is among the better-indexed MCP projects we tried; the explainx.ai summary tracks the official description.
- ★★★★★Piyush G· Sep 9, 2024
We evaluated Fetch JSONPath against two servers with overlapping tools; this profile had the clearer scope statement.
- ★★★★★Chaitanya Patil· Aug 8, 2024
Useful MCP listing: Fetch JSONPath is the kind of server we cite when onboarding engineers to host + tool permissions.
- ★★★★★Sakshi Patil· Jul 7, 2024
Fetch JSONPath reduced integration guesswork — categories and install configs on the listing matched the upstream repo.
- ★★★★★Ganesh Mohane· Jun 6, 2024
I recommend Fetch JSONPath for teams standardizing on MCP; the explainx.ai page compares cleanly with sibling servers.
- ★★★★★Oshnikdeep· May 5, 2024
Strong directory entry: Fetch JSONPath surfaces stars and publisher context so we could sanity-check maintenance before adopting.
- ★★★★★Dhruvi Jain· Apr 4, 2024
Fetch JSONPath has been reliable for tool-calling workflows; the MCP profile page is a good permalink for internal docs.
- ★★★★★Rahul Santra· Mar 3, 2024
According to our notes, Fetch JSONPath benefits from clear Model Context Protocol framing — fewer ambiguous “AI plugin” claims.
- ★★★★★Pratham Ware· Feb 2, 2024
We wired Fetch JSONPath into a staging workspace; the listing’s GitHub and npm pointers saved time versus hunting across READMEs.
- ★★★★★Yash Thakker· Jan 1, 2024
Fetch JSONPath is a well-scoped MCP server in the explainx.ai directory — install snippets and categories matched our Claude Code setup.