Skip to main content
Glama

TOON MCP Server

npm version License: MIT

MCP (Model Context Protocol) server for TOON (Token-Oriented Object Notation) encoding. Reduce LLM token usage by 50-70% when sending structured data.

What is TOON?

TOON is a compact data format optimized for LLM input. Instead of repeating field names for every object, it uses a header-based format:

JSON (1041 tokens):

[
  {"id": 1, "name": "Product A", "price": 99.99},
  {"id": 2, "name": "Product B", "price": 149.99}
]

TOON (389 tokens):

[id,name,price]
1,Product A,99.99
2,Product B,149.99

Result: 62% fewer tokens = 62% cost savings

Related MCP server: TOON MCP Server

Installation

Quick Start (npx - no install needed)

Add to your MCP settings:

Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "toon": {
      "command": "npx",
      "args": ["-y", "toon-mcp-server"]
    }
  }
}

Claude Code (~/.claude/settings.json):

{
  "mcpServers": {
    "toon": {
      "command": "npx",
      "args": ["-y", "toon-mcp-server"]
    }
  }
}

Global Install

npm install -g toon-mcp-server

Then add to your MCP settings:

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

As Claude Code Skill

# Download the skill
curl -o ~/.claude/skills/toon.md https://raw.githubusercontent.com/elminson/toon-mcp/main/skills/toon.md

Then use /toon in Claude Code.

Available Tools

toon_encode

Convert data to TOON format.

Supported formats: JSON, CSV, TSV, XML, HTML tables, YAML

Input: [{"name":"Alice","age":30},{"name":"Bob","age":25}]
Output: [name,age]
        Alice,30
        Bob,25

toon_decode

Convert TOON back to JSON.

toon_analyze

Analyze data and show potential token/cost savings.

toon_optimize_prompt

Find data sections in a prompt and convert them to TOON automatically.

Usage Examples

In Claude Desktop/Code (with MCP)

Just ask Claude to use the tools:

  • "Encode this JSON to TOON: [...]"

  • "Analyze how much I'd save converting this data to TOON"

  • "Optimize this prompt for token efficiency"

Programmatic (Node.js)

const { ToonEncoder } = require('toon-mcp-server/src/toon-encoder');

// Encode
const data = [
  { id: 1, name: 'Test', price: 99.99 },
  { id: 2, name: 'Test 2', price: 149.99 },
];
const toon = ToonEncoder.encode(data);

// Get stats
const json = JSON.stringify(data);
const stats = ToonEncoder.getStats(json, toon);
console.log(stats.savings.percent); // "64.5%"

// Decode
const decoded = ToonEncoder.decode(toon);

Benchmarks

Tested with OpenAI GPT-4o-mini:

Dataset Size

JSON Tokens

TOON Tokens

Savings

5 items

383

192

49.9%

20 items

1,394

530

62%

50 items

3,412

1,204

64.7%

100 items

6,800

2,400

~65%

Cost Savings at Scale

Volume

GPT-4o-mini

GPT-4o

Claude Sonnet

1M requests

$489 saved

$8,158 saved

$9,789 saved

10M requests

$4,890 saved

$81,580 saved

$97,890 saved

When to Use TOON

✅ Best for:

  • Arrays of objects with same structure (tables, lists, records)

  • API responses, database results

  • Large datasets sent to LLMs

  • Cost optimization at scale

⚠️ Less effective for:

  • Deeply nested, non-uniform data

  • Small payloads (<5 items)

  • Data with many unique field structures

Contributing

Pull requests welcome! Please open an issue first to discuss changes.

License

MIT

Available Tools

4 tools
toon_analyzeC

Analyze data and show potential token savings with TOON encoding.

Inputs: data (required), format.

toon_decodeC

Decode TOON format back to JSON object or array.

Inputs: toon (required).

toon_encodeA

Convert data to TOON (Token-Oriented Object Notation) format to reduce token usage by 50-70%.

Supports: JSON, CSV, TSV, XML, HTML tables, YAML, and raw objects.

TOON uses a header-based format where field names are defined once:

  • JSON: {"id":1,"name":"test"} → [id,name]\n1,test

  • Reduces repetitive keys in arrays of objects

Use this before sending large datasets to LLMs to save tokens and costs.

Inputs: data (required), format.

toon_optimize_promptA

Optimize a prompt containing data for token efficiency.

Detects data structures within the prompt and converts them to TOON format, adding instructions for the LLM to understand the format.

Returns the optimized prompt with estimated token savings.

Inputs: prompt (required).

Tool Schema Changelog

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

Loading tool schema changelog…

    TDQS

    A3.7/5.0

    Scored across 4 tools

    Disambiguation5/5

    Each tool has a distinct and non-overlapping purpose: toon_analyze assesses potential savings, toon_encode converts data to TOON format, toon_decode reverts TOON to original formats, and toon_optimize_prompt specifically handles prompt optimization. There is no ambiguity in tool selection.

    Naming Consistency5/5

    All tools follow a consistent 'toon_' prefix with a clear verb_noun pattern (e.g., toon_analyze, toon_encode, toon_decode, toon_optimize_prompt). This uniformity makes the tool set predictable and easy to understand.

    Tool Count5/5

    With 4 tools, the server is well-scoped for its purpose of TOON encoding and optimization. Each tool serves a specific function in the data processing workflow, and there are no extraneous or missing tools for this focused domain.

    Completeness4/5

    The tool set covers the core TOON workflow comprehensively: analyze, encode, decode, and optimize prompts. A minor gap might be the lack of a tool for batch processing or handling specific edge cases, but the existing tools allow agents to perform essential operations without dead ends.

    Related MCP Connectors

    Related MCP Servers