Context7
Feeds AI the latest docs for libraries and frameworks before it answers, so code it writes does not use outdated, removed functions.
Description from the maker (original English)
Episode-first, zero-latency long-term memory for local LLMs and AI coding assistants.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
You need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"orma": {
"command": "uvx",
"args": [
"orma-ai"
]
}
}
}Run this in your terminal
claude mcp add orma -- uvx orma-aiPaste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"orma": {
"command": "uvx",
"args": [
"orma-ai"
]
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"orma": {
"type": "stdio",
"command": "uvx",
"args": [
"orma-ai"
]
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.
Your choice stays on this device in a cookie; no account needed.
These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Runs on your computer; the tool list appears in your AI app after you install it.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 7, 2026
The registry name was verified with the GitHub account wizardwithcodehazard, which owns the repo
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
This one runs on your computer; there is no internet endpoint
Runs on your computer and uses local settings instead
Runs on your computer; we can only read tool lists from internet endpoints
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
The registry does not list a required key, though some servers ask you to sign in on first use.
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
The GitHub repo last changed –, and the latest version (0.1.13) reached the registry 5 days ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Python (uv) on your computer.
In the same category: Context7, Codebase Memory, Exa
Servers in the same category from other makers, sorted by stars.
Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
Feeds AI the latest docs for libraries and frameworks before it answers, so code it writes does not use outdated, removed functions.
Codebase knowledge graph for AI agents — 162 languages, sub-ms queries, 99% fewer tokens.
Connect AI agents to Exa for web search, content fetching, and multi-step research.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
Orma *(Dravidian / Malayalam for "memory" or "recollection")* is an episode-first, zero-latency long-term memory layer built specifically for local, open-weight LLMs (3B–8B models on consumer 8–16 GB laptops).
Orma can be used in two ways:
Everything runs locally in SQLite with sqlite-vec and fast on-device embeddings—no external servers, no cloud API keys, and zero data loss.
orma viz)orma up):/)Most agent memory frameworks (like Mem0 or Cognee) were designed for massive cloud models (GPT-4o, Claude 3.5 Sonnet) and enterprise graph databases:
add() causes 5–15 second freezes on local machines.DELETE / UPDATE instructions leads to accidental data loss.< 25ms using hybrid vector search (sqlite-vec) + BM25 full-text search (FTS5) with bounded recency boosting (ACT-R).now true) and dated events citing exact line numbers.| Feature | Mem0 | Cognee | Orma |
|---|---|---|---|
| Target LLMs | Cloud (GPT-4o) | Cloud (GPT-4o) | Local 3B–8B (Ollama / llama.cpp) |
| Python SDK | Memory() | cognee.add() | `from orma import Memory` |
| Zero-Code Proxy Mode | Paid Cloud / Custom | No | Yes (`orma proxy` / `orma up`) |
| Write Overhead | Synchronous LLM calls (5–15s delay) | Multi-stage graph pipelines | Instant (< 5ms SQLite append) |
| Recall Overhead | Vector + LLM synthesis | Graph traversal + LLM | Instant (< 25ms hybrid search, 0 LLM calls) |
| Data Safety | Destructive DELETE / UPDATE | Lossy graph extraction | Lossless append-only logs (`rebuild` anytime) |
| Storage Architecture | External Vector DB | Neo4j / NetworkX + Vector | Single embedded SQLite file (`~/.orma/memory.db`) |
| Hallucination Protection | Relies on LLM accuracy | Relies on Pydantic output | Line citations + deterministic Python guards |
No made-up numbers or synthetic marketing charts. Here is how Orma actually stacks up against published figures from Mem0 (arXiv:2504.19413, Table 2 on LOCOMO) and Cognee (BEAM benchmarks), alongside local measurements from Orma's test suite (scripts/latency_smoke.py and eval/run.py).
Most memory systems block your chat turn to call an LLM or walk an entity graph before replying. Orma never calls an LLM during recall—it runs hybrid search (BM25 + sqlite-vec) directly in SQLite, keeping retrieval under 20ms.
| Architecture | Retrieval Mechanism | p95 Latency | Relative Speedup | Data Source |
|---|---|---|---|---|
| Full-Context Baseline | Brute-force historical prompt stuffing | 17,120 ms (17.1s) | 1.0x (Baseline) | arXiv:2504.19413, Table 2 |
| Mem0g (Graph Variant) | Vector search + Graph traversal | 2,600 ms (2.6s) | 6.5x faster | arXiv:2504.19413, Table 2 |
| Cognee (Graph-RAG) | Multi-signal vector + entity graph | ~1,950 ms (2.0s) | 8.8x faster | Cognee BEAM Benchmarks |
| Mem0 (Base Variant) | Vector semantic lookup + LLM synthesis | 1,440 ms (1.4s) | 11.9x faster | arXiv:2504.19413, Table 2 |
| Orma (Cognitive Engine) | Zero-LLM Hybrid SQLite (FTS5 + sqlite-vec) | 18 ms (0.018s) | 951x faster | scripts/latency_smoke.py (2,000 notes) |
xychart-beta
title "p95 Retrieval Latency in Milliseconds (Lower is Better)" x-axis ["Full-Context (Raw)", "Mem0g (Graph)", "Cognee (Graph-RAG)", "Mem0 (Base)", "Orma (Hybrid SQLite)"] y-axis "Latency in ms (Log Scale Ratios)" 0 --> 18000 bar [17120, 2600, 1950, 1440, 18]
When running 3B–8B models locally, tokens directly cost speed and attention span. Stuffing thousands of memory tokens into the prompt causes small models to slow down and lose track. Orma's Sutra packing compresses facts into dense brackets ([user.city: Pune]), delivering the exact same context at a fraction of the token cost.
| Memory System | Memory Payload Format | Mean Context Tokens | Token Reduction vs Full Context |
|---|---|---|---|
| Full Context Baseline | Raw multi-session conversation history | ~26,031 tokens | 0% (Context blowout) |
| Cognee | Graph context trees & entity relations | ~3,650 - 7,000 tokens | ~73% - 86% |
| Mem0g (Graph) | Graph relations + semantic items | ~3,600 tokens | 86.2% |
| Mem0 (Base) | Extracted semantic bullet points | ~1,764 tokens | 93.2% |
| Orma Classic | Prioritized Markdown sections | ~240 tokens (10 facts) | 99.1% |
| Orma Sutra Packing | Dense symbolic brackets: `[user.attr: val]` | 135 tokens (10 facts) | 99.5% (-68% vs Mem0 Base) |
xychart-beta
title "Context Token Footprint in Prompt Window (Lower is Better)" x-axis ["Full Context", "Mem0g", "Mem0 Base", "Orma Classic", "Orma Sutra"] y-axis "Tokens Consumed per Query" 0 --> 30000 bar [26031, 3600, 1764, 240, 135]
Tested on Qwen 2.5 3B across 30 multi-session evaluation scenarios (eval/run.py & eval/cases.json): fact recall, profile updates (superseding old cities/jobs), avoiding misattributions to family members, and temporal grounding:
Scenario Without Memory (Raw Model) With Orma Cognitive Memory
Current Fact Accuracy (12 cases) 1 / 10 (10.0%) 12 / 12 (100.0%) State Update Supersession (Pune->BLR) 0 / 1 (0.0%) 1 / 1 (100.0%) Misattributions Avoided (Sister Asha) 2 / 7 (28.6%) 7 / 7 (100.0%) Temporal Event Grounding (Trek date) 1 / 3 (33.3%) 3 / 3 (100.0%)
Total Evaluation Correctness: 1 / 10 (10.0%) 29 / 30 (96.7%)
Small models love doing what you tell them not to do. If you write *"Never chain PowerShell commands with semicolons"*, autoregressive attention latches onto *"semicolon"* and emits it anyway.
Orma isolates negative rules into top-of-prompt inhibitory directives ([FORBIDDEN: ...]) with negative framing semantics, getting 100% compliance on small models without fine-tuning:
| Approach | Negative Prompt Strategy | Qwen 2.5 3B Compliance | Observed Behavior |
|---|---|---|---|
| Standard User Turn | *"Please don't use semicolons"* | 28% (Fails 7/10) | Generates git add . ; git commit |
| System Memory Bullet | - user · forbidden: semicolon | 45% (Fails 5/10) | Model treats bullet as passive knowledge |
| Orma Inhibitory Hoisting | `[FORBIDDEN: ...]` at Top of Prompt + Framing | 100% (10/10 Pass) | Generates clean multi-line commands; 0 semicolons |
flowchart TD
User["User / App / Chatbot"] -->|"1a. Chat Request"| Proxy["Orma Proxy / SDK"] CodingAgent["Coding Agent (Claude Code / Cursor / Windsurf)"] -->|"1b. MCP Tool Call (orma_recall)"| MCPServer["Orma MCP Server"] MCPServer --> Proxy
subgraph MultiSearch ["Multi-Channel Hybrid Search (SQLite)"] Proxy -->|"2a. BM25 Query"| FTS["FTS5 BM25 Exact Text Index"] Proxy -->|"2b. Vector Query"| Vec["sqlite-vec (bge-small-en-v1.5)"] FTS --> RRF["Reciprocal Rank Fusion (RRF)"] Vec --> RRF RRF --> NoiseFloor["Adaptive Space Noise Floor Calibration"] end
subgraph SpreadingGraph ["ACT-R Spreading Activation (SQLite Entity Graph)"] NoiseFloor --> ExtractEntities["Extract Seed Entities from Query & States"] ExtractEntities --> Adjacency["Traverse Bi-directional Entity Links"] Adjacency --> FanEffect["Anderson's Fan Effect: Weight / Fan(Entity)"] FanEffect --> AssociateStates["Boost Associated Context (Dr. Rao -> Clinic -> Toothache)"] end
subgraph CognitiveRanker ["Stochastic & Cognitive Scoring Suite"] AssociateStates --> Hawkes["Hawkes Temporal Burst: alpha * exp(-beta * dt)"] Hawkes --> Ebbinghaus["Ebbinghaus Spaced Stability: S = S0 * (1 + gain * (n - 1))"] Ebbinghaus --> BaseLevel["ACT-R Base-Level Decay: sum (age_days + 1)^(-d)"] end
subgraph BudgetPacker ["Budget Allocation, Inhibitory Hoisting & Sutra Packing"] BaseLevel --> Novelty["Novelty Gate: Drop duplicates (cosine >= 0.97)"] Novelty --> Partition["Partition Budget: States | Events | Passages"] Partition --> InhibitoryCheck{"Is Inhibitory? (forbidden_*, avoid_*)"} InhibitoryCheck -->|"Yes (Anti-Pattern)"| TopHoist["Hoist to Top of Prompt: [FORBIDDEN: rule]"] InhibitoryCheck -->|"No (Positive Fact)"| SutraFormat["Sutra Format: [user.attr: val] (-45% tokens)"] TopHoist --> DynamicFraming["Inject Dynamic
Only the beginning is shown; read the rest in the repo