Skip to main content
Glama
ason-format

ASON MCP Server

Official
by ason-format

ASON MCP Server

NPM Version License: MIT Node.js

Model Context Protocol (MCP) server for ASON compression/decompression. Enables Claude Desktop, Cline, Continue, and other MCP clients to compress JSON data using the token-optimized ASON format.

Features

  • compress_json: Convert JSON to ASON format (20-60% token reduction)

  • decompress_ason: Convert ASON back to JSON (lossless)

  • get_compression_stats: Analyze compression metrics without performing compression

  • configure_compressor: Customize compression settings globally

Related MCP server: TOON MCP Server

Installation

Option 1: Local Development

cd mcp-server
npm install
npm run build

Option 2: Global Installation

npm install -g @ason-format/mcp-server

Usage with Claude Desktop

Add to your Claude Desktop configuration file:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "ason": {
      "command": "node",
      "args": [
        "/absolute/path/to/ason/mcp-server/dist/index.js"
      ]
    }
  }
}

Or if installed globally:

{
  "mcpServers": {
    "ason": {
      "command": "ason-mcp"
    }
  }
}

Available Tools

1. compress_json

Compress JSON data to ASON format.

Input:

{
  "json": {"users": [{"id": 1, "name": "Alice"}, {"id": 2, "name": "Bob"}]},
  "config": {
    "indent": 1,
    "delimiter": "|",
    "useReferences": true,
    "useSections": true,
    "useTabular": true
  }
}

Output:

ASON 2.0 Output:

users:[2]{id,name}
1|Alice
2|Bob

Configuration used:
{
  "indent": 1,
  "delimiter": "|",
  "useReferences": true,
  "useSections": true,
  "useTabular": true
}

2. decompress_ason

Decompress ASON back to JSON.

Input:

{
  "ason": "users:[2]{id,name}\n1|Alice\n2|Bob"
}

Output:

{
  "users": [
    {"id": 1, "name": "Alice"},
    {"id": 2, "name": "Bob"}
  ]
}

3. get_compression_stats

Analyze compression statistics.

Input:

{
  "json": {"users": [{"id": 1, "name": "Alice"}, {"id": 2, "name": "Bob"}]},
  "config": {
    "indent": 1,
    "delimiter": "|"
  }
}

Output:

Compression Statistics:

Original Tokens: 32
Compressed Tokens: 15
Reduction: 53.13%

Original Size: 78 bytes
Compressed Size: 41 bytes
Savings: 37 bytes

Configuration:
{
  "indent": 1,
  "delimiter": "|",
  "useReferences": true,
  "useSections": true,
  "useTabular": true
}

4. configure_compressor

Update global compression settings.

Input:

{
  "config": {
    "indent": 2,
    "delimiter": ",",
    "useReferences": false
  }
}

Output:

Global configuration updated:

{
  "indent": 2,
  "delimiter": ",",
  "useReferences": false,
  "useSections": true,
  "useTabular": true
}

Configuration Options

Option

Type

Default

Description

indent

number

1

Indentation level for nested structures

delimiter

string

`"

"`

useReferences

boolean

true

Enable $var reference deduplication

useSections

boolean

true

Enable @section organization for objects

useTabular

boolean

true

Enable [N]{fields} tabular format for arrays

minFieldsForSection

number

3

Minimum fields to create a @section

minRowsForTabular

number

2

Minimum rows for tabular array format

minReferenceOccurrences

number

2

Minimum occurrences to create a $var reference

Development

# Build
npm run build

# Watch mode
npm run watch

# Test locally
node dist/index.js

Example Usage in Claude Desktop

User: Can you compress this JSON for me?
{
  "products": [
    {"id": 1, "name": "Laptop", "price": 999},
    {"id": 2, "name": "Mouse", "price": 25}
  ]
}

Claude: I'll use the compress_json tool to compress this JSON.
[Uses MCP tool compress_json]

Result:
products:[2]{id,name,price}
1|Laptop|999
2|Mouse|25

This compressed version uses 45% fewer tokens!

๐Ÿš€ Publishing

To release a new version:

# Run the release script
./scripts/release.sh

# 1. Select version bump (patch/minor/major)
# 2. Update CHANGELOG.md when prompted
# 3. Confirm push

# GitHub Actions will automatically:
# - Build the package
# - Publish to NPM (@ason-format/mcp-server)
# - Create GitHub Release

๐Ÿงช Supported MCP Clients

  • โœ… Claude Desktop (Anthropic)

  • โœ… Cline (VS Code extension)

  • โœ… Continue (VS Code extension)

  • โœ… Any MCP client with stdio transport

๐Ÿ“š What is ASON 2.0?

ASON (Aliased Serialization Object Notation) 2.0 is a token-optimized JSON compression format designed for LLMs. It reduces token usage by 20-60% while maintaining 100% lossless round-trip fidelity.

Key features:

  • Sections (@section) - Organize related objects

  • Tabular Arrays (key:[N]{fields}) - CSV-like format for uniform arrays

  • References ($var) - Deduplicate repeated values

  • Pipe Delimiter (|) - More token-efficient than commas

Learn more: ason-format.github.io/ason

๐Ÿ“– Documentation

๐Ÿ“ License

MIT ยฉ ASON Project Contributors

๐Ÿค Contributing

Contributions welcome! Please open an issue or pull request.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Converts JSON data and system prompts to and from TOON (Token-Oriented Object Notation) format, reducing token usage by 30-60% when interacting with LLMs while preserving data structure.
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Enables users to convert structured data into Token-Oriented Object Notation (TOON) to reduce LLM token usage and costs by up to 70%. It provides tools for encoding, decoding, and analyzing data formats like JSON, CSV, and XML to optimize prompt efficiency.
    4
    5 npm
    3
    MIT
  • A
    license
    B
    quality
    D
    maintenance
    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.
    12
    9
    MIT