# token-compressor

Сжимает промпты на 40–60% через локальную модель и проверяет сохранность смысла эмбеддингами перед отправкой текста в агент.

- MCP-сервер · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 12
- Автор: base76-research-lab
- Лицензия: MIT · policy=link-only · показываем только описание, файл — у автора
- Исходник: https://github.com/base76-research-lab/token-compressor
- Обновлён: 2026-03-08
- HTML: https://affpapa.org/nevibecode/mcp/token-compressor

## Что делает

Сервер сокращает объём пользовательских инструкций в два этапа. Сначала локальная модель убирает словесный мусор и повторы, строго сохраняя логические условия и отрицания вроде `if` или `unless`.

На втором шаге модуль эмбеддингов сопоставляет смысл оригинала и полученного черновика. Если косинусное сходство опускается ниже отметки 0.85, сжатый вариант отбрасывается, а в работу уходит исходный текст. Промпты короче 80 токенов конвейер пропускает без изменений.

Без запущенного демона Ollama с моделями `llama3.2:1b` и `nomic-embed-text` сервер упадёт с ошибкой при первом обращении. Для окружения также понадобятся Python 3.10+ и установленные библиотеки `numpy` и `ollama`.

## Требования
- Нужно: Python и uv (команды через uvx)

## Установка

### Claude Code (родная платформа)

**Командой платформы**
```bash
claude mcp add token-compressor -- uvx token-compressor-mcp
```
uvx запускает команду с именем пакета; если в README она другая — uvx --from token-compressor-mcp <команда>

### Codex

**Командой платформы**
```bash
codex mcp add token-compressor -- uvx token-compressor-mcp
```
uvx запускает команду с именем пакета; если в README она другая — uvx --from token-compressor-mcp <команда>

### Cursor

**Файл настроек**
Файл `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "token-compressor": {
            "command": "uvx",
            "args": [
                "token-compressor-mcp"
            ]
        }
    }
}
```
uvx запускает команду с именем пакета; если в README она другая — uvx --from token-compressor-mcp <команда>

### GitHub Copilot

**Файл настроек**
Файл `.vscode/mcp.json`:
```json
{
    "servers": {
        "token-compressor": {
            "type": "stdio",
            "command": "uvx",
            "args": [
                "token-compressor-mcp"
            ]
        }
    }
}
```
uvx запускает команду с именем пакета; если в README она другая — uvx --from token-compressor-mcp <команда>

### Gemini CLI

**Командой платформы**
```bash
gemini mcp add token-compressor uvx token-compressor-mcp
```
uvx запускает команду с именем пакета; если в README она другая — uvx --from token-compressor-mcp <команда>

## Когда брать
- сократить расход токенов в контексте LLM
- убрать лишние вводные фразы из системных инструкций
- сохранить логические условия при сжатии промпта
- отсечь искажения смысла с помощью проверки эмбеддингами

## Примеры запросов агенту
- Сожми через token-compressor вот эту системную инструкцию перед отправкой в контекст
- Вызови инструмент `compress_prompt` для черновика задачи и покажи разницу в токенах

## Похожие
- [grepai-search-basics](https://affpapa.org/nevibecode/skills/grepai-search-basics.md) — скилл · 905 установок
- [engram](https://affpapa.org/nevibecode/mcp/hbarefoot-engram.md) — MCP-сервер · ★ 9
- [claude-find](https://affpapa.org/nevibecode/mcp/claude-find.md) — MCP-сервер · ★ 12
- [Kybase](https://affpapa.org/nevibecode/mcp/kybase.md) — MCP-сервер · ★ 6
- [lumen](https://affpapa.org/nevibecode/plugins/lumen.md) — плагин · ★ 312
- [cli-compression](https://affpapa.org/nevibecode/skills/cli-compression.md) — скилл · 976 установок

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
