@mhalder/qdrant-mcp-server 1.1.1 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +18 -0
- package/README.md +36 -0
- package/biome.json +34 -0
- package/build/embeddings/sparse.d.ts +40 -0
- package/build/embeddings/sparse.d.ts.map +1 -0
- package/build/embeddings/sparse.js +105 -0
- package/build/embeddings/sparse.js.map +1 -0
- package/build/embeddings/sparse.test.d.ts +2 -0
- package/build/embeddings/sparse.test.d.ts.map +1 -0
- package/build/embeddings/sparse.test.js +69 -0
- package/build/embeddings/sparse.test.js.map +1 -0
- package/build/index.js +333 -32
- package/build/index.js.map +1 -1
- package/build/qdrant/client.d.ts +21 -2
- package/build/qdrant/client.d.ts.map +1 -1
- package/build/qdrant/client.js +131 -17
- package/build/qdrant/client.js.map +1 -1
- package/build/qdrant/client.test.js +429 -21
- package/build/qdrant/client.test.js.map +1 -1
- package/build/transport.test.d.ts +2 -0
- package/build/transport.test.d.ts.map +1 -0
- package/build/transport.test.js +168 -0
- package/build/transport.test.js.map +1 -0
- package/examples/README.md +16 -1
- package/examples/basic/README.md +1 -0
- package/examples/hybrid-search/README.md +236 -0
- package/package.json +3 -1
- package/src/embeddings/sparse.test.ts +87 -0
- package/src/embeddings/sparse.ts +127 -0
- package/src/index.ts +393 -59
- package/src/qdrant/client.test.ts +544 -56
- package/src/qdrant/client.ts +162 -22
- package/src/transport.test.ts +202 -0
- package/vitest.config.ts +3 -3
package/build/index.js
CHANGED
|
@@ -1,19 +1,32 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
+
import { readFileSync } from "node:fs";
|
|
3
|
+
import { dirname, join } from "node:path";
|
|
4
|
+
import { fileURLToPath } from "node:url";
|
|
2
5
|
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
|
|
3
6
|
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
7
|
+
import { StreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/streamableHttp.js";
|
|
4
8
|
import { CallToolRequestSchema, ListResourcesRequestSchema, ListToolsRequestSchema, ReadResourceRequestSchema, } from "@modelcontextprotocol/sdk/types.js";
|
|
5
|
-
import
|
|
6
|
-
import
|
|
9
|
+
import Bottleneck from "bottleneck";
|
|
10
|
+
import express from "express";
|
|
7
11
|
import { z } from "zod";
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
12
|
+
import { EmbeddingProviderFactory } from "./embeddings/factory.js";
|
|
13
|
+
import { BM25SparseVectorGenerator } from "./embeddings/sparse.js";
|
|
14
|
+
import { QdrantManager } from "./qdrant/client.js";
|
|
11
15
|
// Read package.json for version
|
|
12
16
|
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
13
17
|
const pkg = JSON.parse(readFileSync(join(__dirname, "../package.json"), "utf-8"));
|
|
14
18
|
// Validate environment variables
|
|
15
19
|
const QDRANT_URL = process.env.QDRANT_URL || "http://localhost:6333";
|
|
16
20
|
const EMBEDDING_PROVIDER = (process.env.EMBEDDING_PROVIDER || "ollama").toLowerCase();
|
|
21
|
+
const TRANSPORT_MODE = (process.env.TRANSPORT_MODE || "stdio").toLowerCase();
|
|
22
|
+
const HTTP_PORT = parseInt(process.env.HTTP_PORT || "3000", 10);
|
|
23
|
+
// Validate HTTP_PORT when HTTP mode is selected
|
|
24
|
+
if (TRANSPORT_MODE === "http") {
|
|
25
|
+
if (Number.isNaN(HTTP_PORT) || HTTP_PORT < 1 || HTTP_PORT > 65535) {
|
|
26
|
+
console.error(`Error: Invalid HTTP_PORT "${process.env.HTTP_PORT}". Must be a number between 1 and 65535.`);
|
|
27
|
+
process.exit(1);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
17
30
|
// Check for required API keys based on provider
|
|
18
31
|
if (EMBEDDING_PROVIDER !== "ollama") {
|
|
19
32
|
let apiKey;
|
|
@@ -117,14 +130,16 @@ const CreateCollectionSchema = z.object({
|
|
|
117
130
|
.enum(["Cosine", "Euclid", "Dot"])
|
|
118
131
|
.optional()
|
|
119
132
|
.describe("Distance metric (default: Cosine)"),
|
|
133
|
+
enableHybrid: z
|
|
134
|
+
.boolean()
|
|
135
|
+
.optional()
|
|
136
|
+
.describe("Enable hybrid search with sparse vectors (default: false)"),
|
|
120
137
|
});
|
|
121
138
|
const AddDocumentsSchema = z.object({
|
|
122
139
|
collection: z.string().describe("Name of the collection"),
|
|
123
140
|
documents: z
|
|
124
141
|
.array(z.object({
|
|
125
|
-
id: z
|
|
126
|
-
.union([z.string(), z.number()])
|
|
127
|
-
.describe("Unique identifier for the document"),
|
|
142
|
+
id: z.union([z.string(), z.number()]).describe("Unique identifier for the document"),
|
|
128
143
|
text: z.string().describe("Text content to embed and store"),
|
|
129
144
|
metadata: z
|
|
130
145
|
.record(z.any())
|
|
@@ -136,10 +151,7 @@ const AddDocumentsSchema = z.object({
|
|
|
136
151
|
const SemanticSearchSchema = z.object({
|
|
137
152
|
collection: z.string().describe("Name of the collection to search"),
|
|
138
153
|
query: z.string().describe("Search query text"),
|
|
139
|
-
limit: z
|
|
140
|
-
.number()
|
|
141
|
-
.optional()
|
|
142
|
-
.describe("Maximum number of results (default: 5)"),
|
|
154
|
+
limit: z.number().optional().describe("Maximum number of results (default: 5)"),
|
|
143
155
|
filter: z.record(z.any()).optional().describe("Optional metadata filter"),
|
|
144
156
|
});
|
|
145
157
|
const DeleteCollectionSchema = z.object({
|
|
@@ -150,9 +162,13 @@ const GetCollectionInfoSchema = z.object({
|
|
|
150
162
|
});
|
|
151
163
|
const DeleteDocumentsSchema = z.object({
|
|
152
164
|
collection: z.string().describe("Name of the collection"),
|
|
153
|
-
ids: z
|
|
154
|
-
|
|
155
|
-
|
|
165
|
+
ids: z.array(z.union([z.string(), z.number()])).describe("Array of document IDs to delete"),
|
|
166
|
+
});
|
|
167
|
+
const HybridSearchSchema = z.object({
|
|
168
|
+
collection: z.string().describe("Name of the collection to search"),
|
|
169
|
+
query: z.string().describe("Search query text"),
|
|
170
|
+
limit: z.number().optional().describe("Maximum number of results (default: 5)"),
|
|
171
|
+
filter: z.record(z.any()).optional().describe("Optional metadata filter"),
|
|
156
172
|
});
|
|
157
173
|
// List available tools
|
|
158
174
|
server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
@@ -160,7 +176,7 @@ server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
|
160
176
|
tools: [
|
|
161
177
|
{
|
|
162
178
|
name: "create_collection",
|
|
163
|
-
description: "Create a new vector collection in Qdrant. The collection will be configured with the embedding provider's dimensions automatically.",
|
|
179
|
+
description: "Create a new vector collection in Qdrant. The collection will be configured with the embedding provider's dimensions automatically. Set enableHybrid to true to enable hybrid search combining semantic and keyword search.",
|
|
164
180
|
inputSchema: {
|
|
165
181
|
type: "object",
|
|
166
182
|
properties: {
|
|
@@ -173,6 +189,10 @@ server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
|
173
189
|
enum: ["Cosine", "Euclid", "Dot"],
|
|
174
190
|
description: "Distance metric (default: Cosine)",
|
|
175
191
|
},
|
|
192
|
+
enableHybrid: {
|
|
193
|
+
type: "boolean",
|
|
194
|
+
description: "Enable hybrid search with sparse vectors (default: false)",
|
|
195
|
+
},
|
|
176
196
|
},
|
|
177
197
|
required: ["name"],
|
|
178
198
|
},
|
|
@@ -296,6 +316,32 @@ server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
|
296
316
|
required: ["collection", "ids"],
|
|
297
317
|
},
|
|
298
318
|
},
|
|
319
|
+
{
|
|
320
|
+
name: "hybrid_search",
|
|
321
|
+
description: "Perform hybrid search combining semantic vector search with keyword search using BM25. This provides better results by combining the strengths of both approaches. The collection must be created with enableHybrid set to true.",
|
|
322
|
+
inputSchema: {
|
|
323
|
+
type: "object",
|
|
324
|
+
properties: {
|
|
325
|
+
collection: {
|
|
326
|
+
type: "string",
|
|
327
|
+
description: "Name of the collection to search",
|
|
328
|
+
},
|
|
329
|
+
query: {
|
|
330
|
+
type: "string",
|
|
331
|
+
description: "Search query text",
|
|
332
|
+
},
|
|
333
|
+
limit: {
|
|
334
|
+
type: "number",
|
|
335
|
+
description: "Maximum number of results (default: 5)",
|
|
336
|
+
},
|
|
337
|
+
filter: {
|
|
338
|
+
type: "object",
|
|
339
|
+
description: "Optional metadata filter",
|
|
340
|
+
},
|
|
341
|
+
},
|
|
342
|
+
required: ["collection", "query"],
|
|
343
|
+
},
|
|
344
|
+
},
|
|
299
345
|
],
|
|
300
346
|
};
|
|
301
347
|
});
|
|
@@ -305,21 +351,25 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
305
351
|
try {
|
|
306
352
|
switch (name) {
|
|
307
353
|
case "create_collection": {
|
|
308
|
-
const { name, distance } = CreateCollectionSchema.parse(args);
|
|
354
|
+
const { name, distance, enableHybrid } = CreateCollectionSchema.parse(args);
|
|
309
355
|
const vectorSize = embeddings.getDimensions();
|
|
310
|
-
await qdrant.createCollection(name, vectorSize, distance);
|
|
356
|
+
await qdrant.createCollection(name, vectorSize, distance, enableHybrid || false);
|
|
357
|
+
let message = `Collection "${name}" created successfully with ${vectorSize} dimensions and ${distance || "Cosine"} distance metric.`;
|
|
358
|
+
if (enableHybrid) {
|
|
359
|
+
message += " Hybrid search is enabled for this collection.";
|
|
360
|
+
}
|
|
311
361
|
return {
|
|
312
362
|
content: [
|
|
313
363
|
{
|
|
314
364
|
type: "text",
|
|
315
|
-
text:
|
|
365
|
+
text: message,
|
|
316
366
|
},
|
|
317
367
|
],
|
|
318
368
|
};
|
|
319
369
|
}
|
|
320
370
|
case "add_documents": {
|
|
321
371
|
const { collection, documents } = AddDocumentsSchema.parse(args);
|
|
322
|
-
// Check if collection exists
|
|
372
|
+
// Check if collection exists and get info
|
|
323
373
|
const exists = await qdrant.collectionExists(collection);
|
|
324
374
|
if (!exists) {
|
|
325
375
|
return {
|
|
@@ -332,19 +382,37 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
332
382
|
isError: true,
|
|
333
383
|
};
|
|
334
384
|
}
|
|
385
|
+
const collectionInfo = await qdrant.getCollectionInfo(collection);
|
|
335
386
|
// Generate embeddings for all documents
|
|
336
387
|
const texts = documents.map((doc) => doc.text);
|
|
337
388
|
const embeddingResults = await embeddings.embedBatch(texts);
|
|
338
|
-
//
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
389
|
+
// If hybrid search is enabled, generate sparse vectors and use appropriate method
|
|
390
|
+
if (collectionInfo.hybridEnabled) {
|
|
391
|
+
const sparseGenerator = new BM25SparseVectorGenerator();
|
|
392
|
+
// Prepare points with both dense and sparse vectors
|
|
393
|
+
const points = documents.map((doc, index) => ({
|
|
394
|
+
id: doc.id,
|
|
395
|
+
vector: embeddingResults[index].embedding,
|
|
396
|
+
sparseVector: sparseGenerator.generate(doc.text),
|
|
397
|
+
payload: {
|
|
398
|
+
text: doc.text,
|
|
399
|
+
...doc.metadata,
|
|
400
|
+
},
|
|
401
|
+
}));
|
|
402
|
+
await qdrant.addPointsWithSparse(collection, points);
|
|
403
|
+
}
|
|
404
|
+
else {
|
|
405
|
+
// Standard dense-only vectors
|
|
406
|
+
const points = documents.map((doc, index) => ({
|
|
407
|
+
id: doc.id,
|
|
408
|
+
vector: embeddingResults[index].embedding,
|
|
409
|
+
payload: {
|
|
410
|
+
text: doc.text,
|
|
411
|
+
...doc.metadata,
|
|
412
|
+
},
|
|
413
|
+
}));
|
|
414
|
+
await qdrant.addPoints(collection, points);
|
|
415
|
+
}
|
|
348
416
|
return {
|
|
349
417
|
content: [
|
|
350
418
|
{
|
|
@@ -429,6 +497,50 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
429
497
|
],
|
|
430
498
|
};
|
|
431
499
|
}
|
|
500
|
+
case "hybrid_search": {
|
|
501
|
+
const { collection, query, limit, filter } = HybridSearchSchema.parse(args);
|
|
502
|
+
// Check if collection exists
|
|
503
|
+
const exists = await qdrant.collectionExists(collection);
|
|
504
|
+
if (!exists) {
|
|
505
|
+
return {
|
|
506
|
+
content: [
|
|
507
|
+
{
|
|
508
|
+
type: "text",
|
|
509
|
+
text: `Error: Collection "${collection}" does not exist.`,
|
|
510
|
+
},
|
|
511
|
+
],
|
|
512
|
+
isError: true,
|
|
513
|
+
};
|
|
514
|
+
}
|
|
515
|
+
// Check if collection has hybrid search enabled
|
|
516
|
+
const collectionInfo = await qdrant.getCollectionInfo(collection);
|
|
517
|
+
if (!collectionInfo.hybridEnabled) {
|
|
518
|
+
return {
|
|
519
|
+
content: [
|
|
520
|
+
{
|
|
521
|
+
type: "text",
|
|
522
|
+
text: `Error: Collection "${collection}" does not have hybrid search enabled. Create a new collection with enableHybrid set to true.`,
|
|
523
|
+
},
|
|
524
|
+
],
|
|
525
|
+
isError: true,
|
|
526
|
+
};
|
|
527
|
+
}
|
|
528
|
+
// Generate dense embedding for query
|
|
529
|
+
const { embedding } = await embeddings.embed(query);
|
|
530
|
+
// Generate sparse vector for query
|
|
531
|
+
const sparseGenerator = new BM25SparseVectorGenerator();
|
|
532
|
+
const sparseVector = sparseGenerator.generate(query);
|
|
533
|
+
// Perform hybrid search
|
|
534
|
+
const results = await qdrant.hybridSearch(collection, embedding, sparseVector, limit || 5, filter);
|
|
535
|
+
return {
|
|
536
|
+
content: [
|
|
537
|
+
{
|
|
538
|
+
type: "text",
|
|
539
|
+
text: JSON.stringify(results, null, 2),
|
|
540
|
+
},
|
|
541
|
+
],
|
|
542
|
+
};
|
|
543
|
+
}
|
|
432
544
|
default:
|
|
433
545
|
return {
|
|
434
546
|
content: [
|
|
@@ -520,13 +632,202 @@ server.setRequestHandler(ReadResourceRequestSchema, async (request) => {
|
|
|
520
632
|
],
|
|
521
633
|
};
|
|
522
634
|
});
|
|
523
|
-
// Start server
|
|
524
|
-
async function
|
|
635
|
+
// Start server with stdio transport
|
|
636
|
+
async function startStdioServer() {
|
|
525
637
|
await checkOllamaAvailability();
|
|
526
638
|
const transport = new StdioServerTransport();
|
|
527
639
|
await server.connect(transport);
|
|
528
640
|
console.error("Qdrant MCP server running on stdio");
|
|
529
641
|
}
|
|
642
|
+
// Start server with HTTP transport
|
|
643
|
+
async function startHttpServer() {
|
|
644
|
+
await checkOllamaAvailability();
|
|
645
|
+
const app = express();
|
|
646
|
+
app.use(express.json({ limit: "10mb" }));
|
|
647
|
+
// Configure Express to trust proxy for correct IP detection
|
|
648
|
+
app.set("trust proxy", true);
|
|
649
|
+
// Rate limiter group: max 100 requests per 15 minutes per IP, max 10 concurrent per IP
|
|
650
|
+
const rateLimiterGroup = new Bottleneck.Group({
|
|
651
|
+
reservoir: 100, // initial capacity per IP
|
|
652
|
+
reservoirRefreshAmount: 100, // refresh back to 100
|
|
653
|
+
reservoirRefreshInterval: 15 * 60 * 1000, // every 15 minutes
|
|
654
|
+
maxConcurrent: 10, // max concurrent requests per IP
|
|
655
|
+
});
|
|
656
|
+
// Periodic cleanup of inactive rate limiters to prevent memory leaks
|
|
657
|
+
// Track last access time for each IP
|
|
658
|
+
const ipLastAccess = new Map();
|
|
659
|
+
const INACTIVE_TIMEOUT = 60 * 60 * 1000; // 1 hour
|
|
660
|
+
const cleanupIntervalId = setInterval(() => {
|
|
661
|
+
const now = Date.now();
|
|
662
|
+
const keysToDelete = [];
|
|
663
|
+
ipLastAccess.forEach((lastAccess, ip) => {
|
|
664
|
+
if (now - lastAccess > INACTIVE_TIMEOUT) {
|
|
665
|
+
keysToDelete.push(ip);
|
|
666
|
+
}
|
|
667
|
+
});
|
|
668
|
+
keysToDelete.forEach((ip) => {
|
|
669
|
+
rateLimiterGroup.deleteKey(ip);
|
|
670
|
+
ipLastAccess.delete(ip);
|
|
671
|
+
});
|
|
672
|
+
if (keysToDelete.length > 0) {
|
|
673
|
+
console.error(`Cleaned up ${keysToDelete.length} inactive rate limiters`);
|
|
674
|
+
}
|
|
675
|
+
}, INACTIVE_TIMEOUT);
|
|
676
|
+
// Rate limiting middleware
|
|
677
|
+
const rateLimitMiddleware = async (req, res, next) => {
|
|
678
|
+
const clientIp = req.ip || req.socket.remoteAddress || "unknown";
|
|
679
|
+
try {
|
|
680
|
+
// Update last access time for this IP
|
|
681
|
+
ipLastAccess.set(clientIp, Date.now());
|
|
682
|
+
// Get or create a limiter for this specific IP
|
|
683
|
+
const limiter = rateLimiterGroup.key(clientIp);
|
|
684
|
+
await limiter.schedule(() => Promise.resolve());
|
|
685
|
+
next();
|
|
686
|
+
}
|
|
687
|
+
catch (error) {
|
|
688
|
+
// Differentiate between rate limit errors and unexpected errors
|
|
689
|
+
if (error instanceof Bottleneck.BottleneckError) {
|
|
690
|
+
// Rate limit exceeded or Bottleneck operational error
|
|
691
|
+
console.error(`Rate limit exceeded for IP ${clientIp}:`, error.message);
|
|
692
|
+
}
|
|
693
|
+
else {
|
|
694
|
+
// Unexpected error in rate limiting logic
|
|
695
|
+
console.error("Unexpected rate limiting error:", error);
|
|
696
|
+
}
|
|
697
|
+
res.status(429).json({
|
|
698
|
+
jsonrpc: "2.0",
|
|
699
|
+
error: {
|
|
700
|
+
code: -32000,
|
|
701
|
+
message: "Too many requests",
|
|
702
|
+
},
|
|
703
|
+
id: null,
|
|
704
|
+
});
|
|
705
|
+
}
|
|
706
|
+
};
|
|
707
|
+
// Health check endpoint
|
|
708
|
+
app.get("/health", (_req, res) => {
|
|
709
|
+
res.json({
|
|
710
|
+
status: "ok",
|
|
711
|
+
mode: TRANSPORT_MODE,
|
|
712
|
+
version: pkg.version,
|
|
713
|
+
embedding_provider: EMBEDDING_PROVIDER,
|
|
714
|
+
});
|
|
715
|
+
});
|
|
716
|
+
app.post("/mcp", rateLimitMiddleware, async (req, res) => {
|
|
717
|
+
const REQUEST_TIMEOUT = 60000; // 60 seconds
|
|
718
|
+
let timeoutId;
|
|
719
|
+
let isTimedOut = false;
|
|
720
|
+
let transportClosed = false;
|
|
721
|
+
// Create a new transport for each request in stateless mode.
|
|
722
|
+
// This prevents request ID collisions when different clients use the same JSON-RPC request IDs.
|
|
723
|
+
const transport = new StreamableHTTPServerTransport({
|
|
724
|
+
sessionIdGenerator: undefined, // Stateless mode
|
|
725
|
+
enableJsonResponse: true,
|
|
726
|
+
});
|
|
727
|
+
// Helper to safely close transport only once
|
|
728
|
+
const closeTransport = async () => {
|
|
729
|
+
if (!transportClosed) {
|
|
730
|
+
transportClosed = true;
|
|
731
|
+
await transport.close().catch((e) => console.error("Error closing transport:", e));
|
|
732
|
+
}
|
|
733
|
+
};
|
|
734
|
+
try {
|
|
735
|
+
// Set request timeout
|
|
736
|
+
timeoutId = setTimeout(async () => {
|
|
737
|
+
isTimedOut = true;
|
|
738
|
+
// Close transport on timeout to prevent resource leaks
|
|
739
|
+
await closeTransport();
|
|
740
|
+
if (!res.headersSent) {
|
|
741
|
+
res.status(408).json({
|
|
742
|
+
jsonrpc: "2.0",
|
|
743
|
+
error: {
|
|
744
|
+
code: -32000,
|
|
745
|
+
message: "Request timeout",
|
|
746
|
+
},
|
|
747
|
+
id: null,
|
|
748
|
+
});
|
|
749
|
+
}
|
|
750
|
+
}, REQUEST_TIMEOUT);
|
|
751
|
+
// Clean up transport when response closes
|
|
752
|
+
res.on("close", async () => {
|
|
753
|
+
await closeTransport();
|
|
754
|
+
if (timeoutId)
|
|
755
|
+
clearTimeout(timeoutId);
|
|
756
|
+
});
|
|
757
|
+
// Connect the transport to the shared server instance.
|
|
758
|
+
// In stateless mode, each request gets a new transport connection.
|
|
759
|
+
await server.connect(transport);
|
|
760
|
+
await transport.handleRequest(req, res, req.body);
|
|
761
|
+
// Clear timeout immediately on success to prevent race condition
|
|
762
|
+
if (timeoutId) {
|
|
763
|
+
clearTimeout(timeoutId);
|
|
764
|
+
timeoutId = undefined;
|
|
765
|
+
}
|
|
766
|
+
}
|
|
767
|
+
catch (error) {
|
|
768
|
+
console.error("Error handling MCP request:", error);
|
|
769
|
+
if (!res.headersSent && !isTimedOut) {
|
|
770
|
+
res.status(500).json({
|
|
771
|
+
jsonrpc: "2.0",
|
|
772
|
+
error: {
|
|
773
|
+
code: -32603,
|
|
774
|
+
message: "Internal server error",
|
|
775
|
+
},
|
|
776
|
+
id: null,
|
|
777
|
+
});
|
|
778
|
+
}
|
|
779
|
+
}
|
|
780
|
+
finally {
|
|
781
|
+
if (timeoutId)
|
|
782
|
+
clearTimeout(timeoutId);
|
|
783
|
+
// Ensure transport is closed even if an error occurs
|
|
784
|
+
await closeTransport();
|
|
785
|
+
}
|
|
786
|
+
});
|
|
787
|
+
const httpServer = app
|
|
788
|
+
.listen(HTTP_PORT, () => {
|
|
789
|
+
console.error(`Qdrant MCP server running on http://localhost:${HTTP_PORT}/mcp`);
|
|
790
|
+
})
|
|
791
|
+
.on("error", (error) => {
|
|
792
|
+
console.error("HTTP server error:", error);
|
|
793
|
+
process.exit(1);
|
|
794
|
+
});
|
|
795
|
+
// Graceful shutdown handling
|
|
796
|
+
let isShuttingDown = false;
|
|
797
|
+
const shutdown = () => {
|
|
798
|
+
if (isShuttingDown)
|
|
799
|
+
return;
|
|
800
|
+
isShuttingDown = true;
|
|
801
|
+
console.error("Shutdown signal received, closing HTTP server gracefully...");
|
|
802
|
+
// Clear the cleanup interval to allow graceful shutdown
|
|
803
|
+
clearInterval(cleanupIntervalId);
|
|
804
|
+
// Force shutdown after 10 seconds
|
|
805
|
+
const forceTimeout = setTimeout(() => {
|
|
806
|
+
console.error("Forcing shutdown after timeout");
|
|
807
|
+
process.exit(1);
|
|
808
|
+
}, 10000);
|
|
809
|
+
httpServer.close(() => {
|
|
810
|
+
clearTimeout(forceTimeout);
|
|
811
|
+
console.error("HTTP server closed");
|
|
812
|
+
process.exit(0);
|
|
813
|
+
});
|
|
814
|
+
};
|
|
815
|
+
process.on("SIGTERM", shutdown);
|
|
816
|
+
process.on("SIGINT", shutdown);
|
|
817
|
+
}
|
|
818
|
+
// Main entry point
|
|
819
|
+
async function main() {
|
|
820
|
+
if (TRANSPORT_MODE === "http") {
|
|
821
|
+
await startHttpServer();
|
|
822
|
+
}
|
|
823
|
+
else if (TRANSPORT_MODE === "stdio") {
|
|
824
|
+
await startStdioServer();
|
|
825
|
+
}
|
|
826
|
+
else {
|
|
827
|
+
console.error(`Error: Invalid TRANSPORT_MODE "${TRANSPORT_MODE}". Supported modes: stdio, http.`);
|
|
828
|
+
process.exit(1);
|
|
829
|
+
}
|
|
830
|
+
}
|
|
530
831
|
main().catch((error) => {
|
|
531
832
|
console.error("Fatal error:", error);
|
|
532
833
|
process.exit(1);
|
package/build/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/build/qdrant/client.d.ts
CHANGED
|
@@ -2,13 +2,18 @@ export interface CollectionInfo {
|
|
|
2
2
|
name: string;
|
|
3
3
|
vectorSize: number;
|
|
4
4
|
pointsCount: number;
|
|
5
|
-
distance:
|
|
5
|
+
distance: "Cosine" | "Euclid" | "Dot";
|
|
6
|
+
hybridEnabled?: boolean;
|
|
6
7
|
}
|
|
7
8
|
export interface SearchResult {
|
|
8
9
|
id: string | number;
|
|
9
10
|
score: number;
|
|
10
11
|
payload?: Record<string, any>;
|
|
11
12
|
}
|
|
13
|
+
export interface SparseVector {
|
|
14
|
+
indices: number[];
|
|
15
|
+
values: number[];
|
|
16
|
+
}
|
|
12
17
|
export declare class QdrantManager {
|
|
13
18
|
private client;
|
|
14
19
|
constructor(url?: string);
|
|
@@ -17,7 +22,7 @@ export declare class QdrantManager {
|
|
|
17
22
|
* Qdrant requires string IDs to be in UUID format.
|
|
18
23
|
*/
|
|
19
24
|
private normalizeId;
|
|
20
|
-
createCollection(name: string, vectorSize: number, distance?:
|
|
25
|
+
createCollection(name: string, vectorSize: number, distance?: "Cosine" | "Euclid" | "Dot", enableSparse?: boolean): Promise<void>;
|
|
21
26
|
collectionExists(name: string): Promise<boolean>;
|
|
22
27
|
listCollections(): Promise<string[]>;
|
|
23
28
|
getCollectionInfo(name: string): Promise<CollectionInfo>;
|
|
@@ -33,5 +38,19 @@ export declare class QdrantManager {
|
|
|
33
38
|
payload?: Record<string, any>;
|
|
34
39
|
} | null>;
|
|
35
40
|
deletePoints(collectionName: string, ids: (string | number)[]): Promise<void>;
|
|
41
|
+
/**
|
|
42
|
+
* Performs hybrid search combining semantic vector search with sparse vector (keyword) search
|
|
43
|
+
* using Reciprocal Rank Fusion (RRF) to combine results
|
|
44
|
+
*/
|
|
45
|
+
hybridSearch(collectionName: string, denseVector: number[], sparseVector: SparseVector, limit?: number, filter?: Record<string, any>, _semanticWeight?: number): Promise<SearchResult[]>;
|
|
46
|
+
/**
|
|
47
|
+
* Adds points with both dense and sparse vectors for hybrid search
|
|
48
|
+
*/
|
|
49
|
+
addPointsWithSparse(collectionName: string, points: Array<{
|
|
50
|
+
id: string | number;
|
|
51
|
+
vector: number[];
|
|
52
|
+
sparseVector: SparseVector;
|
|
53
|
+
payload?: Record<string, any>;
|
|
54
|
+
}>): Promise<void>;
|
|
36
55
|
}
|
|
37
56
|
//# sourceMappingURL=client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/qdrant/client.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,QAAQ,GAAG,QAAQ,GAAG,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/qdrant/client.ts"],"names":[],"mappings":"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"}
|