Mem0 MCP Server - Node.js (HTTP-Only) について
プロジェクト単位のメモリーを扱うNode.js製Mem0 MCPサーバーで、HTTP APIとローカルファイルストレージを備えています。ワークスペースのメモリーを保存、取得、検索したい開発者やMCPクライアント向けです。
主な機能
- 01メモリーの保存、取得、検索
- 02ワークスペース別のローカルファイル保存
- 03トークン認証付きHTTP API
- 04レート制限
- 05stdioとHTTPのトランスポート
活用シーン
- 01プロジェクトの決定事項を後から参照
- 02VS Codeからワークスペースのメモリーを検索
- 03プロジェクトごとにメモリーファイルを分離
MCP 対応
MCPクライアントにsave_memory、get_all_memories、search_memoriesのツールを提供します。stdioとHTTPベースの設定に対応し、SSEエンドポイントは開発中です。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Mem0 MCP サーバー - Node.js(HTTP 専用)
Mem0 MCP(Model Context Protocol)サーバーの Node.js 実装です。デプロイと統合を簡素化するため、HTTP 専用で動作します。
このリポジトリ coleam00/mcp-mem0.git をベースにしています。
特長
- HTTP 専用の動作:HTTP API のみで動作する、シンプルなサーバーです
- ワークスペースとの統合:アクティブなプロジェクトディレクトリにメモリを自動保存します
- RESTful API:ウェブアプリケーション、VSCode 拡張機能、MCP クライアントと簡単に統合できます
- ローカルファイルストレージ:ワークスペースのルートにある
.Mem0-Filesディレクトリにメモリを保存します - MCP ツール:
save_memory、get_all_memories、search_memoriesツールを提供します - 認証:安全な API アクセスのためのトークンベース認証
- レート制限:API の不正使用に対する保護機能を標準搭載
- 設定可能なストレージ:プラグインアーキテクチャにより、複数のストレージバックエンドをサポートします
- ESM モジュール:ES モジュールを使用した最新の Node.js 実装です
- Docker のサポート:コンテナ化されたデプロイが可能です
クイックスタート
-
依存関係をインストールします:
npm install -
環境を設定します:
cp .env.example .env # Edit .env with your configuration -
サーバーを実行します:
# Start the HTTP server (default port 8484) npm start # Start with specific workspace (recommended) npm run start:workspace /path/to/your/project # Start in development mode with auto-restart npm run dev -
動作を確認します:
# Check server status curl http://localhost:8484/ # Or open in browser: http://localhost:8484 -
HTTP API を使用します:
# Save a memory curl -X POST http://localhost:8484/api/memory/save \ -H "Content-Type: application/json" \ -H "Authorization: Bearer 550EA5B7-4C7B-4B17-9BF7-5A6B6D232FA2" \ -d '{"text": "Your memory here", "userId": "vscode-user"}' # Search memories curl "http://localhost:8484/api/memory/search?query=memory&userId=vscode-user" \ -H "Authorization: Bearer 550EA5B7-4C7B-4B17-9BF7-5A6B6D232FA2"
設定
サーバーは環境変数で設定します。.env.example を .env にコピーして設定してください。
基本設定
HOST:バインドするホスト(デフォルト:0.0.0.0)PORT:リッスンするポート(デフォルト:8484)STORAGE_PROVIDER:ストレージバックエンド(localまたはpostgresql)— 現在実装されているのはlocalのみですLOCAL_STORAGE_DIR:ローカルストレージのディレクトリ(デフォルト:.Mem0-Files)PROJECT_DIR:メモリを保存するワークスペースディレクトリ(自動検出、または明示的に設定)
HTTP サーバー設定(常に有効)
HTTP_SERVER_ENABLED:HTTP API サーバーを有効にするかどうか(trueまたはfalse、デフォルト:false)HTTP_SERVER_PORT:HTTP サーバーのポート(デフォルト:3000)HTTP_SERVER_HOST:HTTP サーバーのホスト(デフォルト:0.0.0.0)API_TOKEN:HTTP API の認証トークン(HTTP サーバーを有効にする場合は必須)CORS_ORIGINS:許可する CORS オリジン(デフォルト:http://localhost:*,https://localhost:*)RATE_LIMIT_WINDOW_MS:レート制限の時間枠(ミリ秒、デフォルト:900000- 15 分)RATE_LIMIT_MAX_REQUESTS:時間枠あたりの最大リクエスト数(デフォルト:100)
LLM 設定(今後の Mem0 統合用)
LLM_PROVIDER:LLM プロバイダー(openai、openrouter、またはollama)LLM_API_KEY:LLM プロバイダーの API キーLLM_CHOICE:使用するモデル(例:gpt-4o-mini)EMBEDDING_MODEL_CHOICE:埋め込みモデル(例:text-embedding-3-small)
MCP クライアントの設定
Roo Code 拡張機能を使用する VS Code
この MCP サーバーを VS Code と Roo Code 拡張機能で使用するには、次の手順に従ってください。
セットアップ手順:
- マーケットプレイスから VS Code に Roo Code 拡張機能をインストールします
npm run configを実行して設定を生成します(正確なパスが表示されます)- VS Code の設定を開きます(Cmd/Ctrl + ,)
- 「roo」を検索して、Roo Code の設定を見つけます
- Roo Code の設定にある「MCP Servers」の設定項目を見つけます
- 手順 2 で生成した設定をコピーして貼り付けます
設定例:
オプション 1:Stdio トランスポート(プロセス間の直接通信) 次の設定を Roo Code の MCP サーバー設定に追加します。
{
"mem0-nodejs": {
"command": "node",
"args": ["/absolute/path/to/mem0_mcp_server_nodejs/src/main.js"],
"env": {
"TRANSPORT": "stdio",
"STORAGE_PROVIDER": "local",
"LOCAL_STORAGE_DIR": ".Mem0-Files",
"DEFAULT_USER_ID": "vscode-user",
"DEBUG": "false"
}
}
}
オプション 2:SSE トランスポート(HTTP ベースの通信) まず、SSE トランスポートを使用してサーバーを起動します。
TRANSPORT=sse HTTP_SERVER_ENABLED=true npm start
次に、次の設定を Roo Code の MCP サーバー設定に追加します。
{
"mcpServers": {
"mem0-sse": {
"transport": "sse",
"url": "http://localhost:8484/sse",
"headers": {
"Authorization": "Bearer YOUR_API_TOKEN_HERE"
},
"description": "Mem0 MCP Server via SSE transport"
}
}
}
VS Code での使用方法:
設定が完了したら、Roo Code でメモリツールを使用できます。
- メモリを保存:
save_memoryツールを使用して、プロジェクトに関する情報、コーディングパターン、決定事項を保存します - メモリを取得:
get_all_memoriesを使用して、保存されているすべての情報を確認します - メモリを検索:
search_memoriesを使用して、特定の情報を見つけます
使用例:
@mem0-nodejs save_memory "This project uses ESM modules and stores data in .Mem0-Files directory"
@mem0-nodejs search_memories "ESM modules"
@mem0-nodejs get_all_memories
重要な注意事項:
/absolute/path/to/mem0_mcp_server_nodejs/をプロジェクトの実際の絶対パスに置き換えてください- サーバーはプロジェクトのルートに
.Mem0-Filesディレクトリを作成します - VS Code の各ワークスペースは、それぞれ独自のメモリストレージを持つことができます
- メモリは
DEFAULT_USER_IDの設定によって分離されます - プロジェクトディレクトリで
pwdコマンドを実行すると、正確なパスを確認できます
HTTP API を使った VS Code(推奨)
VS Code と Roo Code を最も簡単にセットアップするには、絶対ファイルパスが不要な HTTP API を使用してください。
クイックセットアップ:
-
HTTP サーバーを起動する:
API_TOKEN=your-secure-token HTTP_SERVER_ENABLED=true npm start -
VS Code の設定で Roo Code を設定する:
{ "mem0-http": { "transport": "sse", "url": "http://localhost:3000", "headers": { "Authorization": "Bearer your-secure-token" } } } -
VS Code で使用する:
@mem0-http save_memory "This project uses React with TypeScript" @mem0-http search_memories "React"
📚 ドキュメント:
- 完全セットアップガイド - 手順を追った説明
- クイックリファレンス - コマンドとトラブルシューティング
- HTTP API リファレンス - API の完全なドキュメント
Claude Desktop(stdio)
Claude Desktop の設定に以下を追加してください。
{
"mcpServers": {
"mem0-nodejs": {
"command": "node",
"args": ["path/to/mem0_mcp_server_nodejs/src/main.js"],
"env": {
"TRANSPORT": "stdio",
"STORAGE_PROVIDER": "local",
"LOCAL_STORAGE_DIR": ".Mem0-Files"
}
}
}
}
利用可能なツール
save_memory
情報を長期メモリに保存します。
パラメーター:
text(必須):保存する内容userId(任意):ユーザー識別子(設定済みのユーザーがデフォルトです)
get_all_memories
ユーザーの保存済みメモリをすべて取得します。
パラメーター:
userId(任意):ユーザー識別子limit(任意):返すメモリの最大数(デフォルト:50)
search_memories
テキストベースの検索を使ってメモリを検索します。
パラメーター:
query(必須):検索クエリuserId(任意):ユーザー識別子limit(任意):返す結果の最大数(デフォルト:3)
ローカルストレージの構造
ローカルストレージプロバイダーは、以下の構造を作成します。
.Mem0-Files/
├── users/
│ └── [userId]/
│ ├── [memoryId1].json
│ ├── [memoryId2].json
│ └── ...
└── index/
└── [userId].json
各メモリファイルには、以下が含まれます。
{
"id": "uuid",
"userId": "user",
"memory": "memory content",
"metadata": {
"originalText": "original input",
"createdAt": "2024-01-01T00:00:00.000Z",
"updatedAt": "2024-01-01T00:00:00.000Z"
}
}
開発
開発モードでの実行
npm run dev
テスト
npm test
リンティング
npm run lint
Docker
イメージのビルド
npm run docker:build
コンテナの実行
npm run docker:run
プロジェクトの状況
これは初期実装で、現在の状況は以下のとおりです。
✅ 実装済み
- 基本的な MCP サーバーのセットアップ
- ローカルファイルストレージプロバイダー
- MCP の主要なツール(保存、取得、検索)
- プロジェクト構成と設定
- 基本的なテキストベース検索
- Express.js を使った HTTP API サーバー
- トークンベース認証
- レート制限とセキュリティ
- 2 種類のトランスポートに対応(stdio + HTTP)
- 包括的な API ドキュメント
- HTTP 経由での VS Code 連携
🚧 開発中
- Mem0 連携の強化
- 埋め込みを使ったセマンティック検索
- PostgreSQL ストレージプロバイダー
- SSE トランスポート対応(HTTP サーバーは準備済み、SSE エンドポイントは未対応)
📋 今後の予定
- メモリ処理の完全な LLM 連携
- 高度な検索アルゴリズム
- メモリの分析と管理
- Web ベースのメモリブラウザー
開発に関するメモ
開発ドキュメント、実装の詳細、プロジェクト計画ファイルについては、Dev-Notes/ フォルダーを参照してください。
コントリビューション
このプロジェクトは活発に開発中です。コントリビューションを歓迎します!
ライセンス
MIT ライセンス
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。