Memory Service

by doobidoo

165 Not rated yet Apache-2.0

About

Integrates with ChromaDB using sentence transformers for efficient text embedding, enabling semantic search and content recommendation via websocket connections.

Details

Repository
doobidoo/mcp-memory-service
License
Apache-2.0

Explore

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name Memory Service
    Command (node, npx, python, etc.) memory
    Arguments
    • Argument 1 server

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

cloudflared tunnel --url http://localhost:8765


Production Setup: See Remote MCP Setup Guide for Let's Encrypt, nginx, and firewall configuration.
Step-by-Step Tutorial: Blog: 5-Minute claude.ai Setup | Wiki Guide

---

bash
pip install mcp-memory-service
MCP_ALLOW_ANONYMOUS_ACCESS=true memory server --http


python import httpx

BASE_URL = "http://localhost:8000"

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "memory service": {
            "env": {},
            "args": [
                "server"
            ],
            "command": "memory"
        }
    }
}

Linux

{
    "env": [],
    "args": [
        "server"
    ],
    "command": "memory"
}

Macos

{
    "env": [],
    "args": [
        "server"
    ],
    "command": "memory"
}

Windows

{
    "env": [],
    "args": [
        "/c",
        "memory",
        "server"
    ],
    "command": "cmd"
}

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

---

License: Apache 2.0
PyPI version
Python
GitHub stars
Works with LangGraph
Works with CrewAI
Works with AutoGen
Works with Claude
Works with Cursor
Remote MCP
claude.ai Browser Compatible
OAuth 2.0
Sponsor

---

🎬 See It in Action

Watch the Dashboard Walkthrough

Watch the Web Dashboard Walkthrough on YouTube — Semantic search, tag browser, document ingestion, analytics, quality scoring, and API docs in under 2 minutes.

---

🌐 Works with claude.ai (Browser)

Unlike desktop-only MCP servers, mcp-memory-service supports Remote MCP for native claude.ai integration.

What this means:
- ✅ Use persistent memory directly in your browser (no Claude Desktop required)
- ✅ Works on any device (laptop, tablet, phone)
- ✅ Enterprise-ready (OAuth 2.0 + HTTPS + CORS)
- ✅ Self-hosted OR cloud-hosted (your choice)

5-Minute Setup:

# 1. Start server with Remote MCP enabled
MCP_STREAMABLE_HTTP_MODE=1 \
MCP_SSE_HOST=0.0.0.0 \
MCP_SSE_PORT=8765 \
MCP_OAUTH_ENABLED=true \
python -m mcp_memory_service.server

2. Expose via Cloudflare Tunnel (or your own HTTPS setup)

cloudflared tunnel --url http://localhost:8765

→ Outputs: https://random-name.trycloudflare.com

3. In claude.ai: Settings → Connectors → Add Connector

Paste the URL: https://random-name.trycloudflare.com/mcp

OAuth flow will handle authentication automatically

Production Setup: See Remote MCP Setup Guide for Let's Encrypt, nginx, and firewall configuration.
Step-by-Step Tutorial: Blog: 5-Minute claude.ai Setup | Wiki Guide

---

Why Agents Need This

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

Key capabilities for agent pipelines:
- Framework-agnostic REST API — 76 endpoints, no MCP client library needed
- 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

Agent Quick Start

pip install mcp-memory-service
MCP_ALLOW_ANONYMOUS_ACCESS=true memory server --http

REST API running at http://localhost:8000

import httpx

BASE_URL = "http://localhost:8000"

Store — auto-tag with X-Agent-ID header

async with httpx.AsyncClient() as client: await client.post(f"{BASE_URL}/api/memories", json={ "content": "API rate limit is 100 req/min", "tags": ["api", "limits"], }, headers={"X-Agent-ID": "researcher"}) # Stored with tags: ["api", "limits", "agent:researcher"]

Search — scope to a specific agent

results = await client.post(f"{BASE_URL}/api/memories/search", json={ "query": "API rate limits", "tags": ["agent:researcher"], }) print(results.json()["memories"])

Framework-specific guides: docs/agents/

Real-World: Multi-Agent Cluster with Shared Memory

> "After I work with one of the cluster agents on something I want my local agent to know about, the cluster agent adds a special tag to the memory entry that my local agent recognizes as a message from a cluster agent. So they end up using it as a comms bridge — and it's pretty delightful."
> — @jeremykoerber, issue #591

A 5-agent openclaw cluster uses mcp-memory-service as shared state and as an inter-agent messaging bus — without any custom protocol. Cluster agents tag memories with a sentinel like msg:cluster, and the local agent filters on that tag to receive cross-cluster signals. The memory service becomes the coordination layer with zero additional infrastructure.

# Cluster agent stores a learning and flags it for the local agent
await client.post(f"{BASE_URL}/api/memories", json={
    "content": "Rate limit on provider X is 50 RPM — switch to provider Y after 40",
    "tags": ["api", "limits", "msg:cluster"],       # sentinel tag
}, headers={"X-Agent-ID": "cluster-agent-3"})

Local agent polls for cluster messages

results = await client.post(f"{BASE_URL}/api/memories/search", json={ "query": "messages from cluster", "tags": ["msg:cluster"], })

This pattern — tags as inter-agent signals — emerges naturally from the tagging system and requires no additional infrastructure.

Real-World: Self-Hosted Docker Stack with Cloudflare Tunnel

> "The quality of life that session-independent memory adds to AI workflows is immense. File-based memory demands constant discipline. Semantic recall from a live database doesn't. Storing data on my own hardware while making it remotely accessible across platforms turned out to be a feature I didn't know I needed."
> — @PL-Peter, discussion #602

A production-tested self-hosted deployment using Docker containers behind a Cloudflare tunnel, with AuthMCP Gateway handling authentication:

…

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.

Videos about Memory Service

Relevant YouTube tutorials, setups, and demos