mcp-meilisearch 1.4.4 → 1.4.5
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/dist/client.d.ts.map +1 -1
- package/dist/client.js +6 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -4
- package/dist/server.d.ts +8 -3
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +6 -8
- package/dist/utils/ai-handler.d.ts +4 -11
- package/dist/utils/ai-handler.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAQA,qBAAa,SAAS;IACpB;;;OAGG;IACH,WAAW,EAAE,OAAO,CAAS;IAE7B;;;OAGG;IACH,KAAK,EAAE;QACL,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;KACjC,EAAE,CAAM;IAET,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,KAAK,CAAa;IAC1B,OAAO,CAAC,SAAS,CAA8C;IAC/D,OAAO,CAAC,oBAAoB,CAEZ;gBAEJ,UAAU,EAAE,MAAM;IAI9B;;;OAGG;IACH,sBAAsB,CACpB,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,KAAK,IAAI;IAKzE;;;;;OAKG;IACG,WAAW,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAOhE;;;;OAIG;IACG,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAuBzC,SAAS;IA0BvB,OAAO,CAAC,kBAAkB;IAW1B;;;;;;;OAOG;IACG,QAAQ,CACZ,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GACzB,OAAO,CAAC;QACT,OAAO,EAAE,OAAO,CAAC;QACjB,IAAI,CAAC,EAAE,GAAG,CAAC;QACX,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IA2CF;;;;;;;;OAQG;IACG,cAAc,CAClB,KAAK,EAAE,MAAM,EACb,OAAO,GAAE;QAAE,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,aAAa,CAAC,EAAE,OAAO,CAAA;KAAO,GAClE,OAAO,CAAC;QACT,OAAO,EAAE,OAAO,CAAC;QACjB,IAAI,CAAC,EAAE,GAAG,CAAC;QACX,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAQA,qBAAa,SAAS;IACpB;;;OAGG;IACH,WAAW,EAAE,OAAO,CAAS;IAE7B;;;OAGG;IACH,KAAK,EAAE;QACL,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;KACjC,EAAE,CAAM;IAET,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,KAAK,CAAa;IAC1B,OAAO,CAAC,SAAS,CAA8C;IAC/D,OAAO,CAAC,oBAAoB,CAEZ;gBAEJ,UAAU,EAAE,MAAM;IAI9B;;;OAGG;IACH,sBAAsB,CACpB,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,KAAK,IAAI;IAKzE;;;;;OAKG;IACG,WAAW,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAOhE;;;;OAIG;IACG,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAuBzC,SAAS;IA0BvB,OAAO,CAAC,kBAAkB;IAW1B;;;;;;;OAOG;IACG,QAAQ,CACZ,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GACzB,OAAO,CAAC;QACT,OAAO,EAAE,OAAO,CAAC;QACjB,IAAI,CAAC,EAAE,GAAG,CAAC;QACX,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IA2CF;;;;;;;;OAQG;IACG,cAAc,CAClB,KAAK,EAAE,MAAM,EACb,OAAO,GAAE;QAAE,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,aAAa,CAAC,EAAE,OAAO,CAAA;KAAO,GAClE,OAAO,CAAC;QACT,OAAO,EAAE,OAAO,CAAC;QACjB,IAAI,CAAC,EAAE,GAAG,CAAC;QACX,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IA6CF,OAAO,CAAC,cAAc;IAKtB;;;OAGG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAK/B"}
|
package/dist/client.js
CHANGED
|
@@ -167,6 +167,12 @@ export class MCPClient {
|
|
|
167
167
|
toolUsed: toolName,
|
|
168
168
|
};
|
|
169
169
|
}
|
|
170
|
+
if (!toolName) {
|
|
171
|
+
return {
|
|
172
|
+
success: false,
|
|
173
|
+
error: "No tool name provided in AI response",
|
|
174
|
+
};
|
|
175
|
+
}
|
|
170
176
|
const toolResult = await this.callTool(toolName, parameters);
|
|
171
177
|
return {
|
|
172
178
|
...toolResult,
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAK7B,OAAO,EAAE,aAAa,EAAyB,MAAM,oBAAoB,CAAC;AAE1E;;;;GAIG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,GAAE,aAA8B,GACtC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAK7B,OAAO,EAAE,aAAa,EAAyB,MAAM,oBAAoB,CAAC;AAE1E;;;;GAIG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,GAAE,aAA8B,GACtC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAmEtB;AAwCD,eAAe,oBAAoB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -23,10 +23,10 @@ export async function mcpMeilisearchServer(options = defaultOptions) {
|
|
|
23
23
|
else {
|
|
24
24
|
console.warn("AI provider API key not found. AI will not be available");
|
|
25
25
|
}
|
|
26
|
-
const httpPort = options.httpPort || 4995;
|
|
27
|
-
const transport = options.transport || "http";
|
|
28
26
|
let mcpServerInstance = null;
|
|
29
|
-
const
|
|
27
|
+
const transport = options.transport;
|
|
28
|
+
const mcpEndpoint = options.mcpEndpoint;
|
|
29
|
+
const httpPort = options.httpPort || defaultOptions.httpPort;
|
|
30
30
|
const server = createServer(async (req, res) => {
|
|
31
31
|
if (!mcpServerInstance) {
|
|
32
32
|
res.statusCode = 503;
|
|
@@ -97,7 +97,7 @@ if (import.meta.url === `file://${process.argv?.[1]}`) {
|
|
|
97
97
|
break;
|
|
98
98
|
}
|
|
99
99
|
}
|
|
100
|
-
mcpMeilisearchServer(options)
|
|
100
|
+
await mcpMeilisearchServer(options)
|
|
101
101
|
.then(() => console.info("MCP server running"))
|
|
102
102
|
.catch((err) => {
|
|
103
103
|
console.error("Failed to start server:", err);
|
package/dist/server.d.ts
CHANGED
|
@@ -7,7 +7,12 @@ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
|
7
7
|
interface ServerInstance {
|
|
8
8
|
mcpServer: MCPServer;
|
|
9
9
|
}
|
|
10
|
-
export declare const defaultOptions:
|
|
10
|
+
export declare const defaultOptions: {
|
|
11
|
+
httpPort: number;
|
|
12
|
+
mcpEndpoint: string;
|
|
13
|
+
sessionTimeout: number;
|
|
14
|
+
sessionCleanupInterval: number;
|
|
15
|
+
};
|
|
11
16
|
/**
|
|
12
17
|
* Implementation of an MCP server for Meilisearch
|
|
13
18
|
*/
|
|
@@ -30,7 +35,7 @@ export declare class MCPServer {
|
|
|
30
35
|
* @param res The HTTP response
|
|
31
36
|
* @param mcpEndpoint The MCP endpoint path
|
|
32
37
|
*/
|
|
33
|
-
handleHttpRequest(req: IncomingMessage, res: ServerResponse, mcpEndpoint
|
|
38
|
+
handleHttpRequest(req: IncomingMessage, res: ServerResponse, mcpEndpoint?: string): Promise<void>;
|
|
34
39
|
/**
|
|
35
40
|
* Handles an HTTP GET request
|
|
36
41
|
* @param req The HTTP request
|
|
@@ -95,6 +100,6 @@ export declare class MCPServer {
|
|
|
95
100
|
* @returns A promise that resolves to the server instances
|
|
96
101
|
* @throws Error if the transport type is unsupported
|
|
97
102
|
*/
|
|
98
|
-
export declare const initServer: (transport
|
|
103
|
+
export declare const initServer: (transport?: "http" | "stdio", config?: Partial<ServerOptions>) => Promise<ServerInstance>;
|
|
99
104
|
export {};
|
|
100
105
|
//# sourceMappingURL=server.d.ts.map
|
package/dist/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,MAAM,CAAC;AAOvD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAInD,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAUpE;;GAEG;AACH,UAAU,cAAc;IACtB,SAAS,EAAE,SAAS,CAAC;CACtB;AASD,eAAO,MAAM,cAAc,
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,MAAM,CAAC;AAOvD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAInD,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAUpE;;GAEG;AACH,UAAU,cAAc;IACtB,SAAS,EAAE,SAAS,CAAC;CACtB;AASD,eAAO,MAAM,cAAc;;;;;CAK1B,CAAC;AAEF;;GAEG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAoB;IAE3D,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,eAAe,CAA+B;IACtD,OAAO,CAAC,QAAQ,CAAuC;IAEvD;;;;OAIG;gBACS,MAAM,EAAE,SAAS,EAAE,MAAM,GAAE,OAAO,CAAC,aAAa,CAAM;IAOlE;;;;;OAKG;IACG,iBAAiB,CACrB,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,WAAW,GAAE,MAAmC,GAC/C,OAAO,CAAC,IAAI,CAAC;IA+ChB;;;;OAIG;IACG,gBAAgB,CACpB,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,GAClB,OAAO,CAAC,IAAI,CAAC;IA+BhB;;;;;OAKG;IACG,iBAAiB,CACrB,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,IAAI,EAAE,GAAG,GACR,OAAO,CAAC,IAAI,CAAC;IA+BhB;;OAEG;IACH,QAAQ,IAAI,IAAI;IAqBhB;;;;;OAKG;YACW,uBAAuB;IAuCrC;;OAEG;IACH,OAAO,CAAC,+BAA+B;IAWvC;;OAEG;YACW,gBAAgB;IAmB9B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAa3B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAKxB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAO7B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAUzB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAQ3B;;OAEG;IACH,OAAO,CAAC,sBAAsB;CA2B/B;AA+DD;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,GACrB,YAAW,MAAM,GAAG,OAAgB,EACpC,SAAS,OAAO,CAAC,aAAa,CAAC,KAC9B,OAAO,CAAC,cAAc,CAcxB,CAAC"}
|
package/dist/server.js
CHANGED
|
@@ -17,8 +17,6 @@ export const defaultOptions = {
|
|
|
17
17
|
mcpEndpoint: "/mcp",
|
|
18
18
|
sessionTimeout: 3600000,
|
|
19
19
|
sessionCleanupInterval: 60000,
|
|
20
|
-
meilisearchApiKey: process.env.MEILISEARCH_API_KEY || "",
|
|
21
|
-
meilisearchHost: process.env.MEILISEARCH_HOST || "http://localhost:7700",
|
|
22
20
|
};
|
|
23
21
|
/**
|
|
24
22
|
* Implementation of an MCP server for Meilisearch
|
|
@@ -46,7 +44,7 @@ export class MCPServer {
|
|
|
46
44
|
* @param res The HTTP response
|
|
47
45
|
* @param mcpEndpoint The MCP endpoint path
|
|
48
46
|
*/
|
|
49
|
-
async handleHttpRequest(req, res, mcpEndpoint) {
|
|
47
|
+
async handleHttpRequest(req, res, mcpEndpoint = defaultOptions.mcpEndpoint) {
|
|
50
48
|
res.setHeader("Access-Control-Allow-Origin", "*");
|
|
51
49
|
res.setHeader("Access-Control-Allow-Methods", "GET, POST, OPTIONS");
|
|
52
50
|
res.setHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, mcp-session-id");
|
|
@@ -258,7 +256,7 @@ export class MCPServer {
|
|
|
258
256
|
* Starts the session cleanup process
|
|
259
257
|
*/
|
|
260
258
|
startSessionCleanup() {
|
|
261
|
-
const cleanupInterval = this.config.sessionCleanupInterval
|
|
259
|
+
const cleanupInterval = this.config.sessionCleanupInterval;
|
|
262
260
|
this.cleanupInterval = setInterval(() => {
|
|
263
261
|
this.cleanupExpiredSessions();
|
|
264
262
|
}, cleanupInterval);
|
|
@@ -269,7 +267,7 @@ export class MCPServer {
|
|
|
269
267
|
cleanupExpiredSessions() {
|
|
270
268
|
const now = Date.now();
|
|
271
269
|
const expiredIds = [];
|
|
272
|
-
const sessionTimeout = this.config.sessionTimeout
|
|
270
|
+
const sessionTimeout = this.config.sessionTimeout;
|
|
273
271
|
for (const [sessionId, info] of this.sessions.entries()) {
|
|
274
272
|
if (now - info.lastActivity > sessionTimeout) {
|
|
275
273
|
expiredIds.push(sessionId);
|
|
@@ -345,13 +343,13 @@ const initServerStdioTransport = async (customConfig) => {
|
|
|
345
343
|
* @returns A promise that resolves to the server instances
|
|
346
344
|
* @throws Error if the transport type is unsupported
|
|
347
345
|
*/
|
|
348
|
-
export const initServer = async (transport, config) => {
|
|
346
|
+
export const initServer = async (transport = "http", config) => {
|
|
349
347
|
try {
|
|
350
348
|
switch (transport) {
|
|
351
|
-
case "stdio":
|
|
352
|
-
return await initServerStdioTransport(config);
|
|
353
349
|
case "http":
|
|
354
350
|
return await initServerHTTPTransport(config);
|
|
351
|
+
case "stdio":
|
|
352
|
+
return await initServerStdioTransport(config);
|
|
355
353
|
default:
|
|
356
354
|
throw new Error(`Unsupported transport type: ${transport}`);
|
|
357
355
|
}
|
|
@@ -4,17 +4,10 @@ interface AITool {
|
|
|
4
4
|
description: string;
|
|
5
5
|
parameters: Record<string, any>;
|
|
6
6
|
}
|
|
7
|
-
interface
|
|
8
|
-
reasoning?: string | null;
|
|
9
|
-
}
|
|
10
|
-
interface AIToolSuccessResponse extends AIToolResponseBase {
|
|
11
|
-
error: null;
|
|
12
|
-
toolName: string;
|
|
13
|
-
parameters: Record<string, unknown>;
|
|
14
|
-
}
|
|
15
|
-
interface AIToolErrorResponse extends AIToolResponseBase {
|
|
16
|
-
error: string;
|
|
7
|
+
interface AIToolResponse {
|
|
17
8
|
toolName?: string;
|
|
9
|
+
reasoning?: string;
|
|
10
|
+
error: string | null;
|
|
18
11
|
parameters?: Record<string, unknown>;
|
|
19
12
|
}
|
|
20
13
|
/**
|
|
@@ -73,7 +66,7 @@ export declare class AIService {
|
|
|
73
66
|
* @param specificTools Optional array of specific tool names to consider
|
|
74
67
|
* @returns Object containing the selected tool name and parameters
|
|
75
68
|
*/
|
|
76
|
-
processQuery(query: string, specificTools?: string[]): Promise<
|
|
69
|
+
processQuery(query: string, specificTools?: string[]): Promise<AIToolResponse>;
|
|
77
70
|
private processOpenAIQuery;
|
|
78
71
|
private processHuggingFaceQuery;
|
|
79
72
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai-handler.d.ts","sourceRoot":"","sources":["../../src/utils/ai-handler.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAG5D,UAAU,MAAM;IACd,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CACjC;AAmBD,UAAU,
|
|
1
|
+
{"version":3,"file":"ai-handler.d.ts","sourceRoot":"","sources":["../../src/utils/ai-handler.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAG5D,UAAU,MAAM;IACd,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CACjC;AAmBD,UAAU,cAAc;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACtC;AAED;;;;;GAKG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,KAAK,CAA2B;IACxC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA0B;IACjD,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAkB;IAClD,OAAO,CAAC,QAAQ,CAAmC;IACnD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAwB;IACrD,OAAO,CAAC,MAAM,CAAgD;IAC9D,OAAO,CAAC,cAAc,CAIb;IAET;;;OAGG;IACH,OAAO;IAEP;;;OAGG;WACW,WAAW,IAAI,SAAS;IAOtC;;;;;;OAMG;IACH,UAAU,CACR,MAAM,EAAE,MAAM,EACd,QAAQ,GAAE,qBAAgC,EAC1C,KAAK,CAAC,EAAE,MAAM,GACb,IAAI;IAyBP;;;OAGG;IACH,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI;IAIxC,iBAAiB,IAAI,OAAO;IAI5B;;;;OAIG;IACH,OAAO,CAAC,kBAAkB;IAgB1B;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IAaxB;;;;;OAKG;IACG,YAAY,CAChB,KAAK,EAAE,MAAM,EACb,aAAa,CAAC,EAAE,MAAM,EAAE,GACvB,OAAO,CAAC,cAAc,CAAC;YA4BZ,kBAAkB;YAyClB,uBAAuB;CAqCtC"}
|