airweave-mcp-search 0.6.49 → 0.6.51

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.
@@ -4,7 +4,6 @@ export declare class AirweaveClient {
4
4
  private client;
5
5
  constructor(config: AirweaveConfig);
6
6
  search(searchRequest: any): Promise<SearchResponse>;
7
- private hasAdvancedParameters;
8
7
  private getMockResponse;
9
8
  }
10
9
  //# sourceMappingURL=airweave-client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"airweave-client.d.ts","sourceRoot":"","sources":["../../src/api/airweave-client.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5D,qBAAa,cAAc;IAGX,OAAO,CAAC,MAAM;IAF1B,OAAO,CAAC,MAAM,CAAoB;gBAEd,MAAM,EAAE,cAAc;IAOpC,MAAM,CAAC,aAAa,EAAE,GAAG,GAAG,OAAO,CAAC,cAAc,CAAC;IAoCzD,OAAO,CAAC,qBAAqB;IAU7B,OAAO,CAAC,eAAe;CAkD1B"}
1
+ {"version":3,"file":"airweave-client.d.ts","sourceRoot":"","sources":["../../src/api/airweave-client.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5D,qBAAa,cAAc;IAGX,OAAO,CAAC,MAAM;IAF1B,OAAO,CAAC,MAAM,CAAoB;gBAEd,MAAM,EAAE,cAAc;IAOpC,MAAM,CAAC,aAAa,EAAE,GAAG,GAAG,OAAO,CAAC,cAAc,CAAC;IA2BzD,OAAO,CAAC,eAAe;CA8C1B"}
@@ -11,54 +11,36 @@ export class AirweaveClient {
11
11
  });
12
12
  }
13
13
  async search(searchRequest) {
14
+ console.log(`[${new Date().toISOString()}] AirweaveClient.search called with:`, JSON.stringify(searchRequest, null, 2));
14
15
  // Mock mode for testing
15
16
  if (this.config.apiKey === 'test-key' && this.config.baseUrl.includes('localhost')) {
16
17
  return this.getMockResponse(searchRequest);
17
18
  }
18
19
  try {
19
- // Check if this should use advanced search (POST endpoint)
20
- const hasAdvancedParams = this.hasAdvancedParameters(searchRequest);
21
- if (hasAdvancedParams) {
22
- // Use the official SDK for advanced search
23
- const response = await this.client.collections.searchAdvanced(this.config.collection, searchRequest);
24
- return response;
25
- }
26
- else {
27
- // Use the official SDK for basic search
28
- const { query, response_type, limit, offset, recency_bias } = searchRequest;
29
- const response = await this.client.collections.search(this.config.collection, {
30
- query,
31
- response_type,
32
- limit,
33
- offset,
34
- recency_bias
35
- });
36
- return response;
37
- }
20
+ // Use the SDK's search method - it handles both basic and advanced parameters
21
+ // The SDK will automatically use GET for basic params and POST for advanced
22
+ console.log(`[${new Date().toISOString()}] Calling SDK search with all params`);
23
+ const response = await this.client.collections.search(this.config.collection, searchRequest);
24
+ console.log(`[${new Date().toISOString()}] Search successful, got ${response.results?.length || 0} results`);
25
+ return response;
38
26
  }
39
27
  catch (error) {
40
28
  // Handle SDK errors and convert to our error format
29
+ console.error(`[${new Date().toISOString()}] Search error:`, error);
41
30
  if (error.statusCode) {
42
- throw new Error(`Airweave API error (${error.statusCode}): ${error.message}`);
31
+ const errorBody = typeof error.body === 'string' ? error.body : JSON.stringify(error.body);
32
+ throw new Error(`Airweave API error (${error.statusCode}): ${error.message}\nStatus code: ${error.statusCode}\nBody: ${errorBody}`);
43
33
  }
44
34
  else {
45
- throw new Error(`Airweave API error: ${error.message}`);
35
+ throw new Error(`Airweave API error: ${error.message || 'Unknown error'}`);
46
36
  }
47
37
  }
48
38
  }
49
- hasAdvancedParameters(params) {
50
- return !!(params.score_threshold !== undefined ||
51
- params.search_method !== undefined ||
52
- params.expansion_strategy !== undefined ||
53
- params.enable_reranking !== undefined ||
54
- params.enable_query_interpretation !== undefined);
55
- }
56
39
  getMockResponse(request) {
57
40
  const { query, response_type, limit, offset, recency_bias, score_threshold, search_method, expansion_strategy, enable_reranking, enable_query_interpretation } = request;
58
41
  // Generate mock results based on the query
59
42
  const mockResults = [];
60
43
  const resultCount = Math.min(limit || 100, 5); // Limit to 5 for testing
61
- const hasAdvancedParams = this.hasAdvancedParameters(request);
62
44
  for (let i = 0; i < resultCount; i++) {
63
45
  const score = 0.95 - (i * 0.1);
64
46
  // Apply score threshold if specified
@@ -83,16 +65,13 @@ export class AirweaveClient {
83
65
  search_method: search_method,
84
66
  expansion_strategy: expansion_strategy,
85
67
  enable_reranking: enable_reranking,
86
- enable_query_interpretation: enable_query_interpretation,
87
- used_advanced_search: hasAdvancedParams
68
+ enable_query_interpretation: enable_query_interpretation
88
69
  }
89
70
  }
90
71
  });
91
72
  }
92
73
  return {
93
74
  results: mockResults,
94
- response_type: response_type || "raw",
95
- status: "success",
96
75
  completion: response_type === "completion"
97
76
  ? `Based on the search results for "${query}", here's a comprehensive summary of the findings...`
98
77
  : undefined
@@ -1 +1 @@
1
- {"version":3,"file":"airweave-client.js","sourceRoot":"","sources":["../../src/api/airweave-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"airweave-client.js","sourceRoot":"","sources":["../../src/api/airweave-client.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,13 @@
1
1
  #!/usr/bin/env node
2
+ /**
3
+ * Airweave MCP Server - HTTP/Streamable Transport
4
+ *
5
+ * This is the production HTTP server for cloud-based AI platforms like OpenAI Agent Builder.
6
+ * Uses the modern Streamable HTTP transport (MCP 2025-03-26) instead of deprecated SSE.
7
+ *
8
+ * Endpoint: https://mcp.airweave.ai/mcp
9
+ * Protocol: MCP 2025-03-26 (Streamable HTTP)
10
+ * Authentication: Bearer token, X-API-Key, or query parameter
11
+ */
2
12
  export {};
3
13
  //# sourceMappingURL=index-http.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-http.d.ts","sourceRoot":"","sources":["../src/index-http.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"index-http.d.ts","sourceRoot":"","sources":["../src/index-http.ts"],"names":[],"mappings":";AAEA;;;;;;;;;GASG"}
@@ -1,35 +1,75 @@
1
1
  #!/usr/bin/env node
2
- // HTTP/SSE entry point for the Airweave MCP Search Server
3
- // This version is designed to be deployed as a service for cloud-based AI assistants
4
- import express from "express";
5
- import { SSEServerTransport } from "@modelcontextprotocol/sdk/server/sse.js";
6
- import { createMcpServer, validateHttpEnvironment } from "./server.js";
7
- // Validate environment variables and get configuration
8
- // Note: API key comes from client, not server environment
9
- const config = validateHttpEnvironment();
10
- // Get port from environment or default to 8080
11
- const PORT = process.env.PORT || 8080;
12
- // Create Express app
2
+ /**
3
+ * Airweave MCP Server - HTTP/Streamable Transport
4
+ *
5
+ * This is the production HTTP server for cloud-based AI platforms like OpenAI Agent Builder.
6
+ * Uses the modern Streamable HTTP transport (MCP 2025-03-26) instead of deprecated SSE.
7
+ *
8
+ * Endpoint: https://mcp.airweave.ai/mcp
9
+ * Protocol: MCP 2025-03-26 (Streamable HTTP)
10
+ * Authentication: Bearer token, X-API-Key, or query parameter
11
+ */
12
+ import express from 'express';
13
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
14
+ import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/streamableHttp.js';
15
+ import { AirweaveClient } from './api/airweave-client.js';
16
+ import { createSearchTool } from './tools/search-tool.js';
17
+ import { createConfigTool } from './tools/config-tool.js';
13
18
  const app = express();
19
+ app.use(express.json({ limit: '10mb' }));
20
+ // Create MCP server instance with tools
21
+ const createMcpServer = (apiKey) => {
22
+ const collection = process.env.AIRWEAVE_COLLECTION || 'default';
23
+ const baseUrl = process.env.AIRWEAVE_BASE_URL || 'https://api.airweave.ai';
24
+ const config = {
25
+ collection,
26
+ baseUrl,
27
+ apiKey // Use the provided API key from the request
28
+ };
29
+ const server = new McpServer({
30
+ name: 'airweave-search',
31
+ version: '2.1.0',
32
+ }, {
33
+ capabilities: {
34
+ tools: {},
35
+ logging: {}
36
+ }
37
+ });
38
+ // Create dynamic tool name based on collection
39
+ const toolName = `search-${collection}`;
40
+ // Initialize Airweave client with the request's API key
41
+ const airweaveClient = new AirweaveClient(config);
42
+ // Create tools using shared tool creation functions
43
+ const searchTool = createSearchTool(toolName, collection, airweaveClient);
44
+ const configTool = createConfigTool(toolName, collection, baseUrl, apiKey);
45
+ // Register tools
46
+ server.tool(searchTool.name, searchTool.description, searchTool.schema, searchTool.handler);
47
+ server.tool(configTool.name, configTool.description, configTool.schema, configTool.handler);
48
+ return server;
49
+ };
14
50
  // Health check endpoint
15
- app.get("/health", (_req, res) => {
51
+ app.get('/health', (req, res) => {
16
52
  res.json({
17
- status: "healthy",
18
- collection: config.collection,
19
- baseUrl: config.baseUrl,
20
- timestamp: new Date().toISOString(),
53
+ status: 'healthy',
54
+ transport: 'streamable-http',
55
+ protocol: 'MCP 2025-03-26',
56
+ collection: process.env.AIRWEAVE_COLLECTION || 'unknown',
57
+ timestamp: new Date().toISOString()
21
58
  });
22
59
  });
23
60
  // Root endpoint with server info
24
- app.get("/", (_req, res) => {
61
+ app.get('/', (req, res) => {
62
+ const collection = process.env.AIRWEAVE_COLLECTION || 'default';
63
+ const baseUrl = process.env.AIRWEAVE_BASE_URL || 'https://api.airweave.ai';
25
64
  res.json({
26
65
  name: "Airweave MCP Search Server",
27
66
  version: "2.1.0",
28
- collection: config.collection,
29
- transport: "SSE",
67
+ transport: "Streamable HTTP",
68
+ protocol: "MCP 2025-03-26",
69
+ collection: collection,
30
70
  endpoints: {
31
71
  health: "/health",
32
- sse: "/sse",
72
+ mcp: "/mcp"
33
73
  },
34
74
  authentication: {
35
75
  required: true,
@@ -40,74 +80,152 @@ app.get("/", (_req, res) => {
40
80
  "Query parameter: ?api_key=your-key"
41
81
  ],
42
82
  openai_agent_builder: {
43
- url: "https://mcp.dev-airweave.com/sse",
83
+ url: "https://mcp.airweave.ai/mcp",
44
84
  headers: {
45
85
  Authorization: "Bearer <your-airweave-api-key>"
46
86
  }
47
- },
48
- instructions: "Provide your Airweave API key using one of the methods above when connecting to /sse"
49
- },
87
+ }
88
+ }
50
89
  });
51
90
  });
52
- // SSE endpoint for MCP protocol
53
- app.get("/sse", async (req, res) => {
54
- console.error(`[${new Date().toISOString()}] New SSE connection from ${req.ip}`);
55
- // Extract API key from request headers or query parameters
56
- const apiKey = req.headers['x-api-key'] ||
57
- req.headers['authorization']?.replace('Bearer ', '') ||
58
- req.query.apiKey ||
59
- req.query.api_key;
60
- if (!apiKey) {
61
- console.error(`[${new Date().toISOString()}] Missing API key in SSE request`);
62
- res.status(401).json({
63
- error: "Authentication required",
64
- message: "Please provide an API key via X-API-Key header, Authorization header, or apiKey query parameter"
91
+ // Session management: Map session IDs to { server, transport, apiKey }
92
+ const sessions = new Map();
93
+ // Main MCP endpoint (Streamable HTTP)
94
+ app.post('/mcp', async (req, res) => {
95
+ try {
96
+ // Extract API key from request headers or query parameters
97
+ const apiKey = req.headers['x-api-key'] ||
98
+ req.headers['authorization']?.replace('Bearer ', '') ||
99
+ req.query.apiKey ||
100
+ req.query.api_key;
101
+ if (!apiKey) {
102
+ res.status(401).json({
103
+ jsonrpc: '2.0',
104
+ error: {
105
+ code: -32001,
106
+ message: 'Authentication required',
107
+ data: 'Please provide an API key via X-API-Key header, Authorization header, or apiKey query parameter'
108
+ },
109
+ id: req.body.id || null
110
+ });
111
+ return;
112
+ }
113
+ // Get or create session ID from MCP-Session-ID header
114
+ const sessionId = req.headers['mcp-session-id'] || `session_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;
115
+ // Check if we have an existing session
116
+ let session = sessions.get(sessionId);
117
+ if (!session) {
118
+ console.log(`[${new Date().toISOString()}] Creating new session: ${sessionId}`);
119
+ // Create a new server with the API key
120
+ const server = createMcpServer(apiKey);
121
+ // Create a new transport for this session
122
+ const transport = new StreamableHTTPServerTransport({
123
+ sessionIdGenerator: () => sessionId
124
+ });
125
+ // Set up session management callbacks
126
+ transport.onsessioninitialized = (sid) => {
127
+ console.log(`[${new Date().toISOString()}] Session initialized: ${sid}`);
128
+ };
129
+ // Set up cleanup on close
130
+ transport.onclose = () => {
131
+ console.log(`[${new Date().toISOString()}] Session closed: ${sessionId}`);
132
+ sessions.delete(sessionId);
133
+ };
134
+ // Connect the transport to the server
135
+ await server.connect(transport);
136
+ // Store the session
137
+ session = { server, transport, apiKey: apiKey };
138
+ sessions.set(sessionId, session);
139
+ }
140
+ else if (session.apiKey !== apiKey) {
141
+ // API key changed - recreate session
142
+ console.log(`[${new Date().toISOString()}] API key changed for session ${sessionId}, recreating...`);
143
+ session.transport.close();
144
+ sessions.delete(sessionId);
145
+ // Create new session with new API key
146
+ const server = createMcpServer(apiKey);
147
+ const transport = new StreamableHTTPServerTransport({
148
+ sessionIdGenerator: () => sessionId
149
+ });
150
+ await server.connect(transport);
151
+ session = { server, transport, apiKey: apiKey };
152
+ sessions.set(sessionId, session);
153
+ }
154
+ // Handle the request with the session's transport
155
+ await session.transport.handleRequest(req, res, req.body);
156
+ }
157
+ catch (error) {
158
+ console.error(`[${new Date().toISOString()}] Error handling MCP request:`, error);
159
+ if (!res.headersSent) {
160
+ res.status(500).json({
161
+ jsonrpc: '2.0',
162
+ error: {
163
+ code: -32603,
164
+ message: 'Internal server error',
165
+ },
166
+ id: req.body.id || null
167
+ });
168
+ }
169
+ }
170
+ });
171
+ // DELETE endpoint for session termination
172
+ app.delete('/mcp', (req, res) => {
173
+ const sessionId = req.headers['mcp-session-id'];
174
+ if (!sessionId) {
175
+ res.status(400).json({
176
+ jsonrpc: '2.0',
177
+ error: {
178
+ code: -32000,
179
+ message: 'Bad Request: No session ID provided',
180
+ },
181
+ id: null
65
182
  });
66
183
  return;
67
184
  }
68
- // Create full config with client's API key
69
- const fullConfig = {
70
- ...config,
71
- apiKey
72
- };
73
- // Create a new MCP server instance for this connection
74
- const server = createMcpServer(fullConfig);
75
- // Create SSE transport
76
- const transport = new SSEServerTransport("/message", res);
77
- // Connect server to transport
78
- await server.connect(transport);
79
- console.error(`[${new Date().toISOString()}] MCP server connected via SSE`);
80
- // Handle connection close
81
- req.on("close", () => {
82
- console.error(`[${new Date().toISOString()}] SSE connection closed`);
185
+ // Close the session if it exists
186
+ const session = sessions.get(sessionId);
187
+ if (session) {
188
+ console.log(`[${new Date().toISOString()}] Terminating session: ${sessionId}`);
189
+ session.transport.close();
190
+ sessions.delete(sessionId);
191
+ }
192
+ res.status(200).json({
193
+ jsonrpc: '2.0',
194
+ result: {
195
+ message: session ? 'Session terminated successfully' : 'Session not found (may have already been closed)'
196
+ },
197
+ id: null
83
198
  });
84
199
  });
85
- // POST endpoint for client messages (required by SSE transport)
86
- app.post("/message", express.json(), async (req, res) => {
87
- // The SSE transport handles this internally
88
- // This endpoint is registered but the actual handling is done by the transport
89
- res.status(200).send();
90
- });
91
200
  // Error handling middleware
92
- app.use((err, _req, res, _next) => {
93
- console.error("Server error:", err);
94
- res.status(500).json({ error: "Internal server error" });
201
+ app.use((error, req, res, next) => {
202
+ console.error(`[${new Date().toISOString()}] Unhandled error:`, error);
203
+ if (!res.headersSent) {
204
+ res.status(500).json({
205
+ jsonrpc: '2.0',
206
+ error: {
207
+ code: -32603,
208
+ message: 'Internal server error',
209
+ },
210
+ id: null
211
+ });
212
+ }
95
213
  });
96
- // Start the server
214
+ // Start server
215
+ const PORT = process.env.PORT || 8080;
97
216
  app.listen(PORT, () => {
98
- console.error(`Airweave MCP Search Server (HTTP/SSE) started`);
99
- console.error(`Collection: ${config.collection}`);
100
- console.error(`Base URL: ${config.baseUrl}`);
101
- console.error(`Listening on port: ${PORT}`);
102
- console.error(`SSE endpoint: http://localhost:${PORT}/sse`);
103
- });
104
- // Handle graceful shutdown
105
- process.on("SIGINT", () => {
106
- console.error("Shutting down Airweave MCP HTTP server...");
107
- process.exit(0);
108
- });
109
- process.on("SIGTERM", () => {
110
- console.error("Shutting down Airweave MCP HTTP server...");
111
- process.exit(0);
217
+ const collection = process.env.AIRWEAVE_COLLECTION || 'default';
218
+ const baseUrl = process.env.AIRWEAVE_BASE_URL || 'https://api.airweave.ai';
219
+ console.log(`šŸš€ Airweave MCP Search Server (Streamable HTTP) started`);
220
+ console.log(`šŸ“” Protocol: MCP 2025-03-26`);
221
+ console.log(`šŸ”— Endpoint: http://localhost:${PORT}/mcp`);
222
+ console.log(`šŸ„ Health: http://localhost:${PORT}/health`);
223
+ console.log(`šŸ“‹ Info: http://localhost:${PORT}/`);
224
+ console.log(`šŸ“š Collection: ${collection}`);
225
+ console.log(`🌐 Base URL: ${baseUrl}`);
226
+ console.log(`\nšŸ”‘ Authentication required: Provide your Airweave API key via:`);
227
+ console.log(` - Authorization: Bearer <your-api-key>`);
228
+ console.log(` - X-API-Key: <your-api-key>`);
229
+ console.log(` - Query parameter: ?apiKey=your-key`);
112
230
  });
113
231
  //# sourceMappingURL=index-http.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-http.js","sourceRoot":"","sources":["../src/index-http.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index-http.js","sourceRoot":"","sources":["../src/index-http.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "airweave-mcp-search",
3
- "version": "0.6.49",
3
+ "version": "0.6.51",
4
4
  "description": "MCP server for searching Airweave collections",
5
5
  "type": "module",
6
6
  "main": "build/index.js",
@@ -16,9 +16,9 @@
16
16
  "test": "vitest run",
17
17
  "test:watch": "vitest",
18
18
  "test:coverage": "vitest run --coverage",
19
- "test:integration": "vitest run tests/integration-live.test.ts --reporter=verbose",
20
- "test:llm": "node tests/run-llm-tests.js",
21
- "test:ci": "npm run test && npm run test:integration && npm run test:llm",
19
+ "test:mcp": "vitest run tests/mcp-server.test.ts",
20
+ "test:http": "vitest run tests/http-transport.test.ts",
21
+ "test:all": "npm run test:mcp && npm run test:http",
22
22
  "prepublishOnly": "npm run build"
23
23
  },
24
24
  "keywords": [
@@ -46,7 +46,7 @@
46
46
  "node": ">=18.0.0"
47
47
  },
48
48
  "dependencies": {
49
- "@airweave/sdk": "^0.5.4",
49
+ "@airweave/sdk": "^0.6.0",
50
50
  "@modelcontextprotocol/sdk": "^1.12.0",
51
51
  "express": "^4.18.2",
52
52
  "zod": "^3.23.8"
@@ -54,7 +54,9 @@
54
54
  "devDependencies": {
55
55
  "@types/express": "^4.17.21",
56
56
  "@types/node": "^22.10.7",
57
+ "@types/supertest": "^6.0.2",
57
58
  "@vitest/coverage-v8": "^2.0.0",
59
+ "supertest": "^7.0.0",
58
60
  "typescript": "^5.7.3",
59
61
  "vitest": "^2.0.0"
60
62
  },