Сервер памяти графа знаний
Базовая реализация постоянной памяти с использованием локального графа знаний. Это позволяет Claude запоминать информацию о пользователе в разных чатах.
Основные концепции
Сущности
Сущности — это основные узлы в графе знаний. Каждая сущность имеет:
Уникальное имя (идентификатор)
Тип сущности (например, "человек", "организация", "событие")
Список наблюдений
Пример:
{
"name": "John_Smith",
"entityType": "person",
"observations": ["Speaks fluent Spanish"]
}Отношения
Отношения определяют направленные связи между сущностями. Они всегда хранятся в действительном залоге и описывают, как сущности взаимодействуют или связаны друг с другом.
Пример:
{
"from": "John_Smith",
"to": "Anthropic",
"relationType": "works_at"
}Наблюдения
Наблюдения — это дискретные фрагменты информации о сущности. Они:
Хранятся в виде строк
Привязаны к конкретным сущностям
Могут быть добавлены или удалены независимо
Должны быть атомарными (один факт на наблюдение)
Пример:
{
"entityName": "John_Smith",
"observations": [
"Speaks fluent Spanish",
"Graduated in 2019",
"Prefers morning meetings"
]
}Related MCP server: Knowledge Graph Memory Server
API
Инструменты
create_entities
Создание нескольких новых сущностей в графе знаний
Входные данные:
entities(массив объектов)Каждый объект содержит:
name(строка): Идентификатор сущностиentityType(строка): Классификация типаobservations(строка[]): Связанные наблюдения
Игнорирует сущности с уже существующими именами
create_relations
Создание нескольких новых отношений между сущностями
Входные данные:
relations(массив объектов)Каждый объект содержит:
from(строка): Имя исходной сущностиto(строка): Имя целевой сущностиrelationType(строка): Тип отношения в действительном залоге
Пропускает дублирующиеся отношения
add_observations
Добавление новых наблюдений к существующим сущностям
Входные данные:
observations(массив объектов)Каждый объект содержит:
entityName(строка): Целевая сущностьcontents(строка[]): Новые наблюдения для добавления
Возвращает добавленные наблюдения для каждой сущности
Завершается ошибкой, если сущность не существует
delete_entities
Удаление сущностей и их отношений
Входные данные:
entityNames(строка[])Каскадное удаление связанных отношений
Выполняется без вывода сообщений, если сущность не существует
delete_observations
Удаление конкретных наблюдений из сущностей
Входные данные:
deletions(массив объектов)Каждый объект содержит:
entityName(строка): Целевая сущностьobservations(строка[]): Наблюдения для удаления
Выполняется без вывода сообщений, если наблюдение не существует
delete_relations
Удаление конкретных отношений из графа
Входные данные:
relations(массив объектов)Каждый объект содержит:
from(строка): Имя исходной сущностиto(строка): Имя целевой сущностиrelationType(строка): Тип отношения
Выполняется без вывода сообщений, если отношение не существует
read_graph
Чтение всего графа знаний
Входные данные не требуются
Возвращает полную структуру графа со всеми сущностями и отношениями
search_nodes
Поиск узлов на основе запроса
Входные данные:
query(строка)Поиск по:
Именам сущностей
Типам сущностей
Содержимому наблюдений
Возвращает соответствующие сущности и их отношения
open_nodes
Получение конкретных узлов по имени
Входные данные:
names(строка[])Возвращает:
Запрошенные сущности
Отношения между запрошенными сущностями
Молча пропускает несуществующие узлы
Использование с Claude Desktop
Настройка
Добавьте это в ваш claude_desktop_config.json:
Docker
{
"mcpServers": {
"memory": {
"command": "docker",
"args": ["run", "-i", "-v", "claude-memory:/app/dist", "--rm", "mcp/memory"]
}
}
}NPX
{
"mcpServers": {
"memory": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-memory"
]
}
}
}В Windows используйте cmd /c для запуска npx:
{
"mcpServers": {
"memory": {
"command": "cmd",
"args": [
"/c",
"npx",
"-y",
"@modelcontextprotocol/server-memory"
]
}
}
}NPX с пользовательскими настройками
Сервер можно настроить с помощью следующих переменных окружения:
{
"mcpServers": {
"memory": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-memory"
],
"env": {
"MEMORY_FILE_PATH": "/path/to/custom/memory.jsonl"
}
}
}
}В Windows используйте:
{
"mcpServers": {
"memory": {
"command": "cmd",
"args": [
"/c",
"npx",
"-y",
"@modelcontextprotocol/server-memory"
],
"env": {
"MEMORY_FILE_PATH": "/path/to/custom/memory.jsonl"
}
}
}
}MEMORY_FILE_PATH: Путь к файлу JSONL для хранения памяти (по умолчанию:memory.jsonlв директории сервера)
Инструкции по установке в VS Code
Для быстрой установки используйте одну из кнопок установки в один клик ниже:
👁 Установить с помощью NPX в VS Code
👁 Установить с помощью NPX в VS Code Insiders
👁 Установить с помощью Docker в VS Code
👁 Установить с помощью Docker в VS Code Insiders
Для ручной установки вы можете настроить MCP-сервер одним из следующих способов:
Способ 1: Пользовательская конфигурация (рекомендуется)
Добавьте конфигурацию в ваш файл конфигурации MCP на уровне пользователя. Откройте палитру команд (Ctrl + Shift + P) и выполните MCP: Open User Configuration. Это откроет ваш файл mcp.json, куда вы сможете добавить конфигурацию сервера.
Способ 2: Конфигурация рабочей области
Альтернативно, вы можете добавить конфигурацию в файл .vscode/mcp.json в вашей рабочей области. Это позволит вам делиться конфигурацией с другими.
Для получения дополнительной информации о настройке MCP в VS Code см. официальную документацию VS Code MCP.
NPX
{
"servers": {
"memory": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-memory"
]
}
}
}В Windows используйте:
{
"servers": {
"memory": {
"command": "cmd",
"args": [
"/c",
"npx",
"-y",
"@modelcontextprotocol/server-memory"
]
}
}
}Docker
{
"servers": {
"memory": {
"command": "docker",
"args": [
"run",
"-i",
"-v",
"claude-memory:/app/dist",
"--rm",
"mcp/memory"
]
}
}
}Системная подсказка (System Prompt)
Подсказка для использования памяти зависит от варианта использования. Изменение подсказки поможет модели определить частоту и типы создаваемых воспоминаний.
Вот пример подсказки для персонализации чата. Вы можете использовать эту подсказку в поле "Custom Instructions" проекта Claude.ai.
Follow these steps for each interaction:
1. User Identification:
- You should assume that you are interacting with default_user
- If you have not identified default_user, proactively try to do so.
2. Memory Retrieval:
- Always begin your chat by saying only "Remembering..." and retrieve all relevant information from your knowledge graph
- Always refer to your knowledge graph as your "memory"
3. Memory
- While conversing with the user, be attentive to any new information that falls into these categories:
a) Basic Identity (age, gender, location, job title, education level, etc.)
b) Behaviors (interests, habits, etc.)
c) Preferences (communication style, preferred language, etc.)
d) Goals (goals, targets, aspirations, etc.)
e) Relationships (personal and professional relationships up to 3 degrees of separation)
4. Memory Update:
- If any new information was gathered during the interaction, update your memory as follows:
a) Create entities for recurring organizations, people, and significant events
b) Connect them to the current entities using relations
c) Store facts about them as observationsСборка
Docker:
docker build -t mcp/memory -f src/memory/Dockerfile . Для сведения: предыдущий том mcp/memory содержит файл index.js, который может быть перезаписан новым контейнером. Если вы используете том Docker для хранения, удалите файл index.js старого тома перед запуском нового контейнера.
Лицензия
Этот MCP-сервер лицензирован по лицензии MIT. Это означает, что вы можете свободно использовать, изменять и распространять программное обеспечение в соответствии с условиями лицензии MIT. Для получения более подробной информации, пожалуйста, ознакомьтесь с файлом LICENSE в репозитории проекта.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
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/modelcontextprotocol/knowledge-graph-memory-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server
