- Language
- TypeScript
- Last commit
- 3h ago
- Forks
- 0
- Open issues
- 0
- Registry update
- Oct 14, 2026
Connect
npm$claude mcp add elen \ -- npx -y @learningnodes/[email protected]
Environment variables
Nothing to configure — it works as is.
Security review
Review passedReviewed 1h ago.
- metadata
- scanned
- packages
- 1 checked
No findings.
Tools
This server runs on your machine, so its tool list is not fetched before install — the README below describes what it offers.
Elen is an open-source MCP server that records the decisions your coding agent makes, with the limits that bound them, and marks old decisions as superseded. It installs with one npx line, works with Cursor, Claude Code and any MCP client, and keeps decisions in a local SQLite file.
Install
npx -y @learningnodes/[email protected]
Claude Code
claude mcp add --transport stdio elen -- npx -y @learningnodes/[email protected]
VS Code
Open this link to install:
vscode:mcp/install?%7B%22name%22%3A%22elen%22%2C%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%40learningnodes%2Felen-mcp%400.3.1%22%5D%7D
Cursor
Add this to .cursor/mcp.json in your project:
{
"mcpServers": {
"elen": {
"command": "npx",
"args": ["-y", "@learningnodes/[email protected]"]
}
}
}
Gemini CLI
Add this to settings.json (~/.gemini/settings.json, or .gemini/settings.json in your project):
{
"mcpServers": {
"elen": {
"command": "npx",
"args": ["-y", "@learningnodes/[email protected]"]
}
}
}
Any other MCP client
Use the same mcpServers entry:
{
"mcpServers": {
"elen": {
"command": "npx",
"args": ["-y", "@learningnodes/[email protected]"]
}
}
}
Tested with
| Client | Status |
|---|---|
| Claude Code | Run by the maintainer |
| Cursor | Configuration follows the client's documentation. Not yet recorded as tested. |
| VS Code | Configuration follows the client's documentation. Not yet recorded as tested. |
| Gemini CLI | Configuration follows the client's documentation. Not yet recorded as tested. |
| Other MCP clients | Configuration follows the client's documentation. Not yet recorded as tested. |
Make your agent use it
The tools alone give an agent no habit: it sees what each tool does, but it does not stop mid-task to ask whether a precedent exists. Add the block below to your rules file or system prompt so that searching before a decision and committing after one become part of every session.
# Epistemic Decision Memory Protocol
You must adhere to the Minimal Token Protocol for decisions:
1. Pointer-First Retrieval: Before making a technical decision, ALWAYS use elen_suggest to retrieve Top-K minimal pointers.
2. On-Demand Expansion: If a pointer looks relevant, you MUST call elen_expand on that specific ID. Do not hallucinate constraints.
3. Commiting Atoms: When deciding, use elen_commit. Summarize constraints into plain-text arrays (e.g. "budget < 500ms").
4. Graph Revision: If a decision invalidates a precedent, you MUST use elen_supersede to advance the graph state.
What it stores
In local mode decisions stay in a SQLite file on your machine (default ~/.elen/decisions.db). Connected mode is optional, needs elen login and an API key, and is in beta.
Tools
| Tool | What it does |
|---|---|
elen_commit | Commits a new decision to the graph, with its constraints as a plain-text list. |
elen_get_competency | Shows the competency profile for this agent, built from its validated decision history. |
elen_consolidate | Suggests clusters and duplicate or stale candidates without changing the graph. |
elen_get_context | Gives an overview of active decision threads grouped by domain, for the start of a session. |
elen_expand | Expands a decision ID into its full constraints and text. |
elen_incoming | Lists decisions other people have shared into your workspace. Connected mode, beta. |
elen_log_decision | Creates a validated Decision Record from constraints, evidence and an answer. |
elen_search_precedents | Searches validated decisions for precedents. |
elen_status | Returns the agent, project, database path and counts, to check the namespace before committing. |
elen_suggest | Retrieves short pointers to prior decisions before you make a new one. |
elen_supersede | Revises an older decision and marks it superseded by a new one. |
elen_team_search | Searches team and human decisions visible to your workspace for a topic. Connected mode, beta. |
Links
- Repository: https://github.com/LearningNodes/Elen
- Issues: https://github.com/LearningNodes/Elen/issues
- Discord: https://discord.gg/zJG6n2WGzM
- Licence: AGPL-3.0
Elen is the open-source part of Learning Nodes, the DecisionOps workspace. For the business decisions behind the code: https://workstation.learningnodes.com?utm_source=elen-readme&utm_medium=referral&utm_campaign=npm-page
From the server's repository — third-party content, read it before running anything it suggests.
More in Databases
legacy2mcp
io.github.bvenkata
Turn a legacy SOAP/WSDL, database, or REST API into a safe, typed, audit-logged MCP server
Lific
io.github.VoidNullable
Local-first, lightweight issue tracker. Single binary, SQLite-backed, MCP-native.
mushroomdb
io.github.MatthewSherlin
Embedded graph database for agents: declare association rules once, edges maintain themselves.
Qdrant Memory
io.github.cnkang
Persistent scoped Qdrant memory for agents, through four explicit stdio MCP tools.
Shippable
io.github.Egarter
Find leaks in AI-built apps: open Supabase/Firebase data, exposed keys, unsafe edge functions
db-gateway
io.github.GuardBee
KVKK/GDPR-compliant LLM-to-database gateway: PII masking, RBAC, rate limiting, audit log
Listing from the official MCP Registry · repository facts from GitHub, 1h ago.