Mengram
Human-like memory layer for AI agents with semantic, episodic, and procedural memory types, cognitive profiling, knowledge graph, and 12 MCP tools.
Give your AI agents memory that actually learns
Website · Get API Key · Docs · Console · Examples
pip install mengram-ai # or: npm install mengram-ai
from cloud.client import CloudMemory
m = CloudMemory(api_key="om-...") # Free key → mengram.io
m.add([{"role": "user", "content": "I use Python and deploy to Railway"}])
m.search("tech stack") # → facts
m.episodes(query="deployment") # → events
m.procedures(query="deploy") # → workflows that evolve from failures
Why Mengram?
Every AI memory tool stores facts. Mengram stores 3 types of memory — and procedures evolve when they fail.
| Mengram | Mem0 | Zep | Letta | |
|---|---|---|---|---|
| Semantic memory (facts, preferences) | Yes | Yes | Yes | Yes |
| Episodic memory (events, decisions) | Yes | No | No | Partial |
| Procedural memory (workflows) | Yes | No | No | No |
| Procedures evolve from failures | Yes | No | No | No |
| Cognitive Profile | Yes | No | No | No |
| Multi-user isolation | Yes | Yes | Yes | No |
| Knowledge graph | Yes | Yes | Yes | Yes |
| LangChain + CrewAI + MCP | Yes | Partial | Partial | Partial |
| Import ChatGPT / Obsidian | Yes | No | No | No |
| Pricing | Free tier | $19-249/mo | Enterprise | Self-host |
Get Started in 30 Seconds
1. Get a free API key at mengram.io (email or GitHub)
2. Install
pip install mengram-ai
3. Use
from cloud.client import CloudMemory
m = CloudMemory(api_key="om-...")
# Add a conversation — auto-extracts facts, events, and workflows
m.add([
{"role": "user", "content": "Deployed to Railway today. Build passed but forgot migrations — DB crashed. Fixed by adding a pre-deploy check."},
])
# Search across all 3 memory types at once
results = m.search_all("deployment issues")
# → {semantic: [...], episodic: [...], procedural: [...]}
npm install mengram-ai
const { MengramClient } = require('mengram-ai');
const m = new MengramClient('om-...');
await m.add([{ role: 'user', content: 'Fixed OOM by adding Redis cache layer' }]);
const results = await m.searchAll('database issues');
// → { semantic: [...], episodic: [...], procedural: [...] }
# Add memory
curl -X POST https://mengram.io/v1/add \
-H "Authorization: Bearer om-..." \
-H "Content-Type: application/json" \
-d '{"messages": [{"role": "user", "content": "I prefer dark mode and vim keybindings"}]}'
# Search all 3 types
curl -X POST https://mengram.io/v1/search/all \
-H "Authorization: Bearer om-..." \
-d '{"query": "user preferences"}'
3 Memory Types
Semantic — facts, preferences, knowledge
m.search("tech stack")
# → ["Uses Python 3.12", "Deploys to Railway", "PostgreSQL with pgvector"]
Episodic — events, decisions, outcomes
m.episodes(query="deployment")
# → [{summary: "DB crashed due to missing migrations", outcome: "resolved", date: "2025-05-12"}]
Procedural — workflows that evolve
Week 1: "Deploy" → build → push → deploy
↓ FAILURE: forgot migrations
Week 2: "Deploy" v2 → build → run migrations → push → deploy
↓ FAILURE: OOM
Week 3: "Deploy" v3 → build → run migrations → check memory → push → deploy ✅
This happens automatically when you report failures:
m.procedure_feedback(proc_id, success=False,
context="OOM error on step 3", failed_at_step=3)
# → Procedure evolves to v3 with new step added
Or fully automatic — just add conversations and Mengram detects failures and evolves procedures:
m.add([{"role": "user", "content": "Deploy failed again — OOM on the build step"}])
# → Episode created → linked to "Deploy" procedure → failure detected → v3 created
Cognitive Profile
One API call generates a system prompt from all memories:
profile = m.get_profile()
# → "You are talking to Ali, a developer in Almaty. Uses Python, PostgreSQL,
# and Railway. Recently debugged pgvector deployment. Prefers direct
# communication and practical next steps."
Insert into any LLM's system prompt for instant personalization.
Import Existing Data
Kill the cold-start problem:
mengram import chatgpt ~/Downloads/chatgpt-export.zip --cloud # ChatGPT history
mengram import obsidian ~/Documents/MyVault --cloud # Obsidian vault
mengram import files notes/*.md --cloud # Any text/markdown
Integrations
MCP Server — Claude Desktop, Cursor, Windsurf
{
"mcpServers": {
"mengram": {
"command": "mengram",
"args": ["server", "--cloud"],
"env": { "MENGRAM_API_KEY": "om-..." }
}
}
}
21 tools for memory management.
LangChain
from integrations.langchain import (
MengramChatMessageHistory,
MengramRetriever,
)
history = MengramChatMessageHistory(
api_key="om-...", user_id="user-1"
)
retriever = MengramRetriever(api_key="om-...")
CrewAI
from integrations.crewai import create_mengram_tools
tools = create_mengram_tools(api_key="om-...")
# → 5 tools: search, remember, profile,
# save_workflow, workflow_feedback
agent = Agent(role="Support", tools=tools)
OpenClaw
openclaw plugins install openclaw-mengram
Auto-recall before every turn, auto-capture after. 12 tools, slash commands, Graph RAG.
Multi-User Isolation
One API key, many users — each sees only their own data:
m.add([...], user_id="alice")
m.add([...], user_id="bob")
m.search_all("preferences", user_id="alice") # Only Alice's memories
m.get_profile(user_id="alice") # Alice's cognitive profile
Agent Templates
Clone, set API key, run in 5 minutes:
| Template | Stack | What it shows |
|---|---|---|
| DevOps Agent | Python SDK | Procedures that evolve from deployment failures |
| Customer Support | CrewAI | Agent with 5 memory tools, remembers returning customers |
| Personal Assistant | LangChain | Cognitive profile + auto-saving chat history |
cd examples/devops-agent && pip install -r requirements.txt
export MENGRAM_API_KEY=om-...
python main.py
API Reference
| Endpoint | Description |
|---|---|
POST /v1/add | Add memories (auto-extracts all 3 types) |
POST /v1/search | Semantic search |
POST /v1/search/all | Unified search (semantic + episodic + procedural) |
GET /v1/episodes/search | Search events and decisions |
GET /v1/procedures/search | Search workflows |
PATCH /v1/procedures/{id}/feedback | Report outcome — triggers evolution |
GET /v1/procedures/{id}/history | Version history + evolution log |
GET /v1/profile | Cognitive Profile |
GET /v1/triggers | Smart Triggers (reminders, contradictions, patterns) |
POST /v1/agents/run | Memory agents (Curator, Connector, Digest) |
GET /v1/me | Account info |
Full interactive docs: mengram.io/docs
Community
- GitHub Issues — bug reports, feature requests
- API Docs — interactive Swagger UI
- Examples — ready-to-run agent templates
License
Apache 2.0 — free for commercial use.
Get your free API key · Built by Ali Baizhanov · mengram.io
Related Servers
Remote MCP Server (Authless)
An authentication-free, remote MCP server designed for deployment on Cloudflare Workers or local execution via npm.
Remote MCP Server (Authless)
A remote, auth-less MCP server deployable on Cloudflare Workers or locally via npm.
Arcanna MCP Server
Interact with Arcanna's AI use cases through the Model Context Protocol (MCP).
CloudWatch Logs
Access AWS CloudWatch logs to list log groups and read log entries.
Workers MCP
An MCP transport for interacting with your own Cloudflare Worker.
Kubernetes MCP Server
A versatile MCP server for Kubernetes and OpenShift, distributed as a native binary, npm/Python package, or Docker image.
Coin MCP Server
Provides access to real-time cryptocurrency data from CoinMarketCap.
Binance MCP Server
Access the Binance Futures API for trading, account management, and market data.
Modal
Deploy Python scripts to Modal, a serverless platform for running code in the cloud.
MCP Server To Markdown
Converts various file formats to Markdown using Cloudflare AI.