Skip to main content
Glama

ctx-manager

Провайдер-агностический CLI и MCP-сервер для контекстной инженерии, предназначенный для мультиязычной агентной разработки.

ctx-manager располагается между вашей папкой Docs/ (PRD, архитектурные документы, планы фаз, спецификации API) и AI-агентами кодирования (Claude Code, Cursor, Windsurf), сокращая расход токенов двумя способами:

  • Детерминированная нарезка документов на основе заголовков — извлекайте именно тот раздел, который нужен из файла-чертежа, а не весь файл целиком. Структурный подход (регулярные выражения по Markdown-заголовкам), а не RAG/эмбеддинги.

  • Дополняемый, проверяемый через git файл Memory_Ledger.md — точное состояние сессии, чтобы агенты не выводили заново и не галлюцинировали то, что уже было создано. Каждая запись проверяется по реальному выводу git status перед тем, как быть помеченной как проверенная.

Работает одинаково в Rust, Go, TypeScript, Python или любом другом стеке — ctx-manager никогда не касается исходного кода вашего приложения, только Docs/.

Установка

uvx --from ctx-manager ctx --help

Никакой настройки virtualenv, глобальная установка не требуется.

Related MCP server: Claude Session MCP

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

Нарезка файла-чертежа по заголовку:

ctx build --slice "PRD.md > 5. Feature List"

Выводит содержимое выбранного раздела в stdout — передайте его в CLAUDE.md или туда, откуда ваш агент читает контекст.

Автоматическая нарезка следующей фазы на основе истории журнала:

ctx build --auto-phase

Читает Memory_Ledger.md для последней завершённой фазы и автоматически вырезает раздел следующей фазы из Phase_file.md — без ручного указания --slice. Если в журнале ещё нет записей о завершённых фазах, возвращается к Фазе 0 с предупреждением.

Добавление проверенной записи в журнал сессии:

ctx append-ledger --summary "Implemented the login endpoint" --category completed

Проверяет git status вашего проекта перед записью и добавляет префикс [Verified: N files changed], [Reasoning/State Only] или [Unverified: not a git repo] в зависимости от того, что найдено — так заявленное агентом «готово» сверяется с тем, что реально произошло на диске.

Запуск как MCP stdio-сервер (для Cursor, Windsurf, Claude Desktop):

ctx mcp

Предоставляет query_slice, append_ledger_entry и get_current_phase как MCP-инструменты, вызывая тот же самый код, что и CLI-команды выше.

Конфигурация

ctx-manager ищет вверх от текущей директории файл .context/config.toml. Если он не найден, используются разумные значения по умолчанию (папка Docs/, Memory_Ledger.md и т.д.) с однократным предупреждением.

[project]
docs_dir = "Docs/"
ledger_file = "Memory_Ledger.md"
phase_file = "Phase_file.md"

[blueprint_files]
files = ["PRD.md", "Architecture.md", "API_Spec.md"]

[git]
scope = "docs_dir"  # or "repo_root"

Полностью переопределите поиск с помощью --project-root.

Интеграция с Claude Code

Примеры хуков SessionStart/SessionEnd (автообновление CLAUDE.md перед сессией через --auto-phase, автоматическое логирование в журнал после) находятся в examples/claude_code_hooks/.

Принципы проектирования

  1. Docs/ на входе, Docs/ на выходе — никогда не касается исходного кода приложения, на любом языке.

  2. Дешёвое перед тяжёлым — stdlib re перед эмбеддингами, subprocess git перед библиотекой git, локальный stdio перед любым сетевым сервисом.

  3. Журнал только на добавление — ни один путь кода не перезаписывает Memory_Ledger.md целиком. Никогда.

  4. Громкий сбой, а не тихий — отсутствующий заголовок или файл возвращает явную ошибку, а не пустое содержимое, на котором агент мог бы галлюцинировать.

Полное описание архитектуры см. в Docs/Architecture.md и Docs/PRD.md (этот проект использует сам себя — его собственная папка Docs/ нарезается и отслеживается ctx-manager во время его собственной разработки).

Ограничения

ctx-manager не может помешать агенту обойти его. Ничто здесь не мешает агенту с прямым доступом к файловой системе читать Docs/PRD.md напрямую, вместо того чтобы идти через ctx build. Это структурное ограничение, а не отсутствующая функция — CLI на основе подпроцессов не имеет доступа к вызовам чтения файлов другого процесса.

Если вам нужно реальное принуждение (а не просто соглашение), оно должно исходить от самого агентного рантайма:

  • Claude Code: используйте правила permissions.deny в .claude/settings.json, чтобы заблокировать инструменту Read прямой доступ к Docs/*.md, вынуждая полагаться на CLAUDE.md, который генерирует ctx build --auto-phase. См. документацию Claude Code по правам доступа — это не то, что ctx-manager настраивает за вас.

  • MCP-клиенты (Cursor, Windsurf и т.д.): любые средства контроля доступа к файловой системе, которые предоставляет этот клиент, если они есть — вне контроля ctx-manager.

Без одного из этих механизмов ctx-manager — это соглашение, которому агент должен следовать, подкреплённое проверенной историей сессий (журналом), а не песочница.

Разработка

git clone <this-repo>
cd ctx-manager
uv sync
uv run pytest

Лицензия

MIT — см. LICENSE.

Maintenance

ActivityMaintained
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/saturnarians/ctx-manager'

If you have feedback or need assistance with the MCP directory API, please join our Discord server