mcp-compressor
Прокси сжимает описания инструментов большого MCP-сервера, и модель тратит контекст только на нужные вызовы.
- 142 ★ репозитория
- Последний коммит
- Apache-2.0
Расширенный доступ
Почему такой уровень
- Пропускает через себя все вызовы подключенных MCP-серверов, включая токены OAuth и ответы с данными.
Установка
- Работает в
Ручная установка
pip install mcp-compressorСтавит CLI и Python SDK. Запуск прокси: `mcp-compressor -c medium -- python server.py`.
Доступ и проверки
Как мы проверяемРасширенный доступИнструмент запускает код или ходит в сеть, а внешние данные только читает.
- Пропускает через себя все вызовы подключенных MCP-серверов, включая токены OAuth и ответы с данными.
Это чужой код. Посмотрите файлы в репозитории перед установкой.
Что делает
mcp-compressor встает между MCP-клиентом и серверами с десятками инструментов. Вместо полного списка схем клиент видит два инструмента-обертки: `get_tool_schema` и `invoke_tool`. На уровне сжатия `max` добавляется `list_tools`. Модель выбирает нужный инструмент по короткому имени, запрашивает его полную схему и затем вызывает его. Степень сжатия задают уровни `low`, `medium`, `high` и `max`: от полных описаний до одних имен. Запуск прокси выглядит как `mcp-compressor -c medium -- python server.py`. Есть и режим для кода: прокси генерирует команды оболочки и функции Python или TypeScript, а флаг `--shrinkfit` ограничивает размер ответов.
Для кого. Тем, кто подключает к агенту крупные MCP-серверы вроде Atlassian и видит, как описания инструментов съедают контекст еще до первой задачи.
Подходит, если
- Один сервер отдает сотню инструментов, и их схемы занимают тысячи токенов в каждом запросе.
- К агенту подключено несколько MCP-серверов, и контекст уже переполнен.
- Ответы инструментов слишком длинные, и их нужно обрезать с возможностью вернуть оригинал.
- Приложение на Python, TypeScript или Rust должно встроить сжатие через `CompressorClient`.
Не подходит, если
- У сервера пять инструментов: выигрыш от сжатия не покроет лишний шаг запроса схемы.
- Сервер принимает только современную версию протокола без `initialize`.
- Модели важно видеть все описания инструментов сразу, чтобы выбирать между близкими.
Пример запроса к агенту
Подключи Atlassian MCP через mcp-compressor на уровне `medium` и покажи, сколько токенов занимает список инструментов.MCP
- Транспорт
- stdio, http
- Авторизация
- не нужна
Ограничения
Каждый вызов становится двухшаговым: сначала схема, потом вызов, так что на очень простых задачах сжатие не окупается. Серверы за прокси должны поддерживать устаревший `initialize`: серверы только с современной версией протокола не подходят. Каталоги инструментов статичны на время соединения, подписки на изменения не поддерживаются. Для серверов с OAuth прокси открывает браузер для входа. Генерируемые клиенты ходят на локальный прокси по токену сессии.
Как отключить. Верните в конфигурацию MCP исходную команду бэкенд-сервера вместо `mcp-compressor`. Пакет удаляют командой `pip uninstall mcp-compressor`.
Частые вопросы
Как поставить mcp-compressor?
Выполните `pip install mcp-compressor`. Бинарный файл на Rust ставится командой `cargo install mcp-compressor`, пакет для TypeScript — `npm install @atlassian/mcp-compressor`.
Какой уровень сжатия выбрать?
Начните с `medium`: он оставляет имя и первое предложение описания. `high` убирает описания, `max` оставляет одни имена и добавляет `list_tools`.
Теряет ли модель схемы инструментов?
Нет. При вызове `get_tool_schema` модель получает полное описание и схему выбранного инструмента независимо от уровня сжатия.
Что делает флаг --shrinkfit?
Он обрезает ответы инструментов до 20 000 символов или до заданного числа, `--shrinkfit=10000`. Полный ответ можно запросить обратно с `full=true`.
Можно ли встроить сжатие в приложение?
Да. Для Python, TypeScript и Rust есть SDK с `CompressorClient`: он запускает локальный прокси и вызывает инструменты из кода.
Обсуждение
Вопросов и отзывов пока нет.
Похожие
MCP-серверыCLI для любого MCP-сервера: список и вызов инструментов, ресурсов и промптов, mock и proxy режимы, guard-фильтр и управление конфигами агентов
Мост для MCP: один инструмент run_python запускает код в контейнере и вызывает ваши MCP-серверы
Прокси от Open WebUI, который публикует любой MCP-сервер как HTTP API со схемой OpenAPI
Универсальный CLI-клиент MCP от Apify: постоянные сессии, OAuth, JSON-вывод для скриптов и доступ агента к любому MCP-серверу через оболочку
CLI на Python без зависимостей: один каталог MCP-серверов и скиллов для всех агентов, в контекст попадает краткий индекс
toolism измеряет, сколько токенов уходит на описания инструментов и MCP, и сокращает их без поломки допустимых вызовов.
Сравнение с похожими
Карточки с тем же главным запросом: чем они отличаются.
| Инструмент | Официальный | Авторизация | Звезды репозитория | Главное отличие |
|---|---|---|---|---|
| mcp-compressor (эта карточка) | нет | не нужна | 142 | |
| mcp-proxy | нет | не нужна | 2 823 | переключает транспорты MCP; mcp-compressor оставляет транспорт и сокращает список инструментов |
| Token Optimizer MCP | нет | не нужна | 578 | сжимает и кеширует контекст через хуки Claude; mcp-compressor работает только с описаниями инструментов MCP |
Коротко о README
Проект выпускает Atlassian Labs, в документации есть пример с Atlassian MCP и входом через OAuth. Кроме прокси, он поставляется как SDK для Python, TypeScript и Rust с одинаковым `CompressorClient`.