Skip to main content
Glama

English | 繁體中文(台灣) | 繁體中文(香港) | 简体中文


marsnme.com — Claude.md is for context. MarsNMe is for continuity.

Your AI tools should know you — not start from scratch every time. When Perplexity helps you decide, Claude should remember why. When Cursor ships a feature, Warp should know the context. That's not context sharing. That's continuity.

Most AI memory tools help AI remember you. MarsNMe helps you and your AI remember each other — across sessions, across tools, over time.

An agent-agnostic, LLM-agnostic memory backend for MCP-compatible tools.

curl -fsSL https://marsnme.com/install.sh | bash

MarsNMe on Glama npm version MCP Registry LobeHub npm downloads License GitHub stars

Real user story

I use Cursor to code, Warp to deploy, Perplexity to research, and Claude Code to manage my vault. Before MarsNMe, every tool started blank — I had to re-explain my project, my preferences, my decisions every single session. Now my AI across all four tools knows what we decided yesterday, what we tried last week, and why we chose this architecture over that one. It's not about injecting context. It's about having a relationship that compounds over time.

— Leo, MarsNMe creator (3 months of daily use across 4 AI tools)

Related MCP server: mesh-memory

Available MCP Tools (16)

Tool

Description

insert_memory

Store short-term memory

list_memories

List recent memories

search_memories

Semantic search via Jina embeddings

recall

Long-term chunk recall — ~80-char preview per match

get_summary

Medium excerpt (~300 chars) of a chunk by ID

get_full

Complete text of a long-term chunk by ID

memory_ingest

Ingest long-term insight chunks

dream_ingest

Dream-mode long-term ingestion

session_boot

Start a session with context pre-load

session_close

Close session, summarize, auto-promote expiring memories

health_check

Coverage, expiry, conflict diagnostics

reload_source_registry

Refresh source whitelist at runtime

demote_memory

Demote a memory to lower priority

soft_forget

Soft-delete a memory

explain_memory

Explain a memory's provenance

batch_promote

Promote expiring short-term memories to long-term

What's new in 0.3.0

  • 3-layer recall: recall returns ~80-char previews, then get_summary (~300 chars), then get_full (complete). Avoids token-dumping full chunks on every recall; drill down only when a preview looks relevant.

  • Body-to-body note handoff: session_close(to=<body>, note=...) leaves a note that session_boot(body=<target>) delivers and marks read — one agent can hand context to another.

  • Auto batch_promote on session_close: closing a session automatically promotes soon-expiring short-term memories (48h window, up to 5) to long-term storage — no Hermes or manual promote needed.

  • grok + draft sources: added to the source whitelist so the Grok body and Draft lifecycle hooks can write memories natively.

  • CoCo-only tool surface: PRD tools (save_prd, get_prd, list_prds, score_prd, spawn_to_linear) removed from the Supabase gateway — idea/PRD/task execution now lives in Draft. MarsNMe = CoCo soul memory only.

MarsNMe

Why MarsNMe?

Most AI memory tools help AI remember you. MarsNMe helps you and your AI remember each other.

MarsNMe

Typical memory tool

Philosophy

Mutual continuity — human + AI both grow

AI-side context injection only

Agent support

Any MCP-compatible client

Often client-specific

Memory tiers

Short-term (TTL) + long-term (semantic)

Usually one layer

Profiles

Unlimited isolated profiles via MCP_PROFILE

Single-user only

Data ownership

Your own Supabase — zero vendor lock-in

Vendor-hosted

Search

Jina v3 semantic search (1024-dim pgvector)

Keyword or basic similarity

Self-hostable

✅ Full control

Rarely

When MarsNMe is the right fit

  • You use multiple AI assistants (Claude, Cursor, Perplexity, Warp, custom agents) and want shared memory across all of them

  • You want AI that remembers your projects, preferences, and decisions across sessions without re-explaining

  • You care about data sovereignty — your memories stay in your own Supabase project

  • You're building an AI agent and need a production-ready memory backend with semantic recall

When it might not be the right fit

  • You only need single-session context (just use the system prompt)

  • You want fully managed, zero-config memory with no setup (try a hosted solution)

Runtime packages

Folder

Runtime

Who uses it

marsnme-supabase/

Supabase + Jina gateway (@marsnme/mcp-gateway)

Mars Group dogfood — Proxmox CT101 (CoCo / Toto soul memory)

marsnme-cf/

Cloudflare Workers + D1 + Vectorize

Self-host template; not the Proxmox deploy path

marsnme-supabase/cloudflare-routing-worker/

mcp.marsnme.com routing proxy

Public setup wizard → upstream gateway

Product split (Mars Group): Idea / PRD / task execution → Draft + draft-mcp. MarsNMe Supabase = CoCo soul memory only (recall, session boot/close, ingest, lifecycle). As of @marsnme/mcp-gateway v0.3.0, PRD MCP tools (save_prd, get_prd, list_prds, score_prd, spawn_to_linear) are removed from the Supabase gateway — use Draft for idea/PRD/task workflows.

Proxmox deploy: private MarsNMe-lab — deploy/deploy-proxmox-ct101.sh or GitHub cd-selfhosted workflow. Not a single-script deploy like draft-mcp.

Repository Packages

Package

Description

marsnme-supabase/

Core MCP gateway — agent-agnostic memory backend (this package is published to npm as @marsnme/mcp-gateway)

marsnme-supabase/cloudflare-routing-worker/

Cloudflare Worker for mcp.marsnme.com — username-based MCP routing proxy with setup wizard

marsnme-cf/

Self-hosted MCP memory server on Cloudflare Workers + D1 + Vectorize (no Supabase needed)

Quick Setup (no install needed)

Go to mcp.marsnme.com/setup — create your personal MCP URL in 4 steps:

  1. Pick a username

  2. Enter your Supabase credentials (URL + anon key)

  3. Choose preferences

  4. Get your MCP URL: https://mcp.marsnme.com/your-name

Then add it to any MCP client (Claude, Cursor, Perplexity, Warp).

Self-hosted? Deploy marsnme-cf/ to your own Cloudflare account — no Supabase needed, uses D1 + Workers AI + Vectorize.


Before You Start (External Dependencies)

  1. Create a Supabase project (free plan is enough):

  2. Create a Jina API key (free tier available):

Quick Start (15-20 minutes)

For the fastest path, use the one-line installer: curl -fsSL https://marsnme.com/install.sh | bash

The manual path below follows the same tools-first flow as docs/onboarding-a-mcp-zero-to-recall.md and docs/onboarding-b-platform-skill-install.md.

  1. Clone repository:

git clone https://github.com/Marsmanleo/MarsNMe.git
cd MarsNMe
  1. Verify Node.js version (20+ required):

node --version
  1. Copy environment template:

cp .env.example .env
  1. Fill required values in .env:

    • SUPABASE_BASE_URL

    • SUPABASE_SERVICE_ROLE_KEY

    • JINA_API_KEY

  2. Run required Supabase migrations before first start:

    • Option A (recommended, Supabase CLI):

npx supabase db push --db-url "<your-supabase-db-connection-string>"
  • Note: --db-url must be the Postgres database connection string from Project Settings → Database → Connection string.

  • It is not the same as SUPABASE_BASE_URL (https://<project-ref>.supabase.co, REST API URL).

  • Use a role that can execute DDL on your target schemas.

  • On Supabase-hosted Postgres this is typically supabase_admin (not postgres).

  • Option B (Supabase Dashboard SQL Editor):

    1. Open SQL Editor.

    2. Ensure the vector extension is enabled first (Database → Extensions).

    3. Run migration files in filename order from supabase/migrations/:

      • 20260504052744_semantic_vector_dual_profile.sql

      • 20260513213800_memory_lifecycle_tracking.sql

      • 20260513222500_health_check_detect_conflicts_v2.sql

      • 20260517183000_provenance_audit_trail.sql

      • 20260517194000_memory_scope_agent_body_environment.sql

      • 20260517200500_forget_demote_mechanism.sql

      • 20260517223500_usage_cost_telemetry_light.sql

      • 20260517231000_memories_source_constraint_regex.sql

      • 20260517232000_source_registry_table.sql

  1. Start gateway:

    • MCP_PROFILE separates memory by agent or use case.

    • Use any profile name you want (for example: default, my-agent, profile-a).

    • Legacy built-in profile IDs coco and toto are still supported for compatibility.

    • If PORT is omitted, default port is profile-based (coco=18790, toto=18791, other profiles deterministic in 20000-29999).

MCP_PROFILE=profile-a PORT=18790 npx @marsnme/mcp-gateway
  1. Verify health:

curl -sS http://127.0.0.1:18790/health
  1. Connect your MCP client (next section), then run the first round-trip check.

Try In 30 Seconds (Docker, M1)

If you only want a local demo path, use Docker Compose.

One-line install (recommended):

curl -fsSL https://marsnme.com/install.sh | bash

Or manually:

  1. Set only the required key:

cp .env.example .env
# fill JINA_API_KEY in .env
  1. Start local stack:

docker compose up

This starts:

  • PostgreSQL + pgvector

  • SQL migrations from supabase/migrations/

  • PostgREST + rest-proxy

  • MarsNMe gateway (http://127.0.0.1:18790/mcp)

  1. Verify health:

curl -sS http://127.0.0.1:18790/health

M2 Cloudflare Tunnel Profile (Demo)

When you need a temporary public endpoint for remote AI tools:

docker compose --profile tunnel up

Expected output (from tunnel logs):

https://xxxx.trycloudflare.com

Get MCP endpoint:

docker compose --profile tunnel logs tunnel | grep -Eo 'https://[^ ]+trycloudflare.com' | head -n1
# append /mcp

Notes:

  • trycloudflare.com URL is temporary (demo only).

  • Local endpoint remains: http://127.0.0.1:18790/mcp.

  • For production/stable URL, use named tunnel (outside M2 scope).

  • Optional env:

    • MCP_TUNNEL_PROFILE (default coco)

    • MCP_TUNNEL_REQUIRE_BEARER (default false for demo convenience)

MCP Client Connection Guide

Local endpoint:

  • http://127.0.0.1:18790/mcp

If bearer auth is enabled (MCP_REQUIRE_BEARER=true), include:

  • Authorization: Bearer <your-token>

Claude Desktop

  1. Open claude_desktop_config.json (macOS default path: ~/Library/Application Support/Claude/claude_desktop_config.json).

  2. Add/update:

{
  "mcpServers": {
    "marsnme-cf": {
      "url": "http://127.0.0.1:18790/mcp"
    }
  }
}
  1. Restart Claude Desktop.

Cursor

  1. Open Cursor Settings and search for MCP.

  2. Add a new server:

    • Name: marsnme-cf

    • URL: http://127.0.0.1:18790/mcp

    • Headers: optional bearer header if enabled

  3. Reconnect MCP in Cursor.

Warp

  1. Open Settings > Agents > MCP servers.

  2. Add a server pointing to:

    • URL: http://127.0.0.1:18790/mcp

  3. Add optional bearer header if required, then reconnect.

Perplexity

  1. Open a Space in Perplexity and go to Space Settings.

  2. Under MCP servers, add:

    • URL: http://127.0.0.1:18790/mcp

  3. Save and start a new conversation in that Space.

Any MCP client (generic HTTP/SSE)

Use a streamable HTTP/SSE MCP entry:

{
  "marsnme-cf": {
    "url": "http://127.0.0.1:18790/mcp"
  }
}

First Connection Validation (Round Trip)

After client connection, verify this sequence once:

  1. tools/list:

curl -sS http://127.0.0.1:18790/mcp \
  -H 'content-type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'
  1. insert_memory:

curl -sS http://127.0.0.1:18790/mcp \
  -H 'content-type: application/json' \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"insert_memory","arguments":{"body":"quickstart memory check","source":"warp","session_id":"quickstart-smoke"}}}'
  1. recall:

curl -sS http://127.0.0.1:18790/mcp \
  -H 'content-type: application/json' \
  -d '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"recall","arguments":{"query":"quickstart memory check","limit":3}}}'

What this repository is

mars-memory-mcp is the core MCP gateway repository behind the public-facing MarsNMe release.
One codebase (marsnme-supabase/server.mjs) serves multiple profile schemas through MCP_PROFILE. This public repository currently keeps two built-in legacy profile IDs (coco, toto) for backward compatibility.

Current capabilities

  • MCP methods: initialize, notifications/initialized, tools/list, tools/call, ping

  • Profiles: configurable profile IDs (legacy built-ins: coco, toto)

  • Memory tools (16):

    • insert_memory (short-term memory)

    • list_memories

    • search_memories (Jina embedding search)

    • recall (~80-char preview) then get_summary (~300-char excerpt) then get_full (complete text)

    • memory_ingest / dream_ingest (long-term chunk ingestion)

    • session_boot / session_close (daily rhythm lifecycle; close auto-promotes expiring memories + supports body-to-body note handoff)

    • health_check (coverage, expiry, conflict diagnostics)

    • reload_source_registry (refresh source whitelist at runtime)

    • demote_memory / soft_forget / explain_memory (memory lifecycle management)

    • batch_promote (promote expiring short-term memories to long-term)

  • Sources: perplexity, cursor, warp, openclaw, hermes, draft, grok

  • OAuth-protected MCP endpoint (configurable by environment variables)

Memory model

  • Short-term memory table: <profile>.memories

  • Long-term memory table: <profile>.marsvault_chunks

  • Recommended usage:

    • Keep daily interaction context in insert_memory

    • Promote durable insights through ingest tools

Repository layout

  • marsnme-supabase/server.mjs — gateway entry point

  • marsnme-supabase/scripts/hermes_digest_runner.py — optional digest runner

  • marsnme-supabase/scripts/dream_runner.py — public self-host dream runner

  • marsnme-supabase/deploy/systemd/ — systemd templates

  • marsnme-supabase/deploy/phase2/ — build/deploy scripts

  • marsnme-supabase/deploy/phase3/smoke_gate.sh — smoke gate script

  • supabase/migrations/ — schema-as-code migrations

Environment setup

  1. Copy .env.example to your local .env (do not commit real secrets).

  2. Fill required values:

    • MCP_PROFILE (your profile identifier; this repo ships with legacy coco/toto)

    • SUPABASE_BASE_URL

    • SUPABASE_SERVICE_ROLE_KEY

    • JINA_API_KEY

  3. Optional security flags:

    • MCP_REQUIRE_BEARER=true

    • MCP_CLIENT_ID

    • MCP_CLIENT_SECRET

Optional Hermes digest runner

Hermes is optional and disabled by default:

  • HERMES_ENABLED=false

  • HERMES_DIGEST_MCP_URL

  • HERMES_DIGEST_MCP_BEARER_TOKEN

  • HERMES_DIGEST_ORIGIN

  • HERMES_DIGEST_SOURCE_DIR

Optional Dream Runner (self-host)

Dream Runner is public-friendly and can run without Hermes private environment:

  • DREAM_ENABLED=true

  • DREAM_MODE=lite|standard|pro

  • DREAM_DIGEST_MCP_URL

  • DREAM_MCP_BEARER_TOKEN (if required)

  • DREAM_ENABLE_ISSUE_SIGNALS, DREAM_ENABLE_REPO_SCAN, DREAM_ENABLE_SOUL_CONTEXT (optional overrides)

Quick start:

DREAM_ENABLED=true DREAM_MODE=lite python3 marsnme-supabase/scripts/dream_runner.py

If you run this repository with bundled defaults and no profile remapping, use coco and toto.

See docs/dream-runner-self-host.md for full configuration.

Onboarding

  • Zero-to-first-recall guide: docs/onboarding-a-mcp-zero-to-recall.md

  • Platform install guide (optional skill layer): docs/onboarding-b-platform-skill-install.md

Skill library

  • Skill index and update workflow: skills/README.md

  • Perplexity template: skills/perplexity/memory-daily-boot/SKILL.md

  • Cursor template: skills/cursor/memory-daily-boot/rule.mdc

  • Warp template: skills/warp/memory-daily-boot/prompt.md

Local run (from cloned repo)

MCP_PROFILE=profile-a npx @marsnme/mcp-gateway
MCP_PROFILE=profile-b npx @marsnme/mcp-gateway

Health endpoints:

  • GET /health

  • POST /mcp

Systemd deployment

Use marsnme-supabase/deploy/systemd/memory-mcp-gateway@.service with instances:

  • memory-mcp-gateway@profile-a.service

  • memory-mcp-gateway@profile-b.service

Recommended env files:

  • /opt/mars-memory-mcp/shared/.env

  • /opt/mars-memory-mcp/shared/.env.profile-a

  • /opt/mars-memory-mcp/shared/.env.profile-b

Release/deploy scripts

  1. Build artifact:

bash marsnme-supabase/deploy/phase2/build_release_artifact.sh
  1. Apply migrations with an explicit DDL-capable role:

npx supabase db push --db-url "<postgres://supabase_admin:<password>@<host>:5432/postgres>"
  1. Run pre-deploy schema gate (must pass before any service restart):

bash marsnme-supabase/deploy/phase2/pre_deploy_schema_gate.sh \
  --db-url "<postgres://supabase_admin:<password>@<host>:5432/postgres>" \
  --profiles coco,toto \
  --expected-role supabase_admin
  1. Run your platform-specific rollout/restart adapter.

    • This repository ships generic artifact + gate scripts; rollout adapters are environment-specific.

    • If schema gate exits non-zero, stop deployment and do not restart services.

  2. Smoke gate:

bash marsnme-supabase/deploy/phase3/smoke_gate.sh --spawn-local
  1. Automated npm + MCP Registry release (tag-driven):

    • Workflow: .github/workflows/publish-release.yml

    • Trigger: push tag v*

    • Gate: tag version must match marsnme-supabase/package.json version

    • Optional local Fish helper:

mrel patch
mrel minor
mrel major
mrel 0.1.2

The helper updates marsnme-supabase/package.json and server.json, commits, tags, and pushes.

Security and version control

  • Never commit .env, runtime tokens, or oauth-clients.json

  • Keep .env.example committed as the only environment template

  • Prefer bearer/OAuth for public exposure

License and policy

  • License: Apache-2.0 (LICENSE)

  • Notice: NOTICE

  • Trademark policy: TRADEMARK.md

  • Contribution guide: CONTRIBUTING.md

  • Contributor agreement: CLA.md

  • Release notes: CHANGELOG.md

Available Tools

16 tools
batch_promoteA

Automatically promote expiring short-term memories from demo.memories to permanent long-term storage (demo.marsvault_chunks). Scans for memories that will expire within the alert window, then chunks and ingests each one with vector embeddings. Use this to prevent valuable context from being lost when short-term memories expire. Supports dry-run mode to preview candidates before committing.

Inputs: origin, dry_run, memory_ids, max_promote, +1 more.

demote_memoryA

Deprecate a long-term memory chunk in demo.marsvault_chunks, marking it as outdated or superseded. The chunk is not deleted — it is flagged so it no longer appears in recall results. Use this when information becomes incorrect, irrelevant, or is replaced by newer knowledge. Optionally link to the replacement chunk for traceability.

Inputs: id (required), deprecated_reason (required), deprecated_at, superseded_by.

dream_ingestA

Ingest a Hermes digest (periodic summary report) into demo.marsvault_chunks long-term memory. The content is automatically chunked into semantically meaningful segments and stored with vector embeddings for future recall. Use this for scheduled reports, daily digests, or any structured summary content that should be permanently available.

Inputs: content (required), body, date, tags, +6 more.

explain_memoryA

Trace the full provenance of a long-term memory chunk in demo.marsvault_chunks — where it came from, how it was created, and what source material it was derived from. Returns the original source memory, session, tool, and timeline information. Use this to understand why a piece of knowledge exists or to verify its reliability.

Inputs: id (required).

get_fullA

Fetch the complete text of a long-term memory chunk by ID. Use sparingly after recall/get_summary when you need the full institutional memory entry.

Inputs: id (required).

get_summaryA

Fetch a medium-length excerpt (~300 chars) of a long-term memory chunk by ID. Use after recall when a preview match looks relevant. For complete text, call get_full.

Inputs: id (required).

health_checkA

Run comprehensive demo memory system diagnostics. Returns chunk counts by type and visibility, identifies expiring short-term memories that need promotion, detects timeline coverage gaps, and finds conflicting or redundant long-term chunks. Use this regularly to maintain memory hygiene and before batch promotion.

Inputs: gap_days, max_rows, page_size, topic_limit, +8 more.

insert_memoryA

Store a short-term demo memory into demo.memories (ephemeral context that auto-expires). Use this to capture observations, decisions, session notes, or any context worth remembering temporarily. Memories last 7 days by default unless expires_at is set. For permanent knowledge, use memory_ingest instead.

Inputs: body (required), source (required), session_id (required), tags, +3 more.

list_memoriesA

List recent short-term memories from demo.memories in reverse chronological order — like a daily log or activity feed. Use this to review what was recently captured, check for duplicate memories before inserting, or browse recent activity. This is a time-ordered listing tool, not a search tool. For semantic search by meaning, use search_memories instead. For long-term knowledge retrieval, use recall. Returns memory body, source, creation time, and expiration status.

Inputs: limit, source, unexpired_only.

memory_ingestA

Promote content into permanent long-term memory (demo.marsvault_chunks). Automatically chunks the input text, generates vector embeddings, and stores each segment for semantic recall. Use this to preserve important insights, decisions, patterns, or knowledge that should survive beyond the current session. This is the primary path from ephemeral to permanent memory.

Inputs: content (required), date, tags, type, +11 more.

recallA

Semantic recall from long-term memory (demo.marsvault_chunks) using Jina embeddings. Returns preview snippets (~80 chars) per match by default — use get_summary for a longer excerpt or get_full for complete chunk text. Searches promoted insights, digests, and archived knowledge using vector similarity.

Inputs: query (required), body, type, limit, +8 more.

reload_source_registryA

Reload the source registry cache from demo.source_registry. Use this after adding or removing entries to refresh which sources are enabled for insert/search filtering. Only effective when running in registry mode (MCP_SOURCE_MODE=registry).

Inputs: no named parameters.

search_memoriesA

Semantic search across short-term memories in demo.memories using Jina embeddings. Finds memories by meaning, not just keywords — ask a natural language question and get the most relevant matches. Use this to recall past decisions, find related context, or check if something was already discussed recently.

Inputs: query (required), limit, scope, source, +4 more.

session_bootA

Initialize a new demo session by loading identity, workflow context, and recent status from long-term memory. Also runs an expiry-focused health snapshot and records a heartbeat sign-in. Call this once at the start of every new conversation to restore continuity and awareness of pending work.

Inputs: source (required), body, mood, topic, +9 more.

session_closeA

Save a demo session close summary before ending a conversation. The summary is stored as a short-term memory with 7-day retention, providing context for the next session boot. After saving, automatically promotes up to 5 soon-expiring short-term memories to long-term storage (alert window 48h); promote failures never fail the close. Include what was accomplished, what is still pending, and any important context for continuity.

Inputs: source (required), summary (required), to, mood, +2 more.

soft_forgetA

Expire short-term memories in demo.memories early without permanently deleting them. Marked memories become invisible to search and list operations but remain in the database for audit purposes. Use this to clean up irrelevant or incorrect short-term memories before their natural expiration.

Inputs: ids (required), reason, forgotten_at.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A4.1/5.0

    Scored across 16 tools

    Disambiguation5/5

    Each tool has a clearly distinct purpose: short-term vs long-term memory, different operations (insert, list, search, recall, get, demote, batch promote, etc.). No two tools overlap in functionality.

    Naming Consistency4/5

    Most tools follow a verb_noun pattern (e.g., insert_memory, list_memories, batch_promote). The single-word 'recall' is a minor deviation, and 'get_full' is slightly vague, but overall consistent.

    Tool Count4/5

    16 tools is slightly above the typical 3-15 range, but the scope is well-defined for a memory management system. Each tool earns its place for short-term, long-term, session, and admin operations.

    Completeness5/5

    Covers the full lifecycle: insert short-term, promote to long-term, recall, retrieve, demote, expire, health checks, session boot/close. Only minor missing features like update or hard delete, which are design choices.

    Maintenance

    ActivityMaintained
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      A persistent long-term memory system that enables AI clients to store and recall notes, code, and research via semantic search. It utilizes Google Gemini embeddings and Supabase pgvector to provide a secure, searchable 'Second Brain' for MCP-compatible applications.
      7 npm
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      Self-hosted semantic memory for AI agents. Save worklogs, decisions, and notes via MCP, then recall them across sessions by meaning rather than keyword. Backed by Postgres + pgvector with local embeddings (multilingual-e5-base).
      1
      MIT
    • A
      license
      A
      quality
      D
      maintenance
      Provides persistent memory with semantic search for MCP-based AI agents, enabling them to store and recall information across sessions using vector embeddings.
      4
      1
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      Persistent, semantically-searchable memory for AI agents using local PostgreSQL, pgvector, and Ollama embeddings, exposed via MCP with hybrid retrieval, knowledge graph, and auto-recall hook.
      2 npm
      MIT