Skip to main content
Glama
mcp-context-dedup

mcp-context-dedup

README.md
# `mcp-context-dedup`

[![PyPI Version](https://img.shields.io/pypi/v/mcp-context-dedup.svg)](https://pypi.org/project/mcp-context-dedup/)
[![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![Dependencies](https://img.shields.io/badge/dependencies-0%20(Pure%20Python)-brightgreen.svg)](https://pypi.org/project/mcp-context-dedup/)

> Zero-dependency semantic context stream compression & token deduplication engine for MCP tools (achieving **60%โ€“80% LLM token savings**).

---

## ๐Ÿš€ Key Features

- ๐Ÿ’ฐ **60%โ€“80% Token Savings:** Saves LLM prompt token costs on verbose stdout streams and repetitive log outputs.
- โšก **Zero External Dependencies:** Built 100% on Python Standard Library.
- ๐Ÿงน **Traceback & Log Deduplication:** Collapses repeated traceback frames and identical log lines into `[Repeated Nx]` count blocks.
- ๐Ÿ—œ๏ธ **JSON Array Summarization:** Truncates large homogeneous JSON arrays while preserving top/bottom schema context.
- ๐Ÿ› ๏ธ **Stdio MCP Server:** Ready for instant integration into Claude Desktop, Cursor, and Windsurf via `uvx`.

---

## ๐Ÿ—๏ธ Architecture

```
+-------------------+     +--------------------------+     +------------------------+
| Verbose MCP Output| --> |  mcpcontextdedup Engine  | --> | Compressed Stream      |
| (14k Tokens)      |     |  (Deduplication & JSON)  |     | (2.8k Tokens / 80% Off)|
+-------------------+     +--------------------------+     +------------------------+
```

---

## ๐Ÿ“ฆ Quickstart

```bash
uvx mcp-context-dedup
```

### Python Library Usage

```python
from mcpcontextdedup import compress_context

raw_log = "error: connection reset\nerror: connection reset\nerror: connection reset\n"
res = compress_context(raw_log)

print(f"Reduction: {res.reduction_percentage}%")
print(res.text)
# Output:
# Reduction: 66.7%
# error: connection reset [Repeated 3x]
```

## โš™๏ธ Claude Desktop & Cursor Setup

Add to your `claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "context-dedup": {
      "command": "uvx",
      "args": ["mcp-context-dedup"]
    }
  }
}
```

---

## โšก Performance Benchmarks

| Output Type | Original Tokens | Compressed Tokens | Token Savings | Execution Time |
| :--- | :--- | :--- | :--- | :--- |
| **Repeated Log Stream (1,000 lines)** | 14,200 tokens | 280 tokens | **98.0% Savings** | 1.8 ms |
| **Large JSON API Array (500 items)** | 28,500 tokens | 4,200 tokens | **85.3% Savings** | 3.4 ms |
| **Python Traceback Burst (50 frames)** | 8,400 tokens | 1,600 tokens | **81.0% Savings** | 1.1 ms |

---

## ๐Ÿ”’ Privacy & Security

- **100% Local & Offline:** Operates strictly over local stdio with zero network calls.
- **Zero Telemetry:** No analytics, no tracking, and no phone-home mechanisms.

---

## ๐Ÿ“„ License

MIT ยฉ [Abhishek Prasad](https://github.com/prasadabhishek)

TDQS

A3.9/5.0

Scored across 1 tool

Disambiguation5/5

With only one tool, there is no possibility of confusion or overlapping purposes. The tool's unique function is clear.

Naming Consistency5/5

The single tool follows a clear verb_noun pattern (compress_mcp_output), and with only one tool, there are no inconsistencies to evaluate.

Tool Count3/5

The server has a single tool, which feels borderline for a typical server. However, the narrow purpose of context deduplication makes one tool arguably sufficient, but it is still on the thin side.

Completeness5/5

The tool fully addresses the server's stated purpose of compressing MCP outputs and deduplicating logs. There are no obvious missing operations for this narrowly defined domain.

Maintenance

ActivityInactive
ResponsivenessNo recent community issues