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_searchtodo_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回のティックごとにインラインで実行され、ティックを一時的に遅延させる可能性があります。このメンテナンスはフックごとのタイムアウトとデータベースのビジータイムアウトによって制限されます。

クイックスタート

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

トランスポートプロトコル(httpssestreamable-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 から派生

-
license - not tested
Not graded
quality - not tested
B
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.

Related MCP Connectors

  • Persistent memory for AI agents. Search, store, and recall across sessions.

  • Persistent memory and knowledge management for AI agents with semantic search and 50+ tools.

  • Universal memory for AI agents and tools. Save, organize and search context anywhere.

View all MCP Connectors

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/bsahane/memory-mcp-server'

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