Qdrant知识图谱
STDIO基于Qdrant的语义搜索知识图谱系统
基于Qdrant的语义搜索知识图谱系统
This MCP server provides a knowledge graph implementation with semantic search capabilities powered by Qdrant vector database.
The following environment variables are required:
# 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
npm install
npm run build
docker build -t mcp-qdrant-memory .
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
{ "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 multiple new entitiescreate_relations
: Create relations between entitiesadd_observations
: Add observations to entitiesdelete_entities
: Delete entities and their relationsdelete_observations
: Delete specific observationsdelete_relations
: Delete specific relationsread_graph
: Get the full knowledge graphsearch_similar
: Search for semantically similar entities and relations
interface SearchParams { query: string; // Search query text limit?: number; // Max results (default: 10) }
The server maintains two forms of persistence:
File-based (memory.json):
Qdrant Vector DB:
When entities or relations are modified:
When searching:
// 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 });
The server supports connecting to Qdrant through HTTPS and reverse proxies. This is particularly useful when:
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; } }
QDRANT_URL=https://qdrant.yourdomain.com
The server implements robust HTTPS handling with:
If you experience connection issues:
openssl s_client -connect qdrant.yourdomain.com:443
curl -v https://qdrant.yourdomain.com/collections
env | grep -i proxy
MIT