Skip to main content
Glama

mem0 Memory System

Mem0ロゴ

@pinkpixel/mem0-mcp MCP サーバー ✨

Mem0.aiと統合し、LLMに永続メモリ機能を提供するモデルコンテキストプロトコル(MCP)サーバー。AIエージェントがセッションをまたいで情報を保存・取得できるようにします。

このサーバーは、コア機能としてmem0ai Node.js SDK を使用します。

機能🧠

ツール

  • add_memory : テキスト コンテンツを特定のuserIdに関連付けられたメモリとして保存します。
    • 入力: content (文字列、必須)、 userId (文字列、必須)、 sessionId (文字列、オプション)、 agentId (文字列、オプション)、 metadata (オブジェクト、オプション)
    • 提供されたテキストを保存し、将来のやり取りで呼び出すことができるようにします。
  • search_memory : 特定のuserIdに対する自然言語クエリに基づいて、保存されたメモリを検索します。
    • 入力: query (文字列、必須)、 userId (文字列、必須)、 sessionId (文字列、オプション)、 agentId (文字列、オプション)、 filters (オブジェクト、オプション)、 threshold (数値、オプション)
    • 意味的類似性に基づいて関連するメモリを検索します。
  • delete_memory : ID によって特定のメモリをストレージから削除します。
    • 入力: memoryId (文字列、必須)、 userId (文字列、必須)、 sessionId (文字列、オプション)、 agentId (文字列、オプション)
    • 指定されたメモリを完全に削除します。
    • 意味的類似性に基づいて関連するメモリを検索します。

前提条件🔑

このサーバーは、次の 2 つのストレージ モードをサポートしています。

  1. クラウド ストレージ モード☁️ (推奨)
    • Mem0 APIキーが必要です( MEM0_API_KEY環境変数として提供されます)
    • 記憶はMem0のクラウドサーバーに永続的に保存されます
    • ローカルデータベースは不要
  2. ローカルストレージモード💾
    • OpenAI API キーが必要です ( OPENAI_API_KEY環境変数として提供されます)
    • メモリはメモリ内のベクトルデータベースに保存されます(デフォルトでは非永続的)
    • 永続ストレージが設定されていない限り、サーバーを再起動するとデータが失われます

インストールと設定 ⚙️

このサーバーは主に 2 つの方法で実行できます。

1. npxを使用する(手軽に使う場合におすすめ)

npm を使用してパッケージをグローバルにインストールします。

npm install -g @pinkpixel/mem0-mcp

npxを使用してサーバーを実行するように MCP クライアント (Claude Desktop、Cursor、Cline、Roo Code など) を構成します。

クラウド ストレージ構成 (推奨)
{ "mcpServers": { "mem0-mcp": { "command": "npx", "args": [ "-y", "@pinkpixel/mem0-mcp" ], "env": { "MEM0_API_KEY": "YOUR_MEM0_API_KEY_HERE", "DEFAULT_USER_ID": "user123" }, "disabled": false, "alwaysAllow": [ "add_memory", "search_memory" ] } } }

注: "YOUR_MEM0_API_KEY_HERE"実際の Mem0 API キーに置き換えます。

ローカルストレージ構成(代替)
{ "mcpServers": { "mem0-mcp": { "command": "npx", "args": [ "-y", "@pinkpixel/mem0-mcp" ], "env": { "OPENAI_API_KEY": "YOUR_OPENAI_API_KEY_HERE", "DEFAULT_USER_ID": "user123" }, "disabled": false, "alwaysAllow": [ "add_memory", "search_memory" ] } } }

注: "YOUR_OPENAI_API_KEY_HERE"実際の OpenAI API キーに置き換えます。

2. クローンリポジトリから実行

注意: この方法では、最初にリポジトリを git clone する必要があります。

リポジトリをクローンし、依存関係をインストールして、サーバーを構築します。

git clone https://github.com/pinkpixel-dev/mem0-mcp cd mem0-mcp npm install npm run build

次に、 nodeを使用してビルドされたスクリプトを直接実行するように MCP クライアントを構成します。

{ "mcpServers": { "mem0-mcp": { "command": "node", "args": [ "/absolute/path/to/mem0-mcp/build/index.js" ], "env": { "MEM0_API_KEY": "YOUR_MEM0_API_KEY_HERE", "DEFAULT_USER_ID": "user123" // OR use "OPENAI_API_KEY": "YOUR_OPENAI_API_KEY_HERE" for local storage }, "disabled": false, "alwaysAllow": [ "add_memory", "search_memory" ] } } }

重要な注意事項:

  1. /absolute/path/to/mem0-mcp/をクローンしたリポジトリへの実際の絶対パスに置き換えます。
  2. src/index.tsファイルではなく、 build/index.jsファイルを使用してください。
  3. MCP サーバーはプロトコル通信のためにクリーンな stdout を必要とします。stdout に書き込むライブラリやコードはプロトコルに干渉する可能性があります。

デフォルトのユーザー ID (オプションのフォールバック)

add_memorysearch_memoryツールの両方で、メモリを特定のユーザーに関連付けるにはuserId引数が必要です。

テスト中やシングルユーザーシナリオでの利便性のため、サーバー起動時にDEFAULT_USER_ID環境変数を設定することができます。この変数が設定されており、 search_memoryツールの呼び出し時にuserId引数が省略されている場合、サーバーは検索にDEFAULT_USER_IDの値を使用します。

**注:**このフォールバックが存在する場合、あいまいさを避けるために、呼び出しエージェント (LLM) がメモリの追加と検索の両方に対して正しいuserId明示的に提供することが一般的に推奨されます。

DEFAULT_USER_IDを使用した構成例:

{ "mcpServers": { "mem0-mcp": { "command": "npx", "args": [ "-y", "@pinkpixel/mem0-mcp" ], "env": { "MEM0_API_KEY": "YOUR_MEM0_API_KEY_HERE", "DEFAULT_USER_ID": "user123" }, } } }

または、 nodeで直接実行する場合:

git clone https://github.com/pinkpixel-dev/mem0-mcp cd mem0-mcp npm install npm run build
{ "mcpServers": { "mem0-mcp": { "command": "node", "args": [ "path/to/mem0-mcp/build/index.js" ], "env": { "OPENAI_API_KEY": "YOUR_OPENAI_API_KEY_HERE", "DEFAULT_USER_ID": "user123" }, } } }

クラウド vs. ローカルストレージ 🔄

クラウドストレージ(Mem0 API)

  • デフォルトで永続的- セッションやサーバーの再起動後も記憶は利用可能
  • ローカルデータベースは不要- すべてのデータはMem0のサーバーに保存されます
  • より高い検索品質- Mem0の最適化された検索アルゴリズムを使用
  • 追加フィールド- agent_idthresholdパラメータをサポート
  • 必要なもの- Mem0 APIキー

ローカルストレージ(OpenAI API)

  • デフォルトでメモリ内- データはRAMにのみ保存され、長期保存されません。キャッシュが行われる場合もありますが、永続的な保存には利用しないでください。
  • データ損失のリスク- サーバーの再起動、システムの再起動、またはプロセスが終了した場合、メモリデータが失われます。
  • 推奨用途- 開発、テスト、または一時的な使用のみ
  • 永続的なストレージの場合- 信頼性の高い長期メモリが必要な場合は、Mem0 API でクラウド ストレージ オプションを使用します。
  • OpenAI埋め込みを使用- ベクトル検索機能用
  • 自己完結型- すべてのデータはマシン上に残ります
  • 必要なもの- OpenAI APIキー

開発💻

リポジトリをクローンし、依存関係をインストールします。

git clone https://github.com/pinkpixel-dev/mem0-mcp cd mem0-mcp npm install

サーバーを構築します。

npm run build

ファイルの変更時に自動再構築する開発の場合:

npm run watch

デバッグ🐞

MCPサーバーはstdio経由で通信するため、デバッグが困難になる場合があります。以下にいくつかのアプローチを示します。

  1. MCP インスペクターを使用する: このツールは、MCP プロトコル通信を監視できます。
npm run inspector
  1. コンソールログ: コンソールログを追加するときは、MCPプロトコルに干渉しないように、常にconsole.error()``console.log()を使用してください。
  2. 環境ファイル: ローカル開発では.envファイルを使用して、API キーやその他の構成オプションの設定を簡素化します。

技術実装ノート 🔧

高度なMem0 APIパラメータ

Mem0 APIでCloud Storageモードを使用する場合、追加のパラメータを利用してより高度なメモリ管理を行うことができます。ツールスキーマでは明示的に公開されていませんが、メモリを追加する際にはmetadataオブジェクトに含めることができます。

add_memoryの高度なパラメータ:
パラメータタイプ説明
metadata物体メモリに関する追加のコンテキスト(例:場所、時間、識別子)を保存します。これは、検索時のフィルタリングに使用できます。
includesメモリに含める特定の設定。
excludesメモリから除外する特定の設定。
inferブール値メモリを推測するか、メッセージを直接保存するか (デフォルト: true)。
output_formatフォーマットのバージョン。v1.0 (デフォルト、非推奨) または v1.1 (推奨) のいずれか。
custom_categories物体名前と説明が付いたカテゴリのリスト。
custom_instructionsメモリの処理と整理に関するプロジェクト固有のガイドライン。
immutableブール値メモリが不変かどうか (デフォルト: false)。
expiration_dateメモリの有効期限 (形式: YYYY-MM-DD)。
org_idこのメモリに関連付けられた組織 ID。
project_idこのメモリに関連付けられたプロジェクト ID。
versionメモリ バージョン (v1 は非推奨、新しいアプリケーションには v2 が推奨されます)。

MCPサーバーでこれらのパラメータを使用するには、 add_memoryツールを呼び出す際にメタデータオブジェクトにパラメータを含めます。例:

{ "content": "Important information to remember", "userId": "user123", "sessionId": "project-abc", "metadata": { "includes": "important context", "excludes": "sensitive data", "immutable": true, "expiration_date": "2025-12-31", "custom_instructions": "Prioritize this memory for financial questions", "version": "v2" } }
search_memoryの高度なパラメータ:

Mem0 v2 検索 API は、 filtersパラメータを通じて利用できる強力なフィルタリング機能を提供します。

パラメータタイプ説明
filters物体論理演算子と比較条件を使用した複雑なフィルター
top_k整数返される上位結果の数(デフォルト: 10)
fields[]応答に含める特定のフィールド
rerankブール値メモリを再ランク付けするかどうか(デフォルト:false)
keyword_searchブール値キーワードに基づいて検索するかどうか(デフォルト:false)
filter_memoriesブール値思い出をフィルタリングするかどうか(デフォルト:false)
threshold番号結果の最小類似度しきい値(デフォルト: 0.3)
org_id記憶をフィルタリングするための組織ID
project_id記憶をフィルタリングするためのプロジェクトID

filtersパラメータは、複雑な論理演算 (AND、OR) とさまざまな比較演算子をサポートします。

オペレーター説明
in指定された値のいずれかに一致する
gteより大きいか等しい
lte以下
gtより大きい
lt未満
ne等しくない
icontains大文字と小文字を区別しない包含チェック

search_memoryツールで複雑なフィルターを使用する例:

{ "query": "What are Alice's hobbies?", "userId": "user123", "filters": { "AND": [ { "user_id": "alice" }, { "agent_id": {"in": ["travel-agent", "sports-agent"]} } ] }, "threshold": 0.5, "top_k": 5 }

これは、user_id が「alice」であり、agent_id が「travel-agent」または「sports-agent」のいずれかである Alice の趣味に関連する思い出を検索し、類似度スコアが少なくとも 0.5 である結果が最大 5 件返されます。

これらのパラメータの詳細については、 Mem0 API ドキュメントを参照してください。

セーフロガー

MCP サーバーは、MCP プロトコルを中断することなく、mem0ai ライブラリからの console.log 呼び出しを stderr に選択的にリダイレクトするSafeLoggerクラスを実装します。

  • console.log の呼び出しを傍受し、スタックトレースを調べてソースを特定します。
  • mem0ai ライブラリまたは独自のコードからのログ呼び出しのみをリダイレクトします
  • MCPプロトコル通信用のクリーンな標準出力を保持します
  • プロセス終了時にリソースを自動的にクリーンアップします

これにより、有用なデバッグ情報を維持しながら、MCP クライアント内で適切に機能できるようになります。

環境変数

サーバーは、その動作を制御するいくつかの環境変数を認識します。

  • MEM0_API_KEY : クラウドストレージモードのAPIキー
  • OPENAI_API_KEY : ローカルストレージモード(埋め込み)のAPIキー
  • DEFAULT_USER_ID : メモリ操作のデフォルトのユーザーID

Pink Pixel が ❤️ を込めて作りました

You must be authenticated.

A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

複数の LLM プロバイダーをサポートし、MCP サーバーとしても、直接ライブラリ統合としても使用できる AI アプリケーション向けの柔軟なメモリ システムで、明示的なコマンドなしで自律的なメモリ管理を可能にします。

  1. 機能🧠
    1. ツール
  2. 前提条件🔑
    1. インストールと設定 ⚙️
      1. npxを使用する(手軽に使う場合におすすめ)
      2. クローンリポジトリから実行
      3. デフォルトのユーザー ID (オプションのフォールバック)
    2. クラウド vs. ローカルストレージ 🔄
      1. クラウドストレージ(Mem0 API)
      2. ローカルストレージ(OpenAI API)
    3. 開発💻
      1. デバッグ🐞
        1. 技術実装ノート 🔧
          1. 高度なMem0 APIパラメータ
          2. セーフロガー
          3. 環境変数

        Related MCP Servers

        • -
          security
          F
          license
          -
          quality
          An MCP server that allows Claude and other LLMs to manage persistent memories across conversations through text file storage, enabling commands to add, search, delete and list memory entries.
          Last updated -
          2
          TypeScript
        • -
          security
          A
          license
          -
          quality
          An MCP server that provides persistent memory capabilities for Claude, offering tiered memory architecture with semantic search, memory consolidation, and integration with the Claude desktop application.
          Last updated -
          5
          Python
          MIT License
        • -
          security
          A
          license
          -
          quality
          An MCP-native server that enables intelligent task delegation from advanced AI agents like Claude to more cost-effective LLMs, optimizing for cost while maintaining output quality.
          Last updated -
          80
          Python
          MIT License
        • -
          security
          A
          license
          -
          quality
          A Model Context Protocol server that provides AI agents with persistent memory capabilities through Mem0, allowing them to store, retrieve, and semantically search memories.
          Last updated -
          2
          Python
          MIT License

        View all related MCP servers

        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/pinkpixel-dev/mem0-mcp'

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