Token导航 LogoToken导航TokenDH.com
Claude Local Memory Server logo
搜索检索stdio官方级别未说明来源级核验

Claude Local Memory Server

MCP Server

一个为Claude Code提供持久化、可搜索的共享内存服务器,支持跨机器访问,内置语义搜索和DuckDB存储。

工具数

0

提示词数

0

GitHub Stars

1

资源数

0
持久化存储开发工具PythonClaudeClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

thomasbeste

提供方

thomasbeste

最后核验

2026/5/17 20:19

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

pip install claude-local-memory-server

详细介绍

Claude本地内存服务器

通过MCP为Claude Code提供持久共享内存

一个轻量级的内存服务器,为Claude Code提供跨机器的持久、可搜索内存。使用DuckDB构建,通过句子转换器提供语义搜索,实现高效存储。

┌─────────────────┐     ┌─────────────────┐
│ Claude Code     │     │ Claude Code     │
│ (laptop)        │     │ (desktop)       │
└────────┬────────┘     └────────┬────────┘
         │                       │
         └───────────┬───────────┘
                     ▼
          ┌─────────────────────┐
          │  claude-local-      │
          │  memory-server      │
          │  (your LXC/server)  │
          └─────────────────────┘

特性

  • 持久存储 –记忆在重启后仍然存在,存储在DuckDB中
  • 语义搜索 –通过意义而不仅仅是关键字来寻找记忆
  • 混合搜索 –将关键字匹配与向量相似性(RRF)相结合
  • 项目范围界定 –从git自动检测项目,为每个项目隔离内存
  • 跨机器共享 –运行中央服务器,从任何地方连接
  • 快速查询 –DuckDB支持自动索引
  • 客户跟踪 –知道是哪台机器创建了每个内存
  • 基于标签的组织 –按项目、技术栈或自定义标签筛选
  • 生产就绪 –速率限制、请求日志记录、CORS支持
  • 简单设置 –一个脚本在Debian/Ubuntu上安装所有内容

快速开始

选项1:本地模式(单机)

# Install
pip install claude-local-memory-server

# Configure Claude Code
claude mcp add-json "memory" '{
  "command": "python",
  "args": ["-m", "claude_memory.cli", "serve"],
  "env": {"MEMORY_CLIENT_ID": "my-laptop"}
}'

选项2:使用Docker的服务器模式(推荐)

git clone https://github.com/thomasbeste/claude-local-memory-server.git
cd claude-local-memory-server
./scripts/install-docker.sh

脚本构建图像,启动容器,并打印API密钥。

或者直接使用docker compose:

# Generate an API key
export MEMORY_API_KEY=$(openssl rand -base64 32 | tr -d '/+=' | head -c 32)

# Start the server
docker compose up -d

# Check status
docker compose logs -f

HTTP MCP模式(直接连接):

服务器在以下位置公开MCP over HTTP端点 /mcp.配置Claude Code直接连接:

claude mcp add memory --transport http --url http://your-server:8420/mcp

这消除了对本地客户端进程的需要——Claude Code通过HTTP直接连接到服务器。

选项3:带Systemd的服务器模式(LXC/VM)

在您的服务器上(Debian/Ubuntu LXC、VM等):

git clone https://github.com/thomasbeste/claude-local-memory-server.git
cd claude-local-memory-server
sudo ./scripts/install-systemd.sh

该脚本安装Python,创建一个systemd服务,并打印您的API密钥。

在每台客户端机器上:

pip install claude-local-memory-server

claude mcp add-json "memory" '{
  "command": "python",
  "args": ["-m", "claude_memory.cli", "client"],
  "env": {
    "MEMORY_SERVER": "http://your-server:8420",
    "MEMORY_API_KEY": "your-key-here",
    "MEMORY_CLIENT_ID": "laptop"
  }
}'

用法

配置后,Claude可以存储和检索内存:

存储内存:

“记住,我们决定在GPI项目中使用FastAPI”

回忆往事:

“我们对GPI做出了哪些决定?”

按客户搜索:

“上周我在笔记本电脑上做了什么?”

CLI命令

# Show current project (auto-detected from git)
claude-memory project

# Add a memory (auto-associates with current project)
claude-memory add "Project X uses Python 3.12" --type fact --tags project:x

# Add memory to a specific project
claude-memory -p my-project add "Memory content"

# Add memory without project association
claude-memory add "Global memory" --no-project

# Search memories (default: hybrid mode, scoped to current project)
claude-memory search --query "Python"

# Search with specific mode
claude-memory search -q "software development" -m semantic  # meaning-based
claude-memory search -q "Python" -m keyword                  # exact matching
claude-memory search -q "API framework" -m hybrid            # combined (default)

# Search across ALL projects
claude-memory search -q "Python" --global

# Get context summary for current project (prioritized decisions, preferences, facts)
claude-memory context

# Get context as JSON
claude-memory context --json

# Filter by type and tags
claude-memory search --type decision --tags project:x

# View statistics (for current project)
claude-memory stats

# View statistics across all projects
claude-memory stats --global

# Backfill embeddings for existing memories
claude-memory backfill-embeddings

# Delete a memory
claude-memory delete 

搜索模式

模式描述
keyword传统子字符串匹配(ILIKE)
semantic使用句子变换器的向量相似性
hybrid将两者与往复式排名融合相结合(默认)

存储器类型

类型用途
fact具体事实(名称、版本、配置)
decision对话中做出的决定
preference用户偏好(工具、风格、语言)
observation一般性意见
entity人员、项目、组织
relation实体之间的关系

配置

环境变量

客户端变量:

变量描述
MEMORY_SERVERHTTP服务器URL(客户端模式)
MEMORY_API_KEY用于身份验证的API密钥
MEMORY_CLIENT_ID此客户端的标识符(例如,“笔记本电脑”、“工作电脑”)
MEMORY_PROJECT覆盖自动检测到的项目ID

服务器变量:

变量描述
MEMORY_API_KEY用于身份验证的API密钥(生产需要)
CORS_ORIGINS逗号分隔的允许来源(例如。, https://ui.example.com)

服务器选项

claude-memory server --help

Options:
  --host TEXT      Host to bind to [default: 0.0.0.0]
  --port INTEGER   Port to bind to [default: 8420]
  --data-dir TEXT  Data directory [default: /var/lib/claude-local-memory-server]

安装脚本选项

Docker(安装Docker.sh):

./scripts/install-docker.sh --help

Options:
  --port PORT         HTTP port [default: 8420]
  --api-key KEY       Set API key (generated if omitted)
  --no-start          Build only, don't start the container

Systemd(安装Systemd.sh):

./scripts/install-systemd.sh --help

Options:
  --port PORT         HTTP port [default: 8420]
  --api-key KEY       Set API key (generated if omitted)
  --data-dir DIR      Data directory [default: /var/lib/claude-local-memory-server]
  --no-service        Don't install systemd service

在反向代理后面部署

该服务器被设计为在nginx或其他反向代理后面通过互联网暴露。它包括:

  • API密钥验证 –所有路线(除 /health)要求 X-API-Key 头球
  • 速率限制 –写入30/分钟,读取60/分钟(根据API密钥)
  • 请求日志记录 –记录的每个请求都带有计时、IP和API密钥提示
  • CORS支持 –可通过以下方式配置 CORS_ORIGINS 环境变量

Nginx配置

# Rate limiting zone (optional, server has built-in limits)
limit_req_zone $binary_remote_addr zone=memory_api:10m rate=10r/s;

server {
    listen 443 ssl http2;
    server_name memory.yourdomain.com;

    ssl_certificate /etc/letsencrypt/live/memory.yourdomain.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/memory.yourdomain.com/privkey.pem;

    # Security headers
    add_header X-Content-Type-Options nosniff;
    add_header X-Frame-Options DENY;

    location / {
        proxy_pass http://127.0.0.1:8420;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;

        # Optional: nginx-level rate limiting
        limit_req zone=memory_api burst=20 nodelay;

        # Request size limit (prevent memory bombs)
        client_max_body_size 1m;
    }

    # Health check (no auth required)
    location /health {
        proxy_pass http://127.0.0.1:8420/health;
    }
}

# Redirect HTTP to HTTPS
server {
    listen 80;
    server_name memory.yourdomain.com;
    return 301 https://$server_name$request_uri;
}

速率限制

每个API密钥的内置速率限制(如果没有密钥,则为IP):

操作限制
创建内存30/分钟
更新内存30/分钟
删除内存30/分钟
搜索60次/分钟
获取内存60/分钟
统计数据/上下文60/分钟

当速率受到限制时,服务器返回 429 Too Many Requests.

请求日志记录

所有请求都以以下格式记录:

2025-12-18 12:34:56 | claude_memory.api | INFO | POST /memories | 201 | 45.2ms | ip=192.168.1.5 key=abc12345...

日志包括:

  • 时间戳
  • HTTP方法和路径
  • 应答状态
  • 请求持续时间
  • 客户端IP地址
  • API密钥的前8个字符(用于调试而不暴露完整密钥)

建筑

src/claude_memory/
├── storage.py   # DuckDB/Parquet storage layer
├── server.py    # MCP stdio server (local mode)
├── api.py       # FastAPI HTTP server + MCP-over-HTTP endpoint
├── client.py    # MCP stdio client → HTTP proxy
└── cli.py       # Command-line interface

本地模式: 克劳德代码↔ 标准输入输出↔ server.py ↔ DuckDB

客户端模式: 克劳德代码↔ 标准输入输出↔ client.py ↔ HTTP休息↔ api.py ↔ DuckDB

HTTP MCP模式: 克劳德代码↔ HTTP MCP↔ api.py /mcp 端点↔ DuckDB

数据存储

记忆存储在持久的DuckDB数据库中:

  • 服务器: /var/lib/claude-local-memory-server/memories.duckdb
  • 当地: ~/.claude-memory/memories.duckdb

该数据库包括用于语义搜索的嵌入(来自 all-MiniLM-L6-v2).

使用DuckDB进行检查:

duckdb ~/.claude-memory/memories.duckdb -c "SELECT id, content, memory_type FROM memories LIMIT 10"

导出到拼花地板(用于备份):

# From Python
from claude_memory.storage import MemoryStorage
storage = MemoryStorage()
storage.export_parquet("/path/to/backup.parquet")

备份脚本:

./scripts/backup.sh  # Creates timestamped backup in /var/backups/claude-local-memory-server/

使用钩子实现自动上下文

克劳德代码支持 钩子 --响应事件运行的shell命令。您可以使用钩子在每次对话开始时自动注入内存上下文。

自动注入项目上下文

创建 .claude/settings.json 在您的项目中(或 ~/.claude/settings.json 全球):

{
  "hooks": {
    "UserPromptSubmit": [
      {
        "matcher": "",
        "hooks": [
          {
            "type": "command",
            "command": "claude-memory context --json 2>/dev/null | jq -r '\"[Memory Context for \" + .project_id + \"]\\n\" + (.memories | map(\"- [\" + .memory_type + \"] \" + .content) | join(\"\\n\"))' 2>/dev/null || echo ''",
            "timeout": 5000
          }
        ]
      }
    ]
  }
}

这将在每次提示提交时运行,并在您的对话中添加相关记忆。空的 matcher 意味着它在所有提示下运行。

更简单的钩子(不需要jq)

如果你没有 jq 安装:

{
  "hooks": {
    "UserPromptSubmit": [
      {
        "matcher": "",
        "hooks": [
          {
            "type": "command",
            "command": "claude-memory context 2>/dev/null || echo ''",
            "timeout": 5000
          }
        ]
      }
    ]
  }
}

钩子提示

  • 超时:设置合理的超时时间(5000ms),这样慢速网络就不会阻止您的对话
  • 错误处理:The || echo '' 确保Claude Code不会因错误而阻塞
  • Stderr重定向: 2>/dev/null 抑制连接警告
  • 项目范围界定: claude-memory context 自动检测您的git项目,并仅返回相关内存

其他钩子想法

事件用例
PreToolUse当Claude要存储内存时记录
PostToolUse内存操作后触发通知
Stop总结会议中记住的内容

Claude Code挂钩文档 以获取完整的事件参考。

发展

# Clone and install in development mode
git clone https://github.com/thomasbeste/claude-local-memory-server.git
cd claude-local-memory-server
python -m venv .venv
source .venv/bin/activate
pip install -e ".[dev,server,embeddings]"

# Run tests
pytest

# Run linter
ruff check src/

可选依赖关系

额外描述
serverFastAPI+uvicon用于HTTP服务器模式
embeddings语义搜索的句子变换器
devpytest+ruff用于开发
all上面的一切

路线图

  • \[x\] 嵌入语义搜索
  • \[x\] 混合搜索(关键字+语义)
  • \[x\] DuckDB持久模式
  • \[x\] 速率限制和请求日志记录
  • \[x\] 生产已准备好进行反向代理部署
  • \[x\] HTTP端点上的MCP(直接克劳德代码连接)
  • \[\]用于浏览回忆的Web UI
  • \[\]内存过期/TTL
  • \[\]知识图关系
  • \[\]自动摘要
  • \[\]普罗米修斯指标端点

TODO.md 完整的路线图。

许可证

MIT许可证-请参阅 许可证

贡献

欢迎投稿!看 贡献.md 作为指导方针。

目录标签

目录标签

持久化存储开发工具PythonClaude本地部署语义搜索跨机器共享DuckDB

支持客户端

Claude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

api-key

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdioapi-key部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP