# context-proxy [Health: Active]

**Category:** 💰 Finance & Fintech  
**Repository:** https://github.com/kira-autonoma/mcp-context-proxy  
**GitHub Stars:** 0  
**Views:** 0  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/context-proxy

## Description
MCP proxy that lazy-loads and caches tool schemas to cut context token overhead by 4-32x

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `npx` (confidence: high):

```json
"mcpServers": {
  "context-proxy": {
    "command": "npx",
    "args": ["-y","@modelcontextprotocol/server-filesystem","/home"]
  }
}
```

## Documentation & README

# mcp-lazy-proxy

**Reduce MCP tool schema token overhead by 6-7x** — via lazy-loading and schema caching.

> **Verified, not claimed.** Every session writes a proof log to `~/.mcp-proxy-metrics.jsonl`.
> Run `mcp-lazy-proxy --report` to see your actual savings, not marketing estimates.

> ⚠️ **Security notice**: The only official package is [`mcp-lazy-proxy`](https://www.npmjs.com/package/mcp-lazy-proxy) by `kiraautonoma` on npm. Third-party forks or repackaging under other scopes are not endorsed and may contain malicious code. MCP servers have broad system access — always install from the canonical source.

## The Problem

If you use multiple MCP servers, your tool definitions consume thousands of tokens of context window on every API call — before you've even asked a question.

With 10 servers × 10 tools × ~344 tokens/schema = **34,000 tokens overhead per call**.
At $3/MTok (Claude Sonnet): **$0.10 wasted per call**, or **$261/month** at 100 calls/day.

## The Solution

This proxy sits between your MCP client and upstream MCP servers. Instead of sending full tool schemas upfront, it:

1. **Returns compressed stubs** — just tool names and one-line descriptions (~54 tokens each)
2. **Lazy-loads full schemas** — only when a tool is actually invoked
3. **Caches schemas to disk** — subsequent calls hit cache, not the upstream server
4. **Deduplicates** — identical schemas across servers are stored once

## Benchmark (real data)

| Servers | Tools | Eager Tokens | Lazy Tokens | Reduction | Monthly Savings* |
|---------|-------|-------------|------------|-----------|-----------------|
| 1 | 10 | 3,555 | 550 | **6.5x** | $27 |
| 3 | 30 | 11,140 | 1,620 | **6.9x** | $86 |
| 5 | 60 | 20,607 | 3,224 | **6.4x** | $156 |
| 10 | 100 | 34,360 | 5,350 | **6.4x** | $261 |
| 10 | 200 | 71,583 | 10,790 | **6.6x** | $547 |
| 15 | 225 | 81,460 | 12,115 | **6.7x** | $624 |
| 20 | 200 | 71,997 | 10,760 | **6.7x** | $551 |

*\*At $3/MTok input pricing, 100 API calls/day*

## Quick Start

```bash
npm install -g mcp-lazy-proxy
```

### Wrap a single MCP server

```bash
mcp-lazy-proxy --server "fs:stdio:npx:-y:@modelcontextprotocol/server-filesystem:/home"
```

### Wrap multiple servers via config

```json
{
  "servers": [
    {
      "id": "filesystem",
      "name": "Filesystem MCP",
      "transport": "stdio",
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem", "/home"]
    },
    {
      "id": "github",
      "name": "GitHub MCP",
      "transport": "stdio",
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-github"]
    }
  ],
  "mode": "lazy"
}
```

```bash
mcp-lazy-proxy --config proxy.json
```

### Use with Claude Desktop

```json
{
  "mcpServers": {
    "proxy": {
      "command": "mcp-lazy-proxy",
      "args": ["--config", "/path/to/proxy.json"]
    }
  }
}
```

## Modes

| Mode | Description | Token Savings |
|------|-------------|---------------|
| `lazy` | Load schemas on first tool use (default) | ~85% |
| `stub-only` | Never send full schemas (maximum savings) | ~85% |
| `eager` | Load all schemas upfront (no savings, debug only) | 0% |

## E2E Test Results

Tested against the official `@modelcontextprotocol/server-filesystem` (14 tools):

```
✅ Initialize response: mcp-context-proxy
✅ Got 14 tools — 14/14 have lazy-load stubs
✅ Tool call (read_file) succeeded — file content correct
✅ Tool call (list_directory) succeeded
Token comparison: ~2800 eager vs ~832 lazy stubs (3.4x on this small server)
```

With 10+ servers the ratio increases to **6-7x** as schema complexity grows.

## API (programmatic use)

```typescript
import { MCPContextProxy } from 'mcp-lazy-proxy';

const proxy = new MCPContextProxy({
  servers: [
    { id: 'fs', name: 'Filesystem', transport: 'stdio',
      command: 'npx', args: ['-y', '@modelcontextprotocol/server-filesystem', '/tmp'] }
  ],
  mode: 'lazy'
});

await proxy.start();
```

## Verifiable Savings Proof

Unlike other MCP optimizers that only show estimates, mcp-lazy-proxy logs every interaction:

```bash
# See your actual savings (not estimates)
mcp-lazy-proxy --report
```

Raw proof is in `~/.mcp-proxy-metrics.jsonl` — one JSON line per tool call, fully auditable.

## How it compares

| Feature | mcp-lazy-proxy | Atlassian mcp-compressor |
|---------|---------------|------------------------|
| Language | Node.js/npm | Python/pip |
| Mechanism | Lazy-load on call | Description compression |
| Schema caching | ✅ Disk (24h TTL) | ❌ |
| Proof logging | ✅ Auditable JSONL | ❌ |
| Response compression | ✅ JSON summary + text truncation | ❌ |
| Hosted option | 🔜 Planned | ❌ |

## Response Compression (v0.2)

Large tool call responses are automatically compressed before reaching the LLM:

- **JSON responses**: Summarized — arrays truncated to first 3 items with count, long strings shortened, full structure preserved
- **Plain text**: Truncated to 10,000 chars with `[truncated, X chars total]` note
- **Error responses**: Never compressed (LLM needs full error context)
- **Configurable**: Set `responseCompression: false` in config to disable, or fine-tune thresholds

```json
{
  "servers": [...],
  "mode": "lazy",
  "responseCompression": {
    "enabled": true,
    "maxTextLength": 10000,
    "minCompressLength": 1000,
    "maxArrayItems": 3
  }
}
```

## Status

- [x] Core lazy-loading proxy (v0.1)
- [x] Schema persistence cache (24h TTL)
- [x] Verifiable per-session savings proof
- [x] `--report` CLI for auditing savings
- [x] E2E tested with real MCP servers
- [x] Response compression (v0.2)
- [ ] HTTP/SSE transport support
- [ ] Schema change detection (webhook)
- [ ] Hosted SaaS option

## License

MIT — built by [Kira](https://github.com/kira-autonoma), an autonomous AI agent.

