Skip to main content
Glama
bsahane

Memory MCP Server

by bsahane

Memory MCP 服务器

Python 3.12+ Tests License: Apache 2.0

一个模型上下文协议(MCP)服务器,为AI代理提供持久记忆。记忆存储在本地SQLite数据库中(自动创建,零配置),并通过四十个工具以工具优先架构对外暴露。基于template-mcp-server生产脚手架构建(FastMCP + FastAPI、结构化日志、容器、OpenShift清单、CI)。

功能特性

  • 跨四个领域的40个MCP工具:记忆、任务、时间(提醒/警报)、仪表板

  • 七个记忆工具:存储、获取、搜索、列表、更新、删除、项目

  • 七个待办工具:创建/搜索/列表/获取/更新/完成/删除,支持优先级和截止日期

  • 八个看板工具:具有可配置列的面板;卡片的添加/移动/更新/删除

  • 七个追踪器工具:状态追踪器,其条目汇总为进度指标

  • SQLite持久化,通过aiosqlite实现——单文件、调优的WAL基线、自动创建

  • 全文关键词搜索——基于FTS5索引的整词、波特词干匹配,按相关性排序(最佳匹配优先)

  • 记忆和待办事项上的标签和元数据

  • FastMCP + FastAPI,支持多种传输方式(HTTP、SSE、流式HTTP)

  • 通过环境变量进行Pydantic配置

  • 使用structlog进行结构化JSON日志记录

  • OAuth集成(默认禁用;参见docs/authentication.md)

  • 容器就绪(Red Hat UBI基础镜像)并包含OpenShift清单

搜索与存储行为

搜索(memory_search、todo_search)在忽略大小写的全文索引上匹配整词标记:部分单词永远不会匹配(查询check不会匹配checklist),标点符号和运算符按字面处理,结果按bm25相关性排序——最相关优先,并列时最新优先。请注意,unicode61分词将整个CJK句子视为单个标记,因此整词匹配假定使用空格分隔的脚本。

数据库以WAL模式运行,synchronous=NORMAL:最近提交的事务可能在操作系统崩溃或断电时丢失(对于笔记/任务来说这是一个可接受的权衡——不适合作为记录系统)。稳态WAL大小受wal_autocheckpoint(约1000页≈4 MiB)限制;journal_size_limit(8 MiB)仅允许SQLite在检查点释放WAL文件后将其截断。维护(PRAGMA optimize + wal_checkpoint(TRUNCATE))在提醒轮询循环中每十次执行一次,可能短暂延迟一次;它受每个钩子超时和数据库繁忙超时的限制。

Related MCP server: Agent Progress Tracker MCP Server

快速开始

git clone https://github.com/redhat-data-and-ai/memory-mcp-server
cd memory-mcp-server
make install        # creates venv, installs deps + pre-commit hooks
make local          # starts server on localhost:5001

在另一个终端中验证:

curl http://localhost:5001/health

手动设置(不使用Make):

# Create venv and install
uv venv && source .venv/bin/activate
uv pip install -e ".[dev]"
pre-commit install

# Configure and run
cp .env.example .env
memory-mcp-server

# Verify
curl http://localhost:5001/health

工具

记忆

工具

用途

memory_store(content, tags?, metadata?)

持久化新记忆;返回其id

memory_get(id)

按id获取一条记忆

memory_search(query, limit?, project?, output_format?)

对内容进行整词关键词搜索,按相关性排序

memory_list(limit?, offset?, tag?)

按最新优先浏览记忆

memory_update(id, content?/tags?/metadata?)

部分更新记忆

memory_delete(id)

按id删除记忆

待办事项

工具

用途

todo_create(title, description?, priority?, status?, due_date?, tags?)

添加结构化任务

todo_search(query, limit?, offset?)

对标题/描述进行整词关键词搜索,按相关性排序

todo_list(status?, tag?, limit?, offset?)

使用筛选器浏览待办事项

todo_get(id) / todo_update(id, ...) / todo_complete(id) / todo_delete(id)

管理单个待办事项

看板

工具

用途

board_create(name, description?, columns?)

新面板;默认为backlog/todo/in_progress/done

board_list() / board_delete(board_id)

枚举或拆除面板

board_view(board_id)

按列分组的完整面板状态

card_add(board_id, title, ...) / card_move(card_id, column, position?)

放置和重新排序工作

card_update(card_id, ...) / card_delete(card_id)

编辑或移除卡片

提醒与警报

工具

用途

reminder_create(title, due_at, notes?, repeat?)

安排未来警报(无/每小时/每天/每周重复)

reminder_get(id) / reminder_update(id, ...)

检查或编辑计划

reminder_list(status?, limit?, offset?)

最早到期优先

reminder_cancel(id) / reminder_snooze(id, minutes?) / reminder_delete(id)

管理计划

alert_list(acknowledged?, limit?) / alert_ack(id) / alert_ack_all()

查看和清除已触发的警报

后台调度器将到期提醒转换为服务器端警报;在会话开始时使用alert_list(acknowledged=false)查询它们。

管理

工具

用途

overview()

跨领域计数、未确认警报以及下一步到期事项

追踪器

工具

用途

tracker_create(name, description?) / tracker_list() / tracker_delete(id)

管理追踪器

entry_add(tracker_id, name, status?) / entry_update_status(entry_id, status) / entry_remove(entry_id)

跟踪项目(not_started/in_progress/blocked/done)

tracker_status(tracker_id)

进度:总数/完成/百分比以及各状态计数

所有工具返回{status: "success" | "error", ...}字典,并且永远不会在工具边界抛出异常。

配置

变量

默认值

描述

MEMORY_DB_PATH

./data/memory.db

SQLite数据库文件(自动创建,包含父目录)

REMINDER_POLL_SECONDS

30

后台调度器触发到期提醒的间隔

MCP_HOST

localhost

服务器绑定地址

MCP_PORT

5001

服务器端口(1024-65535)

MCP_TRANSPORT_PROTOCOL

http

传输协议(http、sse、streamable-http)

MCP_SSL_KEYFILE / MCP_SSL_CERTFILE

None

HTTPS的SSL密钥/证书

ENABLE_AUTH

False*

OAuth认证(参见docs/authentication.md)

PYTHON_LOG_LEVEL

INFO

日志级别

* ENABLE_AUTH在.env.example中默认为False。始终将.env.example复制为.env以在禁用认证的情况下启动。

连接MCP客户端

将您的MCP客户端指向服务器端点:

{
  "mcpServers": {
    "memory": {
      "url": "http://localhost:5001/mcp"
    }
  }
}

参见examples/fastmcp_client.py,这是一个存储和搜索记忆的工作客户端。

开发

make lint     # ruff + mypy
make test     # pytest with coverage
make pre-commit  # run all pre-commit hooks

文档

指南

描述

架构

系统图、代码结构、关键组件

开发

设置、本地运行、测试、代码质量

部署

Podman、OpenShift、容器配置

认证

OAuth设置、认证模式、故障排除

许可证

Apache 2.0——衍生自 redhat-data-and-ai/template-mcp-server。

Maintenance

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • -
    license
    Not graded
    quality
    Not graded
    maintenance
    Provides persistent local memory functionality for AI assistants, enabling them to store, retrieve, and search contextual information across conversations with SQLite-based full-text search. All data stays private on your machine while dramatically improving context retention and personalized assistance.
    3
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI agents to track, search, and retrieve their progress across projects with persistent memory using SQLite storage and LLM-powered summarization. Supports logging completed work, searching previous entries, and retrieving context for multi-step or multi-agent workflows.
    12 npm
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Provides AI coding assistants with persistent memory storage using a local SQLite database. Enables tools to remember project details, notes, and relationships across sessions to maintain context and reduce repetitive explanations.
    17
    4
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Gives AI coding agents persistent memory by storing observations, decisions, and learnings in a local SQLite database with vector search, full-text search, and a rules engine.
    4
    MIT