GitHub - kehvinbehvin/json-mcp-filter: JSON MCP server to filter only relevant data for your LLM (original) (raw)

MseeP.ai Security Assessment Badge

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.

JSON Server MCP server Perfect for: Filtering large JSON files and API responses to extract only relevant data for LLM context, while maintaining type safety.

✨ Key Features

🛠️ Available Tools

json_schema

Generates TypeScript interfaces from JSON data.

Parameters:

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:

Auto-Chunking:

json_dry_run

Analyzes data size and provides chunking recommendations before filtering.

Parameters:

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:

Maintainers Not Responsible For:

💡 Recommendation: Only use trusted, public data sources.

🚀 Quick Start

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 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:

🔧 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

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

Best Practices

🌐 Supported Sources

💡 Common Workflows

LLM Integration:

  1. API returns large response
  2. json_filter extracts relevant fields
  3. Process clean data without noise
  4. json_schema generates types for safety