JSON2TOON MCP Server
Advanced Token-Optimized Object Notation MCP server that compresses JSON with up to 85% token reduction using AI-powered pattern detection, providing lossless compression and decompression through 12 MCP tools.
README
JSON2TOON v2.0 π
Advanced Token-Optimized Object Notation - The most powerful JSON compression system for AI context management.
JSON2TOON is a next-generation MCP server that revolutionizes JSON compression with AI-powered pattern detection, achieving 75-85% token reduction while maintaining perfect data integrity.
β¨ Key Features
π― 4 Compression Levels
- MINIMAL (30-40% savings): Lightning-fast key abbreviations
- STANDARD (40-60% savings): Balanced performance + compression
- AGGRESSIVE (60-75% savings): Advanced pattern optimization
- EXTREME (75-85% savings): Maximum compression with zlib
π€ AI-Powered Pattern Detection
- 17+ Pattern Types: API responses, databases, time series, graphs, trees, and more
- Smart Strategy Selection: Automatic optimization based on data structure
- Confidence Scoring: Each pattern comes with accuracy metrics
- Compression Potential: Estimates savings before conversion
π§ 12 Advanced MCP Tools
convert_to_toon- Multi-level JSON compressionconvert_to_json- Lossless decompressionanalyze_patterns- Deep pattern analysis with AIget_optimal_strategy- AI-recommended compression plancalculate_metrics- Detailed compression statisticsbatch_convert- High-performance batch processingsmart_optimize- Auto-detect and apply best compressioncompare_levels- Side-by-side level comparisonvalidate_toon- Format validation + round-trip testingsuggest_abbreviations- Custom abbreviation generationestimate_savings- Pre-conversion savings estimationget_server_stats- Real-time performance metrics
π‘ Advanced Capabilities
- 150+ Key Abbreviations (vs 68 in TOON v1.0)
- String Dictionary: De-duplication for repeated values
- Partial Schema Compression: Works with inconsistent data
- Value Pattern Compression: Optimizes timestamps, UUIDs, URLs, emails
- Reference System: Eliminates duplicate structures
- zlib Integration: Optional extreme compression
π Performance Benchmarks
| Data Type | Compression | Speed | Round-Trip |
|---|---|---|---|
| API Responses | 50-65% | 0.3ms/KB | β Perfect |
| Database Results | 60-70% | 0.3ms/KB | β Perfect |
| Time Series | 65-75% | 0.5ms/KB | β Perfect |
| User Profiles | 45-55% | 0.3ms/KB | β Perfect |
| Config Files | 40-55% | 0.1ms/KB | β Perfect |
π Quick Start
Installation
# Clone repository
git clone https://github.com/muhammedehab35/JSON2TOON-MCP.git
cd json2toon
# Install with pip
pip install -e .
# Or use Docker
docker-compose up -d
MCP Configuration
Add to your Claude Desktop config (~/.config/Claude/claude_desktop_config.json):
{
"mcpServers": {
"json2toon": {
"command": "python",
"args": ["-m", "src.mcp_server"],
"cwd": "/path/to/json2toon"
}
}
}
Docker Configuration:
{
"mcpServers": {
"json2toon": {
"command": "docker",
"args": ["run", "-i", "json2toon:2.0.0"]
}
}
}
π» Usage Examples
Basic Conversion
from src.advanced_converter import convert_json_to_toon, convert_toon_to_json, CompressionLevel
# Simple conversion with STANDARD level
data = {
"id": 12345,
"name": "John Doe",
"email": "john@example.com",
"created_at": "2025-01-01T00:00:00Z"
}
# Convert to TOON
toon = convert_json_to_toon(data, level=CompressionLevel.STANDARD)
print(f"Compressed: {toon}")
# Convert back to JSON
original = convert_toon_to_json(toon)
print(f"Restored: {original}")
Advanced Pattern Analysis
from src.pattern_analyzer import AdvancedPatternAnalyzer
analyzer = AdvancedPatternAnalyzer()
# Analyze your data
patterns = analyzer.analyze(large_json_data)
# Get compression strategy
strategy = analyzer.get_compression_strategy(large_json_data)
print(f"Detected {len(patterns)} patterns")
print(f"Expected savings: {strategy.expected_savings * 100:.1f}%")
print(f"Recommended level: {strategy.recommended_level}")
print(f"Reasoning: {strategy.reasoning}")
Smart Optimization
from src.optimizer import SmartOptimizer
optimizer = SmartOptimizer()
# Automatic optimization with profile
result = optimizer.optimize(data, profile="balanced")
# Profiles: "speed", "balanced", "size"
print(f"Used profile: {result['profile_used']}")
print(f"Selected level: {result['level_selected']}")
print(f"Savings: {result['metrics']['savings_percent']:.1f}%")
Batch Processing
from src.advanced_converter import AdvancedTOONConverter, CompressionLevel
converter = AdvancedTOONConverter(level=CompressionLevel.AGGRESSIVE)
# Process multiple items
items = [
{"id": i, "data": f"Item {i}"}
for i in range(1000)
]
for item in items:
toon = converter.json_to_toon(item)
# Process compressed data
π¬ MCP Tools Examples
In Claude Code
1. Convert with Custom Level
Use the convert_to_toon tool with:
- json_data: <your JSON>
- level: 3 (AGGRESSIVE)
2. Analyze Patterns
Use the analyze_patterns tool to detect:
- Pattern types
- Compression potential
- Optimization recommendations
3. Compare All Levels
Use the compare_levels tool to see:
- Side-by-side comparison
- Savings per level
- Best recommendation
4. Smart Auto-Optimize
Use the smart_optimize tool with:
- json_data: <your JSON>
- profile: "size" (for maximum compression)
π Format Specification
TOON v2.0 Structure
{
"_toon": "2.0", // Version identifier
"_lvl": 2, // Compression level used
"d": {...}, // Compressed data
"_refs": {...}, // Optional: structure references
"_dict": {...} // Optional: string dictionary
}
Key Abbreviations (Sample)
| Original | TOON | Original | TOON | Original | TOON |
|---|---|---|---|---|---|
| id | i | eml | status | s | |
| name | n | phone | ph | created_at | ca |
| type | t | address | addr | updated_at | ua |
| value | v | username | unm | timestamp | ts |
150+ abbreviations covering common API, database, and application fields.
Value Optimizations
nullβ~trueβT,falseβF- Timestamps:
$ts:2025-01-01T00:00:00Z - UUIDs:
$uid:550e8400-e29b-41d4-a716-446655440000 - String refs:
@s0,@s1(from dictionary)
Schema Compression
Before:
[
{"id": 1, "name": "Alice", "email": "alice@test.com"},
{"id": 2, "name": "Bob", "email": "bob@test.com"},
{"id": 3, "name": "Carol", "email": "carol@test.com"}
]
After (TOON):
{
"_sch": ["i", "n", "eml"],
"_dat": [
[1, "Alice", "alice@test.com"],
[2, "Bob", "bob@test.com"],
[3, "Carol", "carol@test.com"]
]
}
Savings: ~55-60% for arrays with consistent schemas
π§ͺ Testing
# Run all tests
pytest tests/ -v
# With coverage
pytest tests/ --cov=src --cov-report=html
# Specific test file
pytest tests/test_converter.py -v
# Run tests in Docker
docker-compose run json2toon-server pytest tests/ -v
Test Coverage
- β Converter: 100+ test cases covering all compression levels
- β Pattern Analyzer: 30+ tests for all 17 pattern types
- β Round-trip: Perfect data integrity verification
- β Edge cases: Unicode, large numbers, special characters
- β Performance: Benchmarks for all levels
π³ Docker Deployment
Build Image
docker build -t json2toon:2.0.0 .
Run with Docker Compose
# Production mode
docker-compose up -d json2toon-server
# Development mode
docker-compose --profile dev up json2toon-dev
Docker Features
- β Python 3.11 optimized image
- β Non-root user for security
- β Health checks
- β Resource limits (2 CPU, 1GB RAM)
- β Logging configuration
- β Development mode with live reload
π Architecture
βββββββββββββββββββββββββββββββββββββββββββ
β JSON2TOON MCP Server β
β (v2.0) β
βββββββββββββββ¬ββββββββββββββββββββββββββββ
β
βββββββββββΌββββββββββ
β β β
βΌ βΌ βΌ
βββββββββββ ββββββββββββ ββββββββββββ
βAdvanced β βPattern β βSmart β
βConverterβ βAnalyzer β βOptimizer β
βββββββββββ ββββββββββββ ββββββββββββ
β β β
βββββββββββ΄βββββββββββββββ
β
βββββββββββΌββββββββββ
βΌ βΌ βΌ
ββββββββ ββββββββ ββββββββ
βSchemaβ βStringβ βValue β
βComp β β Dict β β Comp β
ββββββββ ββββββββ ββββββββ
π― Pattern Types Detected
- API Response - REST, GraphQL, JSON-RPC
- Database Record - CRUD, audit logs, versioned
- User Data - Profiles, auth, preferences
- Pagination - Page-based, offset-based
- Nested Address - Street, city, state, country
- Nested Coordinates - Lat/lng/alt
- Nested Dimensions - Width/height/depth
- Nested Metadata - Created/updated by, tags
- Homogeneous Array - Same-type elements
- Consistent Schema Array - Similar object structures
- Repeated Structure - Duplicate patterns
- Time Series - Temporal data sequences
- Graph Node - Network/graph structures
- Tree Structure - Hierarchical data
- Enum Values - Limited value sets
- Sparse Array - Many null/empty values
- Deep Nesting - Complex nested levels
π§ Development
Setup Development Environment
# Install dev dependencies
pip install -e ".[dev]"
# Format code
black src/ tests/
# Lint
ruff src/ tests/
# Type check
mypy src/
Code Quality Tools
- black: Code formatting (line length: 100)
- ruff: Fast Python linter
- mypy: Static type checking (strict mode)
- pytest: Testing framework with async support
π Comparison with TOON v1.0
| Feature | TOON v1.0 | JSON2TOON v2.0 |
|---|---|---|
| Compression Levels | 2 | 4 |
| Key Abbreviations | 68 | 150+ |
| Pattern Types | 8 | 17+ |
| MCP Tools | 6 | 12 |
| Max Savings | 60% | 85% |
| String Dictionary | β | β |
| Value Compression | β | β |
| Partial Schema | β | β |
| zlib Support | β | β |
| AI Analysis | Basic | Advanced |
| Custom Abbreviations | β | β |
| Savings Estimation | β | β |
π€ Contributing
Contributions are welcome! Please:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Run tests (
pytest tests/ -v) - Format code (
black src/ tests/) - Commit changes (
git commit -m 'Add amazing feature') - Push to branch (
git push origin feature/amazing-feature) - Open a Pull Request
π Use Cases
1. Large API Responses
Save 50-65% tokens when storing API responses in Claude conversations.
2. Database Query Results
Compress database results by 60-70% for efficient context usage.
3. Time Series Data
Achieve 65-75% compression on temporal datasets.
4. Configuration Files
Store configs in compact format with 40-55% savings.
5. Codebase Analysis
Fit more file contents in token limits when analyzing code.
6. Log Processing
Compress structured logs by 50-60% for pattern analysis.
π¦ Quick Tips
When to Use Each Level
- MINIMAL: Quick conversions, need high speed
- STANDARD: General purpose (best balance)
- AGGRESSIVE: Large datasets, high savings needed
- EXTREME: Maximum compression, archival use
Optimization Profiles
- speed: Prefer MINIMAL/STANDARD levels
- balanced: Auto-select based on data (recommended)
- size: Prefer AGGRESSIVE/EXTREME levels
Best Practices
- β
Analyze patterns first with
analyze_patterns - β
Use
smart_optimizefor automatic best results - β
Validate with
validate_toonafter conversion - β
Use
estimate_savingsbefore large batch jobs - β
Monitor with
get_server_statsfor metrics
pip install -e .
python -m src.mcp_server
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.