Skip to main content
Glama

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

Related MCP server: JSON Query MCP

πŸ› οΈ 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 URL

  • shape: Object defining which fields to extract

  • chunkIndex (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 URL

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

# 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_run first for large files

  • Filter with json_filter before 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://localhost during development

  • Local Files - File system access

πŸ’‘ 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

Hosted deployment

A hosted deployment is available on Fronteir AI.

Available Tools

3 tools
json_dry_runA

Analyze the size breakdown of JSON data using a shape object to determine granularity. Returns size information in bytes for each specified field, mirroring the shape structure but with size values instead of data.

Inputs: filePath (required), shape.

json_filterA

Filter JSON data using a shape object to extract only the fields you want. Provide filePath (local file or HTTP/HTTPS URL) and shape parameters.

Inputs: filePath (required), shape, chunkIndex.

json_schemaB

Generate TypeScript schema for a JSON file or remote JSON URL. Provide the file path or HTTP/HTTPS URL as the only parameter.

Inputs: filePath (required).

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A4.1/5.0

    Scored across 3 tools

    Disambiguation5/5

    Each tool has a distinct and non-overlapping purpose: json_dry_run analyzes size breakdowns, json_filter extracts specific fields, and json_schema generates TypeScript schemas. The descriptions clearly differentiate their functions, with no ambiguity in tool selection.

    Naming Consistency5/5

    All tool names follow a consistent 'json_' prefix pattern with descriptive suffixes (dry_run, filter, schema). This uniform naming convention makes the tool set predictable and easy to understand, enhancing usability.

    Tool Count5/5

    With 3 tools, this server is well-scoped for JSON filtering and analysis tasks. Each tool serves a clear and essential function in the domain, avoiding bloat while covering core operations like filtering, schema generation, and size analysis.

    Completeness4/5

    The tool set covers key JSON operations: filtering, schema generation, and size analysis, which are fundamental for JSON processing. A minor gap exists in lacking direct manipulation tools (e.g., json_merge or json_transform), but the provided tools enable effective agent workflows without dead ends.

    Maintenance

    ActivityInactive
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      C
      quality
      F
      maintenance
      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.
      2
      45 npm
      90
      MIT
    • A
      license
      A
      quality
      D
      maintenance
      A Model Context Protocol server for querying large JSON files using JSONPath expressions, enabling LLMs to efficiently search and extract information from large JSON data.
      3
      11
      MIT
    • A
      license
      A
      quality
      C
      maintenance
      Enables efficient JSON file editing with targeted read, write, delete, and deep merge operations using dot notation paths, optimized for managing multilingual projects and large configuration files.
      4
      30 npm
      1
      MIT