@stabgan/openrouter-mcp-multimodal 1.4.0 → 1.8.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.
Files changed (42) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +164 -147
  3. package/dist/__tests__/image-utils.test.d.ts +1 -0
  4. package/dist/__tests__/image-utils.test.js +75 -0
  5. package/dist/__tests__/integration.test.d.ts +1 -0
  6. package/dist/__tests__/integration.test.js +111 -0
  7. package/dist/__tests__/model-cache.test.d.ts +1 -0
  8. package/dist/__tests__/model-cache.test.js +96 -0
  9. package/dist/index.js +47 -46
  10. package/dist/model-cache.d.ts +18 -46
  11. package/dist/model-cache.js +28 -125
  12. package/dist/openrouter-api.d.ts +2 -22
  13. package/dist/openrouter-api.js +34 -111
  14. package/dist/tool-handlers/analyze-image.d.ts +2 -17
  15. package/dist/tool-handlers/analyze-image.js +18 -259
  16. package/dist/tool-handlers/chat-completion.d.ts +1 -0
  17. package/dist/tool-handlers/chat-completion.js +10 -143
  18. package/dist/tool-handlers/generate-image.d.ts +30 -0
  19. package/dist/tool-handlers/generate-image.js +82 -0
  20. package/dist/tool-handlers/get-model-info.d.ts +5 -5
  21. package/dist/tool-handlers/get-model-info.js +11 -41
  22. package/dist/tool-handlers/image-utils.d.ts +11 -0
  23. package/dist/tool-handlers/image-utils.js +253 -0
  24. package/dist/tool-handlers/search-models.d.ts +3 -10
  25. package/dist/tool-handlers/search-models.js +6 -37
  26. package/dist/tool-handlers/validate-model.d.ts +5 -5
  27. package/dist/tool-handlers/validate-model.js +13 -37
  28. package/dist/tool-handlers.d.ts +1 -2
  29. package/dist/tool-handlers.js +55 -234
  30. package/package.json +20 -21
  31. package/dist/index.js.map +0 -1
  32. package/dist/model-cache.js.map +0 -1
  33. package/dist/openrouter-api.js.map +0 -1
  34. package/dist/tool-handlers/analyze-image.js.map +0 -1
  35. package/dist/tool-handlers/chat-completion.js.map +0 -1
  36. package/dist/tool-handlers/get-model-info.js.map +0 -1
  37. package/dist/tool-handlers/multi-image-analysis.d.ts +0 -46
  38. package/dist/tool-handlers/multi-image-analysis.js +0 -405
  39. package/dist/tool-handlers/multi-image-analysis.js.map +0 -1
  40. package/dist/tool-handlers/search-models.js.map +0 -1
  41. package/dist/tool-handlers/validate-model.js.map +0 -1
  42. package/dist/tool-handlers.js.map +0 -1
@@ -1,405 +0,0 @@
1
- import fetch from 'node-fetch';
2
- // Remove the sharp import to avoid conflicts with our dynamic import
3
- // import sharp from 'sharp';
4
- import { McpError, ErrorCode } from '@modelcontextprotocol/sdk/types.js';
5
- import path from 'path';
6
- import { promises as fs } from 'fs';
7
- import { tmpdir } from 'os';
8
- // Remove uuid import as we'll use a simple random string generator instead
9
- // import { v4 as uuidv4 } from 'uuid';
10
- // Setup sharp with fallback
11
- let sharp;
12
- try {
13
- sharp = require('sharp');
14
- }
15
- catch (e) {
16
- console.error('Warning: sharp module not available, using fallback image processing');
17
- // Mock implementation that just passes through the base64 data
18
- sharp = (buffer) => ({
19
- metadata: async () => ({ width: 800, height: 600 }),
20
- resize: () => ({
21
- jpeg: () => ({
22
- toBuffer: async () => buffer
23
- })
24
- }),
25
- jpeg: () => ({
26
- toBuffer: async () => buffer
27
- })
28
- });
29
- }
30
- // Default model for image analysis
31
- const DEFAULT_FREE_MODEL = 'qwen/qwen2.5-vl-32b-instruct:free';
32
- // Image processing constants
33
- const MAX_DIMENSION = 800;
34
- const JPEG_QUALITY = 80;
35
- const MAX_RETRY_ATTEMPTS = 3;
36
- const RETRY_DELAY = 1000; // ms
37
- // Simple random ID generator to replace uuid
38
- function generateRandomId() {
39
- return Math.random().toString(36).substring(2, 15) +
40
- Math.random().toString(36).substring(2, 15);
41
- }
42
- /**
43
- * Sleep function for retry mechanisms
44
- */
45
- const sleep = (ms) => new Promise(resolve => setTimeout(resolve, ms));
46
- /**
47
- * Get MIME type from file extension or data URL
48
- */
49
- function getMimeType(url) {
50
- if (url.startsWith('data:')) {
51
- const match = url.match(/^data:([^;]+);/);
52
- return match ? match[1] : 'application/octet-stream';
53
- }
54
- const extension = path.extname(url.split('?')[0]).toLowerCase();
55
- switch (extension) {
56
- case '.png': return 'image/png';
57
- case '.jpg':
58
- case '.jpeg': return 'image/jpeg';
59
- case '.webp': return 'image/webp';
60
- case '.gif': return 'image/gif';
61
- case '.bmp': return 'image/bmp';
62
- case '.svg': return 'image/svg+xml';
63
- default: return 'application/octet-stream';
64
- }
65
- }
66
- /**
67
- * Fetch image from various sources: data URLs, file paths, or remote URLs
68
- */
69
- async function fetchImageAsBuffer(url) {
70
- try {
71
- // Handle data URLs
72
- if (url.startsWith('data:')) {
73
- const matches = url.match(/^data:([A-Za-z-+\/]+);base64,(.+)$/);
74
- if (!matches || matches.length !== 3) {
75
- throw new Error('Invalid data URL format');
76
- }
77
- return Buffer.from(matches[2], 'base64');
78
- }
79
- // Handle file URLs with file:// protocol
80
- if (url.startsWith('file://')) {
81
- const filePath = url.replace('file://', '');
82
- try {
83
- return await fs.readFile(filePath);
84
- }
85
- catch (error) {
86
- console.error(`Error reading file at ${filePath}:`, error);
87
- throw new Error(`Failed to read file: ${filePath}`);
88
- }
89
- }
90
- // Handle absolute and relative file paths
91
- if (url.startsWith('/') || url.startsWith('./') || url.startsWith('../') || /^[A-Za-z]:\\/.test(url)) {
92
- try {
93
- return await fs.readFile(url);
94
- }
95
- catch (error) {
96
- console.error(`Error reading file at ${url}:`, error);
97
- throw new Error(`Failed to read file: ${url}`);
98
- }
99
- }
100
- // Handle http/https URLs
101
- if (url.startsWith('http://') || url.startsWith('https://')) {
102
- for (let attempt = 0; attempt < MAX_RETRY_ATTEMPTS; attempt++) {
103
- try {
104
- // Use AbortController for timeout instead of timeout option
105
- const controller = new AbortController();
106
- const timeoutId = setTimeout(() => controller.abort(), 15000);
107
- const response = await fetch(url, {
108
- signal: controller.signal,
109
- headers: {
110
- 'User-Agent': 'OpenRouter-MCP-Server/1.0'
111
- }
112
- });
113
- // Clear the timeout to prevent memory leaks
114
- clearTimeout(timeoutId);
115
- if (!response.ok) {
116
- throw new Error(`HTTP error! status: ${response.status}`);
117
- }
118
- return Buffer.from(await response.arrayBuffer());
119
- }
120
- catch (error) {
121
- console.error(`Error fetching URL (attempt ${attempt + 1}/${MAX_RETRY_ATTEMPTS}): ${url}`, error);
122
- if (attempt < MAX_RETRY_ATTEMPTS - 1) {
123
- // Exponential backoff with jitter
124
- const delay = RETRY_DELAY * Math.pow(2, attempt) * (0.5 + Math.random() * 0.5);
125
- await sleep(delay);
126
- }
127
- else {
128
- throw error;
129
- }
130
- }
131
- }
132
- }
133
- // If we get here, the URL format is unsupported
134
- throw new Error(`Unsupported URL format: ${url}`);
135
- }
136
- catch (error) {
137
- console.error(`Error fetching image from ${url}:`, error);
138
- throw error;
139
- }
140
- // TypeScript requires a return statement here, but this is unreachable
141
- return Buffer.from([]);
142
- }
143
- /**
144
- * Process and optimize image for API consumption
145
- */
146
- async function processImage(buffer, mimeType) {
147
- try {
148
- if (typeof sharp !== 'function') {
149
- console.warn('Using fallback image processing (sharp not available)');
150
- return processImageFallback(buffer, mimeType);
151
- }
152
- // Create a temporary directory for processing if needed
153
- const tempDir = path.join(tmpdir(), `openrouter-mcp-${generateRandomId()}`);
154
- await fs.mkdir(tempDir, { recursive: true });
155
- // Get image info
156
- let sharpInstance = sharp(buffer);
157
- let metadata;
158
- try {
159
- metadata = await sharpInstance.metadata();
160
- }
161
- catch (error) {
162
- console.warn('Error getting image metadata, using fallback:', error);
163
- return processImageFallback(buffer, mimeType);
164
- }
165
- // Skip processing for small images
166
- if (metadata.width && metadata.height &&
167
- metadata.width <= MAX_DIMENSION &&
168
- metadata.height <= MAX_DIMENSION &&
169
- (mimeType === 'image/jpeg' || mimeType === 'image/webp')) {
170
- return buffer.toString('base64');
171
- }
172
- // Resize larger images
173
- if (metadata.width && metadata.height) {
174
- const largerDimension = Math.max(metadata.width, metadata.height);
175
- if (largerDimension > MAX_DIMENSION) {
176
- const resizeOptions = metadata.width > metadata.height
177
- ? { width: MAX_DIMENSION }
178
- : { height: MAX_DIMENSION };
179
- sharpInstance = sharpInstance.resize(resizeOptions);
180
- }
181
- }
182
- try {
183
- // Convert to JPEG for consistency and small size
184
- const processedBuffer = await sharpInstance
185
- .jpeg({ quality: JPEG_QUALITY })
186
- .toBuffer();
187
- return processedBuffer.toString('base64');
188
- }
189
- catch (error) {
190
- console.warn('Error in final image processing, using fallback:', error);
191
- return processImageFallback(buffer, mimeType);
192
- }
193
- }
194
- catch (error) {
195
- console.error('Error processing image, using fallback:', error);
196
- return processImageFallback(buffer, mimeType);
197
- }
198
- }
199
- /**
200
- * Find a suitable free model with vision capabilities, defaulting to Qwen
201
- */
202
- export async function findSuitableFreeModel(openai) {
203
- try {
204
- // First try with an exact match for our preferred model
205
- const preferredModel = DEFAULT_FREE_MODEL;
206
- try {
207
- // Check if our preferred model is available
208
- const modelInfo = await openai.models.retrieve(preferredModel);
209
- if (modelInfo && modelInfo.id) {
210
- console.error(`Using preferred model: ${preferredModel}`);
211
- return preferredModel;
212
- }
213
- }
214
- catch (error) {
215
- console.error(`Preferred model ${preferredModel} not available, searching for alternatives...`);
216
- }
217
- // Query available models
218
- const modelsResponse = await openai.models.list();
219
- if (!modelsResponse?.data || modelsResponse.data.length === 0) {
220
- console.error('No models found, using default fallback model');
221
- return DEFAULT_FREE_MODEL;
222
- }
223
- // First, try to find free vision models
224
- const freeVisionModels = modelsResponse.data
225
- .filter(model => {
226
- const modelId = model.id.toLowerCase();
227
- return modelId.includes('free') &&
228
- (modelId.includes('vl') || modelId.includes('vision') || modelId.includes('claude') ||
229
- modelId.includes('gemini') || modelId.includes('gpt-4') || modelId.includes('qwen'));
230
- })
231
- .map(model => {
232
- // Extract context length if available
233
- let contextLength = 0;
234
- try {
235
- const modelAny = model;
236
- if (typeof modelAny.context_length === 'number') {
237
- contextLength = modelAny.context_length;
238
- }
239
- else if (modelAny.context_window) {
240
- contextLength = parseInt(modelAny.context_window, 10);
241
- }
242
- }
243
- catch (e) {
244
- console.error(`Error parsing context length for model ${model.id}:`, e);
245
- }
246
- return {
247
- id: model.id,
248
- contextLength: contextLength || 0
249
- };
250
- });
251
- if (freeVisionModels.length > 0) {
252
- // Sort by context length and pick the one with the largest context window
253
- freeVisionModels.sort((a, b) => b.contextLength - a.contextLength);
254
- const selectedModel = freeVisionModels[0].id;
255
- console.error(`Selected free vision model: ${selectedModel} with context length: ${freeVisionModels[0].contextLength}`);
256
- return selectedModel;
257
- }
258
- // If no free vision models found, fallback to our default
259
- console.error('No free vision models found, using default fallback model');
260
- return DEFAULT_FREE_MODEL;
261
- }
262
- catch (error) {
263
- console.error('Error finding suitable model:', error);
264
- return DEFAULT_FREE_MODEL;
265
- }
266
- }
267
- /**
268
- * Main handler for multi-image analysis
269
- */
270
- export async function handleMultiImageAnalysis(request, openai, defaultModel) {
271
- const args = request.params.arguments;
272
- try {
273
- // Validate inputs
274
- if (!args.images || !Array.isArray(args.images) || args.images.length === 0) {
275
- throw new McpError(ErrorCode.InvalidParams, 'At least one image is required');
276
- }
277
- if (!args.prompt) {
278
- throw new McpError(ErrorCode.InvalidParams, 'A prompt for analyzing the images is required');
279
- }
280
- console.error(`Processing ${args.images.length} images`);
281
- // Process each image and convert to base64 if needed
282
- const processedImages = await Promise.all(args.images.map(async (image, index) => {
283
- try {
284
- // Skip processing if already a data URL
285
- if (image.url.startsWith('data:')) {
286
- console.error(`Image ${index + 1} is already in base64 format`);
287
- return image;
288
- }
289
- console.error(`Processing image ${index + 1}: ${image.url.substring(0, 100)}${image.url.length > 100 ? '...' : ''}`);
290
- // Get MIME type
291
- const mimeType = getMimeType(image.url);
292
- // Fetch and process the image
293
- const buffer = await fetchImageAsBuffer(image.url);
294
- const base64 = await processImage(buffer, mimeType);
295
- return {
296
- url: `data:${mimeType === 'application/octet-stream' ? 'image/jpeg' : mimeType};base64,${base64}`,
297
- alt: image.alt
298
- };
299
- }
300
- catch (error) {
301
- console.error(`Error processing image ${index + 1}:`, error);
302
- throw new Error(`Failed to process image ${index + 1}: ${image.url}. Error: ${error.message}`);
303
- }
304
- }));
305
- // Select model with priority:
306
- // 1. User-specified model
307
- // 2. Default model from environment
308
- // 3. Default free vision model
309
- let model = args.model || defaultModel || DEFAULT_FREE_MODEL;
310
- // If a model is specified but not our default free model, verify it exists
311
- if (model !== DEFAULT_FREE_MODEL) {
312
- try {
313
- await openai.models.retrieve(model);
314
- }
315
- catch (error) {
316
- console.error(`Specified model ${model} not found, falling back to auto-selection`);
317
- model = await findSuitableFreeModel(openai);
318
- }
319
- }
320
- console.error(`Making API call with model: ${model}`);
321
- // Build content array for the API call
322
- const content = [
323
- {
324
- type: 'text',
325
- text: args.prompt
326
- }
327
- ];
328
- // Add each processed image to the content array
329
- processedImages.forEach(image => {
330
- content.push({
331
- type: 'image_url',
332
- image_url: {
333
- url: image.url
334
- }
335
- });
336
- });
337
- // Make the API call
338
- const completion = await openai.chat.completions.create({
339
- model,
340
- messages: [{
341
- role: 'user',
342
- content
343
- }]
344
- });
345
- // Get response text and format if requested
346
- let responseText = completion.choices[0].message.content || '';
347
- // Format as markdown if requested
348
- if (args.markdown_response) {
349
- // Simple formatting enhancements
350
- responseText = responseText
351
- // Add horizontal rule after sections
352
- .replace(/^(#{1,3}.*)/gm, '$1\n\n---')
353
- // Ensure proper spacing for lists
354
- .replace(/^(\s*[-*•]\s.+)$/gm, '\n$1')
355
- // Convert plain URLs to markdown links
356
- .replace(/(https?:\/\/[^\s]+)/g, '[$1]($1)');
357
- }
358
- // Return the analysis result
359
- return {
360
- content: [
361
- {
362
- type: 'text',
363
- text: responseText,
364
- },
365
- ],
366
- metadata: {
367
- model: completion.model,
368
- usage: completion.usage
369
- }
370
- };
371
- }
372
- catch (error) {
373
- console.error('Error in multi-image analysis:', error);
374
- if (error instanceof McpError) {
375
- throw error;
376
- }
377
- return {
378
- content: [
379
- {
380
- type: 'text',
381
- text: `Error analyzing images: ${error.message}`,
382
- },
383
- ],
384
- isError: true,
385
- metadata: {
386
- error_type: error.constructor.name,
387
- error_message: error.message
388
- }
389
- };
390
- }
391
- }
392
- /**
393
- * Processes an image with minimal processing when sharp isn't available
394
- */
395
- async function processImageFallback(buffer, mimeType) {
396
- try {
397
- // Just return the buffer as base64 without processing
398
- return buffer.toString('base64');
399
- }
400
- catch (error) {
401
- console.error('Error in fallback image processing:', error);
402
- throw error;
403
- }
404
- }
405
- //# sourceMappingURL=multi-image-analysis.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"multi-image-analysis.js","sourceRoot":"","sources":["../../src/tool-handlers/multi-image-analysis.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"search-models.js","sourceRoot":"","sources":["../../src/tool-handlers/search-models.ts"],"names":[],"mappings":"AAmBA,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,OAA2D,EAC3D,SAA8B,EAC9B,UAAsB;IAEtB,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC;IAEtC,IAAI,CAAC;QACH,8BAA8B;QAC9B,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,EAAE,CAAC;YAC/B,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,SAAS,EAAE,CAAC;YAC3C,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC/B,CAAC;QAED,kCAAkC;QAClC,MAAM,OAAO,GAAG,UAAU,CAAC,YAAY,CAAC;YACtC,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;YAC3C,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE;SACxB,CAAC,CAAC;QAEH,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;iBACvC;aACF;SACF,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;YAC3B,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,2BAA2B,KAAK,CAAC,OAAO,EAAE;qBACjD;iBACF;gBACD,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"validate-model.js","sourceRoot":"","sources":["../../src/tool-handlers/validate-model.ts"],"names":[],"mappings":"AAMA,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,OAA4D,EAC5D,UAAsB;IAEtB,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC;IAEtC,IAAI,CAAC;QACH,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,EAAE,CAAC;YAC/B,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,yFAAyF;qBAChG;iBACF;gBACD,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;QAED,MAAM,OAAO,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEhD,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;iBACzC;aACF;SACF,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;YAC3B,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,2BAA2B,KAAK,CAAC,OAAO,EAAE;qBACjD;iBACF;gBACD,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"tool-handlers.js","sourceRoot":"","sources":["../src/tool-handlers.ts"],"names":[],"mappings":"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"}