Skip to main content
Glama
kira-autonoma

mcp-lazy-proxy

mcp-lazy-proxy

Сократите накладные расходы на токены схем MCP в 6–7 раз — с помощью ленивой загрузки и кэширования схем.

Проверено, а не заявлено. Каждая сессия записывает журнал доказательств в ~/.mcp-proxy-metrics.jsonl. Выполните mcp-lazy-proxy --report, чтобы увидеть реальную экономию, а не маркетинговые оценки.

⚠️ Уведомление о безопасности: Единственный официальный пакет — mcp-lazy-proxy от kiraautonoma на npm. Сторонние форки или переупаковки под другими именами не поддерживаются и могут содержать вредоносный код. MCP-серверы имеют широкий доступ к системе — всегда устанавливайте из канонического источника.

Проблема

Если вы используете несколько MCP-серверов, ваши определения инструментов потребляют тысячи токенов контекстного окна при каждом вызове API — ещё до того, как вы задали вопрос.

При 10 серверах × 10 инструментов × ~344 токена/схема = 34 000 токенов накладных расходов за вызов. При $3/MTокен (Claude Sonnet): $0,10 потерь за вызов, или $261/месяц при 100 вызовах в день.

Related MCP server: MCP Nexus

Решение

Этот прокси располагается между вашим MCP-клиентом и вышестоящими MCP-серверами. Вместо отправки полных схем инструментов заранее, он:

  1. Возвращает сжатые заглушки — только имена инструментов и однострочные описания (~54 токена каждое)

  2. Лениво загружает полные схемы — только когда инструмент действительно вызывается

  3. Кэширует схемы на диск — последующие вызовы обращаются к кэшу, а не к вышестоящему серверу

  4. Дедуплицирует — идентичные схемы на разных серверах хранятся один раз

Сравнительный анализ (реальные данные)

Серверы

Инструменты

Токены без оптимизации

Токены с оптимизацией

Сокращение

Экономия в месяц*

1

10

3 555

550

6,5×

$27

3

30

11 140

1 620

6,9×

$86

5

60

20 607

3 224

6,4×

$156

10

100

34 360

5 350

6,4×

$261

10

200

71 583

10 790

6,6×

$547

15

225

81 460

12 115

6,7×

$624

20

200

71 997

10 760

6,7×

$551

*При цене $3/MTокен на входе, 100 вызовов API в день

Быстрый старт

npm install -g mcp-lazy-proxy

Обёртка одного MCP-сервера

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

Обёртка нескольких серверов через конфигурацию

{
  "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"
}
mcp-lazy-proxy --config proxy.json

Использование с Claude Desktop

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

Режимы

Режим

Описание

Экономия токенов

lazy

Загрузка схем при первом использовании инструмента (по умолчанию)

~85%

stub-only

Никогда не отправлять полные схемы (максимальная экономия)

~85%

eager

Загрузка всех схем заранее (без экономии, только для отладки)

0%

Результаты E2E-тестирования

Протестировано с официальным @modelcontextprotocol/server-filesystem (14 инструментов):

✅ 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)

При 10+ серверах коэффициент увеличивается до 6–7× по мере роста сложности схем.

API (программное использование)

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();

Подтверждаемая экономия

В отличие от других MCP-оптимизаторов, которые лишь показывают оценки, mcp-lazy-proxy записывает каждое взаимодействие:

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

Фактические данные находятся в ~/.mcp-proxy-metrics.jsonl — одна JSON-строка на каждый вызов инструмента, полностью проверяемо.

Сравнение

Возможность

mcp-lazy-proxy

Atlassian mcp-compressor

Язык

Node.js/npm

Python/pip

Механизм

Ленивая загрузка при вызове

Сжатие описаний

Кэширование схем

✅ Диск (TTL 24 ч)

❌

Журнал доказательств

✅ Проверяемый JSONL

❌

Сжатие ответов

✅ Сводка JSON + усечение текста

❌

Облачный вариант

🔜 Планируется

❌

Сжатие ответов (v0.2)

Крупные ответы на вызовы инструментов автоматически сжимаются перед отправкой в LLM:

  • JSON-ответы: Сводка — массивы усекаются до первых 3 элементов с указанием количества, длинные строки сокращаются, полная структура сохраняется

  • Обычный текст: Усекается до 10 000 символов с пометкой [усечено, всего X символов]

  • Ответы с ошибками: Никогда не сжимаются (LLM нужен полный контекст ошибки)

  • Настраиваемость: Установите responseCompression: false в конфигурации, чтобы отключить, или настройте пороговые значения

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

Статус

  • Базовая ленивая загрузка прокси (v0.1)

  • Постоянный кэш схем (TTL 24 ч)

  • Проверяемое доказательство экономии для каждой сессии

  • CLI-команда --report для аудита экономии

  • E2E-тестирование с реальными MCP-серверами

  • Сжатие ответов (v0.2)

  • Поддержка транспорта HTTP/SSE

  • Обнаружение изменений схем (webhook)

  • Облачный вариант SaaS

Лицензия

MIT — создано Kira, автономным ИИ-агентом.

Related MCP Connectors

Related MCP Servers