MCP Memory Server with Qdrant Persistence

Integrations

  • Supports reverse proxy configurations with Apache for routing traffic to the MCP memory server in secure deployment scenarios.

  • Provides containerized deployment of the MCP memory server, enabling easy setup and management with Docker images and containers.

  • Supports HTTPS connections and reverse proxy configurations with Nginx for secure and flexible deployment architectures.

Qdrant Persistence 搭載 MCP メモリサーバー

この MCP サーバーは、Qdrant ベクター データベースを活用したセマンティック検索機能を備えたナレッジ グラフ実装を提供します。

特徴

  • エンティティと関係性を用いたグラフベースの知識表現
  • ファイルベースの永続性(memory.json)
  • Qdrantベクターデータベースを使用したセマンティック検索
  • 意味的類似性のためのOpenAI埋め込み
  • リバースプロキシ互換性を備えたHTTPSサポート
  • 簡単に導入できるDockerサポート

環境変数

次の環境変数が必要です。

# OpenAI API key for generating embeddings OPENAI_API_KEY=your-openai-api-key # Qdrant server URL (supports both HTTP and HTTPS) QDRANT_URL=https://your-qdrant-server # Qdrant API key (if authentication is enabled) QDRANT_API_KEY=your-qdrant-api-key # Name of the Qdrant collection to use QDRANT_COLLECTION_NAME=your-collection-name

設定

ローカルセットアップ

  1. 依存関係をインストールします:
npm install
  1. サーバーを構築します。
npm run build

Dockerのセットアップ

  1. Docker イメージをビルドします。
docker build -t mcp-qdrant-memory .
  1. 必要な環境変数を使用して Docker コンテナを実行します。
docker run -d \ -e OPENAI_API_KEY=your-openai-api-key \ -e QDRANT_URL=http://your-qdrant-server:6333 \ -e QDRANT_COLLECTION_NAME=your-collection-name \ -e QDRANT_API_KEY=your-qdrant-api-key \ --name mcp-qdrant-memory \ mcp-qdrant-memory

MCP 設定に追加:

{ "mcpServers": { "memory": { "command": "/bin/zsh", "args": ["-c", "cd /path/to/server && node dist/index.js"], "env": { "OPENAI_API_KEY": "your-openai-api-key", "QDRANT_API_KEY": "your-qdrant-api-key", "QDRANT_URL": "http://your-qdrant-server:6333", "QDRANT_COLLECTION_NAME": "your-collection-name" }, "alwaysAllow": [ "create_entities", "create_relations", "add_observations", "delete_entities", "delete_observations", "delete_relations", "read_graph", "search_similar" ] } } }

ツール

エンティティ管理

  • create_entities : 複数の新しいエンティティを作成する
  • create_relations : エンティティ間の関係を作成する
  • add_observations : エンティティに観測を追加する
  • delete_entities : エンティティとその関係を削除する
  • delete_observations : 特定の観測を削除する
  • delete_relations : 特定のリレーションを削除する
  • read_graph : 完全なナレッジグラフを取得する

セマンティック検索

  • search_similar : 意味的に類似したエンティティと関係を検索する
    interface SearchParams { query: string; // Search query text limit?: number; // Max results (default: 10) }

実装の詳細

サーバーは 2 つの形式の永続性を維持します。

  1. ファイルベース (memory.json):
    • 完全な知識グラフ構造
    • 完全なグラフへの高速アクセス
    • グラフ操作に使用される
  2. Qdrant ベクター DB:
    • 実体と関係の意味的埋め込み
    • 類似検索を可能にする
    • ファイルストレージと自動的に同期

同期

エンティティまたはリレーションが変更された場合:

  1. 変更はmemory.jsonに書き込まれます
  2. 埋め込みはOpenAIを使用して生成される
  3. ベクトルはQdrantに保存されます
  4. 両方のストレージシステムは一貫性を維持

検索プロセス

検索する場合:

  1. クエリテキストは埋め込みに変換されます
  2. Qdrantは類似検索を実行します
  3. 結果にはエンティティと関係の両方が含まれます
  4. 結果は意味的類似性によってランク付けされます

使用例

// Create entities await client.callTool("create_entities", { entities: [{ name: "Project", entityType: "Task", observations: ["A new development project"] }] }); // Search similar concepts const results = await client.callTool("search_similar", { query: "development tasks", limit: 5 });

HTTPSとリバースプロキシの設定

サーバーはHTTPSおよびリバースプロキシ経由でQdrantに接続できます。これは特に以下の場合に便利です。

  • NginxやApacheなどのリバースプロキシの背後でQdrantを実行する
  • 自己署名証明書の使用
  • カスタム SSL/TLS 構成の要求

リバースプロキシの設定

  1. リバース プロキシを構成します (Nginx を使用する例):
server { listen 443 ssl; server_name qdrant.yourdomain.com; ssl_certificate /path/to/cert.pem; ssl_certificate_key /path/to/key.pem; location / { proxy_pass http://localhost:6333; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } }
  1. 環境変数を更新します。
QDRANT_URL=https://qdrant.yourdomain.com

セキュリティに関する考慮事項

サーバーは、以下を使用して堅牢な HTTPS 処理を実装します。

  • カスタムSSL/TLS構成
  • 適切な証明書検証オプション
  • 接続プールとキープアライブ
  • 指数バックオフによる自動再試行
  • 設定可能なタイムアウト

HTTPS接続のトラブルシューティング

接続の問題が発生した場合:

  1. 証明書を確認します:
openssl s_client -connect qdrant.yourdomain.com:443
  1. 直接接続をテストします。
curl -v https://qdrant.yourdomain.com/collections
  1. プロキシ設定を確認します:
env | grep -i proxy

貢献

  1. リポジトリをフォークする
  2. 機能ブランチを作成する
  3. 変更を加える
  4. プルリクエストを送信する

ライセンス

マサチューセッツ工科大学

-
security - not tested
F
license - not found
-
quality - not tested

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Qdrant を使用したセマンティック検索によるナレッジ グラフ表現を容易にし、セマンティック類似性のための OpenAI 埋め込みと、ファイルベースのグラフ永続性による堅牢な HTTPS 統合をサポートします。

  1. 特徴
    1. 環境変数
      1. 設定
        1. ローカルセットアップ
        2. Dockerのセットアップ
        3. MCP 設定に追加:
      2. ツール
        1. エンティティ管理
        2. セマンティック検索
      3. 実装の詳細
        1. 同期
        2. 検索プロセス
      4. 使用例
        1. HTTPSとリバースプロキシの設定
          1. リバースプロキシの設定
          2. セキュリティに関する考慮事項
          3. HTTPS接続のトラブルシューティング
        2. 貢献
          1. ライセンス

            Related MCP Servers

            • -
              security
              A
              license
              -
              quality
              Provides RAG capabilities for semantic document search using Qdrant vector database and Ollama/OpenAI embeddings, allowing users to add, search, list, and delete documentation with metadata support.
              Last updated -
              5
              4
              TypeScript
              Apache 2.0
            • -
              security
              A
              license
              -
              quality
              A Model Context Protocol server that enables semantic search capabilities by providing tools to manage Qdrant vector database collections, process and embed documents using various embedding services, and perform semantic searches across vector embeddings.
              Last updated -
              89
              TypeScript
              MIT License
            • -
              security
              F
              license
              -
              quality
              This server enables semantic search capabilities using Qdrant vector database and OpenAI embeddings, allowing users to query collections, list available collections, and view collection information.
              Last updated -
              Python
            • -
              security
              F
              license
              -
              quality
              Enables storage and retrieval of knowledge in a graph database format, allowing users to create, update, search, and delete entities and relationships in a Neo4j-powered knowledge graph through natural language.
              Last updated -
              Python
              • Linux

            View all related MCP servers

            ID: hbn6r7in36