Skip to main content
Glama
skylarng89

CogMemory MCP Server

by skylarng89

CogMemory MCP Server

Единый сервер Model Context Protocol, предоставляющий четыре подсистемы контекста для ИИ-агентов программирования:

  1. Memory — решения, соглашения, ошибки, активный контекст, журнал изменений, план, задачи, сессии

  2. Knowledge Graph — сущности, связи, наблюдения

  3. Specs — подробные документы (PRD/SRS), опционально связанные с сущностью из Knowledge Graph

  4. Code Graph — статический структурный граф (символы/рёбра) + именованные трассы выполнения + сгенерированные ИИ аннотации

Хранилище: SQLite посредством better-sqlite3. Один файл .db на область.


Быстрый старт

Установка

git clone <repo> && cd cogmemory-mcp
pnpm install
pnpm run build

Настройка в VS Code

Добавьте в .vscode/mcp.json (для рабочей области):

{
  "servers": {
    "cogmemory": {
      "command": "node",
      "args": ["/absolute/path/to/cogmemory-mcp/dist/index.js"]
    }
  }
}

Или добавьте в пользовательский mcp.json, чтобы получить глобальную доступность.

Запуск с MCP Inspector (dev)

pnpm run inspect

Related MCP server: LumenCore

Конфигурация области

CogMemory определяет область в порядке приоритета:

  1. .cogmemory/config.json в корне рабочей области:

    { "scope": "global" }
  2. Переменная окружения: COGMEMORY_SCOPE=global

  3. По умолчанию: workspace

Пути

Область

Путь к базе данных

workspace

<workspace_root>/.cogmemory/memory.db

global

~/.cogmemory/global.db


Определение рабочей области и поддержка multiple roots

CogMemory определяет корень рабочей области (где находится .cogmemory/memory.db) в следующем порядке приоритета:

  1. --workspace <path> — аргумент командной строки (наивысший приоритет)

  2. COGMEMORY_WORKSPACE — переменная окружения

  3. Подъём от CWD — поиск ближайшей родительской папки, содержащей каталог .cogmemory/

  4. Запасной вариант — CWD

Мультикорневые рабочие области VS Code

В мультикорневой рабочей области VS Code каждая папка является отдельным корнем. CogMemory обрабатывает это следующим образом:

  • Один корень — работает автоматически. VS Code задаёт CWD как папку рабочей области, а --workspace передаётся через mcp.json.

  • Несколько корней — каждая папка рабочей области может иметь свой .cogmemory/. Укажите каждой собственный CogMemory с разными путями --workspace или разместите общий .cogmemory/ в родительском каталоге.

Рекомендуемый mcp.json для мультикорневой настройки (на папку):

{
  "servers": {
    "cogmemory-frontend": {
      "command": "node",
      "args": [
        "/path/to/cogmemory-mcp/dist/index.js",
        "--workspace",
        "/path/to/frontend"
      ]
    },
    "cogmemory-backend": {
      "command": "node",
      "args": [
        "/path/to/cogmemory-mcp/dist/index.js",
        "--workspace",
        "/path/to/backend"
      ]
    }
  }
}

Или используйте общую базу данных (все корни в одном месте):

{
  "servers": {
    "cogmemory": {
      "command": "node",
      "args": [
        "/path/to/cogmemory-mcp/dist/index.js",
        "--workspace",
        "/shared/root"
      ]
    }
  }
}

Или используйте глобальную область (global scope), чтобы использовать данные во всех рабочих областях:

{
  "servers": {
    "cogmemory": {
      "command": "node",
      "args": ["/path/to/cogmemory-mcp/dist/index.js"]
    }
  }
}
export COGMEMORY_SCOPE=global

Справочник инструментов

Инструменты Memory

Tool

Description

start_session

Начать рабочую сессию (возвращает идентификатор сессии)

end_session

Завершить сессию и сохранить сводку

get_session_summary

Получить детали сессии, включая решения, ошибки, журнал изменений

remember_decision

Зафиксировать решение с обоснованием и тегами

remember_convention

Зафиксировать/обновить соглашение (design token, паттерн, стиль, именование)

log_error

Записать ошибку с сигнатурой и способом устранения

set_active_context

Вставить или обновить текущий фокус/задачу по ключу

get_active_context

Прочитать текущий фокус по ключу

log_change

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

add_plan_item

Добавить пункт дорожной карты

update_plan_status

Изменить статус пункта плана

create_task

Создать задачу, optionally related to plan

update_task_status

Изменить статус задачи

recall

Единый поиск по решениям, соглашениям, ошибкам и журналу изменений

Инструменты Knowledge Graph

Tool

Описание

create_entity

Добавить сущность (дедупликация по имени+типу)

create_relation

Связать две сущности типизированным отношением

add_observation

Прикрепить факт к сущности

search_knowledge

Запрос сущностей, отношений, наблюдений

Инструменты Specs

Tool

Описание

create_spec

Сохранить подробный документ

get_spec

Получить по идентификатору или точному заголовку

update_spec

Обновить содержимое/заголовок, версия повышается автоматически

Инструменты Code Graph

Tool

Описание

index_codebase

Обойти рабочую область, извлечь символы и рёбра через ts-morph (JS/TS)

query_code_graph

Получить вызывающие/вызываемые функции/импорты для символа (1 переход)

generate_codemap

Собрать codemap от входного символа до ограниченного подграфа с трассами и аннотациями (переходы)

annotate_symbol

Прикрепить пояснительный текст к символу или трассе


Архитектура

cogmemory-mcp/
├── src/
│   ├── index.ts                 # entry point, server bootstrap
│   ├── config.ts                # scope resolution, path resolution
│   ├── types.ts                 # shared TS types mirroring schema
│   ├── db/
│   │   ├── connection.ts        # DB open/close, pragma setup
│   │   ├── schema.sql           # full schema (reference)
│   │   └── migrate.ts           # idempotent schema application
│   ├── tools/
│   │   ├── memory.ts            # decisions/conventions/errors/context/changelog/recall
│   │   ├── plan-tasks.ts        # plan + tasks tools
│   │   ├── sessions.ts          # start/end session, summary
│   │   ├── knowledge-graph.ts   # entities/relations/observations
│   │   ├── specs.ts             # spec CRUD
│   │   ├── code-graph.ts        # index_codebase, query_code_graph
│   │   └── codemap.ts           # generate_codemap, annotate_symbol
│   └── indexing/
│       ├── ts-analyzer.ts       # ts-morph symbol/edge extraction
│       └── walker.ts            # file discovery, gitignore respect
├── schema.sql                   # reference copy
├── package.json
├── tsconfig.json
└── README.md

Схема (15 таблиц)

  • Memory (8): sessions, decisions, conventions, errors, context, changelog, plan, tasks

  • Knowledge Graph (3): entities, relations, observations

  • Specs (1): specs

  • Code Graph (4): symbols, edges, execution_traces, codemap_annotations


Прагмы

Устанавливаются при каждом открытии подключения:

PRAGMA journal_mode = WAL;
PRAGMA foreign_keys = ON;

Разработка

pnpm run dev        # Run with tsx (no build step)
pnpm run build      # Compile TypeScript
pnpm run start      # Run compiled output
pnpm run inspect    # Launch MCP Inspector
pnpm run smoke-test # Run smoke test script

Лицензия MIT

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides AI coding assistants with persistent project memory to retain architectural decisions, code patterns, and domain knowledge across sessions. It stores data locally in a SQLite database, allowing agents to remember, recall, and manage project-specific context using full-text search.
    8 npm
    Apache 2.0
  • A
    license
    A
    quality
    B
    maintenance
    Provides persistent cross-session memory and full-text search for AI coding assistants, storing project context, decisions, and preferences while enabling searchable access to conversation history via local SQLite.
    8
    1
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Acts as a persistent memory and cross-tool shared context store, and builds a queryable codebase knowledge graph to slash token usage via structural answers.
    9
    37 npm
    19
    MIT