MCP Memory Service

by doobidoo
Verified

local-only server

The server can only run on the client’s local machine because it depends on local resources.

Integrations

  • Mentioned as a potential cloud storage option where users should ensure sync is complete before accessing from another device.

MCPメモリサービス

ChromaDBとセンテンストランスフォーマーを活用し、Claude Desktopにセマンティックメモリと永続ストレージ機能を提供するMCPサーバー。このサービスは、セマンティック検索機能を備えた長期メモリストレージを可能にし、会話やインスタンス間でのコンテキスト維持に最適です。

特徴

  • 文変換を用いた意味検索
  • 自然言語による時間ベースの想起(例:「先週」、「昨日の朝」)
  • タグベースの記憶検索システム
  • ChromaDB を使用した永続ストレージ
  • 自動データベースバックアップ
  • メモリ最適化ツール
  • 完全一致検索
  • 類似性分析のデバッグモード
  • データベースの健全性監視
  • 重複検出とクリーンアップ
  • カスタマイズ可能な埋め込みモデル
  • クロスプラットフォーム互換性(Apple Silicon、Intel、Windows、Linux)
  • さまざまな環境に合わせたハードウェア対応の最適化
  • 限られたハードウェアリソースに対する適切なフォールバック

クイックスタート

最も早く始めるには:

# Install UV if not already installed pip install uv # Clone and install git clone https://github.com/doobidoo/mcp-memory-service.git cd mcp-memory-service uv venv source .venv/bin/activate # On Windows: .venv\Scripts\activate uv pip install -r requirements.txt uv pip install -e . # Run the service uv run memory

DockerとSmitheryの統合

Dockerの使用

分離とデプロイメントを向上させるために、サービスを Docker コンテナ内で実行できます。

# Build the Docker image docker build -t mcp-memory-service . # Run the container # Note: On macOS, paths must be within Docker's allowed file sharing locations # Default allowed locations include: # - /Users # - /Volumes # - /private # - /tmp # - /var/folders # Example with proper macOS paths: docker run -it \ -v $HOME/mcp-memory/chroma_db:/app/chroma_db \ -v $HOME/mcp-memory/backups:/app/backups \ mcp-memory-service # For production use, you might want to run it in detached mode: docker run -d \ -v $HOME/mcp-memory/chroma_db:/app/chroma_db \ -v $HOME/mcp-memory/backups:/app/backups \ --name mcp-memory \ mcp-memory-service

macOS で Docker のファイル共有を構成するには:

  1. Dockerデスクトップを開く
  2. 設定(環境設定)に移動します
  3. リソース -> ファイル共有に移動します
  4. 共有する必要がある追加のパスを追加します
  5. 「適用して再起動」をクリックします

鍛冶屋の統合

このサービスは、 smithery.yamlを通じて Smithery との統合用に設定されています。この設定により、Claude Desktop などの MCP クライアントとの stdio ベースの通信が可能になります。

Smithery で使用するには:

  1. claude_desktop_config.jsonが正しいパスを指していることを確認します。
{ "memory": { "command": "docker", "args": [ "run", "-i", "--rm", "-v", "$HOME/mcp-memory/chroma_db:/app/chroma_db", "-v", "$HOME/mcp-memory/backups:/app/backups", "mcp-memory-service" ], "env": { "MCP_MEMORY_CHROMA_PATH": "/app/chroma_db", "MCP_MEMORY_BACKUPS_PATH": "/app/backups" } } }
  1. smithery.yaml構成は、stdio 通信と環境設定を自動的に処理します。

Claude Desktop によるテスト

Claude Desktop で Docker ベースのメモリ サービスが正しく動作していることを確認するには:

  1. docker build -t mcp-memory-service .
  2. 永続ストレージに必要なディレクトリを作成します。
    mkdir -p $HOME/mcp-memory/chroma_db $HOME/mcp-memory/backups
  3. Claude Desktop の構成ファイルを更新します。
    • macOSの場合: ~/Library/Application Support/Claude/claude_desktop_config.json
    • Windows の場合: %APPDATA%\Claude\claude_desktop_config.json
    • Linuxの場合: ~/.config/Claude/claude_desktop_config.json
  4. Claudeデスクトップを再起動します
  5. Claude が起動すると、次のメッセージが表示されてメモリ サービスが初期化されます。
    MCP Memory Service initialization completed
  6. メモリ機能をテストします。
    • クロードに何かを覚えておいてもらいましょう。「私の好きな色は青だということを覚えておいてください」
    • 会話の後半または新しい会話の中で、「私の好きな色は何ですか?」と尋ねます。
    • クロードはメモリサービスから情報を取得する必要がある

問題が発生した場合:

  • Claudeデスクトップコンソールでエラーメッセージを確認してください
  • Dockerがマウントされたディレクトリにアクセスするために必要な権限を持っていることを確認する
  • Dockerコンテナが正しいパラメータで実行されていることを確認する
  • コンテナを手動で実行してエラー出力を確認してください

詳細なインストール手順、プラットフォーム固有のガイド、トラブルシューティングについては、次のドキュメントを参照してください。

構成

標準構成(推奨)

UV を使用するには、 claude_desktop_config.jsonファイルに以下を追加します (最高のパフォーマンスを得るには推奨)。

{ "memory": { "command": "uv", "args": [ "--directory", "your_mcp_memory_service_directory", // e.g., "C:\\REPOSITORIES\\mcp-memory-service" "run", "memory" ], "env": { "MCP_MEMORY_CHROMA_PATH": "your_chroma_db_path", // e.g., "C:\\Users\\John.Doe\\AppData\\Local\\mcp-memory\\chroma_db" "MCP_MEMORY_BACKUPS_PATH": "your_backups_path" // e.g., "C:\\Users\\John.Doe\\AppData\\Local\\mcp-memory\\backups" } } }

Windows 固有の構成 (推奨)

Windowsをご利用の場合は、PyTorchが正しくインストールされていることを確認するために、ラッパースクリプトの使用をお勧めします。詳細な手順については、 Windowsセットアップガイドをご覧ください。

{ "memory": { "command": "python", "args": [ "C:\\path\\to\\mcp-memory-service\\memory_wrapper.py" ], "env": { "MCP_MEMORY_CHROMA_PATH": "C:\\Users\\YourUsername\\AppData\\Local\\mcp-memory\\chroma_db", "MCP_MEMORY_BACKUPS_PATH": "C:\\Users\\YourUsername\\AppData\\Local\\mcp-memory\\backups" } } }

ラッパー スクリプトは次の処理を実行します。

  1. PyTorchがインストールされ、適切に設定されているか確認する
  2. 必要に応じて正しいインデックス URL で PyTorch をインストールします
  3. 適切な構成でメモリサーバーを実行する

ハードウェアの互換性

プラットフォーム建築アクセル状態
macOSAppleシリコン(M1/M2/M3)MPS✅ 完全にサポートされています
macOSRosetta 2 搭載の Apple SiliconCPU✅ フォールバックでサポートされています
macOSインテルCPU✅ 完全にサポートされています
ウィンドウズx86_64CUDA✅ 完全にサポートされています
ウィンドウズx86_64ダイレクトML✅ サポートされています
ウィンドウズx86_64CPU✅ フォールバックでサポートされています
リナックスx86_64CUDA✅ 完全にサポートされています
リナックスx86_64ROCm✅ サポートされています
リナックスx86_64CPU✅ フォールバックでサポートされています
リナックスARM64CPU✅ フォールバックでサポートされています

メモリ操作

メモリ サービスは、MCP サーバーを通じて次の操作を提供します。

コアメモリ操作

  1. store_memory - オプションのタグを使用して新しい情報を保存する
  2. retrieve_memory - 関連する記憶の意味的検索を実行する
  3. recall_memory - 自然言語の時間表現を使って記憶を思い出す
  4. search_by_tag - 特定のタグを使って思い出を探す
  5. exact_match_retrieve - コンテンツが完全に一致する思い出を検索
  6. debug_retrieve - 類似度スコアで記憶を取得する

タグの保存と管理の詳細については、タグ ストレージのドキュメントを参照してください。

データベース管理

  1. create_backup - データベースのバックアップを作成する
  2. get_stats - メモリ統計を取得する
  3. optimize_db - データベースのパフォーマンスを最適化する
  4. check_database_health - データベースの健全性メトリクスを取得する
  5. check_embedding_model - モデルの状態を確認する

メモリ管理

  1. delete_memory - ハッシュで特定のメモリを削除する
  2. delete_by_tag - 特定のタグが付いたすべての思い出を削除する
  3. cleanup_duplicates - 重複したエントリを削除する

設定オプション

環境変数を使用して設定します。

CHROMA_DB_PATH: Path to ChromaDB storage BACKUP_PATH: Path for backups AUTO_BACKUP_INTERVAL: Backup interval in hours (default: 24) MAX_MEMORIES_BEFORE_OPTIMIZE: Threshold for auto-optimization (default: 10000) SIMILARITY_THRESHOLD: Default similarity threshold (default: 0.7) MAX_RESULTS_PER_QUERY: Maximum results per query (default: 10) BACKUP_RETENTION_DAYS: Number of days to keep backups (default: 7) LOG_LEVEL: Logging level (default: INFO) # Hardware-specific environment variables PYTORCH_ENABLE_MPS_FALLBACK: Enable MPS fallback for Apple Silicon (default: 1) MCP_MEMORY_USE_ONNX: Use ONNX Runtime for CPU-only deployments (default: 0) MCP_MEMORY_USE_DIRECTML: Use DirectML for Windows acceleration (default: 0) MCP_MEMORY_MODEL_NAME: Override the default embedding model MCP_MEMORY_BATCH_SIZE: Override the default batch size

ヘルプの取得

問題が発生した場合:

  1. トラブルシューティングガイドを確認してください
  2. インストールガイドを確認する
  3. Windows固有の問題については、 Windowsセットアップガイドをご覧ください。
  4. Telegram経由で開発者に連絡する: t.me/doobeedoo

プロジェクト構造

mcp-memory-service/ ├── src/mcp_memory_service/ # Core package code │ ├── __init__.py │ ├── config.py # Configuration utilities │ ├── models/ # Data models │ ├── storage/ # Storage implementations │ ├── utils/ # Utility functions │ └── server.py # Main MCP server ├── scripts/ # Helper scripts │ ├── convert_to_uv.py # Script to migrate to UV │ └── install_uv.py # UV installation helper ├── .uv/ # UV configuration ├── memory_wrapper.py # Windows wrapper script ├── memory_wrapper_uv.py # UV-based wrapper script ├── uv_wrapper.py # UV wrapper script ├── install.py # Enhanced installation script └── tests/ # Test suite

開発ガイドライン

  • 型ヒント付きのPython 3.10+
  • モデルにデータクラスを使用する
  • モジュールと関数の三重引用符で囲まれたドキュメント文字列
  • すべてのI/O操作の非同期/待機パターン
  • PEP 8スタイルガイドラインに従う
  • 新機能のテストを含める

ライセンス

MITライセンス - 詳細はLICENSEファイルを参照

謝辞

  • ベクターデータベースのChromaDBチーム
  • 埋め込みモデルのためのSentence Transformersプロジェクト
  • プロトコル仕様のMCPプロジェクト

接触

t.me/doobidoo

Cloudflareワーカーの実装

Cloudflare Workers を使用した MCP Memory Service のサーバーレス実装が利用可能になりました。この実装では、以下の機能が提供されます。

  • ストレージにはCloudflare D1を使用 (サーバーレス SQLite)
  • 埋め込み生成にWorkers AIを使用する
  • MCPプロトコルの**Server-Sent Events(SSE)**を介して通信します
  • ローカルインストールや依存関係は不要
  • 使用量に応じて自動的にスケールします

Cloudflare導入のメリット

  • ローカルインストール不要: Python、依存関係、ローカルストレージは不要
  • クロスプラットフォームの互換性: インターネットに接続できるあらゆるデバイスで動作します
  • 自動スケーリング: 設定なしで複数のユーザーを処理
  • グローバル配信:どこからでも低遅延アクセス
  • メンテナンス不要: アップデートとメンテナンスは自動的に処理されます

Cloudflare実装で利用可能なツール

Cloudflare Worker 実装は、Python 実装と同じツールをすべてサポートします。

道具説明
store_memoryオプションのタグを使用して新しい情報を保存する
retrieve_memoryクエリに基づいて関連する思い出を見つける
recall_memory自然言語の時間表現を使用して記憶を思い出す
search_by_tagタグで思い出を検索
delete_memoryハッシュで特定のメモリを削除する
delete_by_tag特定のタグが付いたすべての思い出を削除する
cleanup_duplicates重複したエントリを見つけて削除する
get_embeddingコンテンツの生の埋め込みベクトルを取得する
check_embedding_model埋め込みモデルが読み込まれて動作しているかどうかを確認する
debug_retrieveデバッグ情報を含むメモリを取得する
exact_match_retrieve正確なコンテンツ一致を使用して思い出を検索する
check_database_healthデータベースの健全性をチェックし、統計情報を取得する
recall_by_timeframe特定の時間枠内の記憶を思い出す
delete_by_timeframe特定の期間内の記憶を削除する
delete_before_date特定の日付より前の思い出を削除する

Cloudflare メモリサービスを使用するための Claude の設定

Cloudflare ベースのメモリ サービスを使用するには、Claude 構成に以下を追加します。

{ "mcpServers": [ { "name": "cloudflare-memory", "url": "https://your-worker-subdomain.workers.dev/mcp", "type": "sse" } ] }

your-worker-subdomain実際の Cloudflare Worker サブドメインに置き換えます。

独自のCloudflareメモリサービスを導入する

  1. リポジトリをクローンし、Cloudflare Worker ディレクトリに移動します。
    git clone https://github.com/doobidoo/mcp-memory-service.git cd mcp-memory-service/cloudflare_worker
  2. Wrangler (Cloudflare の CLI ツール) をインストールします。
    npm install -g wrangler
  3. Cloudflareアカウントにログインします。
    wrangler login
  4. D1 データベースを作成します。
    wrangler d1 create mcp_memory_service
  5. 前の手順のデータベース ID を使用してwrangler.tomlファイルを更新します。
  6. データベース スキーマを初期化します。
    wrangler d1 execute mcp_memory_service --local --file=./schema.sql
    schema.sqlには次のものが含まれます。
    CREATE TABLE IF NOT EXISTS memories ( id TEXT PRIMARY KEY, content TEXT NOT NULL, embedding TEXT NOT NULL, tags TEXT, memory_type TEXT, metadata TEXT, created_at INTEGER ); CREATE INDEX IF NOT EXISTS idx_created_at ON memories(created_at);
  7. ワーカーをデプロイします。
    wrangler deploy
  8. 新しいワーカー URL を使用するように Claude 構成を更新します。

Cloudflareメモリサービスのテスト

デプロイ後、curl を使用してメモリ サービスをテストできます。

  1. 利用可能なツールを一覧表示します。
    curl https://your-worker-subdomain.workers.dev/list_tools
  2. 思い出を保存する:
    curl -X POST https://your-worker-subdomain.workers.dev/mcp \ -H "Content-Type: application/json" \ -d '{"method":"store_memory","arguments":{"content":"This is a test memory","metadata":{"tags":["test"]}}}'
  3. 思い出を取り戻す:
    curl -X POST https://your-worker-subdomain.workers.dev/mcp \ -H "Content-Type: application/json" \ -d '{"method":"retrieve_memory","arguments":{"query":"test memory","n_results":5}}'

制限事項

  • Cloudflare WorkersとD1の無料利用枠の制限が適用される場合があります
  • ワーカーAI埋め込みモデルは、ローカルセンテンストランスフォーマーモデルとは若干異なる可能性があります。
  • 手動操作のために基盤となるデータベースに直接アクセスできない
  • Cloudflare Workersは無料プランでは最大30秒の実行時間があります。
ID: bzvl3lz34o