Yunaki Memory MCP

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.

Category
Visit Server

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 with YUNAKI_MEMORY_ROOT). Installing the server does not share memories between people — see Roadmap for memory_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 repoPath or pinned with the YUNAKI_REPO env 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 touch git inits the store, seeds repo.json + MEMORY.md, and commits.
  • One file per memory. Markdown + YAML frontmatter under <type>/<slug>.md — clean diffs, trivial merges. MEMORY.md is 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)

  1. memory_reinforce(id, outcome) — bump/decay confidence + usage_count instead of duplicating.
  2. Dedup-before-write — semantic/slug match so reinforcement replaces near-duplicates.
  3. memory_consolidate() — merge dupes, prune stale, and promote high-confidence memories into the skill's SKILL.md. That promotion (a git diff of the skill rewriting itself) is the payoff.
  4. Embedding rerank (Voyage) cached in the gitignored .index/.
  5. memory_sync() — push/pull each repo-memory git store to a remote for shared team memory.

License

MIT

Recommended Servers

playwright-mcp

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.

Official
Featured
TypeScript
Magic Component Platform (MCP)

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.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

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.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

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.

Official
Featured
TypeScript
Kagi MCP Server

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.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

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.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured