Skip to main content
Glama

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 (文字列、オプション)

    • 指定されたメモリを完全に削除します。

    • 意味的類似性に基づいて関連するメモリを検索します。

Related MCP server: MCP Titan

前提条件🔑

このサーバーは、次の 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 が ❤️ を込めて作りました

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

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