j5ed-knowledge-graph
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@j5ed-knowledge-graphsearch for entities about machine learning"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
j5ed-knowledge-graph
A knowledge graph memory server for the Model Context Protocol (MCP). Gives AI assistants persistent, structured memory across sessions using a simple entity-relation-observation graph.
Forked from the official @modelcontextprotocol/server-memory and significantly enhanced with multi-agent isolation, tiered search, index navigation, backup rotation, and three transport modes.
What's different from upstream
Feature | Upstream | j5ed |
| Returns full graph every time | Returns lightweight index stubs by default; |
| Flat substring match | Tokenized multi-word queries, tiered results by match count, field-priority ranking, per-tier caps |
| Returns relations between opened nodes only | Also returns inbound relations to index entities (table-of-contents navigation) |
Multi-agent | None | Tenant isolation via |
Multi-user | None | Two-dimensional isolation with |
Auth | None | Bearer token authentication for HTTP/SSE transports |
Read grants | None | Cross-agent read visibility via |
Write safety | None | Async mutex serializes all mutations — no lost writes under concurrency |
Backups | None | Automatic backup rotation (last 5 copies) on every save |
Transports | stdio only | stdio, SSE, and Streamable HTTP |
Param handling | Strict | Gracefully handles double-serialized JSON from flaky clients |
Related MCP server: Knowledge Master
Installation
npm install j5ed-knowledge-graphOr run directly:
npx j5ed-knowledge-graphMCP Configuration
stdio (local, default)
{
"mcpServers": {
"memory": {
"command": "npx",
"args": ["-y", "j5ed-knowledge-graph"],
"env": {
"MEMORY_FILE_PATH": "/path/to/memory.json"
}
}
}
}Streamable HTTP (network)
npx j5ed-knowledge-graph --http --port 3100{
"mcpServers": {
"memory": {
"url": "http://localhost:3100/mcp"
}
}
}SSE (legacy network)
npx j5ed-knowledge-graph --sse --port 3100Environment Variables
Variable | Default | Description |
|
| Path to the NDJSON graph file |
|
| Agent identity used for stdio connections and when no auth header is provided |
| (empty) | Comma-separated |
| (empty) | Comma-separated |
Multi-Agent Setup
When multiple agents share a graph, each agent's writes are tagged with authored_by:<agentId> and reads are filtered to show only entities owned by (or granted to) that agent.
Example: two agents with cross-read access
AGENT_CREDENTIALS="assistant:token-abc,researcher:token-xyz" \
AGENT_READ_GRANTS="assistant:researcher" \
npx j5ed-knowledge-graph --http --port 3100assistantauthenticates withBearer token-abc, sees its own entities +researcher'sresearcherauthenticates withBearer token-xyz, sees only its own entitiesWrites are always scoped — agents can only delete what they authored
Tools
Tool | Description |
| Create new entities with name, type, and observations |
| Create directed relations between entities |
| Append observations to existing entities |
| Delete entities and their relations (agent-scoped) |
| Remove specific observations from entities |
| Remove specific relations |
| Returns index stubs by default; |
| Tiered search across entity names, types, and observations |
| Retrieve full entities by name, with index navigation |
Index Navigation Pattern
The graph supports an index-first navigation pattern for large knowledge bases:
read_graph()— returns lightweight stubs for index entities (name, type, summary)Pick relevant index —
open_nodes(["MY_INDEX"])See inbound relations — entities with
indexed_inrelations to the index are its table of contentsDrill into specifics —
open_nodes(["SPECIFIC_ENTITY"])
Index entities are detected by entityType containing "index" (case-insensitive) or entity name ending with _INDEX.
Search Behavior
Multi-word queries are tokenized. Results are grouped into tiers by how many tokens matched:
Tier 1: entities matching any 1 token (broadest)
Tier N: entities matching all N tokens (most specific)
Within each tier, entities are ranked by field priority: index entities first, then name matches (+30), type matches (+20), observation matches (+10). Per-tier caps prevent noise.
Results are returned as lightweight stubs (name, type, matchedIn fields, optional snippet). Use open_nodes() to get full observations.
Storage Format
NDJSON (newline-delimited JSON). Each line is either:
{"type":"entity","name":"MY_ENTITY","entityType":"service","observations":["fact 1","fact 2"]}
{"type":"relation","from":"MY_ENTITY","to":"MY_INDEX","relationType":"indexed_in"}Docker
docker build -t j5ed-knowledge-graph .
docker run -i -v graph-data:/app/dist --rm j5ed-knowledge-graphDevelopment
git clone https://github.com/arktechnwa/j5ed-knowledge-graph.git
cd j5ed-knowledge-graph
npm install
npm run build
npm test # 7 suites, 80 tests
npm run dev # stdio mode with ts-nodeLicense
MIT
This server cannot be installed
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/ArkTechNWA/j5ed-knowledge-graph'
If you have feedback or need assistance with the MCP directory API, please join our Discord server