memorry
Synchronizes memory records to Obsidian vault folders as Markdown notes with frontmatter, and auto-links related notes via wikilinks to reflect semantic connections in Graph View.
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., "@memorryRemember that the API key is stored in the environment variable TOKEN"
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.
memorry

A fully local, API-key-free MCP memory server for Claude Code (or any MCP client). No Ollama, no embeddings, no external LLM calls — just SQLite, FTS5 full-text search, and optional live sync to an Obsidian vault.
Built collaboratively with Claude Code (Anthropic).
Why
Most "AI memory" setups either ship your notes to a hosted vector DB or
require a local embedding model. memorry doesn't do either. It's a single
Python process exposing a handful of MCP tools backed by one SQLite file.
The calling agent is responsible for distilling what's worth remembering
into one self-contained sentence — the server just stores it verbatim and
makes it searchable.
Related MCP server: tartarus-mcp
Features
Local-first: one SQLite file (
memory.db), streamable-http on127.0.0.1:8765, no network calls of any kind.FTS5 full-text search with Turkish/English stopword filtering and Turkish character folding (
ı/İ→i,ş→s,ğ→g,ü→u,ö→o,ç→c) so search is forgiving of accents and common function words.Projects: every record is tagged with a
project, so one server can hold memory for several unrelated things.Pinned records: mark a handful of memories as always-relevant; fetch them without a search query.
Live Obsidian sync: every add/update/delete mirrors to one or more Obsidian vault folders as Markdown notes with frontmatter, and each new note auto-links to the most relevant existing notes in the same project via
[[wikilink]]— so the vault's Graph View reflects real semantic connections, no manual linking required.Automatic backups: a timestamped copy of the DB is taken on every server start (last 30 kept).
Health check:
memory_healthruns an actual write test against the FTS5 index, not justPRAGMA integrity_check— see a real bug we hit below.Export/import: dump to JSON, re-import elsewhere with automatic dedup.
Tools
Tool | Purpose |
| Store a fact verbatim |
| FTS5 search, bm25-ranked |
| List recent (or pinned) records |
| Edit in place, id/created_at preserved |
| Remove a record |
| Record counts, per-project breakdown, DB size |
| Integrity check + a real FTS5 write test |
| Dump to JSON |
| Re-import a JSON dump, deduped |
Use with Claude Code
Two optional pieces ship with the server, and they do different jobs:
SKILL.md — the discipline. Search before you add, distill
to one self-contained sentence, separate projects, when to reach for
memory_health. Claude loads it on its own whenever memory is relevant, so
you don't have to ask for it.
mkdir -p ~/.claude/skills/memorry
cp SKILL.md ~/.claude/skills/memorry/commands/hatirla.md — the shortcut. A slash
command for when you want to bank something right now without breaking
your train of thought: /hatirla the deploy key rotates every 90 days.
("hatırla" is Turkish for "remember" — rename the file to change the
command name.)
mkdir -p ~/.claude/commands
cp commands/hatirla.md ~/.claude/commands/Both land in ~/.claude/, so they work from any project. Drop them in a
project's own .claude/ instead if you'd rather scope them to one repo.
The command file has a "customize this" note at the bottom — worth two
minutes to point it at your own project names.
Setup
pip install -r requirements.txt
python server.pyOr on Windows, run start-memory.bat to launch it hidden in the
background (no autostart — you start it when you want it running).
Then point your MCP client at http://127.0.0.1:8765/mcp. For MCP hosts
that only support command/args-style stdio servers (some desktop
clients don't speak native type: http yet), bridge it with
mcp-remote:
{
"mcpServers": {
"memory": {
"command": "npx",
"args": ["-y", "mcp-remote", "http://127.0.0.1:8765/mcp", "--allow-http", "--transport", "http-only"]
}
}
}Obsidian sync
Edit OBSIDIAN_DIRS in server.py to point at one or more vault
subfolders. Leave the list empty (or point it somewhere that doesn't
exist) to skip Obsidian entirely — it's best-effort and never blocks a
memory write if the vault folder is unreachable.
Design notes
The agent distills, the server doesn't.
memory_addnever summarizes or calls out to an LLM — it stores exactly what it's given. Tool descriptions instruct the calling agent to compress information into one self-contained sentence before writing, and to search first so duplicate/stale facts don't pile up.Turkish-aware, not Turkish-only. The stopword list and character folding cover Turkish because that's what this was built for, but everything degrades gracefully for English text.
A real bug we hit
While building this, memories_fts was originally an FTS5 "external
content" table (content='memories', content_rowid='id'). At some point
its shadow tables got corrupted in a way PRAGMA integrity_check and
even FTS5's own integrity-check command both reported as fine — but any
DELETE/INSERT against the index raised database disk image is malformed. The underlying memories table was untouched.
The fix was to drop the external-content linkage entirely: memories_fts
is now a fully independent FTS5 table, rebuilt from memories on every
server start (cheap at personal-notes scale). memory_health() exists
specifically to catch this class of failure early — it does a real
(harmless, rowid=-999999) write against the index rather than trusting
integrity_check alone.
License
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.
Related MCP Servers
- AlicenseAqualityBmaintenanceA local, fully-offline MCP memory server that enables persistent storage and retrieval of information using SQLite with both keyword and semantic vector search capabilities.101312MIT
- Alicense-qualityDmaintenanceA local-first MCP memory server providing persistent, searchable memory for AI agents, powered by SQLite.11Apache 2.0
- Alicense-qualityDmaintenanceA local-first MCP server providing persistent, searchable knowledge base via SQLite, enabling AI agents to save and recall facts across sessions without cloud dependencies.MIT
- AlicenseAqualityBmaintenanceA local-first MCP server for durable agent memory using SQLite and FTS5, enabling knowledge graph storage, search, and recall for AI agents.201MIT
Related MCP Connectors
User-owned memory for AI agents, Copilot, Claude, IDEs, CLIs, and chat apps over remote MCP.
Private-by-default, local-first memory/context/task orchestrator for MCP apps and agents.
Person-owned, portable AI memory as a remote MCP server, readable and writable by any MCP client.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/macbyclp/memorry'
If you have feedback or need assistance with the MCP directory API, please join our Discord server