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

IHMT Memory

by gonzaromanversion 1.2.1i★ –iRuns on your computer
Registry nameio.github.gonzaroman/ihmt-memory

Install

Overview

Description from the maker (original English)

Long-term memory for AI coding agents, stored as a tree of plain local files.

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: IHMT_HOME

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

Run this in your terminal

claude mcp add ihmt-memory --env IHMT_HOME=your-value -- uvx ihmt-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": {
    "ihmt-memory": {
      "command": "uvx",
      "args": [
        "ihmt-memory"
      ],
      "env": {
        "IHMT_HOME": "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": {
    "ihmt-memory": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "ihmt-memory"
      ],
      "env": {
        "IHMT_HOME": "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

  • IHMT_HOME env
    Folder that holds the memory (created on first use). Defaults to ~/.ihmt.

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

  • ✓ Pass

    Maker matches the repo

    The registry name was verified with the GitHub account gonzaroman, 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 7264 servers in this category
  • Published to the registry more recently than 62% of the other 7264 servers in this category
  • Basic checks equal to or better than 100% of the other 7264 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 IHMT 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.2.1) reached the registry 23 days 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 yesterday
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 21 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 last month
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.

IHMT — Infinite Hierarchical Memory Tree

Long-term memory for your AI coding agents. Tell your agent something once — a decision, how your setup works, a correction — and it remembers it in every future session, in any project, with any of your agents.

What IHMT does

  • Remembers across sessions. Decisions and their reasons, your environment, your preferences, people and projects, corrections. Your agent searches the memory before answering and saves what lasts, so you stop repeating yourself.
  • One memory for all your agents and models. Claude Code, Codex and opencode can share the same memory: what one saves, the others find. Tested with models from Anthropic, OpenAI, Google and Meta.
  • Saves tokens. Instead of pasting your notes or re-explaining context every session, the agent retrieves only what the question needs — typically 200–900 tokens, whether the memory holds 50 entries or 50,000, because search walks a tree instead of reading everything. Honest numbers, including where it does *not* save.
  • Understands time. When something changes ("I moved to Valencia", "staging is on PostgreSQL 17 now"), the old memory is kept as history, flagged OUTDATED, and searches answer with the current one first. Where you live, where you work and your stack are tracked automatically; any other correction is linked when the agent saves it with replaces. When a question is ambiguous ("Luis" — which one?), it asks instead of guessing.
  • Portable. Your memory is one folder of plain text files. Copy it to another computer, back it up, or put it under version control — it works wherever you put it.
  • Local, private and readable. No cloud, no database, no account: IHMT stores everything on your disk and sends nothing anywhere. (The memories your agent retrieves reach its model like any other context.) Every memory is a text file you can open, and each person who installs IHMT starts with their own, empty memory.

Compatibility. Officially supported: Claude Code. Also tested: Codex (CLI and the

ChatGPT desktop app — setup) and opencode

(setup). IHMT is a standard stdio MCP server, so any

agent that supports local MCP servers should work — GitHub Copilot, Antigravity, Cursor, Windsurf,

Gemini CLI, Claude Desktop… — and INSTALL.md knows how to configure them, but we have

not tested those yet. All of them can share one memory.

Install

Before you start
You needWhy
Python 3.10 or newerIHMT is written in Python
gitto download IHMT and keep it updated
An AI agent that can run commands (Claude Code, Codex, opencode, Copilot in agent mode…)it installs IHMT and then uses the memory
Internet, during the installationto download the code and the MCP package; not needed afterwards

Missing Python or git? Your AI agent installs them for you (it is instructed to ask you first). Python goes in your user folder, with no administrator password, so nothing system-wide changes. On a brand-new Mac, git may need one click: Apple shows a window asking to install its command-line tools.

On a Mac, note that the python3 that comes with macOS is version 3.9, which is too old — that is why your agent may say Python is missing even though python3 exists.

You do not need administrator rights, a database, an account, or any paid service beyond your agent. Tested on macOS and Linux (Ubuntu); on Windows the instructions are included but not tested yet. Details: GUIDE.md §3.

Let your AI agent install it

Paste this into the AI agent you want to give a memory to — Claude Code, Codex and opencode are tested; GitHub Copilot, Antigravity, Cursor, Windsurf, Gemini CLI, Claude Desktop and other MCP clients should work too:

Install the IHMT memory MCP server for me from https://github.com/gonzaroman/IHMT-MEMORY — follow the instructions in its INSTALL.md.

The agent follows INSTALL.md: it downloads IHMT to ~/IHMT-MEMORY, keeps your memory in ~/.ihmt, registers the server with itself only, adds the usage instructions, and tells you what it did. Then start a new session so the memory tools load.

Using several agents? Paste the same prompt in each one, whenever you want. If IHMT is already installed — say you have used it with Claude for months and now want it in Codex — the agent finds that installation, updates it if it safely can, and connects to the same memory, so it knows what you told the others from day one.

It needs an agent that can run terminal commands or edit files; chat-only assistants in a browser cannot install anything.

Manual install

Requirements: Python 3.10+, git, and your agent's CLI.

git clone https://github.com/gonzaroman/IHMT-MEMORY.git ~/IHMT-MEMORY

cd ~/IHMT-MEMORY python3 -m venv .venv .venv/bin/pip install -r requirements-mcp.txt mkdir -p ~/.ihmt

Claude Code

claude mcp add ihmt-memory -s user -e IHMT_HOME="$HOME/.ihmt" -- "$PWD/.venv/bin/python" "$PWD/mcp_server.py"

claude mcp list # ihmt-memory … ✔ Connected

The server name must come before -e. Then append templates/memory-instructions.md to ~/.claude/CLAUDE.md.

Codex — codex mcp add ihmt-memory --env IHMT_HOME="$HOME/.ihmt" -- "$PWD/.venv/bin/python" "$PWD/mcp_server.py", then add default_tools_approval_mode = "approve" to the [mcp_servers.ihmt-memory] table in ~/.codex/config.toml (above its env table) and append the template to ~/.codex/AGENTS.md. Details.

opencode — add an "ihmt-memory" entry ("type": "local", "command": [ , ], "environment": {"IHMT_HOME": }) to the "mcp" object of ~/.config/opencode/opencode.json, and append the template to ~/.config/opencode/AGENTS.md. Details.

Windows, the project scope, the graphical setup and troubleshooting are all in the guide.

Install from PyPI (uvx)

No clone and no venv: uv downloads and runs the ihmt-memory package. The memory goes to ~/.ihmt; set IHMT_HOME to use another folder (for example, a memory you already have).

Claude Code

claude mcp add ihmt-memory -s user -- uvx ihmt-memory

claude mcp list # ihmt-memory … ✔ Connected uvx ihmt-memory --instructions >> ~/.claude/CLAUDE.md

Codex — codex mcp add ihmt-memory -- uvx ihmt-memory, add default_tools_approval_mode = "approve" to the [mcp_servers.ihmt-memory] table in ~/.codex/config.toml, and run uvx ihmt-memory --instructions >> ~/.codex/AGENTS.md.

opencode — add an "ihmt-memory" entry ("type": "local", "command": ["uvx", "ihmt-memory"]) to the "mcp" object of ~/.config/opencode/opencode.json, and run uvx ihmt-memory --instructions >> ~/.config/opencode/AGENTS.md.

The last step matters with any install: the instructions are what make the agent search before answering and save corrections. pipx install ihmt-memory works too, with ihmt-memory in place of uvx ihmt-memory.

New here? Read [`GUIDE.md`](GUIDE.md) — everyday use, step by step, with real outputs. The rest of this README is the technical reference.


How it works

A universal, domain-agnostic long-term memory for LLMs, stored as a recursive tree of plain files on the local disk. No vector database, no server, no third-party dependencies — Python 3.10+ and the standard library.

Instead of embedding everything into one flat index and scanning it, IHMT organizes knowledge into a tree: raw text leaves at the bottom, recursive JSON summaries above them, and a single root.json trunk at the top. A query walks that tree — root → branch → branch → leaf — so the number of files opened grows with the *depth* of the tree (≈ beam × log_B(n)), not with the amount stored.

Flat RAGIHMT
Retrieval costscan / ANN over all *n* chunksbeam × log_B(n) file reads
Structurenone — a bag of vectorsexplicit hierarchy, inspectable
Chunkingfixed character windowssyntax-, scene- and date-aware
Stale factsserved silentlysuperseded, dated, and flagged
Ambiguityreturns a plausible guessasks you for a clue
Storagebinary indexUTF-8 .txt + JSON you can read

Quick start

python3 gui.py                       # graphical interface: set up, browse, inspect

python3 init_ihmt.py # or from the terminal: create ./ihmt_memory python3 main.py demo # full walkthrough in ./demo_workspace python3 -m unittest discover -v # stdlib only; MCP tests skip without the SDK

Then use it on your own material:

python3 main.py ingest ~/notes ~/project/src/Main.java

python3 main.py consolidate --force python3 main.py search "how did we handle stock reservations" python3 main.py ask "Luis" # interactive clue loop python3 main.py conflicts # what changed over time

As a library:

from ihmt import IHMT

memory = IHMT.initialize("./workspace") memory.ingest_file("examples/InventoryService.java") memory.ingest_file("examples/journal_personal.txt") memory.flush() # close the tree up to the root

answer = memory.search("reserveStock soft hold") print(answer.best.content) # the leaf print(answer.best.path) # ['root', 'N1-software.java-…', 'L-software.java-…'] print(answer.node_reads) # how many branch files were opened

for notice in memory.notices(): print(notice) # "On 2024-03-11 you said user location = 'Madrid', but on 2026-02-03 you updated to 'Valencia'."


Graphical interface

python3 gui.py                       # opens a browser at 127.0.0.1

python3 gui.py --path ~/my-memory --port 8765 --no-browser

Still zero dependencies — the server is http.server from the standard library, it listens only on the loopback interface, and every /api/* call needs the random token carried in the URL it opens.

Four screens: Set up (pick the memory folder with the system dialog, create the store, choose between per-project and global registration, preview the exact command or JSON before anything is written), Explore (collapsible tree down to the stored text, with supersession notices), Diagnose (a search that reports confidence, files opened vs. total, and the descent path), and Timeline (active vs. historical values and the detected contradictions). The interface is bilingual (ES/EN) and read-only over the memory: it never deletes or edits a leaf.


Use it from Claude Code (MCP)

mcp_server.py exposes the tree to Claude Code as nine tools in three families: long-term memory, project indexes and session scratch memory. The core stays dependency-free; the SDK is an optional extra:

python3 -m venv .venv

.venv/bin/pip install -r requirements-mcp.txt # mcp[cli]>=2.0

For a single project, copy .mcp.json.example to that project's .mcp.json and fill in the absolute p

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

Ask PopNx