Skip to main content

Local-first MCP server that gives AI coding agents persistent, cited memory of their project's notes, decisions, commits, and logs.

Project description

Hermes Memory MCP

Local-first MCP server that gives AI coding agents persistent, cited memory of your project's notes, decisions, commits, and logs.

Status: v0.1.0a5 — adds local semantic embeddings (FastEmbed / ONNX, ~80 MB, no PyTorch) blended with FTS5 BM25 via Reciprocal Rank Fusion for hybrid lexical + semantic recall. Opt-in via the [embeddings] extra; the FTS-only path keeps working unchanged. 101 tests passing. Tracks the benchmark at Claude Code Amnesia Test.

What it does

Five MCP tools, brutally simple:

search_memory(query, scope="all", limit=10)        # ranked passages from your corpus
get_project_brief(repo_or_topic, as_of="now")      # current state of a topic, cited
find_decision(topic)                                # the actual ADR + any reversal chain
what_changed_since(reference)                       # diff against the last compile
check_claim_against_memory(claim)                   # flag stale or contradicted assumptions

Every response includes file_path (+ line_range once a4 lands) citations. No prose answers without sources.

Quickstart

# Install
pip install hermes-memory-mcp

# Optional: add the semantic embeddings extra (FastEmbed / ONNX, ~80 MB)
pip install 'hermes-memory-mcp[embeddings]'

# Index a project — walks the filesystem, classifies files (markdown / adr /
# code / log), and writes a SQLite FTS5 index to ~/.hermes-memory/<hash>/.
hermes-memory init ~/projects/my-app

# (a5) Populate embeddings on top of the index for semantic recall.
# Safe to re-run — only the NULL-embedding docs are encoded.
hermes-memory embed --root ~/projects/my-app

# Search it directly, no MCP client needed. --embeddings turns on hybrid
# FTS5 + cosine ranking via Reciprocal Rank Fusion.
hermes-memory ask "how do users sign in" --root ~/projects/my-app --embeddings

# Wire the MCP server into your client. Reads existing config, splices in
# the hermes-memory-mcp entry, leaves every other server entry untouched.
hermes-memory install-mcp claude-desktop
# (or: cursor, cline)

# Enable embeddings in the MCP server too (default off so the first MCP
# call doesn't surprise-download 80 MB of ONNX weights):
export HERMES_MEMORY_EMBEDDINGS=1

After install-mcp, restart your client. The five tools appear in the tool list automatically.

Why local-first

Every existing agent-memory MCP server I evaluated either (a) ships data to a third-party API, (b) requires a cloud index, or (c) requires extensive infra setup. None of those work for projects under NDA, on air-gapped networks, or for solo devs who don't want their notes leaving their laptop.

This server runs entirely on the user's machine. The index is a plain SQLite file. The corpus is the user's filesystem. The MCP transport is stdio. No network calls happen unless the user explicitly adds an embedding model that calls out (and a4 ships with a local default).

Status milestones

  • v0.1.0a1 — package scaffold, tool surfaces, citation contract, 6 tests passing
  • v0.1.0a2 — official MCP SDK stdio loop, per-tool JSON schemas, install-mcp writers for Claude Desktop / Cursor / Cline, 21 tests passing
  • v0.1.0a3 — filesystem walker, SQLite FTS5 index, working search_memory + find_decision + what_changed_since tools + hermes-memory init/ask CLI, 49 tests passing
  • v0.1.0a4 — all 5 tools wired; YAML frontmatter parser; ADR status parser with reversal-chain awareness (find_decision now groups hits into "currently in force" vs "superseded/historical"); wiki/markdown link extractor; 69 tests passing
  • v0.1.0a5 (this release) — opt-in semantic embeddings (FastEmbed / ONNX, no PyTorch) layered on FTS5 via Reciprocal Rank Fusion; hermes-memory embed CLI; --embeddings flag on ask; HERMES_MEMORY_EMBEDDINGS=1 env switch for the MCP server; FTS-only path unchanged when the extra isn't installed; 101 tests passing; PyPI publish
  • v0.1.0a5.1 — end-to-end demo against the Claude Code Amnesia Test sample project, ≥22/25 score
  • v0.1.0 — stable, install-ready

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

hermes_memory_mcp-0.1.0a6.tar.gz (48.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

hermes_memory_mcp-0.1.0a6-py3-none-any.whl (37.2 kB view details)

Uploaded Python 3

File details

Details for the file hermes_memory_mcp-0.1.0a6.tar.gz.

File metadata

  • Download URL: hermes_memory_mcp-0.1.0a6.tar.gz
  • Upload date:
  • Size: 48.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for hermes_memory_mcp-0.1.0a6.tar.gz
Algorithm Hash digest
SHA256 3473b0bb91369c1c2f00d2c2c600832d2050534ceafa652fba01ee8aa80e6204
MD5 4f34b09c5c917abc35e1b502858f16ea
BLAKE2b-256 23f17c1135bb4574af8341f22b5dcee58f63034a8fda9d8e6384d61dd0e30958

See more details on using hashes here.

File details

Details for the file hermes_memory_mcp-0.1.0a6-py3-none-any.whl.

File metadata

File hashes

Hashes for hermes_memory_mcp-0.1.0a6-py3-none-any.whl
Algorithm Hash digest
SHA256 567c7cd65b04cde6114e478d3181507012860f446f47795354089d21d074171e
MD5 9d2408c9633e03c0d7c040aea2c3baf3
BLAKE2b-256 38aeb70c88fdbfa4fc1e04d6f8dc244579d67b93a42b32623deb64a7067840b5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page