Skip to main content
Glama
teddashh

MCP Memory Server

by teddashh

MCP Memory Server

Every interaction leaves a trace. Every trace becomes knowledge.

凡走過必留下痕跡。每個痕跡都將成為知識。

License: MIT Python 3.11+ MCP Compatible Tools CJK Ready

A unified long-term memory, knowledge base, and audit trail for AI agents.

統一的 AI Agent 長期記憶、知識庫與稽核軌跡系統。

Quick Start | Tools | Architecture | Salience | 繁體中文


The Problem / 問題

AI agents are stateless. They forget everything between sessions. Your decisions, your solved problems, your hard-won knowledge — gone. Every new conversation starts from zero.

Existing memory solutions are either too simple (flat key-value stores) or too opinionated (locked to one vendor, one database, one language).

AI 代理是無狀態的。它們在對話之間會遺忘所有事情。現有的記憶方案不是太簡單(扁平的 key-value),就是太限制(綁定單一廠商、資料庫、語言)。

Related MCP server: Memsolus MCP Server

The Solution / 解決方案

MCP Memory Server gives every AI agent a persistent brain with:

Any AI Agent ──→ MCP Tool Call ──→ Memory Server ──→ Local DB + Cloud DB
                 (native)          (auto-detect       (structured +
                                    workspace)         vector search)

What makes it different

獨特之處

Not just memory — a knowledge base. Decisions, questions, and knowledge are fundamentally different things. We store them differently.

不只是記憶——是知識庫。 決策、問題、知識本質不同,分別儲存。

Not just storage — intelligent recall. Salience tracking, access reinforcement, and natural decay surface what matters.

不只是儲存——是智慧回想。 Salience 追蹤、存取強化、自然衰減,讓重要的浮上來。

Not just local — cross-workspace. 18-table cloud schema with vector search across all your projects.

不只是本地——跨專案。 18 張表的雲端 schema,跨所有專案的向量搜尋。

Not just English — CJK-native. Token estimation built for Chinese, Japanese, Korean from day one.

不只是英文——原生 CJK。 Token 估算從第一天就為中日韓文設計。


Quick Start / 快速開始

git clone https://github.com/teddashh/mcp-memory-server.git
cd mcp-memory-server
pip install -e .

# Interactive setup (optional — works with SQLite defaults)
python setup_config.py

Claude Code

Add to ~/.claude/.mcp.json:

{
  "mcpServers": {
    "memory": {
      "command": "python",
      "args": ["-X", "utf8", "-m", "mcp_memory"],
      "cwd": "/path/to/mcp-memory-server"
    }
  }
}

Gemini CLI / Codex CLI

python -m mcp_memory --http  # → http://127.0.0.1:8787/mcp

Architecture / 系統架構

┌─ Claude Code ────────────┐
├─ Gemini CLI ─────────────┤
├─ Codex CLI ──────────────┼──→  MCP Memory Server (19 tools)
├─ Custom MCP Client ──────┤          │
└─ Any Future AI Tool ─────┘          │
                                      ├── L2: SQLite (local, fast, per-workspace)
                                      │     └── Salience tracking + CJK token estimation
                                      │
                                      ├── L3: Markdown (git-synced, human-readable)
                                      │     └── Knowledge files, daily logs
                                      │
                                      └── L4: Cloud DB (cross-workspace, vector search)
                                            └── 18 tables + audit trail + daily reports

The 4-Layer Memory Model / 四層記憶模型

L1  session.md       ← 短暫:當前對話的脈絡(每次載入,compact 控制大小)
      ↓ compact (agent-driven, CJK-aware token estimation)
L2  SQLite memory.db ← 結構化:每個專案獨立,salience 追蹤,毫秒級查詢
      ↓ sync (scheduled, incremental, idempotent)
L3  Markdown files   ← 永久:Git 同步,人類可讀,Obsidian 知識庫
L4  Cloud DB         ← 統一:跨專案向量搜尋,18 張表,完整稽核軌跡

Layer

Storage

Speed

Scope

說明

L1

session.md

Instant

Current conversation

當前對話脈絡

L2

SQLite

~1ms

Current workspace

當前專案的結構化記憶

L3

Markdown

~10ms

Shared via git

Git 同步的知識庫

L4

Cloud DB

~100ms

All workspaces

跨所有專案 + 向量搜尋

Key principle: each layer only talks to its neighbor. No skipping layers.

核心原則:每層只與相鄰層互動,不跳層。

L1 ──compact──→ L2 ──sync──→ L4
     ↑ agent        ↑ scheduler
     主動            自動 (30min)

Query: L2 (fast) → L4 (cross-workspace)

MCP Tools (19) / 工具一覽

Write — Capture knowledge as it happens / 寫入——即時捕捉知識

Tool

Description

說明

memory_store

Smart store — auto-classifies type (decision/resolved/question/knowledge)

智慧儲存——自動分類類型

memory_record_decision

Record a decision (what, why, how)

記錄決策(做什麼、為什麼、怎麼做)

memory_record_resolved

Record a resolved issue

記錄已解決的問題

memory_record_question

Record an open question (priority 1-3)

記錄未解問題(優先級 1-3)

memory_record_knowledge

Record a knowledge item

記錄知識項目

Read — Recall what matters / 讀取——回憶重要的事

Tool

Description

說明

memory_list

List recent memories, filter by type

列出最近記憶,可按類型篩選

memory_get

Get a specific memory by ID (auto-tracks access)

依 ID 取得(自動追蹤存取)

memory_get_summary

Quick counts per workspace

快速查看各表計數

Delete / 刪除

Tool

Description

說明

memory_delete

Delete a memory by ID

依 ID 刪除記憶

Search — Find by meaning, not keywords / 搜尋——依語意查找

Tool

Description

說明

memory_search

Salience-weighted semantic search across all workspaces

Salience 加權的跨專案語意搜尋

Salience — Important memories surface naturally / 記憶重要性——重要的自然浮上來

Tool

Description

說明

memory_reinforce

Manually boost a memory's salience (+20%)

手動強化記憶重要性(+20%)

Trail — Full audit trail / 軌跡——完整稽核

Tool

Description

說明

memory_audit_search

Search audit trail (keyword, date, sender, importance)

搜尋稽核軌跡

memory_audit_stats

Audit statistics (by importance, direction, category)

稽核統計

memory_daily_report

Daily reports (email stats, calendar, narrative)

每日報告

memory_activity_log

Agent activity log (scheduled tasks, dispatches)

代理活動日誌

Admin / 管理

Tool

Description

說明

memory_status

System overview (local + cloud + trail + embeddings)

系統總覽

memory_compact

CJK-aware session health check + compaction trigger

CJK 感知的 session 健康檢查

memory_oracle_summary

Cross-workspace summary from cloud

雲端跨專案摘要


Salience Engine / 記憶 Salience 引擎

Not all memories are equal. Some are accessed daily, others are forgotten. The salience engine ensures important memories surface naturally while noise fades away.

不是所有記憶都一樣重要。有些每天被查詢,有些被遺忘。Salience 引擎確保重要的記憶自然浮上來,噪音自然沈下去

Inspired by memory-lancedb-pro's Weibull decay model, adapted for our multi-layer architecture.

How It Works / 運作方式

Memory born → salience = 1.0
     │
     ├── Accessed (memory_get / memory_search) → salience *= 1.05  (+5% per access)
     ├── Reinforced (memory_reinforce)          → salience *= 1.20  (+20% manual boost)
     │                                            cap at 2.0
     │
     └── Not accessed for 30+ days              → salience *= 0.95  (-5% daily decay)
                                                   floor at 0.01

Search results sorted by: salience DESC, then recency

Every memory_get and memory_search automatically tracks access. No manual intervention needed. Frequently used memories stay relevant. Stale memories gradually fade — but they're never deleted. They just sink lower in search results.

每次 memory_getmemory_search 自動追蹤存取。 不需手動操作。常用的記憶保持相關性。陳舊的記憶逐漸淡出——但永不刪除,只是在搜尋結果中排序靠後。

Fields Added to Every Memory / 每筆記憶加入的欄位

Field

Type

Description

說明

access_count

Integer

Total times accessed

總存取次數

last_accessed

Timestamp

When last read or searched

最後存取時間

salience

Float (0.01–2.0)

Current importance score

當前重要性分數


CJK-Aware Context Management / CJK 感知的 Context 管理

Standard token estimation assumes ASCII (~0.25 tokens/char). This underestimates CJK content by 3-6x, causing context window overflow and premature compaction.

標準的 token 估算假設 ASCII(~0.25 tokens/字元)。這低估 CJK 內容 3-6 倍,導致 context window 溢出。

Inspired by lossless-claw-enhanced's character-class approach:

Character Class

Tokens/Char

Examples

ASCII

0.25

Hello world → 3 tokens

CJK

1.5

你好世界 → 6 tokens

Emoji

2.0

Emoji sequences

Hiragana/Katakana

1.5

Japanese text

Korean Hangul

1.5

Korean text

Impact / 影響

Text: "資料庫 schema 部署完成,所有表都已經建好了。"

Standard estimate:  22 chars × 0.25 = 6 tokens   ← WRONG
CJK-aware estimate: 22 chars → 28 tokens          ← CORRECT (4.7x difference)

memory_compact uses CJK-aware estimation to accurately determine when session.md needs compaction:

[workspace] session.md status: COMPACT RECOMMENDED
  Lines: 142 | Chars: 5830 | Estimated tokens: 4102
  (CJK-aware: CJK=1.5tok, ASCII=0.25tok, Emoji=2.0tok)
  Threshold: 100 lines or 3000 tokens
  → Agent should: read session.md, extract items via memory_record_*, trim session.md

Memory Types / 記憶類型

Type

When to Use

Example

Decision

You chose a path

"Use Clerk for auth — lower maintenance"

決策

做出選擇時

「選用 Clerk 做認證——維護成本較低」

Resolved

You fixed something

"JWT race condition — fixed with mutex"

已解決

修好問題時

「JWT race condition——用 mutex 修復」

Question

You need an answer

"Should we add Redis?"

問題

需要答案時

「要不要加 Redis?」

Knowledge

You learned something

"VECTOR columns support cosine similarity"

知識

學到東西時

「VECTOR 欄位支援 cosine similarity」

memory_store auto-classifies: if it contains "decided/chose" → decision, "fixed/solved" → resolved, "?" → question, else → knowledge.

memory_store 自動分類:包含「決定/選擇」→ 決策,「修好/解決」→ 已解決,「?」→ 問題,其他 → 知識。


Audit Trail / 稽核軌跡

"Every interaction leaves a trace." — This is not just a tagline. It's the architecture.

「凡走過必留下痕跡。」 —— 這不只是標語,這是架構。

Table

Scale

Purpose

用途

AUDIT_LOG

Scales to 100K+

Every email, message, and action — timestamped, categorized, suspicious-flagged

每封郵件和動作的完整紀錄

ACTIVITY_LOG

Grows daily

Agent scheduled task logs, dispatches, health checks

代理排程任務、派送、健康檢查

DAILY_REPORTS

1 per day

Auto-generated daily summaries with email stats, calendar, narrative

自動產生的每日摘要

AUDIT_PROGRESS

Per source

Data source processing tracker

資料來源處理進度

Search by date, sender, keyword, importance (H/M/L), suspicious flag. Get aggregate stats by period.


Domain Isolation / 領域隔離

Every workspace belongs to a domain: work, personal, or system.

                    ┌─────── work ───────┐
                    │ project-a          │
                    │ project-b          │  ← Write isolated
                    │ report-automation  │  ← Read: current workspace default
                    └────────────────────┘
                              ↕ cross-domain search (opt-in)
                    ┌────── personal ─────┐
                    │ my-app              │  ← Separate domain
                    │ side-projects       │
                    └─────────────────────┘
  • Write always goes to the current workspace / 寫入永遠寫到當前專案

  • Read defaults to current workspace / 讀取預設只看當前專案

  • Search can span all domains (opt-in) / 搜尋可跨領域(需明確指定)


Database Schema (18 Tables) / 資料庫結構(18 張表)

Table

Purpose

用途

WORKSPACES

Project registry with domain tags

專案註冊表

DECISIONS

Decisions (what/why/how) + salience

決策記錄 + salience

RESOLVED

Resolved issues + salience

已解決問題 + salience

OPEN_QUESTIONS

Prioritized questions + salience

未解問題 + salience

KNOWLEDGE_ITEMS

Knowledge + vector embeddings + salience

知識 + 向量嵌入 + salience

DAILY_LOGS

Daily log metadata

每日日誌

PERSONALITY_TRAITS

Structured user understanding

用戶特質

CROSS_REFERENCES

Links between any records

記錄間關聯

TAXONOMY

Hierarchical categories

階層分類

CONTACTS

People and relationships

聯絡人

SOP

Standard operating procedures

標準作業流程

CHANNELS

Communication channels

通訊管道

ACTIVITY_LOG

Agent action trail

代理動作軌跡

AUDIT_LOG

Full audit trail

完整稽核軌跡

AUDIT_PROGRESS

Processing tracker

處理進度

DAILY_REPORTS

Auto-generated summaries

每日摘要

SYNC_WATERMARK

Incremental sync tracking

增量同步追蹤

SYNC_LOG

Sync history

同步歷史

Supported Cloud Backends / 支援的雲端後端

Backend

Status

Vector Search

SQLite

Built-in (default)

Text search

Oracle AI Database

Supported

Native VECTOR + cosine

PostgreSQL + pgvector

Planned

vector extension

Supabase

Planned

pgvector + REST API

MySQL / HeatWave

Planned

ML integration


How It Compares / 與其他方案的比較

Feature

MCP Memory Server

OpenMemory

memory-lancedb-pro

Structured memory types

4 types

key-value

6 categories

Cross-workspace search

cloud DB

local only

local only

Vector search

Oracle / pgvector

synthetic embeddings

LanceDB

Salience / decay

access tracking + daily decay

no

Weibull model

CJK token awareness

built-in

no

no

Audit trail

86K+ entries

no

no

Multi-agent support

Claude + Gemini + Codex

Claude + Gemini + Codex

OpenClaw only

Domain isolation

work / personal / system

user ID

scope-based

Cloud sync

scheduled incremental

no

no

Database choice

SQLite + any cloud DB

SQLite

LanceDB

18-table schema

yes

no

no


Configuration / 設定

~/.mcp-memory/config.json:

{
  "workspace_root": "~/Documents/Workspace",
  "workspace_map": "~/path/to/workspace-map.json",
  "cloud_db": {
    "enabled": false,
    "type": "oracle | postgresql | supabase",
    "connection": "..."
  },
  "embedding": {
    "provider": "none | openai | local",
    "model": "text-embedding-3-small"
  }
}

Interactive setup: python setup_config.py

Transport modes:

python -m mcp_memory            # STDIO (Claude Code)
python -m mcp_memory --http     # HTTP (Gemini, Codex, web)
python -m mcp_memory --decay    # Run daily salience decay job

Philosophy / 設計哲學

"The best knowledge system captures everything and surfaces only what's relevant."

「最好的知識系統是捕捉一切,只呈現相關的。」

  1. Structured by default — Decisions and knowledge are different. Treat them differently.

  2. Salience, not deletion — Old memories fade, but never disappear. They can always be found.

  3. Layers, not monoliths — Each layer has a job. Fast local → permanent cloud. No skipping.

  4. CJK-native — Not an afterthought. Built for multilingual from the start.

  5. Agent-agnostic — Your memory belongs to you, not your AI vendor.

  6. Audit everything — Every trace, every action, every day. Full accountability.


  1. 結構化為本 —— 決策和知識本質不同,分別儲存。

  2. Salience 而非刪除 —— 舊記憶淡出,但永不消失。隨時可找回。

  3. 分層而非單體 —— 每層各司其職。快速本地 → 永久雲端。不跳層。

  4. 原生 CJK —— 不是事後補丁。從第一天就為多語言設計。

  5. 不綁定 AI —— 你的記憶屬於你,不屬於 AI 廠商。

  6. 稽核一切 —— 每個軌跡、每個動作、每一天。完整的可追溯性。


繁體中文版

MCP Memory Server 是什麼?

一個統一的 AI 代理長期記憶系統。安裝後,你的 Claude Code、Gemini CLI、Codex CLI 都能使用 19 個 native MCP tools 來記錄和查詢記憶。

核心功能

  • 19 個 MCP 工具:寫入(5)、讀取(3)、刪除(1)、搜尋(1)、Salience(1)、稽核軌跡(4)、管理(3)

  • 四層記憶架構:session.md → SQLite → Markdown → Cloud DB

  • Salience 引擎:存取追蹤 + 強化 + 自然衰減,重要的記憶自動浮上來

  • CJK 感知:繁中/日文/韓文的 token 估算準確度提高 3-6 倍

  • 領域隔離:工作、個人、系統三個領域,寫入隔離,搜尋可跨域

  • 稽核軌跡:AUDIT_LOG + ACTIVITY_LOG + DAILY_REPORTS,完整可追溯

  • 18 張表的雲端 Schema:涵蓋記憶、知識、聯絡人、SOP、分類樹、稽核

  • 離線優先:SQLite 零配置即可運作,雲端資料庫是可選的進階功能

安裝

git clone https://github.com/teddashh/mcp-memory-server.git
cd mcp-memory-server && pip install -e .
python setup_config.py

~/.claude/.mcp.json 加入 server 設定後,重啟 Claude Code 即可使用所有 tools。


Contributing / 貢獻

Issues and PRs welcome.

歡迎提交 Issue 和 Pull Request。

License

MIT

F
license - not found
-
quality - not tested
D
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/teddashh/mcp-memory-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server