Context Mode
mksglu/context-modeMCP-сервер для оптимизации контекстного окна: изолирует вывод инструментов, сокращая объём данных на 98%. Поддерживает непрерывность сессий через SQLite и FTS5. Совместим с 12 платформами, включая Claude Code, Cursor, Windsurf.
Установка
claude mcp add context-mode -- npx -y context-modeREADME
Context Mode
Вторая половина проблемы контекста.
Проблема
Каждый вызов MCP-инструмента сбрасывает сырые данные в контекстное окно. Снимок Playwright занимает 56 КБ. Двадцать задач GitHub — 59 КБ. Один лог доступа — 45 КБ. Через 30 минут 40% контекста израсходовано. Когда агент сжимает диалог для освобождения места, он забывает, какие файлы редактировал, какие задачи в работе и что вы последний раз просили.
Context Mode — MCP-сервер, решающий все три стороны этой проблемы:
- Экономия контекста — Sandbox-инструменты не пропускают сырые данные в контекстное окно. 315 КБ превращаются в 5,4 КБ. Сокращение на 98%.
- Непрерывность сессии — Каждое редактирование файла, git-операция, задача, ошибка и решение пользователя фиксируются в SQLite. При сжатии диалога context-mode не сбрасывает эти данные обратно в контекст — он индексирует события в FTS5 и извлекает только релевантное через поиск BM25. Модель продолжает работу ровно с того места, где остановилась. Если не передать
--continue, данные предыдущей сессии удаляются немедленно — новая сессия означает чистый старт. - Думать кодом — LLM должен программировать анализ, а не вычислять его. Вместо того чтобы читать 50 файлов в контекст для подсчёта функций, агент пишет скрипт, который делает подсчёт и выводит только результат через
console.log(). Один скрипт заменяет десять вызовов инструментов и экономит контекст в 100 раз. Это обязательная парадигма для всех 12 платформ: перестаньте использовать LLM как процессор данных — используйте его как генератор кода.
Установка
Платформы сгруппированы по сложности установки. Платформы с поддержкой хуков получают автоматическое применение маршрутизации. Платформам без хуков требуется однократное копирование файла маршрутизации.
Требования: Claude Code v1.0.33+ (claude --version). Если команда /plugin недоступна — обновите Claude Code.
claude plugin install context-mode
Готово. Хуки настраиваются автоматически.
Шаг 1. Добавьте MCP-сервер в настройки вашей платформы:
{
"mcpServers": {
"context-mode": {
"command": "npx",
"args": ["-y", "context-mode"]
}
}
}Шаг 2. Скопируйте файл маршрутизации в корень проекта:
npx context-mode init
Эта команда создаёт файл правил для вашей платформы (.cursorrules, .windsurfrules, AGENTS.md и т.д.), который направляет агента использовать инструменты context-mode.
Как это работает
Экономия контекста
Каждый инструмент-«песочница» принимает вызов инструмента, выполняет его в изолированной среде и возвращает только сводку вместо сырых данных.
| Инструмент | До | После | Сокращение |
|---|---|---|---|
browser_snapshot | 56 КБ | 1,1 КБ | 98% |
github_list_issues | 59 КБ | 1,2 КБ | 98% |
read_file (большой файл) | 45 КБ | 0,9 КБ | 98% |
Непрерывность сессии
При каждом действии агента context-mode записывает событие в SQLite:
- Редактирования файлов (путь, тип изменения, временная метка)
- Git-операции (коммиты, ветки, статус)
- Задачи (создание, обновление, завершение)
- Ошибки (сообщение, трассировка стека, контекст)
- Решения пользователя (явные инструкции и предпочтения)
При сжатии диалога агент вызывает session_context, который выполняет BM25-поиск по всем событиям и возвращает только релевантные — обычно менее 2 КБ вместо полного дампа истории.
Думать кодом
Вместо чтения файлов в контекст агент пишет скрипты:
// Вместо: read_file × 50 файлов → 200 КБ контекста
// Агент пишет:
const files = glob.sync('src/**/*.ts');
const counts = files.map(f => ({
file: f,
functions: (fs.readFileSync(f, 'utf8').match(/function /g) || []).length
}));
console.log(JSON.stringify(counts.filter(f => f.functions > 10)));Скрипт выполняется, в контекст возвращается только результат console.log(). Экономия контекста — 100×.
Инструменты
Инструменты сессии
session_start— инициализирует новую сессию или продолжает существующую через--continuesession_context— извлекает релевантный контекст через BM25-поискsession_event— записывает событие в историю сессии
Sandbox-инструменты
sandbox_browser— выполняет действия браузера, возвращает сводкуsandbox_github— выполняет GitHub API-вызовы, возвращает сводкуsandbox_file— читает файлы, возвращает сводкуsandbox_shell— выполняет команды оболочки, возвращает сводкуsandbox_script— выполняет скрипты анализа, возвращает только вывод
Инструменты задач
task_create— создаёт отслеживаемую задачуtask_update— обновляет статус задачиtask_list— выводит активные задачи
Конфигурация
Переменные окружения:
CONTEXT_MODE_DB— путь к файлу базы данных SQLite (по умолчанию:~/.context-mode/sessions.db)CONTEXT_MODE_MAX_EVENTS— максимальное количество событий на сессию (по умолчанию:10000)CONTEXT_MODE_SEARCH_LIMIT— максимальное количество результатов поиска (по умолчанию:20)