shayaShav/flatten-mcp

shayaShav/flatten-mcp

от shayashav
flatten-mcp для Claude Code уменьшает токенную стоимость сессии, вынося громоздкие результаты инструментов в sidecar-файл и заменяя их компактными ссылками. Полезен разработчикам, которые хотят сох...

flatten-mcp logo

flatten-mcp

Cut the tokens every Claude Code session carries — real money on the API, more headroom before the limit on a subscription — without compacting your history into a lossy summary or losing a single line.

npm version npm downloads License: MIT Model Context Protocol Built for Claude Code Smithery calls

340,071 → 132,800 tokens — a 61% lighter session, every line of history intact.

Demo: a 340,071-token Claude Code session is flattened, /resume'd, and comes back 61% lighter at 132,800 tokens — history verbatim

Most of a long session's tokens are bulk the model already distilled into prose — the 2 MB log it boiled down to one line, the screenshot it described, the five files it summarized. That raw source has done its job. flatten-mcp sets it aside in a local backup and leaves a small [FLATTENED …] marker, so every resumed turn carries far fewer tokens. Your prompts and the exact timeline stay verbatim — nothing is rewritten, nothing is summarized away, and any block is one call (or one unflatten) from coming back.

Who it's for: heavy Claude Code users — large file reads, long command logs, or screenshot-heavy (Playwright) sessions — who want to pay for fewer tokens without losing their history.


Quick start

Инструменты были проиндексированы:
flatten_session

Сжимает сессию Claude Code: переносит громоздкие результаты работы инструментов (большие текстовые выводы и блоки base64-изображений/скриншотов) из JSONL-файла сессии в резервную копию, оставляя компактный маркер [FLATTENED ...]. Разговор выглядит идентично: все запросы и события остаются дословно, но при возобновлении использует гораздо меньше контекстных токенов. Устойчив к сбоям (атомарная перезапись + единственная резервная копия, содержащая полную сессию) и обратим через unflatten_session. Сообщает diskBytesSaved и contextTokensSaved из contextTokensTotal (оценка на локальной стороне, или точное значение, когда установлены FLATTEN_COUNT_EXACT=1 и ANTHROPIC_API_KEY). Без session_id сжимает текущую активную сессию; также принимает UUID, "last", "last N" или "current". После сжатия выполните /resume, чтобы загрузить облегчённую копию.

Сплющить сессию Claude Code

Параметры
  • agentenum

    Which agent's session store to target: "claude" (default) or "codex".

  • breakdownboolean | enum

    Include the per-tool/resource breakdown of what was flattened. false, true, or "summary" = the aggregated adaptive rows plus byKind/bySlot groupings; "deep" ALSO lists every individual block under its row (tool + arg summary + bytes + per-block token estimate), groups sorted by context tokens then blocks by bytes. Dry runs always include at least the summary; set true/"summary"/"deep" to also get it on a real flatten.

  • claude_dirstring

    Absolute path (or ~/...) to the Claude config dir whose sessions to target — the dir holding projects/. Default: $CLAUDE_CONFIG_DIR if set, else ~/.claude. Applies to agent "claude" only.

  • codex_homestring

    Absolute path (or ~/...) to the Codex home whose sessions to target — the dir holding sessions/. Default: $CODEX_HOME if set, else ~/.codex. Applies to agent "codex" only.

  • dry_runboolean

    Report what would be flattened without modifying files

  • include_tool_use_resultboolean

    Also flatten the top-level toolUseResult mirror Claude Code keeps per result line (roughly doubles disk savings; lossless & restorable). Set false to only touch message.content.

  • min_sizenumber

    Only flatten tool results larger than N bytes

  • project_dirstring

    Absolute path to project. Default: the project the CLI runs in (cwd). Under codex, scopes "last"/"last N"/keyword to rollouts whose cwd equals this dir.

  • session_idstring

    Session UUID, "last", "last N", or "current". Omit to flatten the current live session (claude); under codex "current" falls back to "last".

  • sessionIdstring

    camelCase alias for session_id (accepted so a camelCase call does not fail validation).

retrieve_flattenedтолько чтениеидемпотентный

Извлекает исходный результат работы инструмента из сплющенной сессии, читая напрямую из её резервной копии. Когда в разговоре встречается [FLATTENED id=XXX tool=Read ... | text NNNB/NNL | session=YYY | ...], вызывайте этот инструмент, передавая значение после "id=" как tool_use_id, а значение после "session=" как session_id. Возвращает исходный текстовый вывод, а для сплющенных скриншотов — само изображение, чтобы вы могли просмотреть его снова.

Получить уплощённое содержимое

Параметры
  • agentenum

    Which agent's session store the flattened session lives in: "claude" (default) or "codex".

  • claude_dirstring

    Absolute path (or ~/...) to the Claude config dir whose sessions to target — the dir holding projects/, e.g. ~/.claude-2 for a second profile. Default: $CLAUDE_CONFIG_DIR if set, else ~/.claude. Applies to agent "claude" only.

  • codex_homestring

    Absolute path (or ~/...) to the Codex home whose sessions to target — the dir holding sessions/. Default: $CODEX_HOME if set, else ~/.codex. Applies to agent "codex" only.

  • project_dirstring

    Absolute path to project. Default: the project the CLI runs in (cwd). Ignored under codex (rollouts are located by UUID globally).

  • session_idstringобязательный

    Value after "session=" in the [FLATTENED ... session=YYY ...] marker

  • tool_use_idstringобязательный

    Value after "id=" in the [FLATTENED id=XXX ...] marker

unflatten_session

Отменить сведение: повторно встроить каждый сведенный результат инструмента (текст и изображения) обратно в JSONL сессии из резервной копии, восстановив сессию в ее состояние до сведения, затем удалить резервную копию, чтобы ничего не осталось.

Развернуть (восстановить) сессию

Параметры
  • agentenum

    Which agent's session store to target: "claude" (default) or "codex".

  • claude_dirstring

    Absolute path (or ~/...) to the Claude config dir whose sessions to target — the dir holding projects/, e.g. ~/.claude-2 for a second profile. Default: $CLAUDE_CONFIG_DIR if set, else ~/.claude. Applies to agent "claude" only.

  • codex_homestring

    Absolute path (or ~/...) to the Codex home whose sessions to target — the dir holding sessions/. Default: $CODEX_HOME if set, else ~/.codex. Applies to agent "codex" only.

  • project_dirstring

    Absolute path to project. Default: the project the CLI runs in (cwd). Under codex, scopes "last"/keyword to rollouts whose cwd equals this dir.

  • session_idstringобязательный

    Session UUID, "last", or "current" (the live session; under codex "current" falls back to "last")

Похожие MCP-сервера

Wolfe-Jam/claude-faf-mcp

Wolfe-Jam/claude-faf-mcp

MCP-сервер для Claude, который сохраняет контекст проекта и память между сессиями. Включает 13 инструментов (36 расширенных) для создания, оценки и синхронизации .faf-файлов. Разработчики получают ...

TypeScript23
dl4rce/flaiwheel

dl4rce/flaiwheel

MCP сервер Flaiwheel добавляет AI-агентам долговременную память и контроль знаний: автоматически фиксирует исправления, архитектурные решения и git-коммиты, чтобы каждая ошибка уменьшала стоимость ...

Python6
whdrnr2583-cmd/token-meter

whdrnr2583-cmd/token-meter

MCP сервер для локального отслеживания токенов и стоимости Claude Code, Codex и Cursor. Анализирует JSONL файлы и показывает разбивку по проектам, моделям и MCP инструментам — без отправки данных в облако и без аккаунта.

TypeScript1
keepgoing-dev/mcp-server

keepgoing-dev/mcp-server

MCP сервер KeepGoing.dev автоматически сохраняет контрольные точки разработки — что делали, что дальше, важные файлы — при коммитах и неактивности. При новом сеансе AI-ассистент считывает последний...

TypeScript3
FacundoLucci/plsreadme

FacundoLucci/plsreadme

MCP сервер plsreadme превращает markdown в красивые веб-страницы и создаёт ссылки для шаринга. Помогает разработчикам и редакторам публиковать README, PRD и заметки. Работает с AI-редакторами (Claude, Cursor), поддерживает комментирование и версионирование.

TypeScript4
gingugu/gingugu

gingugu/gingugu

Локальный MCP-сервер Gingugu дает AI-ассистентам постоянную память на SQLite: контекст между сессиями, проектами и репозиториями. Гибридный поиск, хронология, связи, уровни доверия. Один файл, без ...

Python4
© Каталог MCP, 2026. Все права защищены.
Проект не аффилирован с Anthropic и любыми упомянутыми продуктами.
Все названия и торговые марки принадлежат их владельцам.
Контакты для связи: hi@mcp-katalog.ru

Лука Никитин