Humaux Memory

Persistent long-term memory for AI agents over one remote MCP connection.

Community: Submitted by a user or imported; check the owner before granting accessOnlineNo sign-inGlobalFreeRead-only

What it can do

  • Memory Search: Semantic search across all memory layers. Automatically includes results from both your private memories and the shared public knowledge pool (built from high-quality internalized memor
  • Memory Enumerate: Enumerate the COMPLETE set of memories matching a structured filter — every rejected decision for a project, every lesson, every fix. Unlike memory_search (semantic top-k, returns on
  • Memory Grep: EXACT-SUBSTRING search (case-insensitive, deterministic) over the RAW title+content of every memory visible to your team (private + shared public pool). Zero LLM, zero embeddings: the pat

What data it sees

Do you need an account

No: the server works without sign-in

Persistent long-term memory for AI agents over one remote MCP connection. Store decisions, lessons and documents; recall them semantically in any later session; enumerate complete sets with truthful totals instead of top-k guesses.

  • Memory — semantic store/recall with time-aware deduplication
  • Complete enumeration — "every decision", "all rejected approaches", with real totals and coverage
  • Per-project ledgers — current state, rejected paths, lessons, known issues
  • Shared task canvas — task state outside the context window, so another agent can resume mid-task
  • Knowledge graph — entities, relations and supersession links
  • Documents — upload and search your own files
  • Multi-agent coordination — task claims and resource locks with leases

One-click OAuth sign-in, no API key to paste. Bring your own LLM provider key for distillation. Free tier available.

How to connect

How to connect Humaux Memory to Claude

The server address to paste into Claude settings:

https://humaux-memory--luolimoa.run.tools

  1. Open Claude (claude.ai or the desktop app).
  2. Go to Settings → Connectors.
  3. Click Add custom connector.
  4. Paste the server address copied below into Remote MCP server URL and click Add.
  5. In a chat, click + → Connectors and switch the new connector on.

Custom connectors are available on Free, Pro, Max, Team and Enterprise plans (Free is limited to one). On Team and Enterprise an organization Owner adds the connector first under Organization settings → Connectors.

Authorization

After you click Add, a sign-in window for the service opens. Sign in with your own account and approve access. Claude never sees your password.

How to connect Humaux Memory to ChatGPT

The server address to paste into ChatGPT settings:

https://humaux-memory--luolimoa.run.tools

  1. Open ChatGPT in a browser (chatgpt.com). A Plus, Pro, Business, Enterprise or Edu plan is required.
  2. Turn on developer mode once: Settings → Apps → Advanced settings → Developer mode.
  3. Open Settings → Connectors and click Create.
  4. Fill in the form: Name (anything), Description (one line about what the service does), MCP server URL (copy it below).
  5. Under Authentication choose OAuth if the service requires sign-in, otherwise None. Click Create.
  6. In a new chat open + → Apps/Connectors and enable the connector.

OpenAI has renamed this section before (Connectors → Apps/Plugins). If the label differs, search settings for "developer mode". On Business/Enterprise workspaces an admin must allow custom connectors first.

Authorization

On first use ChatGPT opens the service's sign-in window. Sign in and approve access.

How to connect Humaux Memory to Cursor

The server address to paste into Cursor settings:

https://humaux-memory--luolimoa.run.tools

Fastest: click Open in Cursor below and confirm the prompt.

Manually:

  1. In Cursor open Settings → Cursor Settings → MCP and click Add new global MCP server.
  2. Paste the JSON copied below into ~/.cursor/mcp.json (per project: .cursor/mcp.json in the repo root).
  3. Save the file. The server appears in the MCP list; authorize it there if asked.

Authorization

If the service needs sign-in, an authorize button appears next to the server in the MCP list.

Server tool list (17)

Raw names from tools/list. Only developers need these.

memory_searchSemantic search across all memory layers. Automatically includes results from both your private memories and the shared public knowledge pool (built from high-quality internalized memories via K2 pipeline). Supports time range (since/until), layer filter (L1-L4), and source pool filter.
memory_enumerateEnumerate the COMPLETE set of memories matching a structured filter — every rejected decision for a project, every lesson, every fix. Unlike memory_search (semantic top-k, returns only the most relevant few and never guarantees completeness), this walks Postgres directly and returns the FULL matching set, always reporting 'total' (true full-set size), 'coverage' and whether the answer was truncated. Omit 'limit' to get everything. Use this whenever the question is 'all / every / which ones have we…' rather than 'find the most relevant'.
memory_grepEXACT-SUBSTRING search (case-insensitive, deterministic) over the RAW title+content of every memory visible to your team (private + shared public pool). Zero LLM, zero embeddings: the pattern is matched literally, never as a regex or wildcard. Use this INSTEAD OF re-phrasing memory_search when semantic search came back empty or you are hunting an exact string — an identifier, an error message, a config key, a file/person name. Returns each matching memory with the matching lines (±1 line of context), a per-memory match count, and the TRUE total of matching memories. Superseded memories are included but flagged 已被更正·非当前. Follow up with memory_get(memory_id=…) for a full untruncated body.
memory_getFetch ONE memory by id — the COMPLETE original text (up to 50000 chars, versus the short snippets memory_search/memory_grep return) plus provenance metadata (layer, source_type, private/public origin, topic, category, created_at, lifecycle). Use it when a hit from memory_search / memory_enumerate / memory_grep was truncated or you need the exact full wording of a known id; it takes no query and does NO searching — for discovery use memory_search (semantic) or memory_grep (literal). Only memories visible to your team can be fetched. A superseded memory IS still returned for provenance, clearly flagged 已被更正·非当前 with the id that replaced it — do not treat flagged content as current fact.
memory_storeStore a memory, or correct an existing one. Omit 'id' to create a new memory (async). Pass 'id' to update that memory in place (content is re-embedded so search stays consistent). Pass 'supersedes' with the id of an older memory this one REPLACES: the old entry is marked superseded (kept for history, but demoted to near-zero in search and flagged '已被更正·非当前'), so a stale status can't outrank the correction.
memory_task_canvasShared cross-session task canvas. action='get' reads the whole team canvas; action='update' writes your plan/progress (mermaid + completed/next lists).
memory_deleteDelete a memory entry by its identifier.
code_searchSearch indexed code entities by function/class name.
code_indexIndex code you are developing into a project knowledge graph so you can later query its structure (functions, classes, call/import graph) instead of re-reading whole files — saves tokens. Pass the code via 'files' (recommended): the files you have open or just wrote. Returns immediately; use code_query(action='index_status') to check progress.
code_memory_linkLink a code entity to a memory entry.
doc_searchSearch uploaded documents.
memory_metaMeta queries over the memory system. action='persona' (L3 user profile), 'status' (system stats), 'skills' (RETIRED 2026-07-19 — the L4 skill layer was removed; recall procedures via memory_search instead. Returns empty.), 'related' (graph neighbors of a memory; pass query=id or title fragment), 'contradictions' (conflicting memories in the graph), 'list' (browse stored memories; pass limit), 'feedback' (report a skill outcome; pass skill_id + outcome=success|failure|partial, optional memory_ids/context).
code_queryQuery code relationships, impact analysis, or index status. Use action='relations' for calls/inherits, action='impact' for dependents, action='index_status' for indexing progress, action='history' for temporal evolution of an entity.
code_repo_mapGet a ranked, token-budgeted MAP of an indexed codebase — the most important functions/classes (by call-graph PageRank) as signatures + line numbers, NOT full source. Read this first to orient in a repo instead of reading whole files; then fetch specific symbols with code_query. Pass 'focus' (files/symbols you're working on) to bias the map toward them.
public_browseBrowse the shared public knowledge pool built from internalized high-quality memories. No args: returns topic list. Use topic='xxx' to filter by K2 topic. Use query='xxx' for semantic search within public knowledge only.
coord_taskMulti-agent task coordination for the team: submit work, claim it collision-free (lease-based), report progress, hand it off with context. Claim before working so parallel agents never duplicate effort; heartbeat before the lease expires or the task is requeued for others.
coord_lockAdvisory resource locks for parallel agents: claim a file/entity/resource BEFORE editing it so other agents avoid conflicts. Leases expire automatically if the holder dies; re-acquiring your own lock extends it.