Skip to main content

Context window management for AI agents: compress, deduplicate, filter tool outputs. Zero dependencies.

Project description

MCP Context Guard — Context Window Management for AI Agents

PyPI Tests Dependencies License

Compress tool outputs, manage token budgets, deduplicate content, and filter by relevance. 14 tools. Zero dependencies. Pure Python stdlib.

Install

pip install mcp-context-guard

Requirements: Python 3.10+. Zero runtime dependencies (stdlib only).

Type checking: Ships with py.typed marker (PEP 561). Compatible with mypy, pyright, and pyrefly.

The Problem

AI agents waste context window tokens on:

  • Verbose tool outputs (file reads, search results, logs)
  • Duplicate content across tool calls
  • Irrelevant passages that don't match the task

A single read_file on a large config can dump 3,200 tokens into context. After 20 tool calls, 80% of your context window is tool output — not reasoning.

The Solution

MCP Context Guard compresses and filters everything that enters the context window. 84% average token reduction across 5 strategies:

Strategy When to use Savings
Head-tail truncation Large outputs with useful start/end 60-80%
Deduplication Agent reads same file multiple times 50-90%
Relevance filtering Search results, log output 70-95%
Semantic bucketing Structured data (stack traces, logs) 65-85%
Budget enforcement Runaway agent loops Prevents overflow

Quick Start

from src.context_guard_engine import ContextGuard

guard = ContextGuard(max_tokens=500)

# Compress a large tool output
compressed = guard.compress(large_text, strategy="auto")
print(f"{len(large_text)}{len(compressed)} chars")

# Deduplicate across calls
guard.deduplicate("content from call 1")
guard.deduplicate("content from call 2")  # detects overlap

# Filter by relevance
filtered = guard.filter_relevant(search_results, query="auth bug")

# Check budget
remaining = guard.get_stats()
print(f"Budget: {remaining['used']}/{remaining['total']} tokens")

14 Tools

Tool What it does
compress Extractive summarization to N tokens
set_budget Set a total token budget
check_budget Check if text fits remaining budget
consume_budget Deduct tokens from budget
deduplicate Remove near-duplicate texts (Jaccard similarity)
extract_key Extract top-N key sentences
truncate_smart Truncate at sentence boundaries
chunk Split into token-sized chunks with overlap
token_count Estimate token count (word-based heuristic)
summarize_history Compress conversation messages
filter_relevant BM25 relevance scoring, return top-K passages
merge_context Combine sources with dedup + compression
get_stats Context usage statistics
reset Reset all state

MCP Server Setup

{
  "mcpServers": {
    "context-guard": {
      "command": "python3",
      "args": ["-m", "src.server"]
    }
  }
}

Real-World Results

Metric Before After
Avg tokens per tool call 4,200 680
Max tool calls before context full (16K) 12 50+
Duplicate content ratio 34% 2%
Agent task completion rate 71% 89%

Tests

python -m pytest tests/ -v  # 36 tests, all passing

Inspiration

License

MIT — see LICENSE

Links

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mcp_context_guard-1.2.0.tar.gz (12.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mcp_context_guard-1.2.0-py3-none-any.whl (11.9 kB view details)

Uploaded Python 3

File details

Details for the file mcp_context_guard-1.2.0.tar.gz.

File metadata

  • Download URL: mcp_context_guard-1.2.0.tar.gz
  • Upload date:
  • Size: 12.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.12

File hashes

Hashes for mcp_context_guard-1.2.0.tar.gz
Algorithm Hash digest
SHA256 eb27006e77055d57d103f50942c7eeae6330e7548dd105d4ca029614e766bc6e
MD5 2e7246db7ddca86d60bd0fead7edc343
BLAKE2b-256 02366fb81055ba7d3a3bad0a71fb04a3351efaa6ab3101ecf6ae88f7c6ca93ff

See more details on using hashes here.

File details

Details for the file mcp_context_guard-1.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for mcp_context_guard-1.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8c3655a7f0ddf687a216a9600f73e94431ad251710b72711c5c794ff848ca77b
MD5 bbe0e88956bf9430bd63569f7369c994
BLAKE2b-256 64f5c01835ce2bfb4315aa3d7f850ee01813fda4c230423aa158305221fcd22a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page