Skip to main content
Glama
delorenj

MCP Memory Server with Qdrant Persistence

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

鍛冶屋のバッジ

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

特徴

  • エンティティと関係性を用いたグラフベースの知識表現

  • ファイルベースの永続性(memory.json)

  • Qdrantベクターデータベースを使用したセマンティック検索

  • 意味的類似性のためのOpenAI埋め込み

  • リバースプロキシ互換性を備えたHTTPSサポート

  • 簡単に導入できるDockerサポート

Related MCP server: MCP Qdrant Server with OpenAI Embeddings

環境変数

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

# 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

Latest Blog Posts

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/delorenj/mcp-qdrant-memory'

If you have feedback or need assistance with the MCP directory API, please join our Discord server