Context Portal MCP

Context Portal (ConPort) хранит решения, задачи и паттерны проекта в SQLite с семантическим поиском и отдает их агенту через MCP по stdio

  • 768 ★ репозитория
  • Последний коммит
  • Apache-2.0
MCP-сервер

Расширенный доступ

Почему такой уровень

  • Пишет и удаляет записи в локальной базе SQLite и векторном хранилище рабочего каталога, есть инструменты удаления решений, задач и данных
  • Инструменты экспорта и импорта читают и пишут Markdown-файлы по пути, который передает агент
  • Каталог для базы выбирает `workspace_id` из вызова агента или автоопределение по папкам вверх от текущей
Все причины и проверки

greatscottymac/context-portal

Установка

В терминале, через SkillFoxx CLI

npx skillfoxx add mcp/context-portal

Определит агенты на машине, покажет уровень доступа и зафиксирует версию.

Другие способы установки

Доступ и проверки

Как мы проверяем

Расширенный доступИнструмент запускает код или ходит в сеть, а внешние данные только читает.

  • Пишет и удаляет записи в локальной базе SQLite и векторном хранилище рабочего каталога, есть инструменты удаления решений, задач и данных
  • Инструменты экспорта и импорта читают и пишут Markdown-файлы по пути, который передает агент
  • Каталог для базы выбирает `workspace_id` из вызова агента или автоопределение по папкам вверх от текущей

Это чужой код. Посмотрите файлы в репозитории перед установкой.

Что делает

Context Portal, или ConPort, — MCP-сервер на Python, который ведет для каждого рабочего каталога банк памяти проекта. База SQLite создается автоматически в папке `context_portal/`, а рядом лежит векторное хранилище на ChromaDB. Агент записывает в нее решения с обоснованием, статусы задач, архитектурные паттерны и произвольные данные вроде глоссария, а потом достает их полнотекстовым и семантическим поиском. Векторы строит локальная модель `all-MiniLM-L6-v2` из пакета `sentence-transformers`. Записи связываются между собой инструментом `link_conport_items`, из связей складывается граф знаний проекта. Контекст продукта и текущий рабочий контекст хранятся с историей версий, `get_item_history` возвращает прошлые состояния. Инструмент `get_recent_activity_summary` собирает недавние изменения, `batch_log_items` записывает пачку решений или задач за один вызов, а `export_conport_to_markdown` и `import_markdown_to_conport` переносят данные в Markdown-файлы и обратно. Схема базы обновляется миграциями Alembic. Каждый вызов получает `workspace_id`, поэтому один сервер обслуживает несколько проектов. Если путь не задан при запуске, ConPort ищет корень проекта сам по `.git`, `package.json`, `pyproject.toml` и другим признакам. Репозиторий содержит инструкции для агентов под Roo Code, Cline, Windsurf Cascade и универсальный вариант: их вставляют в системный промпт, чтобы агент сам загружал и обновлял память.

Для кого. Для разработчиков, которые работают с Roo Code, Cline, Windsurf или Cursor и хотят, чтобы агент хранил решения и ход работы в базе проекта.

Подходит, если

  • Агент каждый раз теряет принятые архитектурные решения, и их нужно хранить с обоснованием и тегами, чтобы находить через `search_decisions_fts`
  • Файловый банк памяти в Markdown разросся, и поиск по нему стал медленным и неточным
  • Одним сервером нужно обслуживать несколько проектов, различая их по `workspace_id`
  • Решения и задачи нужно связывать между собой и смотреть, как менялся контекст продукта, через `get_item_history`
  • Нужен разовый перенос банка памяти в Markdown для ревью или обратно через `import_markdown_to_conport`

Не подходит, если

  • На машине нет Python 3.10 или новее, а `uv` поставить нельзя: пакет требует `requires-python >=3.10`
  • Нужна память обо всех проектах сразу и между машинами: база лежит в папке каждого рабочего каталога и не синхронизируется сама
  • Агент не умеет подключать MCP по stdio или у вас нет возможности вставить инструкции в системный промпт: без них агент сам память не ведет
  • Нужны заметки в виде обычных Markdown-файлов с вики-ссылками: такую память ведет Basic Memory

Пример запроса к агенту

Запиши в ConPort решение: для очереди задач берем Redis, потому что он уже есть в проекте, и свяжи его с задачей про фоновые отправки писем

MCP

Транспорт
stdio
Авторизация
не нужна

Переменные окружения

CONPORT_WORKSPACE
Необязательный путь к рабочему каталогу для автоопределения

Ограничения

  • Лицензия Apache-2.0. В манифесте версия 0.3.13 и классификатор «Beta».
  • В тексте инструкции сказано «Python 3.8 или выше», но манифест требует 3.10 и новее, ориентируйтесь на манифест.
  • Многие редакторы не раскрывают `${workspaceFolder}` при запуске сервера. Автор советует указывать абсолютный путь в `--workspace_id` или не задавать его при запуске и передавать в каждом вызове. Если IDE подставит буквальную строку `${workspaceFolder}`, ConPort игнорирует ее и ищет корень сам.
  • Без инструкций для агента память не наполняется: сервер только отвечает на вызовы. Агентам Windsurf Cascade в новой сессии нужно прямо сказать «Initialize according to custom instructions».
  • При обновлении между версиями со сменой схемы базы автор советует прочитать `v0.2.4_UPDATE_GUIDE.md`: иногда данные нужно переносить через экспорт и импорт вручную.

Как отключить. Удалите запись `conport` из настроек MCP в клиенте (в примере из инструкции это `mcp_settings.json`). Данные останутся в папке `context_portal/` рабочего каталога, ее можно удалить вручную. Перед удалением при желании выгрузите память в Markdown инструментом `export_conport_to_markdown`.

Частые вопросы

Где ConPort хранит данные?

В базе SQLite `context_portal/context.db` внутри рабочего каталога: она создается сама при первом обращении. Векторный индекс для семантического поиска лежит в ChromaDB рядом, а миграциями Alembic схема приводится к нужной версии.

Чем ConPort отличается от файлового банка памяти?

По описанию автора, он заменяет старые системы на текстовых файлах базой, в которой записи можно искать, связывать и версионировать. Вместо чтения целых файлов агент вызывает точечные инструменты вроде `get_decisions` или `search_custom_data_value_fts`.

Как задать рабочий каталог, если редактор не раскрывает переменную?

Передайте абсолютный путь в `--workspace_id`, или опустите флаг и указывайте `workspace_id` в каждом вызове. Включено еще автоопределение: сервер поднимается по каталогам вверх и ищет `.git`, `package.json`, `pyproject.toml`, `Cargo.toml`, `go.mod`, `pom.xml` или папку `context_portal/`. Выбор показывает инструмент `get_workspace_detection_info`.

Какие инструкции для агента входят в репозиторий?

Каталог `conport-custom-instructions` содержит стратегии для Roo Code, Cline, Windsurf Cascade и универсальную. Есть и набор `mem4sprint` для планирования спринтов с плоскими категориями и правилами полнотекстового поиска. Содержимое файла копируют целиком в системный промпт.

Можно ли выгрузить память для чтения человеком?

Да. `export_conport_to_markdown` записывает данные в папку (по умолчанию `./conport_export/`), а `import_markdown_to_conport` читает их обратно. Автор предлагает эту пару и как ручной способ переноса при смене схемы базы.

Что значит режим stdio и есть ли другие?

Основной режим развертывания — stdio: редактор сам запускает процесс `conport-mcp` и говорит с ним через стандартный ввод и вывод. Автор считает запуск в редакторе по stdio самой показательной проверкой сервера. Для разработки репозиторий предлагает запуск `uv run` из локального клона.

Обсуждение

Вопросов и отзывов пока нет.

MCP-серверы

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

MCP-серверРасширенный доступ83Звезды репозитория

Плагин и сервер долгой памяти для Claude Code и Codex: решения и передача работы переходят между сессиями и агентами

ПлагинШирокий доступ1,6 тыс.Звезды репозитория

MCP-сервер, который держит крупный вывод инструментов вне контекстного окна агента и хранит память сессии в SQLite

MCP-серверРасширенный доступ34 тыс.Звезды репозитория

Cortex хранит решения и контекст проекта между сессиями Claude Code и Codex в локальной базе и показывает, что агент вспомнил

MCP-серверРасширенный доступ76Звезды репозитория

Локальная память для агентов: решения из чатов в браузере попадают в Claude Code, Cursor и Windsurf через MCP

MCP-серверРасширенный доступ248Звезды репозитория

Сравнение с похожими

Карточки с тем же главным запросом: чем они отличаются.

ИнструментОфициальныйАвторизацияЗвезды репозиторияГлавное отличие
Context Portal (эта карточка)нетне нужна768
Memory Bank MCP Serverнетне нужна926файлы памяти лежат в отдельном корневом каталоге вне репозитория, без базы и семантического поиска
MegaMemoryнетне нужна736граф понятий, который агент сам описывает и записывает, индексатором служит сама модель
Basic Memoryнетне нужна4 566знания лежат в обычных Markdown-файлах с вики-ссылками, которые правит и человек

Коротко о README

Главная страница объясняет, что такое ConPort, и перечисляет возможности: SQLite на рабочий каталог, векторное хранилище, граф знаний и миграции Alembic. Дальше идут требования, настройка через `uvx` и вариант для разработчиков из клона, раздел об инструкциях для агентов, автоопределение рабочего каталога и справочник из примерно тридцати инструментов с аргументами. В репозитории лежат углубленный разбор `conport_mcp_deep_dive.md`, руководство по обновлению, Dockerfile, правила участия и тесты обработчиков.

Бейдж для README

Сообщить о проблеме