Yunaki Memory MCP
A git-backed per-repo memory layer for Claude Code, enabling persistent, version-controlled storage and retrieval of memories to build a self-evolving skill.
README
Yunaki Memory MCP
A git-backed, per-repo memory layer exposed as an MCP server — the substrate for a self-evolving Claude skill. Drop the skill into any git repo and a dedicated, version-controlled memory store materializes on first write. Every memory is a commit, so the skill's growth is a readable, revertible history.
Install & use
The server is stdio-based: each person runs their own copy locally, against their own repos. Pick whichever install fits — none requires editing an absolute path.
npx from GitHub (no npm publish needed):
claude mcp add yunaki-memory -- npx -y github:Nanda-Kiran/yunaki-memory-mcp
npx from npm (after npm publish):
claude mcp add yunaki-memory -- npx -y yunaki-memory-mcp
Clone & build (zero publishing):
git clone https://github.com/Nanda-Kiran/yunaki-memory-mcp.git
cd yunaki-memory-mcp && npm install && npm run build
claude mcp add yunaki-memory -- node "$(pwd)/dist/index.js"
Equivalent .mcp.json (commit this in any repo to share the config with collaborators):
{
"mcpServers": {
"yunaki-memory": {
"command": "npx",
"args": ["-y", "github:Nanda-Kiran/yunaki-memory-mcp"]
}
}
}
Memory is stored per-user under
~/.yunaki/memory/<repo-id>/(override withYUNAKI_MEMORY_ROOT). Installing the server does not share memories between people — see Roadmap formemory_sync.
Quick start
When you first adopt a repo, run memory_ingest once to seed memory with the repo's overview,
file structure, and docs. After that the skill accumulates memories as it works.
How it works
- Identity, not path. Memory is keyed to a repo's root-commit SHA (
git rev-list --max-parents=0 HEAD), which survives clone / rename / remote-move. Commit-less repos fall back to a UUID cached in.git/config. Path and remote URL are kept only as labels. - Repo discovery. The server resolves the active repo from its working directory (the Claude
Code CLI launches it inside your project), overridable per call via
repoPathor pinned with theYUNAKI_REPOenv var. - Central sidecar. Stores live at
~/.yunaki/memory/<repo-id>/— never pollutes the user's repo. - Ad hoc creation.
ensureRepoMemory(cwd)runs at the top of every tool call: resolves identity, and on first touchgit inits the store, seedsrepo.json+MEMORY.md, and commits. - One file per memory. Markdown + YAML frontmatter under
<type>/<slug>.md— clean diffs, trivial merges.MEMORY.mdis the rebuilt index (the cheap working set).
Tools
| Tool | Purpose |
|---|---|
memory_ingest |
Scan the repo and seed reference memories: overview (stack, scripts, file types), file tree, and docs. Idempotent. |
memory_write |
Persist a memory (fact/heuristic/failure/success/preference/reference) — commits it |
memory_search |
Retrieve memories for the current repo, ranked by keyword × confidence |
memory_repo_info |
Show resolved identity + memory location for the current repo |
All accept an optional repoPath; otherwise they resolve against the server's cwd.
Develop
npm install
npm run build
npm run smoke # core write/search loop
node test/ingest-smoke.mjs # ingest against this repo
Roadmap (the "self-evolving" half)
memory_reinforce(id, outcome)— bump/decayconfidence+usage_countinstead of duplicating.- Dedup-before-write — semantic/slug match so reinforcement replaces near-duplicates.
memory_consolidate()— merge dupes, prune stale, and promote high-confidence memories into the skill'sSKILL.md. That promotion (a git diff of the skill rewriting itself) is the payoff.- Embedding rerank (Voyage) cached in the gitignored
.index/. memory_sync()— push/pull each repo-memory git store to a remote for shared team memory.
License
MIT
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.