Mem0 Mcp Server について
Mem0 Mcp Serverは、Mem0 v2を通じてAIエージェントに永続メモリーを提供するセルフホスト可能なMCPサーバーです。意味検索とユーザー・エージェント・セッション単位の分離に対応し、stdioとSSEで接続できます。
主な機能
- 01メモリーの保存・検索・取得・更新
- 02意味的類似度による検索
- 03ユーザー・エージェント・セッション単位の分離
- 04stdioとSSEのトランスポート
- 05設定ファイルと環境変数の検証
活用シーン
- 01会話をまたいだコンテキストの保持
- 02エージェント向けの関連メモリー検索
- 03ユーザー・エージェント・セッション別のメモリー管理
MCP 対応
メモリーの追加、検索、取得、更新、削除、一覧表示をMCPツールとして公開します。MCPクライアントはstdioまたはSSEで接続できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
mem0-mcp-server
AI エージェントが標準化された MCP プロトコルを通じてセマンティック検索を使用し、長期記憶を保存、取得、検索できるようにする Mem0 v2 API を公開する MCP サーバーです。
概要
Mem0-MCP Server は、AI エージェントと永続的なメモリーストレージをつなぐ、セルフホスト可能な MCP(Model Context Protocol)サーバーです。Mem0 の AsyncMemory API を使用し、会話やセッションをまたいでコンテキストをインテリジェントに保持できます。
主な機能:
- MCP プロトコルの統合 - MCP ツールを通じて Mem0 の機能を公開します
- セマンティックメモリー検索 - ベクトル検索による類似度ベースのメモリー取得
- マルチテナント分離 - ユーザー/エージェント/セッションのスコープに応じたメモリーの分離
- 柔軟なトランスポート - ローカルエージェントには stdio、リモート接続には SSE を使用します
- 設定管理 - 環境変数に対応した Pydantic ベースの検証
ドキュメント
| セクション | 説明 |
|---|---|
| API リファレンス | すべてのモジュールとツールの完全な API ドキュメント |
| パターンガイド | デザインパターンのドキュメント(Singleton、Repository など) |
| 使用例 | 導入方法と応用的な使用方法のガイド |
| デプロイ | Docker Compose の設定とサービスの詳細 |
| アーキテクチャ | システムアーキテクチャとコンポーネント間の連携 |
クイックスタート
インストール
# Clone and install
git clone https://github.com/your-org/mem0-mcp-server.git
cd mem0-mcp-server
uv sync
# Set environment variables
export OPENAI_API_KEY="your-api-key"
設定
~/.config/mem0-mcp-server/settings.json を作成します。
{
"vector_store": {
"provider": "redis",
"config": {
"redis_url": "redis://localhost:6379"
}
},
"llm": {
"provider": "openai",
"config": {
"model": "gpt-4o"
}
},
"embedder": {
"provider": "openai",
"config": {
"model": "text-embedding-3-small"
}
}
}
サーバーの実行
# SSE Transport (remote connections)
uv run python -m mcp_server.main
# stdio Transport (local AI agents)
export MCP_TRANSPORT=stdio
uv run python -m mcp_server.main
OpenCode の設定
~/config/opencode/opencode.json に設定します。
OpenCode の設定
~/config/opencode/opencode.json に設定します。
"mcp": {
"mem0": {
"type": "remote",
"enabled": true,
"url": "http://localhost:8050/sse"
}
}
MCP ツール
| ツール | 説明 |
|---|---|
add_memory | セマンティックインデックスを付けて情報を長期記憶に保存します |
search_memories | セマンティック類似度を使用してメモリーを検索します |
get_memory | ID を指定して特定のメモリーを取得します |
update_memory | 既存のメモリー内容を更新します |
delete_memory | メモリーをストレージから削除します |
list_memories | フィルタリングとページネーションを使用してメモリーを一覧表示します |
使用例
# Add memory
result = await client.call_tool("add_memory", {
"messages": [{"role": "user", "content": "I prefer dark mode"}],
"user_id": "alice"
})
# Search memories
result = await client.call_tool("search_memories", {
"query": "theme preferences",
"filters": {"user_id": "alice"},
"limit": 5
})
アーキテクチャ
AI Agent → FastMCP Server → MemoryManager → Mem0 AsyncMemory → Redis
│ │
├── SafeLogger (stdout/stderr) │
├── Transport (stdio/SSE) │
└── Config (Pydantic validation) │
コンポーネント:
- COMP-1:ConfigLoader - 設定の読み込みと検証
- COMP-2:FastMCP Server - MCP プロトコルサーバー
- COMP-3:MemoryManager - マルチテナント分離に対応したメモリー操作
- COMP-4:MCP Tools - ツール定義
- COMP-5:SafeLogger - 出力ストリームの分離
設定
パラメーターの優先順位
設定値は次の順に解決されます。
- ツールパラメーター(直接指定)
- 環境変数(MCP_ プレフィックス付き)
- 設定ファイルの値
- ハードコードされたデフォルト値
環境変数
| 変数 | デフォルト | 説明 |
|---|---|---|
OPENAI_API_KEY | (必須) | LLM 用の OpenAI API キー |
MCP_TRANSPORT | sse | トランスポートの種類(stdio、sse) |
MCP_HOST | 0.0.0.0 | サーバーのバインドアドレス |
MCP_PORT | 8080 | サーバーのバインドポート |
デプロイ
Docker
# Using docker-compose
docker-compose up -d
# Using Makefile
make docker-up # Start services with docker compose
make docker-down # Stop services
make docker-logs # Show logs
サービス:
| サービス | 説明 |
|---|---|
mem0-mcp | ポート 8050 で Mem0 API を公開する MCP サーバー |
ollama-qwen3-embedding | ベクトル埋め込み用の qwen3-embedding:8b を搭載した Ollama(ポート 11434) |
ollama-qwen | チャット補完用の qwen2.5:7b を搭載した Ollama(ポート 11435) |
詳しい設定については、デプロイ → Docker を参照してください。
Kubernetes
# Using Helm chart
helm install mem0-mcp ./charts/mem0-mcp-server
開発
| コマンド | 説明 |
|---|---|
make install | uv で依存関係をインストールします |
make lint | ruff でコードをリントします |
make lint-fix | リントの問題を自動修正します |
make typecheck | pyright で型チェックを実行します |
make test | すべてのテストを実行します |
make test-unit | ユニットテストのみを実行します |
make test-coverage | カバレッジレポート付きでテストを実行します |
make build | Docker イメージをビルドします |
make run | 開発サーバーを実行します |
複数のコマンドを実行します:make install && make lint && make typecheck && make test
Docker 管理(docker-up、docker-down、docker-logs など)を含む、利用可能なすべてのコマンドについては、Makefile を参照してください。
プロジェクト構成
mem0-mcp/
├── src/mcp_server/
│ ├── __init__.py # FastMCP singleton
│ ├── lifespan.py # Resource lifecycle
│ ├── transport.py # Transport selection
│ ├── memory/
│ │ ├── manager.py # MemoryManager
│ │ └── lifespan.py # AsyncMemory lifecycle
│ ├── config/
│ │ ├── settings.py # Pydantic models
│ │ └── loader.py # Config file loading
│ ├── tools/
│ │ ├── add_memory.py
│ │ ├── search_memories.py
│ │ └── ...
│ └── utils/
│ └── safe_logger.py # Output separation
├── doc/
│ ├── api/ # API reference
│ ├── patterns/ # Pattern guides
│ ├── examples/ # Usage examples
│ └── architecture/ # Architecture docs
├── tests/
├── Makefile
├── Dockerfile
└── docker-compose.yml
ライセンス
MIT ライセンス
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。