Skip to main content
Glama
bsahane

Memory MCP Server

by bsahane

Memory MCP Server

Python 3.12+ Tests License: Apache 2.0

AIエージェントに永続メモリを提供するModel Context Protocol (MCP)サーバーです。メモリはローカルのSQLiteデータベース(自動作成、設定不要)に保存され、ツールファーストのアーキテクチャに従った40のツールを通じて公開されます。template-mcp-server の本番用スキャフォールド(FastMCP + FastAPI、構造化ログ、コンテナ、OpenShiftマニフェスト、CI)を基に構築されています。

機能

  • 4つのドメインにわたる40のMCPツール: メモリ、タスク、時間(リマインダー/アラート)、ダッシュボード

  • 7つのメモリツール: store、get、search、list、update、delete、projects

  • 7つのTODOツール: 優先度と期限を備えたcreate/search/list/get/update/complete/delete

  • 8つのカンバンツール: 列を設定可能なボードと、カードの追加/移動/更新/削除

  • 7つのトラッカーツール: エントリが進捗メトリクスに集約されるステータストラッカー

  • aiosqliteによるSQLite永続化 — 単一ファイル、調整済みのWALベースライン、自動作成

  • 全文キーワード検索 — FTS5インデックスに対する単語全体のポーターステミング一致、関連度順にランク付け(最良一致が先頭)

  • メモリとTODOのタグとメタデータ

  • 複数のトランスポート(HTTP、SSE、streamable-HTTP)を備えたFastMCP + FastAPI

  • 環境変数によるPydantic設定

  • structlogによる構造化JSONログ

  • OAuth統合(デフォルトでは無効。docs/authentication.md を参照)

  • コンテナ対応(Red Hat UBIベースイメージ)で、OpenShiftマニフェストも同梱

検索と保存の動作

検索(memory_search、todo_search)は、ポーターステミングされた全文インデックスに対して単語全体のトークンを照合します。部分的な単語は決して一致せず(check を検索しても checklist は一致しません)、句読点や演算子はリテラルとして扱われ、結果はbm25の関連度でランク付けされます — 最強の一致が先頭、同点の場合は新しい順です。なお、unicode61トークン化ではCJKの文全体が単一のトークンとして扱われるため、単語全体の一致はスペース区切りの文字体系を前提としています。

データベースは synchronous=NORMAL のWALモードで動作します。直近にコミットされたトランザクションは、OSのクラッシュや停電時に失われる可能性があります(メモやタスク用途としては許容されるトレードオフであり、記録の正本としては適していません)。定常状態のWALサイズは wal_autocheckpoint(約1000ページ ≈ 4 MiB)によって上限が設定されます。journal_size_limit(8 MiB)は、チェックポイントがファイルを解放した後にSQLiteがWALファイルを切り詰めることを可能にするだけです。メンテナンス(PRAGMA optimize + wal_checkpoint(TRUNCATE) パス)は、リマインダーのポーリングループ内で10回に1回のティックごとにインラインで実行され、ティックを一時的に遅延させる可能性があります。このメンテナンスはフックごとのタイムアウトとデータベースのビジータイムアウトによって制限されます。

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で1件のメモリを取得します

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

コンテンツの単語全体キーワード検索。関連度順にランク付け

memory_list(limit?, offset?, tag?)

メモリを新しい順に閲覧します

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

メモリを部分的に更新します

memory_delete(id)

IDでメモリを削除します

TODO

ツール

目的

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

構造化されたタスクを追加します

todo_search(query, limit?, offset?)

タイトル/説明の単語全体キーワード検索。関連度順にランク付け

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

フィルター付きでTODOを閲覧します

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

個々のTODOを管理します

カンバン

ツール

目的

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

ドキュメント

ガイド

説明

Architecture

システム図、コード構造、主要コンポーネント

Development

セットアップ、ローカルでの実行、テスト、コード品質

Deployment

Podman、OpenShift、コンテナ設定

Authentication

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