Prototype · Preview: every server in the official registry, synced every 30 minutes. Reviews and accounts come in a later step.
PopNx MCPMCP servers for people who use AI · explained in plain words

Code Memory

by kapillamba4version 1.0.33i★ –iRuns on your computer
Registry nameio.github.kapillamba4/code-memory

Install

Overview

Description from the maker (original English)

Local semantic code search with Git history. Works offline, no API key needed.

PopNx MCP’s three pillars

These three are never merged into one score: opinions, measurements and popularity are different things.

What you can do with it

We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.

  • Connection: Runs on your computer
  • Transport: stdio
  • Category: Search & AI memory

Install

Pick the AI app you use, then copy the settings.

Before you install

  • Basic checks: 1 of 1 passed
  • Runs on your computer with your user’s permissions (files, network, apps).
  • You fill in yourself: CODE_MEMORY_LOG_LEVEL, EMBEDDING_MODEL

You need

  • PyPIPython’s uv installed (for the uvx command)

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": {
    "code-memory": {
      "command": "uvx",
      "args": [
        "code-memory"
      ],
      "env": {
        "CODE_MEMORY_LOG_LEVEL": "your-value",
        "EMBEDDING_MODEL": "your-value"
      }
    }
  }
}

Run this in your terminal

claude mcp add code-memory --env CODE_MEMORY_LOG_LEVEL=your-value --env EMBEDDING_MODEL=your-value -- uvx code-memory

Fill in the empty values before running it.

Open in Cursor

Or copy the settings yourself

Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json

{
  "mcpServers": {
    "code-memory": {
      "command": "uvx",
      "args": [
        "code-memory"
      ],
      "env": {
        "CODE_MEMORY_LOG_LEVEL": "your-value",
        "EMBEDDING_MODEL": "your-value"
      }
    }
  }
}

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.

Open in VS Code

Or copy the settings yourself

Paste into .vscode/mcp.json in your project

{
  "servers": {
    "code-memory": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "code-memory"
      ],
      "env": {
        "CODE_MEMORY_LOG_LEVEL": "your-value",
        "EMBEDDING_MODEL": "your-value"
      }
    }
  }
}

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.

Values you fill in

  • CODE_MEMORY_LOG_LEVEL env
    Logging verbosity (DEBUG, INFO, WARNING, ERROR)
  • EMBEDDING_MODEL env
    HuggingFace model ID for embeddings

These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.

What it can do

Runs on your computer; the tool list appears in your AI app after you install it.

Basic checksi

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 6, 2026

  • ✓ Pass

    Maker matches the repo

    The registry name was verified with the GitHub account kapillamba4, which owns the repo

  • … Not checked yet

    Still maintained

    We have not read this repo from GitHub yet

  • … Not checked yet

    Has a licence

    We have not read this repo from GitHub yet

  • – Not applicable

    Endpoint responds

    This one runs on your computer; there is no internet endpoint

  • – Not applicable

    Sign-in with OAuth

    Runs on your computer and uses local settings instead

  • … Not checked yet

    No hidden instructions in tool descriptions

    Runs on your computer; we can only read tool lists from internet endpoints

Compared with others in Search & AI memoryi

  • More stars than 0% of the other 7223 servers in this category
  • Published to the registry more recently than 13% of the other 7223 servers in this category
  • Basic checks equal to or better than 100% of the other 7223 servers in this category

Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.

Common questions

Is Code Memory safe?

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.

What keys or codes does it need?

The registry does not list a required key, though some servers ask you to sign in on first use.

Does it run on my computer or in the cloud?

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).

Is it still maintained?

The GitHub repo last changed –, and the latest version (1.0.33) reached the registry 6 months ago.

Which apps can use it?

Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Python (uv) on your computer.

What can I use instead?

In the same category: Context7, Codebase Memory, Exa

Alternatives

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

Context7

by upstash

Feeds AI the latest docs for libraries and frameworks before it answers, so code it writes does not use outdated, removed functions.

Computer or cloud★ 64,224MITUpdated 3 days ago
Install

Codebase Memory

by DeusData

Codebase knowledge graph for AI agents — 162 languages, sub-ms queries, 99% fewer tokens.

Runs on your computer★ 48,148MITUpdated 20 days ago
Install

Exa

by exa-labs

Connect AI agents to Exa for web search, content fetching, and multi-step research.

Runs in the cloud★ 5,213MITUpdated 44 days ago
Install

README from the maker

Open the README

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.

code-memory

A deterministic, high-precision code intelligence layer exposed as a Model Context Protocol (MCP) server.

  • Zero telemetry — your code never leaves your machine
  • No API key required — runs entirely locally with sentence-transformers
  • 1 min setup — just uvx code-memory and you're ready
  • Token saving by 50% — precise code retrieval instead of dumping entire files

Please help star code-memory if you like this project!

Why code-memory?

Finding the right context from a large codebase is expensive, inaccurate, and limited by context windows. Dumping files into prompts wastes tokens, and LLMs lose track of the actual task as context fills up.

Instead of manually hunting with grep/find or dumping raw file text, code-memory runs semantic searches against a locally indexed codebase. Inspired by claude-context, but designed from the ground up for large-scale local search.

Supported Languages

Full AST Support (structural parsing with symbol extraction): Python, JavaScript/TypeScript, Java, Go, Rust, C/C++, Ruby, Kotlin

Fallback Support (whole-file indexing): C#, Swift, Scala, Lua, Shell, Config (yaml/toml/json), Web (html/css), SQL, Markdown

Files matching .gitignore patterns are automatically skipped.

Architecture: Progressive Disclosure

Instead of a single monolithic search, code-memory routes queries through three purpose-built tools:

Question TypeToolData Source
"Where / What / How?" — find definitions, references, structure, semantic searchsearch_codeBM25 + Dense Vector (SQLite vec)
"Architecture / Patterns" — understand architecture, explain workflowssearch_docsSemantic / Fuzzy
"Who / Why?" — debug regressions, understand intentsearch_historyGit + BM25 + Dense Vector (SQLite vec)
"Setup / Prepare" — index parsing & embedding generationindex_codebaseAST Parser + sentence-transformers

This forces the LLM to pick the *right retrieval strategy* before any data is fetched.

Installation

From PyPI (Recommended)
# Install with pip

pip install code-memory

Or with uvx (for MCP hosts)

uvx code-memory

From Source
# Clone the repo

git clone https://github.com/kapillamba4/code-memory.git cd code-memory

Install dependencies

uv sync

Run the MCP server (stdio transport)

uv run mcp run code_memory/server.py

Pre-built Binaries (Standalone)

Download standalone executables from GitHub Releases — no Python installation required.

PlatformArchitectureFile
Linuxx86_64code-memory-linux-x86_64
macOSx86_64 (Intel)code-memory-macos-x86_64
macOSARM64 (Apple Silicon)code-memory-macos-arm64
Windowsx86_64code-memory-windows-x86_64.exe
# Linux/macOS: Download and make executable

chmod +x code-memory-* ./code-memory-*

Windows: Run directly

code-memory-windows-x86_64.exe

Note: The first run will download the embedding model (~600MB) to ~/.cache/huggingface/. Subsequent runs use the cached model.

Quickstart

Prerequisites
  • Python ≥ 3.13
  • uv package manager (recommended) or pip

Install uv if you don't have it:

curl -LsSf https://astral.sh/uv/install.sh | sh
Install & Run
# Install from PyPI

pip install code-memory

Or run directly with uvx

uvx code-memory

Development
# Run with the MCP Inspector for interactive debugging

uv run mcp dev code_memory/server.py

Run tests

uv run pytest tests/ -v

Lint and format

uv run ruff check . uv run ruff format .

Build package

uv build

Build standalone binary (requires pyinstaller)

pip install pyinstaller pyinstaller --clean code-memory.spec

Binary output: dist/code-memory

Configure Your MCP Host

You can use either uvx (requires Python) or the standalone binary (no dependencies).

Using uvx (Python required)
Gemini CLI / Gemini Code Assist

Add to your MCP settings (e.g. ~/.gemini/settings.json):

{

"mcpServers": { "code-memory": { "command": "uvx", "args": ["code-memory"] } } }

Claude Desktop

Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

{

"mcpServers": { "code-memory": { "command": "uvx", "args": ["code-memory"] } } }

Claude Code (CLI)

Add to .mcp.json in your project root or ~/.mcp.json for global access:

{

"mcpServers": { "code-memory": { "command": "uvx", "args": ["code-memory"] } } }

VS Code (Copilot / Continue)

Add to .vscode/mcp.json in your workspace:

{

"servers": { "code-memory": { "command": "uvx", "args": ["code-memory"] } } }

Using Standalone Binary (No Python required)

Replace the path with the location of your downloaded binary:

{

"mcpServers": { "code-memory": { "command": "/path/to/code-memory-linux-x86_64" } } }

For Windows:

{

"mcpServers": { "code-memory": { "command": "C:\\path\\to\\code-memory-windows-x86_64.exe" } } }

Shared SSE Server (Reduce Memory Usage)

By default, each MCP host project launches its own code-memory process, which loads the embedding model (~1–2 GB) once per project. To avoid this, you can run a single shared instance over SSE (Server-Sent Events) and point all your MCP hosts at it.

Start the shared server
# Using uvx (recommended)

uvx code-memory --transport sse

Custom port and host

uvx code-memory --transport sse --port 8765 --host 127.0.0.1

Using standalone binary

./code-memory-linux-x86_64 --transport sse

The server listens on http://127.0.0.1:8765/sse by default.

Configure MCP hosts to use the shared server

Instead of launching a new process, point your MCP host at the running SSE endpoint.

Claude Desktop
{

"mcpServers": { "code-memory": { "url": "http://127.0.0.1:8765/sse" } } }

VS Code (Copilot / Continue)
{

"servers": { "code-memory": { "url": "http://127.0.0.1:8765/sse" } } }

Claude Code (CLI) — .mcp.json
{

"mcpServers": { "code-memory": { "url": "http://127.0.0.1:8765/sse" } } }

Tip: Configure uvx code-memory --transport sse to start via a single-instance service manager (e.g. systemd user service, launchd agent, or another one-time login/startup mechanism) so the shared server starts automatically.

Security: The SSE endpoint is unauthenticated. Keep the default --host 127.0.0.1 so only local processes can connect; do not bind to 0.0.0.0 or a public interface unless you've put authentication in front of it.

Configuration

CLI Options
OptionDescriptionDefault
--transportTransport protocol: stdio or ssestdio
--portPort for SSE transport (only when --transport sse is used)8765
--hostHost/bind address for SSE transport (only when --transport sse is used)127.0.0.1
Environment Variables
VariableDescriptionDefault
CODE_MEMORY_LOG_LEVELLogging verbosity (DEBUG, INFO, WARNING, ERROR)INFO
EMBEDDING_MODELHuggingFace model ID for embeddingsjinaai/jina-code-embeddings-0.5b

Example:

CODE_MEMORY_LOG_LEVEL=DEBUG uvx code-memory
Custom Embedding Model

You can use a different embedding model by setting the EMBEDDING_MODEL environment variable:

EMBEDDING_MODEL="BAAI/bge-small-en-v1.5" uvx code-memory

For MCP hosts, add the environment variable to your configuration:

{

"mcpServers": { "code-memory": { "command": "uvx", "args": ["code-memory"], "env": { "EMBEDDING_MODEL": "BAAI/bge-small-en-v1.5" } } } }

Note: Changing the embedding model will invalidate existing indexes. You'll need to re-run index_codebase after switching models.

Tools

index_codebase

Indexes or re-indexes source files and documentation in the given directory. Run this before using search_code or search_docs to ensure the database is up to date. Uses tree-sitter for language-agnostic structural extraction and generates dense vector embeddings using sentence-transformers (runs locally, in-process) for semantic search.

index_codebase(directory=".")
search_code

Perform semantic search and find structural code definitions, locate where functions/classes are defined, or map out dependency references (call graphs). Uses hybrid retrieval (BM25 + vector embeddings) to find exact matches and semantic similarities.

search_code(query="parse python files", search_type="definition")

search_code(query="how do we establish the database connection", search_type="references") search_code(query="src/auth/", search_type="file_structure")

search_docs

Understand the codebase conceptually — how things work, architectural patterns, SOPs. Searches markdown documentation, READMEs, and docstrings extracted from code.

search_docs(query="how does the authentication flow work?")

search_docs(query="installation instructions", top_k=5)

search_history

Debug regressions and understand developer intent through Git history.

search_history(query="fix login timeout", search_type="commits")

search_history(query="src/auth/login.py", search_type="file_history", target_file="src/auth/login.py") search_history(query="server.py", search_type="blame", target_file="server.py", line_start=1, line_end=20)

Project Structure

code-memory/

├── code_memory/ # Package source │ ├── server.py # MCP server entry point (FastMCP) │ ├── db.py # SQLite database layer with sqlite-vec │ ├── parser.py # Tree-sitter-based code parser │ ├── doc_parser.py # Markdown documentation parser │ ├── queries.py # Hybrid retrieval query layer │ ├── git_search.py # Git history search module │ ├── errors.py # Custom exception hierarchy │ ├── validation.py # Input validation functions │ ├── logging_config.py # Structured logging configuration │ └── api_types.py # MCP response TypedDicts ├── tests/ # Test suite ├── pyproject.toml # Project metadata & dependencies └── prompts/ # Milestone prompt engineering files

Troubleshooting

"Git repository not found" error

Make sure you're running search_history from within a git repository. The tool searches upward from the current directory to find .git.

Empty search results

Run index_codebase(directory=".") first to index your code and documentation. The index is stored locally in code_memory.db.

Slow indexing

Indexing generates embeddings using a local sentence-transformers model. The first run downloads the model (~600MB for jina-code-embeddings-0.5b). Subsequent runs are faster.

Embedding model errors

Ensure you have enough disk space and memory. The jina-code-embeddings-0.5b model requires ~1GB RAM when loaded.

Privacy & Security

**Your code never leaves your

Only the beginning is shown; read the rest in the repo

Ask PopNx