Elasticsearch Knowledge Graph
БесплатноНе проверенElasticsearch-based knowledge graph that tracks access patterns to prioritize recent, important, and frequently accessed information with advanced search capabi
Описание
Elasticsearch-based knowledge graph that tracks access patterns to prioritize recent, important, and frequently accessed information with advanced search capabilities and complete CRUD operations.
README
An MCP server that gives AI agents persistent memory with built-in freshness tracking and spaced repetition. Backed by Elasticsearch.
Unlike simple key-value memory stores, mcp-brain-tools tracks how old each piece of knowledge is, flags what needs review, and lets agents verify information to keep it fresh — inspired by how spaced repetition helps humans retain knowledge.
Features
- Spaced repetition freshness — each entity has a review interval that doubles on verification (capped at 365 days). Confidence labels (fresh/normal/aging/stale/archival) tell agents what to trust.
- Progressive search — queries return fresh results first, automatically widening to include older data only when needed.
- Observations as entities — each observation gets its own freshness lifecycle, so "build is broken" (1-day review) and "founded in 2015" (365-day review) age independently.
- Memory zones — isolate knowledge by project, team, or domain.
- AI-powered filtering — optional Groq integration scores search results by relevance.
- DRY by design — tool descriptions guide agents not to store what's already in code, git, or docs.
Setup
Prerequisites
- Node.js >= 18
- Docker (for Elasticsearch) or a remote Elasticsearch instance
Install and build
npm install
npm run build
Start Elasticsearch
npm run es:start
Or point to your own instance via ES_NODE environment variable.
Configure your MCP client
Add to your Claude Code, Claude Desktop, or other MCP client config:
{
"mcpServers": {
"memory": {
"command": "node",
"args": ["/path/to/mcp-brain-tools/dist/index.js"],
"env": {
"ES_NODE": "http://localhost:9200",
"GROQ_API_KEY": "your-key-here"
}
}
}
}
GROQ_API_KEY is optional — enables AI-powered search filtering and zone relevance scoring.
Install the auto-memory hook (Claude Code only)
The memory hook runs on every user message and automatically injects relevant context — no agent cooperation needed.
Add to ~/.claude/settings.json:
{
"hooks": {
"UserPromptSubmit": [
{
"hooks": [
{
"type": "command",
"command": "node /path/to/mcp-brain-tools/dist/memory-hook.js"
}
]
}
]
}
}
The hook uses the same ES_NODE, AI_API_KEY/GROQ_API_KEY, AI_API_BASE, and AI_MODEL env vars (set them in the env block of your settings, or export them in your shell profile).
AI_API_BASE defaults to Groq's endpoint but accepts any OpenAI-compatible API URL.
How it works
Entities and observations
Entities represent anything worth remembering — people, projects, decisions, facts. Each entity has:
- A name and type
- Spaced repetition fields:
verifiedAt,reviewInterval,nextReviewAt - A confidence label computed from freshness:
1 - (daysSinceVerified / reviewInterval)
Observations are stored as separate entities linked via is_observation_of relations. Each observation has its own review cadence:
Entity: "iaptic-server" (type: Project, reviewInterval: 30 days)
<- "iaptic-server: uses TypeScript" (reviewInterval: 180 days)
<- "iaptic-server: migration in progress" (reviewInterval: 7 days)
Freshness lifecycle
- Entity created —
confidence: "fresh", default review in 7 days - Review date passes —
confidence: "aging",needsReview: true - Agent verifies (via
verify_entity) — interval doubles, confidence resets to fresh - Long overdue —
confidence: "stale"then"archival", excluded from default search
Progressive search
When searching, the server uses three passes:
freshness >= 0— fresh and normal entitiesfreshness >= -2— adds aging and stale- No filter — adds archival
This keeps results clean while ensuring nothing is permanently lost.
MCP Tools
| Tool | Description |
|---|---|
create_entities |
Create entities with optional observations and reviewInterval |
update_entities |
Update existing entities |
delete_entities |
Delete entities (with optional cascade) |
add_observations |
Add observations as separate entities with own freshness |
verify_entity |
Confirm entity is still accurate, extend review interval |
search_nodes |
Search with progressive freshness filtering |
open_nodes |
Get specific entities by name with freshness metadata |
get_recent |
Get recently accessed entities |
create_relations |
Create relationships between entities |
delete_relations |
Remove relationships |
inspect_knowledge_graph |
AI-powered entity retrieval with tentative answers |
inspect_files |
AI-powered file content inspection |
list_zones |
List memory zones (with AI relevance scoring) |
create_zone / delete_zone |
Manage memory zones |
copy_entities / move_entities |
Transfer entities between zones |
merge_zones |
Merge zones with conflict resolution |
zone_stats |
Get entity/relation counts for a zone |
mark_important |
Boost entity relevance score |
get_time_utc |
Get current UTC time |
Environment variables
| Variable | Default | Description |
|---|---|---|
ES_NODE |
http://localhost:9200 |
Elasticsearch URL |
ES_USERNAME |
— | Elasticsearch username |
ES_PASSWORD |
— | Elasticsearch password |
GROQ_API_KEY |
— | Groq API key for AI filtering |
GROQ_MODELS |
openai/gpt-oss-120b,llama-3.3-70b-versatile |
Comma-separated model list |
KG_INDEX_PREFIX |
knowledge-graph |
Elasticsearch index prefix |
KG_DEFAULT_ZONE |
default |
Default memory zone |
DEBUG |
false |
Enable debug logging |
Recommended agent instructions
For agents to actively use the memory server, add something like this to your CLAUDE.md (or equivalent instructions file):
## Memory
Use MCP Memory (`mcp__memory__*` tools) — a shared knowledge graph across all agents, projects, and computers.
**When to SAVE (immediately, before moving on):**
- Something you tried didn't work (non-transient) → save what failed and why, so no agent repeats it
- A decision was made (architectural, design, workflow) → save the decision and the reason
- The user corrects you or gives explicit instructions → save the rule
- You learn something non-obvious that took effort to discover → save it
**When to SEARCH (before starting, not after failing):**
- **At the start of every non-trivial task** — search before thinking, not after hitting a wall
- About to try an approach that might have been attempted before → search first
- User references something from a past session → search before asking
**Rules:**
- Skip anything easy to find in code, git log, or docs
- Use the project name as the zone for project-specific knowledge; `default` for general knowledge
- Keep entries short — the AI filters server-side, so be generous rather than selective
- Short `reviewInterval` (e.g. 3–7 days) for volatile facts; longer (30–180) for stable ones
The key insight: agents need explicit trigger-based instructions ("when X, do Y"), not just descriptions of what the tool does.
Development
npm run build # Compile TypeScript
npm run dev # Watch mode
npm run test:jest # Run Jest tests
npm run es:start # Start Elasticsearch
npm run es:stop # Stop Elasticsearch
npm run es:reset # Wipe data and restart
npm run import # Import from JSON
npm run export # Export to JSON
License
MIT
Установка Elasticsearch Knowledge Graph
У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.
▸ github.com/j3k0/mcp-brain-toolsFAQ
Elasticsearch Knowledge Graph MCP бесплатный?
Да, Elasticsearch Knowledge Graph MCP бесплатный — установка в пару кликов через Unyly без оплаты.
Нужен ли API-ключ для Elasticsearch Knowledge Graph?
Нет, Elasticsearch Knowledge Graph работает без API-ключей и переменных окружения.
Elasticsearch Knowledge Graph — hosted или self-hosted?
Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.
Как установить Elasticsearch Knowledge Graph в Claude Desktop, Claude Code или Cursor?
Открой Elasticsearch Knowledge Graph на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.
Похожие MCP
GitHub
PRs, issues, code search, CI status
автор: GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
автор: mcpdotdirectCompare Elasticsearch Knowledge Graph with
Не уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории development
