/ ディレクトリ / プレイグラウンド / mcp-memory-service
● コミュニティ doobidoo ⚡ 即起動

mcp-memory-service

作者 doobidoo · doobidoo/mcp-memory-service

あなたのAIの永続的な長期メモリです。セマンティック検索、タグ、5msの取得、クラウド同期に対応しています。SQLiteはローカル、Cloudflareはマルチデバイス対応です。

doobidoo/mcp-memory-serviceはエージェント向けのセマンティックメモリを保存するPython MCPです。デフォルトのSQLite-vecバックエンドは高速(5ms)で、Cloudflareバックエンドはデバイス間の同期に対応しており、ハイブリッドモードはローカルに書き込んでから非同期で複製します。REST API、ウェブダッシュボード、リモートアクセス用のOAuth 2.0が含まれています。

なぜ使うのか

主な機能

ライブデモ

実際の動作

memory-service.replay ▶ 準備完了
0/0

インストール

クライアントを選択

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "memory-service": {
      "command": "uvx",
      "args": [
        "mcp-memory-service"
      ],
      "_inferred": true
    }
  }
}

Claude Desktop → Settings → Developer → Edit Config を開く。保存後、アプリを再起動。

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "memory-service": {
      "command": "uvx",
      "args": [
        "mcp-memory-service"
      ],
      "_inferred": true
    }
  }
}

Cursor は Claude Desktop と同じ mcpServers スキーマを使用。プロジェクト設定はグローバルより優先。

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "memory-service": {
      "command": "uvx",
      "args": [
        "mcp-memory-service"
      ],
      "_inferred": true
    }
  }
}

Cline サイドバーの MCP Servers アイコンをクリックし、"Edit Configuration" を選択。

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "memory-service": {
      "command": "uvx",
      "args": [
        "mcp-memory-service"
      ],
      "_inferred": true
    }
  }
}

Claude Desktop と同じ形式。Windsurf を再起動して反映。

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "memory-service",
      "command": "uvx",
      "args": [
        "mcp-memory-service"
      ]
    }
  ]
}

Continue はマップではなくサーバーオブジェクトの配列を使用。

~/.config/zed/settings.json
{
  "context_servers": {
    "memory-service": {
      "command": {
        "path": "uvx",
        "args": [
          "mcp-memory-service"
        ]
      }
    }
  }
}

context_servers に追加。保存時に Zed がホットリロード。

claude mcp add memory-service -- uvx mcp-memory-service

ワンライナー。claude mcp list で確認、claude mcp remove で削除。

ユースケース

実用的な使い方: mcp-memory-service

Claudeに設定とコンテキストの安定したメモリを提供する方法

👤 何度も同じことを説明するのに疲れた日常のパワーユーザー ⏱ ~10 min beginner

使うタイミング: 新しいチャットがいつもゼロから始まり、連続性が欲しい場合

前提条件
  • uvxをインストール — brew install uv
フロー
  1. 設定をシード
    memory_store: 「iOS + Swiftプロジェクトで作業しています。@ObservableでMVVMを好みます。常に英語でコメントを付けます。」とタグ[preference, coding]で保存。✓ コピーしました
    → 保存確認
  2. 将来のセッションで取得
    memory_search: 「私のコーディングスタイルの設定」で検索。✓ コピーしました
    → 設定が返され、エージェントがそれを適用
  3. 減衰クリーンアップ
    90日以上前で最近ヒットがないメモリを表示してください。削除を提案します。✓ コピーしました
    → レビュー用の古いリスト

結果: Claudeがあなたのことを覚えているように振る舞います。

注意点
  • 永遠に取得可能になるセンシティブなPIIの保存 — しないでください。メモリを公開ノートブックのように扱ってください。タグを使ってコンパートメント化します。

Cloudflareバックエンド経由でチーム全体とメモリプールを共有する方法

👤 共有AI ワークフローを実行しているチーム ⏱ ~30 min advanced

使うタイミング: すべてのエンジニアのチャットが同じアーキテクチャの決定を覚えるようにしたい場合

前提条件
  • Workers KVまたはD1を備えたCloudflareアカウント — cloudflare.comで、Cloudflareバックエンドドキュメントに従ってセットアップします。
フロー
  1. バックエンドを切り替える
    環境内のCF認証情報を使用して、MCP_MEMORY_BACKEND=cloudflareを設定します。✓ コピーしました
    → メモリエンドポイントがCFを指す
  2. チーム共有メモリをシード
    memory_store: 「認証はservices/authにあります。常にrotate-keys Makeターゲット経由でJWTキーをローテーションします。」とタグ「team-arch」で保存。✓ コピーしました
    → 保存
  3. 2番目のマシンから検証
    memory_search「auth service」で検索します。同じエントリが返される必要があります。✓ コピーしました
    → デバイス間ヒット

結果: チーム内の人事異動を乗り越える共有組織メモリ。

注意点
  • 共有メモリのセンシティブデータがチーム間でリーク — チームごとに個別のバックエンドを実行してください。シークレットを保存しないでください。

コーディングセッションの終わりに学習を自動的に収穫する方法

👤 エージェントを大量に使用するソロ開発者 ⏱ ~5 min beginner

使うタイミング: ペアプログラミングチャットの終わり、閉じる前に

フロー
  1. ハーベスターを実行
    このスレッドに対してmemory_harvestを実行してください。耐久的な事実(APIキーのパターン、プロジェクトの決定、既知の落とし穴)を抽出します。雑談は無視してください。✓ コピーしました
    → 候補メモリの構造化リスト
  2. 承認して保存
    項目1、3、5をタグ「project-x」でメモリとして保存します。残りは削除します。✓ コピーしました
    → 保存数

結果: 学習したことを低摩擦でキャプチャします。それ以上ではありません。

組み合わせ

他のMCPと組み合わせて10倍の力を

memory-service + contextplus

ライブリポジトリ状態にはContext+を使用し、耐久的なクロスセッション事実にはmemory-serviceを使用します。

このアーキテクチャの決定をmemory-serviceに保存し、Context+メモリグラフ経由で関連ファイルにリンクします。✓ コピーしました
memory-service + github

マージされたPRごとに、学習をメモリに収穫する

org/repoの最後の10個のマージされたPRを要約し、繰り返しの誤りを抽出し、タグ「code-review-lessons」でメモリとして保存します。✓ コピーしました

ツール

このMCPが提供する機能

ツール入力呼び出すタイミングコスト
memory_store content: str, tags?: str[] 耐久的な事実を保存する 1埋め込み
memory_search query: str, tags?: str[], limit?: int 関連メモリを取得する 1ベクトル検索(ローカル)
memory_harvest transcript: str セッション終了時のキャプチャ 1LLM呼び出し
memory_store_session session_id, messages チャット全体を取り込む N埋め込み

コストと制限

運用コスト

APIクォータ
SQLite-vec:無制限ローカル。ChromaDB:ローカル。Cloudflare:Workers/KV/D1フリーティアは十分です。
呼び出しあたりのトークン
保存:コンテンツ用に約100トークン。検索:結果あたり約50トークン。
金額
無料(オープンソース)。Cloudflareバックエンド:フリーティアで通常十分です。
ヒント
SQLite-vecで始めてください。マルチデバイス同期が必要な場合のみハイ���リッドに切り替えてください。

セキュリティ

権限、シークレット、影響範囲

最小スコープ: SQLiteモード用ローカルファイルシステム CFモード用Cloudflare APIトークン
認証情報の保管: 環境変数経由のCF認証情報
データ送信先: ローカル(SQLite)またはあなたのCloudflareアカウント(CF)
絶対に付与しない: 信頼されていないプロンプトがmemory_storeを呼び出さないようにしてください。ポイズニング攻撃。

トラブルシューティング

よくあるエラーと対処法

ModuleNotFoundError: sqlite_vec

sqlite-vec追加でpip/uvインストールしてください:uvx 'mcp-memory-service[sqlite]'

確認: python -c 'import sqlite_vec'
Cloudflareバックエンド403

トークンにWorkers/KVパーミッションがありません。特定のスコープで新しいCF APIトークンを作成してください。

返されたメモリは関連性がありません

より良いモデルで再埋め込みしてください。デフォルトはローカルMiniLM。環境変数経由でnomic-embedにアップグレードします。

memory_harvestが重複を出力

dedup設定を有効にしてください。ハーベスターは既存のアイテムへのコサイン類似度> 0.95のアイテムをスキップします。

代替案

mcp-memory-service 他との比較

代替案代わりに使う場面トレードオフ
mem0ホストされたメモリSaaSが必要な場合フリーティア以上は有料。ベンダーロック。
contextplus memory graphメモリをコード理解と密接に統合したい場合リポジトリにスコープされており、汎用ではありません。

その他

リソース

📖 GitHub の公式 README を読む

🐙 オープンな issue を見る

🔍 400以上のMCPサーバーとSkillsを見る