mcp-memory-service

doobidooApache-2.0活跃维护

为 AI Agent 提供持久化长期记忆的 MCP 服务,支持 LangGraph、CrewAI、AutoGen 和 Claude,通过 REST API、知识图谱和自主整合让智能体跨会话记住上下文。

Open-source persistent memory for AI agent pipelines (LangGraph, CrewAI, AutoGen) and Claude. REST API + knowledge graph + autonomous consolidation.

v12.7.0发布于 2026-11-07 05:51 UTC2,109star +14 / 7 天403fork同步于 2026-11-10 17:47 UTC

怎么上手

由 README 提炼,执行前请确认
pip install mcp-memory-service
MCP_ALLOW_ANONYMOUS_ACCESS=true memory server --http
硬件要求按 README 说明

README 未说明显存或 GPU 要求;核心记忆操作使用本地 ONNX 嵌入和 SQLite,可在本地运行,可选 LLM 功能需自行配置提供方

下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

自托管的 AI Agent 持久记忆后端,让多个 Agent 跨会话共享决策与上下文

为 AI Agent 提供持久化长期记忆的 MCP 服务,支持 LangGraph、CrewAI、AutoGen 和 Claude,通过 REST API、知识图谱和自主整合让智能体跨会话记住上下文。

核心能力

  • 提供框架无关的 REST API,LangGraph、CrewAI、AutoGen 均可直接调用
  • 用带类型边的知识图谱记录因果、修复、矛盾等关系
  • 用 X-Agent-ID 请求头自动打标签,按 Agent 身份限定检索范围
  • 语义向量检索与 BM25 关键词检索结合,支持 ranked 排序模式
  • 定时聚类压缩与受控遗忘,自动整合旧记忆

容易踩的坑

REST API 默认监听 8000 端口,且需显式设置 MCP_ALLOW_ANONYMOUS_ACCESS=true 才能匿名访问;搜索摘要、bootstrap 配置等可选功能需额外开启对应环境变量并配置 LLM 提供方;OpenCode 插件以仓库文件形式分发,即使从 PyPI 安装也需克隆仓库

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

5 个版本v12.7.0
  1. v12.7.0最新正式版2026-11-07 · 2026-11-07 05:51 UTC

    Special Thanks

    Thanks to the external contributors in this release: @ShahadatTest (Credentials tab requests, #1841), @massimiliano1991 (typed-edge gates, #1888), @mbreitkreuz (conflict tags and entity linking, #1872, #1889), @tonydzi (typed edges off by default, #1887), @qwist1233-cpu (untagged deletes and dashboard translations, #1871, #1822) and @ducanhnguyen223 (Codex short replies, #1716).

    Highlights

    • Behavior change: MCP_TYPED_EDGES_ENABLED now defaults to false. Consolidation stores inferred associations as related instead of fixes / contradicts. Set it to true to keep the old behavior; the stricter #1457 gates apply then.
    • Store scoping is enforced in the storage layer for metadata updates, the fallback=true search and beliefs.
    • conflict:unresolved no longer outlives the conflict, and entity linking no longer overwrites contradicts edges.
    • New opt-in contextualCapture setting for Codex short replies.

    Changelog

    Fixed

    • Consolidation's typed-edge gates are the ones its docs state (#1457). The docs said confidence 0.75 and similarity 0.65, while the code shipped 0.50 and 0.45 and consolidation ran at 0.6 and 0.45. On three hand-checked stores neither setting made a label right (0 of 139), but the #541 gates write about ten times fewer of them, so those are now the constructor defaults and the consolidator passes them explicitly. The 0.65 is on the normalized score (cos + 1) / 2, i.e. cosine 0.3, and the docstrings say so. These gates apply only with MCP_TYPED_EDGES_ENABLED=true, off by default since #1887. scripts/maintenance/update_graph_relationship_types.py builds the same engine, so it picks up the 0.75; it passes no similarity, so the similarity gate does not apply there.
    • Optionally capture short Codex replies with their preceding assistant context (#1664). The new contextualCapture setting is off by default and stores an opted-in reply/response pair with source turn metadata, without an LLM call.
    • Search filter tooltips and most of the Documents tab stayed English (#1817). The five filter tooltips and the three Documents help icons already had catalog keys, but only on data-i18n-aria, so the tooltip a user actually hovers kept its English title; data-i18n-title now sits next to each aria attribute. Those icons also sat inside the element whose text is translated, and applyTranslations() writes textContent/innerHTML, so the first render dropped them from the page -- the translatable text now lives in its own <span> and the icon stays beside it. The upload history (No uploads yet, its error line), the View/Remove buttons of both document lists, the drop zone that app.js rebuilds after an upload, the chunk-overlap illustration, the processing-mode help heading, the memory-viewer chunk count and the removal confirmation go through this.t() or a data-i18n* attribute now, with twenty-two new strings in all eleven catalogs. The chunk-size help icon also gets its own info-icon-chunk class: it shared the bare .info-icon hook that setupDocumentsEventListeners() queries, so once the processing-mode icon stayed in the page the wrong icon answered the click. documents.supported also lists DOCX and PPTX, which semtools_loader.py has accepted all along, and the static #fileInput now accepts .docx,.pptx like the input app.js rebuilds.
    • Test Connection and Save in the Settings Credentials tab send their requests again (#1839). Both called apiCall() with a fetch-style options object instead of the method and the data as separate arguments, so neither request carried the method or body it needed. tests/web/test_credentials_apicall_args.py checks both calls.
    • conflict:unresolved no longer outlives the conflict (#1840, mbreitkreuz). Superseding or deleting one side of a conflict (mark_superseded_batch, resolve_conflict, delete, a versioned update) left the tag
  2. v12.6.02026-11-05 · 2026-11-05 07:32 UTC
    查看更新说明

    Special Thanks

    12.6.0 carries work from a lot of contributors. Thank you to:

    • orshih6, who reported GHSA-8p26-g7wp-65jw, the cross-origin and DNS-rebinding hole in unauthenticated local HTTP transports fixed in this release.
    • timkjr for memory oauth list-clients and delete-client (#1863) and for the SQLite OAuth store finally enforcing its foreign keys (#1862).
    • andrunio for rebuilding existing entity graphs (#1860).
    • ZYZ666-RGB for marking beliefs and summaries stale when a source memory is deleted (#1865) and the Manage tab translations (#1851).
    • samyferhat for the dashboard following the system color scheme (#1793).
    • coughlmao for the Russian dashboard translation (#1854) and laozhej for the Korean site introduction (#1866).
    • arifrhm for the dashboard restart fix under python -m uvicorn (#1864).
    • Yoel-qin, hamid-digitalmarketer, ducanhnguyen223, ppcvote, shu-chen-dot-ca, Khushi6767 and qwist1233-cpu for the HTTP /mcp shim parity, the memory_graph annotation fix, the dark-mode flash, the versioned-update conflict fix, and a long run of dashboard translation fixes.

    Highlights

    • Security: unauthenticated local --streamable-http and --sse servers refuse cross-origin and DNS-rebinding requests (GHSA-8p26-g7wp-65jw). Upgrade if you run either transport on loopback without an API key or OAuth. Servers with an API key or OAuth keep their current behaviour.
    • memory_quality(action="rebuild_entities") rebuilds existing entity graphs, with a preview by default.
    • memory oauth list-clients and memory oauth delete-client replace editing oauth.db by hand.
    • Deleting a memory no longer leaves beliefs and consolidation summaries citing it.
    • Harvest no longer lets an older statement replace a newer memory.
    • The dashboard follows the system theme, and adds Russian. The site gains a Korean introduction.

    The full entry from CHANGELOG.md follows.

    [12.6.0] - 2026-11-05

    Added

    • Rebuild existing entity graphs with memory_quality(action="rebuild_entities"), previewing changes by default and applying current extraction settings across all live memories on SQLite, Hybrid, and Milvus.
    • The dashboard follows the system color scheme by default (#1737). It used to open in light mode whatever the OS was set to. A new System theme, the default for anyone who never picked one, tracks prefers-color-scheme and updates live when the OS switches. An explicit light or dark choice still wins, and the header toggle keeps flipping between light and dark. theme-init.js applies the same rule before first paint, so following a dark OS does not bring back the flash from #1705.
    • memory oauth list-clients and memory oauth delete-client (#1804, timkjr). Registered OAuth clients, including ones that registered themselves through Dynamic Client Registration, could only be removed by editing oauth.db by hand. list-clients shows each client without its secret, with its newest refresh token still on record. delete-client asks for confirmation (--yes skips it) and removes the client with its authorization codes and tokens in one transaction. Access tokens already issued as JWTs stay valid until they expire, and while registration is open a deleted application can register again. Both storage backends gain list_clients() and delete_client().
    • Add Russian language support to the web dashboard with a complete translation catalog, automatic language discovery, and regression tests (#1763).
    • Added a Korean introduction to the project website, including setup guidance and language navigation.

    Fixed

    • Prevent a light-theme flash when the dashboard reloads in dark mode (#1705). A synchronous external initializer applies the saved theme before dashboard content is parsed; blocked or malformed storage keeps the default light theme.
    • The SQLite OAuth store never enforced its foreign keys (#1804, timkjr). The schema declares ON DELETE CASCADE from autho
  3. v12.5.02026-11-03 · 2026-11-03 18:10 UTC
    查看更新说明

    Python 3.10 is no longer supported

    v12.5.0 requires Python 3.11 or newer (#1770). Python 3.10 reached end of life on October 1, 2026 and cannot install the patched filelock releases. If you are on 3.10, upgrade the interpreter and recreate your virtual environment before installing this release.

    Special Thanks

    This release has a lot of outside work in it. Thank you to @filhocf, @massimiliano1991, @andrunio, @timkjr, @Parth-Jadhav-2004, @ppcvote, @Sainath-Reddy7, @10RZC22, @qwist1233-cpu, @coughlmao, @Esmail-sarhadi, @debashishthakur, @djimenezm2, @mikemikimike, @juliasadler, @shu-chen-dot-ca, @shyam1017, @Neeraj111010, @aghiles-baha, @Yoel-qin, @hamid-digitalmarketer and @calude-bot.

    Highlights

    • Beliefs. Belief embeddings (migration 020), opt-in semantic dedup by embedding cosine, and the consolidation wiring that backfills and then dedups. Dedup is a dry run unless MCP_BELIEF_DEDUP_APPLY=true (#1728, #1733, #1771, @filhocf). Belief derivation now sees contradictions (#1657, @debashishthakur).
    • Delta-sync in the dashboard. Peer destinations, scheduling, cycle results and errors in a panel, with automatic refresh after each cycle (#1555, #1557, @Parth-Jadhav-2004). The delta-sync event log is bounded by compacting update_metadata chains (#1721, @filhocf), and a supersede made after the first sync now propagates (#1773, @ppcvote).
    • Search. Per-stage timing of the memory_search rerank path under include_debug, and MCP_QUALITY_LOCAL_DEVICE reaches the reranker (#1701, @massimiliano1991). Point-in-time queries with as_of work (#1724, @juliasadler). Superseded versions stay hidden in no-query search, tag search and memory_list on sqlite-vec and Milvus (#1805, #1824, @shu-chen-dot-ca).
    • Milvus. Deleting a memory removes its graph edges, newest matches come back for no-query search, and full reads are no longer capped at 16,384 rows (#1703, #1708, #1782, #1785, @andrunio).
    • Entities. MCP_ENTITY_TAG_INCLUDE and MCP_ENTITY_TAG_EXCLUDE choose which tags become entities (#1704, @andrunio).
    • Log injection. The harvest, reasoning and auto-capture modules sanitize file names, entity names and exception text before logging (#1146, @massimiliano1991).
    • Dashboard. A line chart for Memory Growth (#1740), readable error toasts, Hindi, Indonesian and Brazilian Portuguese catalogs, more complete Knowledge Graph translations in German, French, Spanish, Japanese and Korean, and the active view re-renders after a language switch.
    • Website. New introductions in German, Spanish, French, Japanese, Brazilian Portuguese, Simplified Chinese and Traditional Chinese at https://mcpmemory.services.
    • Removed. The standalone API overview page; /api-overview redirects to /api/docs (#1746).

    The full list is in CHANGELOG.md.

    Install: pip install mcp-memory-service==12.5.0, or docker pull doobidoo/mcp-memory-service:12.5.0.

  4. v12.4.02026-10-26 · 2026-10-26 13:11 UTC
    查看更新说明

    Special Thanks

    • camerono for per-store OAuth scopes (#1682)
    • Forest537 for the Claude Code hooks inter-agent inbox (#1675)
    • Parth-Jadhav-2004 for retiring the ChromaDB-era scripts (#1640)

    Highlights

    • Per-store OAuth scopes (read:<store>, write:<store>) and MCP_ANONYMOUS_SCOPE, with a per-client scope ceiling and store-confined SSE tickets.
    • Delta-sync peers negotiate protocol, event schema and embedding identity before exchanging events.
    • Opt-in inter-agent inbox in the Claude Code hooks (plugin manifest 1.2.0).
    • Optional rerank flag on memory_search, and an experimental resonance-search endpoint.
    • Re-sending deleted content is refused unless restore_deleted is set.

    Per-store scopes: where they work

    Per-store scopes (read:<store>, write:<store>, MCP_ANONYMOUS_SCOPE=read:<store>) work on sqlite_vec and hybrid only. cloudflare, milvus and remote_http refuse store-restricted credentials until #1683. Tools that are not confined to a store, including memory_explore, memory_detail and memory_quality, need the global scope.

    Changelog

    Added

    • Negotiate peer compatibility before scheduled delta-sync (#1505). A read-authenticated capabilities endpoint advertises the delta-sync protocol range, event-envelope schema, embedding identity, and package version. Scheduled peers stop before exchanging events when they have no common protocol, a different event schema or embedding identity, or do not advertise capabilities; /api/sync/status exposes each peer's latest result. /api/health/model identifies hash-fallback embeddings so an HTTP hybrid secondary refuses to start against a degraded hub instead of mistaking it for the configured model.
    • Claude Code hooks: an opt-in inter-agent inbox (#1526, Forest537). docs/agents/README.md documents agents using one memory service as a message bus via a sentinel tag (msg:cluster), but the reading side was entirely manual — nothing polled, nothing remembered what had been read. The hooks now poll the configured tags on session start and on prompts (throttled by inbox.checkIntervalMinutes, and by the state file rather than an in-memory cooldown, since every hook invocation is a fresh process) and inject the new messages as their own block. The last-seen marker advances only after a successful query. Per #1599 the marker throttles but does not gate delivery: each check queries from marker - inbox.overlapMinutes and drops rows already delivered by content_hash, so a message that reaches the store after a check while carrying an older created_at — the normal case under delta sync, and the clock-skew case — is still delivered, exactly once. Off by default; the config keys and the output format match the OpenCode client (#1527/#1541/#1636).
    • Expose Delta-Sync settings in the Environment tab (#1556). The web configuration now lists the sync event log, schedule, peers, and push allow-list while masking peer API and basic-auth credentials.
    • Add an opt-in rerank flag to memory_search: a second-stage ONNX cross-encoder reorders the top MCP_RERANK_CANDIDATES results when MCP_RERANK_ENABLED is set, fails open to the unreranked order, and never touches the default path.
    • Apple Foundation Models work as a local LLM provider on macOS 27: point the OpenAI-compatible quality scorer or the harvest provider chain at fm serve. The three OpenAI-compatible call sites (quality scorer, harvest rewriter, harvest classifier) now send "stream": false explicitly, because fm serve streams by default and the requests used to fall through to the next provider. New guide: docs/guides/apple-foundation-models.md (#1666).
    • Experimental POST /api/memories/resonance-search: ranks memories by wave interference instead of cosine similarity, after the ResonanceDB approach in arXiv:2509.09691. It converts the stored embeddings to complex waveforms at query time, so no schema change. Modes resonance, phase and hybrid (d
  5. v12.3.12026-10-23 · 2026-10-23 09:16 UTC
    查看更新说明

    Security update

    Refresh the independent TLS trust stores affected by the eMudhra CA compromise. Updating the application alone does not update pip, uv, operating-system certificates or custom CA bundles. Bootstrap package-manager upgrades through an already corrected trust store; certificate validation must stay enabled.

    Trust-store update guide

    Fixed

    • Refresh independent TLS trust stores after the eMudhra CA compromise. CI and Docker bootstrap now require pip 26.2.2 and uv 0.13.4 or newer. The lite package and hand-curated Docker dependencies require certifi 2026.10.19, matching the main package. Docker builds reject the affected root certificates before bootstrapping pip and after installing application dependencies; CI builds both standard and slim images. Existing installations must also update their package managers, operating system certificates, and any custom trust bundles.

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    mcp-memory-service

    Persistent Shared Memory for AI Agent Pipelines

    Open-source memory backend for AI agents — REST API, MCP, OAuth, CLI, dashboard. One self-hosted service, every transport. Agents store decisions, share causal knowledge graphs, and retrieve context in 5ms — without cloud lock-in or API costs.

    Works with LangGraph · CrewAI · AutoGen · any HTTP client · Claude Desktop · OpenCode


    Website License: Apache 2.0 PyPI version Python GitHub stars Remote MCP OAuth 2.0 Ask DeepWiki

    Getting started: English · Deutsch · Español · 日本語 · 简体中文 · 繁體中文 · Français · Português (Brasil) · 한국어



    Why Agents Need This

    Your AI assistant forgets everything when you start a new chat. You spend 10 minutes re-explaining your architecture. Again. MCP Memory Service captures project context, architecture decisions, and code patterns automatically — new sessions start with everything already known.

    Without mcp-memory-serviceWith mcp-memory-service
    Each agent run starts from zeroAgents retrieve prior decisions in 5ms
    Memory is local to one graph/runMemory is shared across all agents and runs
    You manage Redis + Pinecone + glue codeOne self-hosted service, zero cloud cost
    No causal relationships between factsKnowledge graph with typed edges (causes, fixes, contradicts)
    Context window limits create amnesiaAutonomous consolidation compresses old memories

    Key capabilities for agent pipelines:

    • Framework-agnostic REST API — no MCP client library needed; the live endpoint list is at /api/docs
    • Knowledge graph — agents share causal chains, not just facts
    • X-Agent-ID header — auto-tag memories by agent identity for scoped retrieval
    • conversation_id — bypass deduplication for incremental conversation storage
    • SSE events — real-time notifications when any agent stores or deletes a memory
    • Embeddings run locally via ONNX — memory never leaves your infrastructure

    🚀 Get Started in 60 Seconds

    Not sure which setup fits? The Setup Guide walks you to the right path in under a minute.

    1. Install:

    pip install mcp-memory-service
    

    2. Configure your AI client:

    Add to your config file:

    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
    • Windows: %APPDATA%\Claude\claude_desktop_config.json
    • Linux: ~/.config/Claude/claude_desktop_config.json
    {
      "mcpServers": {
        "memory": {
          "command": "memory",
          "args": ["server"]
        }
      }
    }
    

    Restart Claude Desktop. Your AI now remembers everything across sessions.

    claude mcp add memory -- memory server
    

    Restart Claude Code. Memory tools will appear automatically.

    MCP_ALLOW_ANONYMOUS_ACCESS=true memory server --http
    # REST API running at http://localhost:8000
    

    Store a memory with POST /api/memories, search with POST /api/search, retrieve by tag with POST /api/search/by-tag. Send X-Agent-ID: <id> on a store request and the server tags the memory agent:<id>, which a tag search then scopes retrieval by.

    Worked examples per framework, the tag conventions and the async patterns: docs/agents/

    MCP_ALLOW_ANONYMOUS_ACCESS=true memory server --http
    

    The plugin ships as repository files for the local plugin directory, so clone the repository once even if you installed from PyPI. Install steps, the /memory slash command and the endpoint override: opencode/README.md

    Start the Memory Service HTTP API, then install the hooks from this repository:

    python3 codex/install_hooks.py
    

    Restart Codex and review the hooks with /hooks. They retrieve project context, capture new learnings, and checkpoint outcomes before compaction and at session end. See Codex hook setup for prerequisites, authentication, and project-local installation.

    Remote MCP puts persistent memory in the browser on any device, no desktop app required: OAuth 2.0 over HTTPS, self-hosted or cloud-hosted. Both claude.ai and ChatGPT (Developer Mode) connect to the same endpoint.

    Cloudflare Tunnel quick start, Let's Encrypt, nginx, Caddy and Docker production setups: Remote MCP Setup · 5-minute tutorial

    git clone https://github.com/doobidoo/mcp-memory-service.git
    cd mcp-memory-service
    python scripts/installation/install.py
    

    Choose from SQLite (local, fast, single-user), Cloudflare (cloud, multi-device sync), Hybrid (5ms local reads with background cloud sync — recommended for production) or Milvus (dedicated vector DB: Lite file, self-hosted, or Zilliz Cloud). For self-hosted team setups, the Hybrid backend can sync to another HTTP MCP Memory Service instead of Cloudflare using MCP_HYBRID_SECONDARY_BACKEND=http.

    For long-lived services, prefer Docker Milvus or Zilliz Cloud over Milvus Lite — why.


    ⚡ Works With Your Favorite AI Tools

    • Agent frameworks (REST): LangGraph · CrewAI · AutoGen · OpenClaw/Nanobot · any HTTP client
    • CLI and terminal (MCP): Claude Code · Gemini CLI · OpenCode · Codex CLI · Goose · Aider · Amp
    • Desktop and IDE (MCP): Claude Desktop · VS Code · Cursor · Windsurf · Raycast · JetBrains · Zed
    • Chat (MCP): ChatGPT (Developer Mode) · claude.ai (Remote MCP over HTTPS)

    Full list, plus clients without OAuth such as Home Assistant: docs/integrations.md


    ✨ Features

    Store and retrieve context

    • 🧠 Persistent memory — Keep decisions, notes, and project context across sessions and agents.
    • 🔍 Semantic and keyword search — Combine vector search with BM25; use mode="ranked" to weigh recency, access frequency, and quality. An optional fallback cascade tries exact and tag matching when semantic results are sparse.
    • 🏷️ Scoped retrieval — Filter by tags with AND/OR matching, natural-language time ranges, and store partitions (default, docs, or all for cross-store search).
    • 📝 Optional search summaries — Request summarize=true for query-aware summaries with validated source references. Requires MCP_SEARCH_SUMMARIZE_ENABLED=true and a configured LLM provider; unavailable summaries fall back to raw results. Search API and examples
    • 📄 Document ingestion — Import PDF, text, and Markdown with chunking for retrieval. Additional formats such as DOCX and PPTX require optional parsing tools. Document ingestion guide

    Capture and maintain knowledge

    • ⚡ Automatic session capture — Configurable Claude Code hooks retrieve context and save session learnings; the local memory_harvest tool extracts decisions, bugs, conventions, and lessons from transcripts. Hooks setup · Harvest configuration
    • 💡 Autonomous consolidation — Schedule clustering, compression, association discovery, and controlled forgetting. Insight cards surface patterns, trends, and knowledge gaps. Consolidation guide
    • 💭 Beliefs and contradiction handling — Derive confidence-scored beliefs from observations. Heuristic contradiction detection can mark older memories as superseded, hiding them from default retrieval while retaining them for explicit lookup.
    • 🤖 Agent bootstrap profiles — get_bootstrap_profile assembles behavioral context for a new agent within a token budget, with optional task-aware retrieval. Requires MCP_BOOTSTRAP_ENABLED=true; profiles are not isolated by project.
    • 🧬 Knowledge graph and entities — Explore typed causal relationships in the interactive graph. 🔗 Entity extraction links @mentions, #tags, URLs, and file paths to a queryable entity graph. Knowledge graph guide
    • 🏠 Quality scoring — Use your own OpenAI-compatible endpoint, including Ollama, LiteLLM, or vLLM. Configuration guide

    Run locally and share across devices

    • 🔒 Local-first storage — Local ONNX embeddings and SQLite storage keep core memory operations on your infrastructure. Optional LLM features use the providers you configure.
    • ☁️ Cloud or self-hosted sync — Use Cloudflare or another MCP Memory Service instance as a Hybrid secondary. Separately enabled delta-sync exchanges changes between hosts; it is off by default. Self-hosted sync guide
    • 📦 Import, export, and migration — Move memories through JSON import/export, including conversion of mem0 exports. Import/export tools · mem0 migration guide
    • 💾 Database backups — Configure scheduled backups or trigger one manually through the HTTP API. Inspect backup status and available snapshots through the backup endpoints in the live API reference at /api/docs.
    • 📊 Web dashboard — Search, browse, visualize, and manage memories at http://localhost:8000.

    The dashboard has eight tabs — Dashboard, Search, Browse, Documents, Manage, Analytics, Quality, API Docs. Two-minute walkthrough on YouTube · Web Dashboard Guide

    How it compares to Mem0, Zep and the MCP-native alternatives, benchmark results, and deployments people run in production: mcpmemory.services


    🛠️ Configuration Highlights

    memory launch                  # Start HTTP server in background (127.0.0.1:8000)
    memory launch --port 8192      # Custom port
    memory info                    # Status and health
    memory logs --lines 50         # Recent logs
    memory stop                    # Stop server
    

    These commands are optimized for fast startup and avoid loading heavy ML dependencies unless needed.

    ⚠️ Security note: the server binds to 127.0.0.1 (localhost only) by default. --host 0.0.0.0 / MCP_HTTP_HOST=0.0.0.0 exposes the API to your network — do that only in trusted environments with authentication and firewall rules, or behind TLS termination or a VPN overlay.

    Backends, embedding models, quality scoring and every environment variable: Configuration Guide


    📚 Documentation

    Also listed on Glama and Spark.


    📦 Releases

    Every release, with upgrade notes: CHANGELOG.md · GitHub Releases · archived history


    🤝 Contributing

    We welcome contributions! See CONTRIBUTING.md for guidelines and SECURITY.md for reporting a vulnerability.

    Releases, good first issues and new Discussions are announced on our Discord server, which is also the place for informal chat. Claiming an issue, decisions and reviews stay on GitHub.

    Who authors this project, who holds copyright, and what every change passes before it reaches main: AUTHORSHIP.md.

    Quick Development Setup:

    git clone https://github.com/doobidoo/mcp-memory-service.git
    cd mcp-memory-service
    pip install -e .  # Editable install
    pytest tests/      # Run test suite
    

    Supporting the Project

    MCP Memory Service is maintained by one person. If it saves you or your company time, you can support its development via Ko-fi, Buy Me a Coffee or PayPal: SPONSORS.md.