Skip to main content
Glama
prasadabhishek

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

ActivityStale
ResponsivenessNo issues