ThoughtDAG MCP
MCP-сервер и CLI, которые находят в сессиях Claude Code и Codex, почему файл стал таким: кто и о чем просил агента, когда и что изменилось
- 742 ★ репозитория
- Последний коммит
- MIT
Расширенный доступ
Почему такой уровень
- Читает журналы всех ваших сессий Claude Code и Codex, а найденный текст возвращает агенту и модели
- Складывает индекс сессий в `~/.thoughtdag`, в нем могут оказаться фрагменты приватных разговоров
- Команда `thoughtdag setup rules` меняет `CLAUDE.md` и `AGENTS.md` проекта
Установка
- Работает в
В терминале, через SkillFoxx CLI
npx skillfoxx add mcp/thoughtdagОпределит агенты на машине, покажет уровень доступа и зафиксирует версию.
Другие способы установки
Доступ и проверки
Как мы проверяемРасширенный доступИнструмент запускает код или ходит в сеть, а внешние данные только читает.
- Читает журналы всех ваших сессий Claude Code и Codex, а найденный текст возвращает агенту и модели
- Складывает индекс сессий в `~/.thoughtdag`, в нем могут оказаться фрагменты приватных разговоров
- Команда `thoughtdag setup rules` меняет `CLAUDE.md` и `AGENTS.md` проекта
Это чужой код. Посмотрите файлы в репозитории перед установкой.
Что делает
ThoughtDAG индексирует сессии агентов, которые уже лежат на вашей машине: Claude Code, Codex, DeepSeek Harness и Pi. Для каждого хода он запоминает, какие файлы агент прочитал, записал или правил. Команда `thoughtdag why src/lib/api.ts` выводит ходы по файлу: когда это было, что изменилось, о чем просили и что ответил агент. Каждая запись ведет к исходному разговору. Факты берутся из вызовов инструментов, не из свободного текста и не от модели. Строки со значком `Δ` отмечают замеченные изменения, а строки со значком `≈` читаются из ответа и остаются предположением. Команда `thoughtdag mcp` запускает те же вопросы как MCP-сервер по stdio в режиме только чтения. Агенту доступны четыре инструмента: `why_check`, `why_file`, `find` для поиска точных слов в вопросах и ответах и `recall_turn` для возврата конкретного хода. Команда `thoughtdag setup mcp` сама регистрирует сервер для Claude Code в `.mcp.json` проекта и для Codex в `~/.codex/config.toml`. Команда `thoughtdag setup rules` добавляет в `CLAUDE.md` и `AGENTS.md` два правила: сверяться с историей перед правкой файла и перед объяснением, почему код устроен так. Индекс лежит в `~/.thoughtdag` с правами 0700 и 0600, файлы сессий только читаются, а `thoughtdag purge` удаляет индекс. Настольный холст с ветвящимися диалогами входит в тот же проект, но для поиска по истории он не нужен.
Для кого. Для разработчиков, которые много работают с Claude Code или Codex и хотят, чтобы агент сам поднимал историю прошлых сессий и объяснял, откуда в файле взялось странное решение.
Подходит, если
- Вы вернулись к файлу через месяц и не помните, зачем в нем этот обход: `npx thoughtdag why src/lib/api.ts`
- Агент собирается переписать модуль, и ему надо сначала проверить, есть ли по файлу история: `thoughtdag why --check <путь>`
- Нужно найти разговор по точной фразе, которую вы или агент писали в прошлых сессиях: `thoughtdag find "фраза"`
- Требуется выгрузить ходы по файлу в JSON для отчета: `thoughtdag why <путь> --json`
- Вы работаете одновременно в Claude Code и Codex и хотите единый поиск по обеим историям
Не подходит, если
- Сессии агента на другой машине или в облаке: индекс строится по локальным файлам журналов, облачная копия их не видит
- Вы хотите, чтобы он правил холст или сессии: четыре инструмента MCP только ищут и возвращают ходы
- Требуется причина изменения с гарантией: строки со значком `≈` остаются догадкой из ответа агента
Пример запроса к агенту
Перед правкой src/lib/api.ts проверь через ThoughtDAG, что мы раньше решали по этому файлу и почемуMCP
- Транспорт
- stdio
- Авторизация
- не нужна
Переменные окружения
THOUGHTDAG_HOME- Каталог индекса вместо `~/.thoughtdag`.
THOUGHTDAG_SESSION_ROOTS- Каталоги с журналами сессий, если их нужно задать явно (пример из Docker-настройки).
Ограничения
- Нужен Node.js 20 или новее и журналы поддерживаемых агентов на компьютере, где работает сервер.
- Запрос по файлу работает по пути, записанному в сессии. В контейнере используйте абсолютные пути из примонтированных журналов.
- Найденный текст возвращается агенту и может попасть в контекст модели. Перед работой с приватной историей проверьте настройки провайдера в клиенте.
- Навык для Codex ставится отдельно: `npx skills add chenxiachan/thoughtdag --skill thoughtdag --agent codex`. Сам он MCP-инструментов не добавляет: он открывает сессию в настольном приложении или запускает запросы CLI.
Как отключить. Уберите блок `thoughtdag` из `.mcp.json` и `~/.codex/config.toml`. Правила в `CLAUDE.md` и `AGENTS.md` снимает `thoughtdag setup rules --remove`. Индекс удаляет `thoughtdag purge`, кэши `thoughtdag purge --cache`.
Частые вопросы
Как узнать, почему в файле появился этот код?
Выполните `npx thoughtdag why <путь к файлу>`. Команда покажет ходы из сессий Claude Code, Codex, DeepSeek Harness и Pi, которые читали или меняли файл: дату, замеченное изменение, вопрос и ответ. Флаг `--include-read` добавляет ходы, где файл только читали.
Как подключить ThoughtDAG к Claude Code?
Выполните `thoughtdag setup mcp` в каталоге проекта: сервер запишется в `.mcp.json`. Либо добавьте вручную блок с командой `npx` и аргументами `-y thoughtdag@0.2.2 mcp`. Агент получит инструменты `why_check`, `why_file`, `find` и `recall_turn`.
Меняет ли ThoughtDAG мои сессии или файлы?
Нет, файлы сессий он только читает, а инструменты MCP работают в режиме чтения. Свой индекс он хранит отдельно и удаляет командой `thoughtdag purge`. Правила в `CLAUDE.md` и `AGENTS.md` добавляются только по команде `thoughtdag setup rules`.
Чем ThoughtDAG отличается от просмотрщиков истории сессий?
Он отвечает на вопрос о конкретном файле, а не показывает список разговоров. Индекс строится по файлам, которые ход читал, записал или правил, поэтому `thoughtdag why` сразу выводит нужные ходы, а агент получает те же ответы через MCP.
Можно ли запустить сервер в Docker?
Да, в репозитории есть Dockerfile для непривилегированного stdio-сервера: `docker build -f cli/Dockerfile -t thoughtdag-mcp cli`. История в образ не копируется. Для работы монтируйте нужные каталоги сессий на чтение в `/data/sessions`.
Обсуждение
Вопросов и отзывов пока нет.
Похожие
MCP-серверыDoodleNote MCP — заметки встреч для агентов
DoodleNote MCP
MCP-сервер только для чтения: Claude Code, Claude Desktop и Codex ищут по локальным встречам, заметкам и транскриптам DoodleNote
Minutes
minutes
Локальный MCP-сервер для памяти о встречах: запись и транскрипция на устройстве в Markdown, поиск истории из Claude Code, Codex, Cursor и других MCP-клиентов
CLI и MCP-сервер, которые считают расход токенов по 41 инструменту и агенту, показывают трату по проекту и модели и помогают срезать лишние токены
Одна настройка Claude Code и Codex через диалог: общие инструкции, правила, плагины, скиллы, статусная строка и память поправок
Локальная база заметок в Markdown с MCP-сервером и скиллами: Claude Code, Cursor, Codex и Gemini CLI читают один и тот же контекст
Cunzhi (寸止)
寸止 (Cunzhi)
MCP-сервер на Rust и Tauri: перед завершением ответа агент показывает окно с вариантами, хранит правила проекта и ищет по коду
Сравнение с похожими
Карточки с тем же главным запросом: чем они отличаются.
| Инструмент | Официальный | Авторизация | Звезды репозитория | Главное отличие |
|---|---|---|---|---|
| ThoughtDAG (эта карточка) | нет | не нужна | 742 | |
| Coding Agent Session Search (cass) | нет | 1 200 | ищет по тексту сессий разных агентов, а ThoughtDAG индексирует ходы по файлам, которые они трогали | |
| Claude Code History Viewer | нет | 2 303 | приложение для просмотра истории Claude Code, без запросов агента по MCP |
Коротко о README
Главная страница проекта описывает ThoughtDAG как холст, где ответы модели становятся узлами, а провода между ними определяют, какой контекст видит следующий вопрос. Таблица запуска перечисляет настольное приложение, плагин для DeepSeek Harness, CLI с MCP и сборку из исходников. Дальше идут исследования авторов о том, куда уходят токены хода агента, правило проводов и сравнение с обычным чатом. Подробности CLI — в `cli/README.md`.