hmem — Humanlike Memory for AI Agents
Persistent 5-level hierarchical memory for AI agents.
Connector by Bumblebiber · GitHub account verified by the MCP Registry
Install
Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.
npx agentmarket install connector/bumblebiber-hmem-mcp
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this server can do and what it asks for, from its tool list and install config. Checked Oct 25, 2026.
- Tools
- 7 read · 11 write · 4 delete · 2 not yet classified
- Secrets
- None asked for
- Install scripts
- Not scanned yet
- Runs as
- Node.js package
Tools by what they do 24
Read from the source code; the running server may list different tools.
Read 7 · Look things up without changing anything.
find_relatedlist_projectsmemory_healthmemory_statsread_memoryread_projectsearch_memory
Write 11 · Create, change, send or run things.
append_memorycreate_projectimport_memorymove_memorymove_nodesrename_idset_active_devicetag_renameupdate_manyupdate_memorywrite_memory
Delete 4 · Delete, drop, revoke or wipe things.
deleteflush_contextreset_memory_cachetag_bulk
Not yet classified 2 · We could not tell from the name and description.
export_memoryload_project
Secrets and settings it asks for
Other settings (environment variables or headers).
HMEM_STORAGE_DIR
Files it touches
- Any path the agent passes to its tools
Tools (24)
Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].
append_memoryAppend new child nodes to an existing memory entry or node (your own personal memory). Existing children are preserved — new nodes are added after them. Use this to extend an existing entry with additional detail without overwriting it. Content uses tab indentation relative to the parent: 0 tabs = direct child of id 1 tab = grandchild, etc. Two modes: Simple (title+body): append_memory(id='L0003', title='New finding', body='Detailed explanation') Complex (full sub-tree): append_memory(id='L0003', content='New finding\n\tSub-detail\n\t\tDeep') Examples: append_memory(id='P0048.6',…
create_projectCreate a new project with the standard R0009 schema. Automatically creates: 1. P-entry with all 9 L2 sections (Overview, Codebase, Usage, Context, Deployment, Bugs, History, Roadmap, Ideas) 2. Matching O-entry for session logging (O00XX ↔ P00XX) Example: create_project({ name: 'Carlo Auftrag', tech: 'Python/SAP', description: 'SAP Freigabe-Automatisierung' })
deletePermanently delete a memory entry or sub-node by ID. For root entries: deletes the entire entry with all sub-nodes and tags. For sub-nodes: deletes only that node and its subtree. ⚠️ IRREVERSIBLE — no undo. Use with caution.
export_memoryExport your memory, excluding secret entries and secret sub-nodes. Use for sharing, backup, or publishing a sanitized version of your memory.
find_relatedFind entries related to the given entry. Uses tag overlap first (intentional connections, marked [T]), then FTS5 keyword matching as supplement (marked [~]). Use to discover connections or spot potential duplicates.
flush_contextStore a conversation chunk as linear context history (O-prefix). The AI does the summarization: chunk raw text by topic, then summarize progressively. Recommended: provide L1 (title) + L2 (paragraph summary) + L5 (raw text). L3/L4 are optional intermediate levels for extra detail. O-entries are hidden from bulk reads but discoverable via search, tags, and context_for. Use during /save to preserve raw session context alongside curated P/L/D/E entries.
import_memoryImport entries from a .hmem file into your memory. Deduplicates by L1 content (merges sub-nodes), remaps IDs on conflict.
list_projectsList all projects (P-entries) with their IDs and titles. Minimal output for checkpoint agents.
load_projectLoad a project and activate it. Returns L2 content + L3 titles — the perfect project briefing. Also marks the project as active (deactivates any previously active project in the same prefix). Use this when starting work on a project. It combines read_memory(id, depth=3) + update_memory(active=true) in one call. Example: load_project({ id: 'P0048' }) Returns: Overview, Codebase, Usage, Context, etc. with L3 subcategory titles.
memory_healthAudit report for your memory: broken links (links pointing to deleted entries), orphaned entries (no sub-nodes), stale favorites/pinned (not accessed in 60 days), broken obsolete chains ([✓ID] pointing to non-existent entries), and tag orphans (tags with no matching entry). Run before/after a curation session.
memory_statsShows budget status of your memory: total entries by prefix, nodes, favorites, pinned, most-accessed, oldest entry, stale count (not accessed in 30 days), unique hashtags, and avg nodes per entry.
move_memoryMove a sub-node (and its entire subtree) to a different parent, updating all ID references. source_id must be a sub-node (e.g. 'P0029.15'), not a root entry. target_parent_id is the new parent: a root entry (e.g. 'L0074') or a sub-node (e.g. 'P0029.20'). Use during curation to reorganize entries into the correct hierarchy.
move_nodesMove session (L2), batch (L3), or exchange (L4) nodes between O-entries. Handles ID rewriting, tag migration, and cleanup of empty parents.
read_memoryRead from your hierarchical long-term memory (.hmem). At startup, you received all Level 1 entries (rough summaries). Use this tool to drill deeper into specific memories. Query modes: - By ID: read_memory({ id: 'P0001' }) → L1 + direct L2 children (one level at a time) - By node ID: read_memory({ id: 'P0001.2' }) → that node's content + its direct children - By prefix: read_memory({ prefix: 'L' }) → All Lessons Learned (Level 1) - By time: read_memory({ after: '2026-02-15', before: '2026-02-17' }) - Search: read_memory({ search: 'SSE' }) → Full-text search across all levels - Time-around: re…
read_projectRead a project's context without activating it — for cross-project reference. Returns a focused briefing (Overview, Codebase titles, Usage, Context, Requirements titles, Roadmap titles) without session history, rules injection, or changing the active project. Example: read_project({ id: 'P0048' }) Use this when working on Project A but needing context about Project B.
Show 9 more tools
rename_idAtomically rename a memory entry or node ID and update ALL references across the database. Works for root entries (e.g. 'P0099' → 'P0100') and sub-nodes (e.g. 'P0054.19' → 'P0054.6'). Renames: root entry, all child nodes, tags, FTS index, links in other entries, obsolete markers. Use for schema corrections (misplaced sections), ID collisions, or post-sync conflict resolution. Example: rename_id({ old_id: 'P0048', new_id: 'P0052' })
reset_memory_cacheClear the session cache of the hmem server so all entries are treated as unseen again. The next bulk read will behave like the first read of a fresh session (full Fibonacci slots, no suppressed entries). Use when you need a clean slate — e.g., after a major topic change or when you suspect important entries were suppressed.
search_memorySearches the collective memory: agent memories (lessons learned, evaluations), and optionally personalities, project documentation, and skills. Use this tool to learn from past experiences before starting a task.
set_active_deviceSet the active device for this machine. Call this once after identifying which machine you are on. The device ID must be an I-entry (Infrastructure entry) in hmem. Writes ~/.hmem/active-device so all future sessions on this machine know their device. Also updates the statusline display immediately. Example: set_active_device({ id: 'I0002' })
tag_bulkApply tag changes (add and/or remove) to all entries matching a filter. Filter by prefix, full-text search, or existing tag. Returns the number of entries modified. Also use tag_rename to rename a tag across all entries.
tag_renameRename a hashtag across all entries and nodes. Example: tag_rename(old_tag='#sqlite', new_tag='#db') renames every occurrence.
update_manyBatch-update multiple memory entries at once. Applies the same flag(s) to all listed IDs. Use this instead of calling update_memory multiple times during curation. Example: update_many(ids=['T0005', 'T0012', 'L0044'], irrelevant=true)
update_memoryUpdate the text of an existing memory entry or sub-node (your own personal memory). Only modifies the text at the specified ID — children are preserved unchanged. Use cases: - Update title only: update_memory(id='L0003', content='corrected summary') - Update body only: update_memory(id='L0003', body='New detailed body text.') ← title preserved - Update title+body: update_memory(id='L0003', content='Short title', body='Detailed body text.') - Fix a sub-node: update_memory(id='L0003.2', content='node title', body='node body') - Mark as obsolete: FIRST write the correction, THEN update with [✓I…
write_memoryDescription is built at runtime.
Signals
- Stars
- 24
- Forks
- 5
- Open issues
- 0
- Last commit
- Jul 21, 2026 (3 months ago)
- Last release
- May 24, 2026 (5 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- Registry name
io.github.Bumblebiber/hmem-mcp- Version
- 1.6.7
- Auth
- No auth
- Packages
- npm hmem-mcp
- License
- MIT
- Repository
- github.com/Bumblebiber/hmem
- First seen
- Oct 24, 2026
- Last checked
- Oct 25, 2026
Cite this page
hmem — Humanlike Memory for AI Agents MCP server. Agent Mart. https://agentmart.dev/connectors/bumblebiber-hmem-mcp (last updated 2026-10-25)