JSON MCP server to filter only relevant data for your LLM
{
"json-mcp-filter-npx": {
"command": "npx",
"args": [
"-y",
"json-mcp-filter@latest"
],
"env": {}
},
"json-mcp-filter-global": {
"command": "json-mcp-server",
"args": [],
"env": {}
},
"json-mcp-filter-source-start": {
"command": "npm",
"args": [
"run",
"start"
],
"env": {}
},
"json-mcp-filter-node-path": {
"command": "node",
"args": [
"/path/to/json-mcp-filter/build/index.js"
],
"env": {}
},
"json-mcp-filter-inspect": {
"command": "npm",
"args": [
"run",
"inspect"
],
"env": {}
}
}JSON MCP Filter
A powerful Model Context Protocol (MCP) server that provides JSON schema generation and filtering tools for local files and remote HTTP/HTTPS endpoints. Built with quicktype for robust TypeScript type generation.
Perfect for: Filtering large JSON files and API responses to extract only relevant data for LLM context, while maintaining type safety.
⨠Key Features
- š Schema Generation - Convert JSON to TypeScript interfaces using quicktype
- šÆ Smart Filtering - Extract specific fields with shape-based filtering
- š Remote Support - Works with HTTP/HTTPS URLs and API endpoints
- š¦ Auto Chunking - Handles large datasets with automatic 400KB chunking
- š”ļø Size Protection - Built-in 50MB limit with memory safety
- ā” MCP Ready - Seamless integration with Claude Desktop and Claude Code
- šØ Smart Errors - Clear, actionable error messages with debugging info
š ļø Available Tools
json_schema
Generates TypeScript interfaces from JSON data.
Parameters:
filePath: Local file path or HTTP/HTTPS URL
Example:
// Input JSON
{"name": "John", "age": 30, "city": "New York"}
// Generated TypeScript
export interface GeneratedType {
name: string;
age: number;
city: string;
}
json_filter
Extracts specific fields using shape-based filtering with automatic chunking for large datasets.
Parameters:
filePath: Local file path or HTTP/HTTPS URLshape: Object defining which fields to extractchunkIndex(optional): Chunk index for large datasets (0-based)
Auto-Chunking:
- ā¤400KB: Returns all data
-
400KB: Auto-chunks with metadata
json_dry_run
Analyzes data size and provides chunking recommendations before filtering.
Parameters:
filePath: Local file path or HTTP/HTTPS URLshape: Object defining what to analyze
Returns: Size breakdown and chunk recommendations
š Usage Examples
Basic Filtering
// Simple field extraction
json_filter({
filePath: "https://api.example.com/users",
shape: {"name": true, "email": true}
})
Shape Patterns
// Single field
{"name": true}
// Nested objects
{"user": {"name": true, "email": true}}
// Arrays (applies to each item)
{"users": {"name": true, "age": true}}
// Complex nested
{
"results": {
"profile": {"name": true, "location": {"city": true}}
}
}
Large Dataset Workflow
// 1. Check size first
json_dry_run({filePath: "./large.json", shape: {"users": {"id": true}}})
// ā "Recommended chunks: 6"
// 2. Get chunks
json_filter({filePath: "./large.json", shape: {"users": {"id": true}}})
// ā Chunk 0 + metadata
json_filter({filePath: "./large.json", shape: {"users": {"id": true}}, chunkIndex: 1})
// ā Chunk 1 + metadata
š Security Notice
Remote Data Fetching: This tool fetches data from HTTP/HTTPS URLs. Users are responsible for:
ā Safe Practices:
- Verify URLs point to legitimate endpoints
- Use trusted, public APIs only
- Respect API rate limits and terms of service
- Review data sources before processing
ā Maintainers Not Responsible For:
- External URL content
- Privacy implications of remote requests
- Third-party API abuse or violations
š” Recommendation: Only use trusted, public data sources.
š Quick Start
Option 1: NPX (Recommended)
# No installation required
npx json-mcp-filter@latest
Option 2: Global Install
npm install -g json-mcp-filter@latest
json-mcp-server
Option 3: From Source
git clone <repository-url>
cd json-mcp-filter
npm install
npm run build
āļø MCP Integration
Claude Desktop
Add to your configuration file:
{
"mcpServers": {
"json-mcp-filter": {
"command": "npx",
"args": ["-y", "json-mcp-filter@latest"]
}
}
}
Claude Code
# Add via CLI
claude mcp add json-mcp-filter npx -y json-mcp-filter@latest
Or add manually:
- Name:
json-mcp-filter - Command:
npx - Args:
["-y", "json-mcp-filter@latest"]
š§ Development
Commands
npm run build # Compile TypeScript
npm run start # Run compiled server
npm run inspect # Debug with MCP inspector
npx tsc --noEmit # Type check only
Testing
npm run inspect # Interactive testing interface
š Project Structure
src/
āāā index.ts # Main server + tools
āāā strategies/ # Data ingestion strategies
ā āāā JsonIngestionStrategy.ts # Abstract interface
ā āāā LocalFileStrategy.ts # Local file access
ā āāā HttpJsonStrategy.ts # HTTP/HTTPS fetching
āāā context/
ā āāā JsonIngestionContext.ts # Strategy management
āāā types/
āāā JsonIngestion.ts # Type definitions
šØ Error Handling
Comprehensive Coverage
- Local Files: Not found, permissions, invalid JSON
- Remote URLs: Network failures, auth errors (401/403), server errors (500+)
- Content Size: Auto-reject >50MB with clear messages
- Format Detection: Smart detection of HTML/XML with guidance
- Rate Limiting: 429 responses with retry instructions
- Processing: Quicktype errors, shape filtering issues
All errors include actionable debugging information.
ā” Performance
Processing Times
| File Size | Processing Time |
|---|---|
| < 100 KB | < 10ms |
| 1-10 MB | 100ms - 1s |
| 10-50 MB | 1s - 5s |
| > 50 MB | Blocked |
Size Protection
- 50MB maximum for all sources
- Pre-download checking via Content-Length
- Memory safety prevents OOM errors
- Clear error messages with actual vs. limit sizes
Best Practices
- Use
json_dry_runfirst for large files - Filter with
json_filterbefore schema generation - Focus shapes on essential fields only
š Supported Sources
- Public APIs - REST endpoints with JSON responses
- Static Files - JSON files on web servers
- Local Dev -
http://localhostduring development - Local Files - File system access
š” Common Workflows
LLM Integration:
- API returns large response
json_filterextracts relevant fields- Process clean data without noise
json_schemagenerates types for safety
JSON MCP Filter
A powerful Model Context Protocol (MCP) server that provides JSON schema generation and filtering tools for local files and remote HTTP/HTTPS endpoints. Built with quicktype for robust TypeScript type generation.
Perfect for: Filtering large JSON files and API responses to extract only relevant data for LLM context, while maintaining type safety.
⨠Key Features
- š Schema Generation - Convert JSON to TypeScript interfaces using quicktype
- šÆ Smart Filtering - Extract specific fields with shape-based filtering
- š Remote Support - Works with HTTP/HTTPS URLs and API endpoints
- š¦ Auto Chunking - Handles large datasets with automatic 400KB chunking
- š”ļø Size Protection - Built-in 50MB limit with memory safety
- ā” MCP Ready - Seamless integration with Claude Desktop and Claude Code
- šØ Smart Errors - Clear, actionable error messages with debugging info
š ļø Available Tools
json_schema
Generates TypeScript interfaces from JSON data.
Parameters:
filePath: Local file path or HTTP/HTTPS URL
Example:
// Input JSON
{"name": "John", "age": 30, "city": "New York"}
// Generated TypeScript
export interface GeneratedType {
name: string;
age: number;
city: string;
}
json_filter
Extracts specific fields using shape-based filtering with automatic chunking for large datasets.
Parameters:
filePath: Local file path or HTTP/HTTPS URLshape: Object defining which fields to extractchunkIndex(optional): Chunk index for large datasets (0-based)
Auto-Chunking:
- ā¤400KB: Returns all data
-
400KB: Auto-chunks with metadata
json_dry_run
Analyzes data size and provides chunking recommendations before filtering.
Parameters:
filePath: Local file path or HTTP/HTTPS URLshape: Object defining what to analyze
Returns: Size breakdown and chunk recommendations
š Usage Examples
Basic Filtering
// Simple field extraction
json_filter({
filePath: "https://api.example.com/users",
shape: {"name": true, "email": true}
})
Shape Patterns
// Single field
{"name": true}
// Nested objects
{"user": {"name": true, "email": true}}
// Arrays (applies to each item)
{"users": {"name": true, "age": true}}
// Complex nested
{
"results": {
"profile": {"name": true, "location": {"city": true}}
}
}
Large Dataset Workflow
// 1. Check size first
json_dry_run({filePath: "./large.json", shape: {"users": {"id": true}}})
// ā "Recommended chunks: 6"
// 2. Get chunks
json_filter({filePath: "./large.json", shape: {"users": {"id": true}}})
// ā Chunk 0 + metadata
json_filter({filePath: "./large.json", shape: {"users": {"id": true}}, chunkIndex: 1})
// ā Chunk 1 + metadata
š Security Notice
Remote Data Fetching: This tool fetches data from HTTP/HTTPS URLs. Users are responsible for:
ā Safe Practices:
- Verify URLs point to legitimate endpoints
- Use trusted, public APIs only
- Respect API rate limits and terms of service
- Review data sources before processing
ā Maintainers Not Responsible For:
- External URL content
- Privacy implications of remote requests
- Third-party API abuse or violations
š” Recommendation: Only use trusted, public data sources.
š Quick Start
Option 1: NPX (Recommended)
# No installation required
npx json-mcp-filter@latest
Option 2: Global Install
npm install -g json-mcp-filter@latest
json-mcp-server
Option 3: From Source
git clone <repository-url>
cd json-mcp-filter
npm install
npm run build
āļø MCP Integration
Claude Desktop
Add to your configuration file:
{
"mcpServers": {
"json-mcp-filter": {
"command": "npx",
"args": ["-y", "json-mcp-filter@latest"]
}
}
}
Claude Code
# Add via CLI
claude mcp add json-mcp-filter npx -y json-mcp-filter@latest
Or add manually:
- Name:
json-mcp-filter - Command:
npx - Args:
["-y", "json-mcp-filter@latest"]
š§ Development
Commands
npm run build # Compile TypeScript
npm run start # Run compiled server
npm run inspect # Debug with MCP inspector
npx tsc --noEmit # Type check only
Testing
npm run inspect # Interactive testing interface
š Project Structure
src/
āāā index.ts # Main server + tools
āāā strategies/ # Data ingestion strategies
ā āāā JsonIngestionStrategy.ts # Abstract interface
ā āāā LocalFileStrategy.ts # Local file access
ā āāā HttpJsonStrategy.ts # HTTP/HTTPS fetching
āāā context/
ā āāā JsonIngestionContext.ts # Strategy management
āāā types/
āāā JsonIngestion.ts # Type definitions
šØ Error Handling
Comprehensive Coverage
- Local Files: Not found, permissions, invalid JSON
- Remote URLs: Network failures, auth errors (401/403), server errors (500+)
- Content Size: Auto-reject >50MB with clear messages
- Format Detection: Smart detection of HTML/XML with guidance
- Rate Limiting: 429 responses with retry instructions
- Processing: Quicktype errors, shape filtering issues
All errors include actionable debugging information.
ā” Performance
Processing Times
| File Size | Processing Time |
|---|---|
| < 100 KB | < 10ms |
| 1-10 MB | 100ms - 1s |
| 10-50 MB | 1s - 5s |
| > 50 MB | Blocked |
Size Protection
- 50MB maximum for all sources
- Pre-download checking via Content-Length
- Memory safety prevents OOM errors
- Clear error messages with actual vs. limit sizes
Best Practices
- Use
json_dry_runfirst for large files - Filter with
json_filterbefore schema generation - Focus shapes on essential fields only
š Supported Sources
- Public APIs - REST endpoints with JSON responses
- Static Files - JSON files on web servers
- Local Dev -
http://localhostduring development - Local Files - File system access
š” Common Workflows
LLM Integration:
- API returns large response
json_filterextracts relevant fields- Process clean data without noise
json_schemagenerates types for safety
Related MCP Servers
markitdown-mcp
Python tool for converting files and office documents to Markdown.
fetch
Model Context Protocol Servers
memory
Model Context Protocol Servers
mindsdb
AI Analytics Engine that can answer questions over large scale data. - The only MCP Server you'll ever need
fastmcp
š The fast, Pythonic way to build MCP servers and clients
screenpipe
AI app store powered by 24/7 desktop history. open source | 100% local | dev friendly | 24/7 screen, mic recording
