mcpField
M
Mem0 MCP Server - Node.js (HTTP-Only)

Mem0 MCP Server - Node.js (HTTP-Only)

ローカル
github.com/Sonjuaneメモリ・ナレッジ173 週間前に更新

Mem0 MCP Server - Node.js (HTTP-Only) について

プロジェクト単位のメモリーを扱うNode.js製Mem0 MCPサーバーで、HTTP APIとローカルファイルストレージを備えています。ワークスペースのメモリーを保存、取得、検索したい開発者やMCPクライアント向けです。

主な機能

  1. 01メモリーの保存、取得、検索
  2. 02ワークスペース別のローカルファイル保存
  3. 03トークン認証付きHTTP API
  4. 04レート制限
  5. 05stdioとHTTPのトランスポート

活用シーン

  1. 01プロジェクトの決定事項を後から参照
  2. 02VS Codeからワークスペースのメモリーを検索
  3. 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 のサポート:コンテナ化されたデプロイが可能です

クイックスタート

  1. 依存関係をインストールします:

    npm install
    
  2. 環境を設定します:

    cp .env.example .env
    # Edit .env with your configuration
    
  3. サーバーを実行します:

    # 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
    
  4. 動作を確認します:

    # Check server status
    curl http://localhost:8484/
    
    # Or open in browser: http://localhost:8484
    
  5. 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 拡張機能で使用するには、次の手順に従ってください。

セットアップ手順:
  1. マーケットプレイスから VS Code に Roo Code 拡張機能をインストールします
  2. npm run config を実行して設定を生成します(正確なパスが表示されます)
  3. VS Code の設定を開きます(Cmd/Ctrl + ,)
  4. 「roo」を検索して、Roo Code の設定を見つけます
  5. Roo Code の設定にある「MCP Servers」の設定項目を見つけます
  6. 手順 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 を使用してください。

📖 VS Code の完全セットアップガイド

クイックセットアップ:

  1. HTTP サーバーを起動する:

    API_TOKEN=your-secure-token HTTP_SERVER_ENABLED=true npm start
    
  2. VS Code の設定で Roo Code を設定する:

    {
      "mem0-http": {
        "transport": "sse",
        "url": "http://localhost:3000",
        "headers": {
          "Authorization": "Bearer your-secure-token"
        }
      }
    }
    
  3. VS Code で使用する:

    @mem0-http save_memory "This project uses React with TypeScript"
    @mem0-http search_memories "React"
    

📚 ドキュメント:

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 ライセンス

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。