mcp-hydrocoder-image 1.1.1 → 1.2.1

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 (52) hide show
  1. package/README.md +239 -80
  2. package/dist/api/geminiClient.d.ts +3 -30
  3. package/dist/api/geminiClient.d.ts.map +1 -1
  4. package/dist/api/geminiClient.js +13 -57
  5. package/dist/api/geminiClient.js.map +1 -1
  6. package/dist/api/geminiTextClient.js +1 -1
  7. package/dist/api/geminiTextClient.js.map +1 -1
  8. package/dist/api/imageProvider.d.ts +29 -0
  9. package/dist/api/imageProvider.d.ts.map +1 -0
  10. package/dist/api/imageProvider.js +5 -0
  11. package/dist/api/imageProvider.js.map +1 -0
  12. package/dist/api/volcengineClient.d.ts +13 -0
  13. package/dist/api/volcengineClient.d.ts.map +1 -0
  14. package/dist/api/volcengineClient.js +288 -0
  15. package/dist/api/volcengineClient.js.map +1 -0
  16. package/dist/business/inputValidator.d.ts.map +1 -1
  17. package/dist/business/inputValidator.js +69 -1
  18. package/dist/business/inputValidator.js.map +1 -1
  19. package/dist/business/multiImagePrompt.d.ts +13 -0
  20. package/dist/business/multiImagePrompt.d.ts.map +1 -0
  21. package/dist/business/multiImagePrompt.js +135 -0
  22. package/dist/business/multiImagePrompt.js.map +1 -0
  23. package/dist/business/providerResolver.d.ts +4 -0
  24. package/dist/business/providerResolver.d.ts.map +1 -0
  25. package/dist/business/providerResolver.js +45 -0
  26. package/dist/business/providerResolver.js.map +1 -0
  27. package/dist/business/responseBuilder.d.ts +3 -2
  28. package/dist/business/responseBuilder.d.ts.map +1 -1
  29. package/dist/business/responseBuilder.js +69 -48
  30. package/dist/business/responseBuilder.js.map +1 -1
  31. package/dist/index.d.ts +1 -1
  32. package/dist/index.d.ts.map +1 -1
  33. package/dist/server/errorHandler.d.ts.map +1 -1
  34. package/dist/server/errorHandler.js +3 -2
  35. package/dist/server/errorHandler.js.map +1 -1
  36. package/dist/server/mcpServer.d.ts +90 -29
  37. package/dist/server/mcpServer.d.ts.map +1 -1
  38. package/dist/server/mcpServer.js +430 -288
  39. package/dist/server/mcpServer.js.map +1 -1
  40. package/dist/types/mcp.d.ts +62 -15
  41. package/dist/types/mcp.d.ts.map +1 -1
  42. package/dist/types/mcp.js +15 -0
  43. package/dist/types/mcp.js.map +1 -1
  44. package/dist/utils/config.d.ts +6 -2
  45. package/dist/utils/config.d.ts.map +1 -1
  46. package/dist/utils/config.js +43 -13
  47. package/dist/utils/config.js.map +1 -1
  48. package/dist/utils/errors.d.ts +9 -0
  49. package/dist/utils/errors.d.ts.map +1 -1
  50. package/dist/utils/errors.js +50 -1
  51. package/dist/utils/errors.js.map +1 -1
  52. package/package.json +2 -1
@@ -0,0 +1,45 @@
1
+ const VOLCENGINE_PATTERNS = [
2
+ /\buse\s+volcengine\b/i,
3
+ /\bwith\s+volcengine\b/i,
4
+ /\bprovider\s*[:=]\s*["']?volcengine\b/i,
5
+ /\bseedream\b/i,
6
+ /用火山引擎/,
7
+ /使用火山引擎/,
8
+ /改用火山引擎/,
9
+ /用豆包/,
10
+ /使用豆包/,
11
+ /改用豆包/,
12
+ /火山模型/,
13
+ ];
14
+ const GEMINI_PATTERNS = [
15
+ /\buse\s+gemini\b/i,
16
+ /\bwith\s+gemini\b/i,
17
+ /\bprovider\s*[:=]\s*["']?gemini\b/i,
18
+ /\bgoogle gemini\b/i,
19
+ /\bnano banana\b/i,
20
+ /用gemini/i,
21
+ /使用gemini/i,
22
+ /改用gemini/i,
23
+ /用谷歌模型/,
24
+ /使用谷歌模型/,
25
+ ];
26
+ function matchesAnyPattern(prompt, patterns) {
27
+ return patterns.some((pattern) => pattern.test(prompt));
28
+ }
29
+ export function inferProviderFromPrompt(prompt) {
30
+ const normalizedPrompt = prompt.trim();
31
+ if (!normalizedPrompt) {
32
+ return undefined;
33
+ }
34
+ if (matchesAnyPattern(normalizedPrompt, VOLCENGINE_PATTERNS)) {
35
+ return 'volcengine';
36
+ }
37
+ if (matchesAnyPattern(normalizedPrompt, GEMINI_PATTERNS)) {
38
+ return 'gemini';
39
+ }
40
+ return undefined;
41
+ }
42
+ export function resolveRequestedProvider(explicitProvider, prompt, defaultProvider) {
43
+ return explicitProvider || inferProviderFromPrompt(prompt) || defaultProvider;
44
+ }
45
+ //# sourceMappingURL=providerResolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"providerResolver.js","sourceRoot":"","sources":["../../src/business/providerResolver.ts"],"names":[],"mappings":"AAEA,MAAM,mBAAmB,GAAG;IAC1B,uBAAuB;IACvB,wBAAwB;IACxB,wCAAwC;IACxC,eAAe;IACf,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;CACP,CAAA;AAED,MAAM,eAAe,GAAG;IACtB,mBAAmB;IACnB,oBAAoB;IACpB,oCAAoC;IACpC,oBAAoB;IACpB,kBAAkB;IAClB,UAAU;IACV,WAAW;IACX,WAAW;IACX,OAAO;IACP,QAAQ;CACT,CAAA;AAED,SAAS,iBAAiB,CAAC,MAAc,EAAE,QAAkB;IAC3D,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA;AACzD,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,MAAc;IACpD,MAAM,gBAAgB,GAAG,MAAM,CAAC,IAAI,EAAE,CAAA;IACtC,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,IAAI,iBAAiB,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,EAAE,CAAC;QAC7D,OAAO,YAAY,CAAA;IACrB,CAAC;IAED,IAAI,iBAAiB,CAAC,gBAAgB,EAAE,eAAe,CAAC,EAAE,CAAC;QACzD,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,gBAA2C,EAC3C,MAAc,EACd,eAA8B;IAE9B,OAAO,gBAAgB,IAAI,uBAAuB,CAAC,MAAM,CAAC,IAAI,eAAe,CAAA;AAC/E,CAAC"}
@@ -2,7 +2,7 @@
2
2
  * Response Builder for MCP structured content responses
3
3
  * Converts generation results and errors into MCP-compatible response format
4
4
  */
5
- import type { GeneratedImageResult } from '../api/geminiClient.js';
5
+ import type { GeneratedImageResult } from '../api/imageProvider.js';
6
6
  import type { McpToolResponse } from '../types/mcp.js';
7
7
  import { type BaseError } from '../utils/errors.js';
8
8
  /**
@@ -10,7 +10,8 @@ import { type BaseError } from '../utils/errors.js';
10
10
  */
11
11
  export interface ResponseBuilder {
12
12
  buildSuccessResponse(generationResult: GeneratedImageResult, filePath: string): McpToolResponse;
13
- buildBase64SuccessResponse(generationResult: GeneratedImageResult, filePath: string, base64Data: string): McpToolResponse;
13
+ buildMultiSuccessResponse(generationResult: GeneratedImageResult, filePaths: string[]): McpToolResponse;
14
+ buildBase64SuccessResponse(generationResult: GeneratedImageResult, filePaths: string[]): McpToolResponse;
14
15
  buildErrorResponse(error: BaseError | Error): McpToolResponse;
15
16
  }
16
17
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"responseBuilder.d.ts","sourceRoot":"","sources":["../../src/business/responseBuilder.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAClE,OAAO,KAAK,EAAE,eAAe,EAAqB,MAAM,iBAAiB,CAAA;AACzE,OAAO,EACL,KAAK,SAAS,EAOf,MAAM,oBAAoB,CAAA;AAmB3B;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,oBAAoB,CAAC,gBAAgB,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,GAAG,eAAe,CAAA;IAC/F,0BAA0B,CACxB,gBAAgB,EAAE,oBAAoB,EACtC,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,GACjB,eAAe,CAAA;IAClB,kBAAkB,CAAC,KAAK,EAAE,SAAS,GAAG,KAAK,GAAG,eAAe,CAAA;CAC9D;AA+DD;;;GAGG;AACH,wBAAgB,qBAAqB,IAAI,eAAe,CA0GvD"}
1
+ {"version":3,"file":"responseBuilder.d.ts","sourceRoot":"","sources":["../../src/business/responseBuilder.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AACnE,OAAO,KAAK,EAAE,eAAe,EAA4C,MAAM,iBAAiB,CAAA;AAChG,OAAO,EACL,KAAK,SAAS,EAQf,MAAM,oBAAoB,CAAA;AA6E3B;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,oBAAoB,CAAC,gBAAgB,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,GAAG,eAAe,CAAA;IAC/F,yBAAyB,CACvB,gBAAgB,EAAE,oBAAoB,EACtC,SAAS,EAAE,MAAM,EAAE,GAClB,eAAe,CAAA;IAClB,0BAA0B,CACxB,gBAAgB,EAAE,oBAAoB,EACtC,SAAS,EAAE,MAAM,EAAE,GAClB,eAAe,CAAA;IAClB,kBAAkB,CAAC,KAAK,EAAE,SAAS,GAAG,KAAK,GAAG,eAAe,CAAA;CAC9D;AAgED;;;GAGG;AACH,wBAAgB,qBAAqB,IAAI,eAAe,CAgFvD"}
@@ -3,7 +3,8 @@
3
3
  * Converts generation results and errors into MCP-compatible response format
4
4
  */
5
5
  import * as path from 'node:path';
6
- import { ConfigError, FileOperationError, GeminiAPIError, InputValidationError, NetworkError, SecurityError, } from '../utils/errors.js';
6
+ import { pathToFileURL } from 'node:url';
7
+ import { ConfigError, FileOperationError, GeminiAPIError, InputValidationError, NetworkError, SecurityError, VolcengineAPIError, } from '../utils/errors.js';
7
8
  // Constants for MIME types and error handling
8
9
  const MIME_TYPES = {
9
10
  PNG: 'image/png',
@@ -18,6 +19,53 @@ const FILE_EXTENSIONS = {
18
19
  const DEFAULT_MIME_TYPE = MIME_TYPES.PNG;
19
20
  const UNKNOWN_ERROR_CODE = 'UNKNOWN_ERROR';
20
21
  const DEFAULT_ERROR_SUGGESTION = 'Please try again or contact support if the problem persists';
22
+ function toFileUri(filePath) {
23
+ return pathToFileURL(path.resolve(filePath)).toString();
24
+ }
25
+ function createMetadata(generationResult, imageCount) {
26
+ return {
27
+ model: generationResult.metadata.model,
28
+ processingTime: 0,
29
+ contextMethod: 'structured_prompt',
30
+ timestamp: generationResult.metadata.timestamp.toISOString(),
31
+ imageCount,
32
+ };
33
+ }
34
+ function createFileDescriptor(filePath, index, total) {
35
+ const fileName = path.basename(filePath);
36
+ const ordinal = total > 1 ? ` ${index + 1}` : '';
37
+ return {
38
+ uri: toFileUri(filePath),
39
+ name: fileName,
40
+ title: fileName,
41
+ mimeType: getMimeTypeFromPath(filePath),
42
+ description: `Generated image${ordinal}`,
43
+ };
44
+ }
45
+ function toResourceLinkContent(file) {
46
+ return {
47
+ type: 'resource_link',
48
+ ...file,
49
+ };
50
+ }
51
+ function createStructuredContent(generationResult, filePaths, base64Included = false) {
52
+ return {
53
+ type: 'image_result',
54
+ files: filePaths.map((filePath, index) => createFileDescriptor(filePath, index, filePaths.length)),
55
+ ...(base64Included ? { base64Included: true } : {}),
56
+ metadata: createMetadata(generationResult, filePaths.length),
57
+ };
58
+ }
59
+ function getGeneratedVariants(generationResult) {
60
+ return generationResult.images?.length
61
+ ? generationResult.images
62
+ : [
63
+ {
64
+ imageData: generationResult.imageData,
65
+ mimeType: generationResult.metadata.mimeType,
66
+ },
67
+ ];
68
+ }
21
69
  /**
22
70
  * Determines MIME type based on file extension
23
71
  * @param filePath Path to the image file
@@ -48,6 +96,7 @@ function convertErrorToStructured(error) {
48
96
  if (error instanceof InputValidationError ||
49
97
  error instanceof FileOperationError ||
50
98
  error instanceof GeminiAPIError ||
99
+ error instanceof VolcengineAPIError ||
51
100
  error instanceof NetworkError ||
52
101
  error instanceof ConfigError ||
53
102
  error instanceof SecurityError) {
@@ -79,31 +128,18 @@ export function createResponseBuilder() {
79
128
  * @returns MCP tool response with structured content containing file path
80
129
  */
81
130
  buildSuccessResponse(generationResult, filePath) {
82
- // File-based implementation: Always return file path, never base64
83
- // This avoids MCP token limit issues (25,000 tokens max)
84
- const mimeType = getMimeTypeFromPath(filePath);
85
- const fileName = path.basename(filePath);
86
- const structuredContent = {
87
- type: 'resource',
88
- resource: {
89
- uri: `file://${filePath}`,
90
- name: fileName,
91
- mimeType,
92
- },
93
- metadata: {
94
- model: generationResult.metadata.model,
95
- processingTime: 0, // Not tracked in simplified version
96
- contextMethod: 'structured_prompt',
97
- timestamp: generationResult.metadata.timestamp.toISOString(),
98
- },
131
+ const structuredContent = createStructuredContent(generationResult, [filePath]);
132
+ return {
133
+ content: structuredContent.files.map((file) => toResourceLinkContent(file)),
134
+ structuredContent,
135
+ isError: false,
99
136
  };
137
+ },
138
+ buildMultiSuccessResponse(generationResult, filePaths) {
139
+ const structuredContent = createStructuredContent(generationResult, filePaths);
100
140
  return {
101
- content: [
102
- {
103
- type: 'text',
104
- text: JSON.stringify(structuredContent),
105
- },
106
- ],
141
+ content: structuredContent.files.map((file) => toResourceLinkContent(file)),
142
+ structuredContent,
107
143
  isError: false,
108
144
  };
109
145
  },
@@ -114,31 +150,16 @@ export function createResponseBuilder() {
114
150
  * @param base64Data Base64 encoded image data
115
151
  * @returns MCP tool response with both file URI and base64 data
116
152
  */
117
- buildBase64SuccessResponse(generationResult, filePath, base64Data) {
118
- const mimeType = getMimeTypeFromPath(filePath);
119
- const fileName = path.basename(filePath);
120
- const responseData = {
121
- type: 'resource',
122
- resource: {
123
- uri: `file://${filePath}`,
124
- name: fileName,
125
- mimeType,
126
- },
127
- base64Data,
128
- metadata: {
129
- model: generationResult.metadata.model,
130
- processingTime: 0,
131
- contextMethod: 'structured_prompt',
132
- timestamp: generationResult.metadata.timestamp.toISOString(),
133
- },
134
- };
153
+ buildBase64SuccessResponse(generationResult, filePaths) {
154
+ const structuredContent = createStructuredContent(generationResult, filePaths, true);
155
+ const imageContents = getGeneratedVariants(generationResult).map((variant) => ({
156
+ type: 'image',
157
+ data: variant.imageData.toString('base64'),
158
+ mimeType: variant.mimeType,
159
+ }));
135
160
  return {
136
- content: [
137
- {
138
- type: 'text',
139
- text: JSON.stringify(responseData),
140
- },
141
- ],
161
+ content: [...imageContents, ...structuredContent.files.map((file) => toResourceLinkContent(file))],
162
+ structuredContent,
142
163
  isError: false,
143
164
  };
144
165
  },
@@ -1 +1 @@
1
- {"version":3,"file":"responseBuilder.js","sourceRoot":"","sources":["../../src/business/responseBuilder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"responseBuilder.js","sourceRoot":"","sources":["../../src/business/responseBuilder.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -6,7 +6,7 @@
6
6
  * - skills install → bin/install-skills.js
7
7
  * - (default) → MCP server startup
8
8
  */
9
- export type { GeneratedImageResult } from './api/geminiClient.js';
9
+ export type { GeneratedImageResult } from './api/imageProvider.js';
10
10
  export { createMCPServer, MCPServerImpl } from './server/mcpServer.js';
11
11
  export type { GenerateImageParams, MCPServerConfig } from './types/mcp.js';
12
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;;GAMG;AAwBH,YAAY,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAA;AACjE,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AACtE,YAAY,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;;GAMG;AAwBH,YAAY,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAClE,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AACtE,YAAY,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"errorHandler.d.ts","sourceRoot":"","sources":["../../src/server/errorHandler.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACtD,OAAO,EAML,KAAK,MAAM,EACZ,MAAM,oBAAoB,CAAA;AAM3B;;;;GAIG;AACH,iBAAS,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,eAAe,CAqBlD;AAED;;;;;GAKG;AACH,iBAAe,kBAAkB,CAAC,CAAC,EACjC,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC3B,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAa3B;AA2DD;;;GAGG;AACH,eAAO,MAAM,YAAY;;;CAGf,CAAA"}
1
+ {"version":3,"file":"errorHandler.d.ts","sourceRoot":"","sources":["../../src/server/errorHandler.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACtD,OAAO,EAOL,KAAK,MAAM,EACZ,MAAM,oBAAoB,CAAA;AAM3B;;;;GAIG;AACH,iBAAS,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,eAAe,CAqBlD;AAED;;;;;GAKG;AACH,iBAAe,kBAAkB,CAAC,CAAC,EACjC,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC3B,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAa3B;AA4DD;;;GAGG;AACH,eAAO,MAAM,YAAY;;;CAGf,CAAA"}
@@ -2,7 +2,7 @@
2
2
  * Error Handler utility for unified error processing
3
3
  * Provides centralized error handling and Result type wrapping
4
4
  */
5
- import { ConfigError, FileOperationError, GeminiAPIError, InputValidationError, NetworkError, } from '../utils/errors.js';
5
+ import { ConfigError, FileOperationError, GeminiAPIError, InputValidationError, NetworkError, VolcengineAPIError, } from '../utils/errors.js';
6
6
  import { Logger } from '../utils/logger.js';
7
7
  // Create logger instance for error handling
8
8
  const logger = new Logger();
@@ -62,6 +62,7 @@ function convertErrorToStructured(error) {
62
62
  if (error instanceof InputValidationError ||
63
63
  error instanceof FileOperationError ||
64
64
  error instanceof GeminiAPIError ||
65
+ error instanceof VolcengineAPIError ||
65
66
  error instanceof NetworkError ||
66
67
  error instanceof ConfigError) {
67
68
  const errorResponse = {
@@ -71,7 +72,7 @@ function convertErrorToStructured(error) {
71
72
  suggestion: error.suggestion,
72
73
  };
73
74
  // Include context details for GeminiAPIError to provide better debugging info
74
- if (error instanceof GeminiAPIError && error.context) {
75
+ if ((error instanceof GeminiAPIError || error instanceof VolcengineAPIError) && error.context) {
75
76
  // Add non-sensitive context information
76
77
  const { suggestion, ...otherContext } = error.context;
77
78
  if (Object.keys(otherContext).length > 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"errorHandler.js","sourceRoot":"","sources":["../../src/server/errorHandler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"errorHandler.js","sourceRoot":"","sources":["../../src/server/errorHandler.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,9 @@
1
1
  /**
2
2
  * MCP Server implementation
3
- * Simplified architecture with direct Gemini integration
3
+ * Supports multiple image providers with Gemini prompt enhancement when applicable
4
4
  */
5
5
  import { Server } from '@modelcontextprotocol/sdk/server/index.js';
6
6
  import type { MCPServerConfig } from '../types/mcp.js';
7
- /**
8
- * Simplified MCP server
9
- */
10
7
  export declare class MCPServerImpl {
11
8
  private config;
12
9
  private server;
@@ -17,17 +14,12 @@ export declare class MCPServerImpl {
17
14
  private structuredPromptGenerator;
18
15
  private geminiTextClient;
19
16
  private geminiClient;
17
+ private volcengineClient;
20
18
  constructor(config?: Partial<MCPServerConfig>);
21
- /**
22
- * Get server info
23
- */
24
19
  getServerInfo(): {
25
20
  name: string;
26
21
  version: string;
27
22
  };
28
- /**
29
- * Get list of registered tools
30
- */
31
23
  getToolsList(): {
32
24
  tools: {
33
25
  name: string;
@@ -39,6 +31,11 @@ export declare class MCPServerImpl {
39
31
  type: "string";
40
32
  description: string;
41
33
  };
34
+ provider: {
35
+ type: "string";
36
+ description: string;
37
+ enum: string[];
38
+ };
42
39
  fileName: {
43
40
  type: "string";
44
41
  description: string;
@@ -122,6 +119,22 @@ export declare class MCPServerImpl {
122
119
  description: string;
123
120
  enum: string[];
124
121
  };
122
+ outputFormat: {
123
+ type: "string";
124
+ description: string;
125
+ enum: string[];
126
+ };
127
+ outputCount: {
128
+ type: "integer";
129
+ description: string;
130
+ };
131
+ imageRequests: {
132
+ type: "array";
133
+ description: string;
134
+ items: {
135
+ type: "string";
136
+ };
137
+ };
125
138
  skipPromptEnhancement: {
126
139
  type: "boolean";
127
140
  description: string;
@@ -129,31 +142,79 @@ export declare class MCPServerImpl {
129
142
  };
130
143
  required: string[];
131
144
  };
145
+ outputSchema: {
146
+ type: "object";
147
+ properties: {
148
+ type: {
149
+ type: "string";
150
+ const: string;
151
+ };
152
+ files: {
153
+ type: "array";
154
+ items: {
155
+ type: "object";
156
+ properties: {
157
+ uri: {
158
+ type: "string";
159
+ };
160
+ name: {
161
+ type: "string";
162
+ };
163
+ title: {
164
+ type: "string";
165
+ };
166
+ mimeType: {
167
+ type: "string";
168
+ };
169
+ description: {
170
+ type: "string";
171
+ };
172
+ };
173
+ required: string[];
174
+ };
175
+ };
176
+ base64Included: {
177
+ type: "boolean";
178
+ };
179
+ metadata: {
180
+ type: "object";
181
+ properties: {
182
+ model: {
183
+ type: "string";
184
+ };
185
+ processingTime: {
186
+ type: "number";
187
+ };
188
+ contextMethod: {
189
+ type: "string";
190
+ };
191
+ timestamp: {
192
+ type: "string";
193
+ };
194
+ imageCount: {
195
+ type: "integer";
196
+ };
197
+ };
198
+ required: string[];
199
+ };
200
+ };
201
+ required: string[];
202
+ };
132
203
  }[];
133
204
  };
134
- /**
135
- * Tool execution
136
- */
137
205
  callTool(name: string, args: unknown): Promise<import("../types/mcp.js").McpToolResponse>;
138
- /**
139
- * Initialize Gemini clients lazily
140
- */
141
- private initializeClients;
142
- /**
143
- * Simplified image generation handler
144
- */
206
+ private initializeGeminiSupport;
207
+ private initializeVolcengineSupport;
208
+ private getProviderClient;
209
+ private prepareInputImages;
210
+ private maybeEnhancePrompt;
211
+ private buildSuccessResponse;
212
+ private getGeneratedVariants;
213
+ private generateAndSave;
214
+ private handleGenerateMultiImage;
145
215
  private handleGenerateImage;
146
- /**
147
- * Initialize MCP server with tool handlers
148
- */
149
216
  initialize(): Server;
150
- /**
151
- * Setup MCP protocol handlers
152
- */
153
217
  private setupHandlers;
154
218
  }
155
- /**
156
- * Factory function to create MCP server
157
- */
158
219
  export declare function createMCPServer(config?: Partial<MCPServerConfig>): MCPServerImpl;
159
220
  //# sourceMappingURL=mcpServer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mcpServer.d.ts","sourceRoot":"","sources":["../../src/server/mcpServer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAA;AAoBlE,OAAO,KAAK,EAAuB,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAiB3E;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,eAAe,CAAiB;IACxC,OAAO,CAAC,eAAe,CAAiB;IACxC,OAAO,CAAC,yBAAyB,CAAyC;IAC1E,OAAO,CAAC,gBAAgB,CAAgC;IACxD,OAAO,CAAC,YAAY,CAA4B;gBAEpC,MAAM,GAAE,OAAO,CAAC,eAAe,CAAM;IAQjD;;OAEG;IACI,aAAa;;;;IAOpB;;OAEG;IACI,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAwJnB;;OAEG;IACU,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO;IAYjD;;OAEG;YACW,iBAAiB;IAkC/B;;OAEG;YACW,mBAAmB;IA2KjC;;OAEG;IACI,UAAU,IAAI,MAAM;IAmB3B;;OAEG;IACH,OAAO,CAAC,aAAa;CA0BtB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,GAAE,OAAO,CAAC,eAAe,CAAM,iBAEpE"}
1
+ {"version":3,"file":"mcpServer.d.ts","sourceRoot":"","sources":["../../src/server/mcpServer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAA;AA0BlE,OAAO,KAAK,EAAsC,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAsM1F,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,eAAe,CAAiB;IACxC,OAAO,CAAC,eAAe,CAAiB;IACxC,OAAO,CAAC,yBAAyB,CAAyC;IAC1E,OAAO,CAAC,gBAAgB,CAAgC;IACxD,OAAO,CAAC,YAAY,CAA4B;IAChD,OAAO,CAAC,gBAAgB,CAAgC;gBAE5C,MAAM,GAAE,OAAO,CAAC,eAAe,CAAM;IAQ1C,aAAa;;;;IAOb,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAqBN,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO;YAenC,uBAAuB;YA6BvB,2BAA2B;IAgBzC,OAAO,CAAC,iBAAiB;YAcX,kBAAkB;YA8ClB,kBAAkB;IAyDhC,OAAO,CAAC,oBAAoB;IAa5B,OAAO,CAAC,oBAAoB;YAMd,eAAe;YA+Ff,wBAAwB;YA4ExB,mBAAmB;IAiB1B,UAAU,IAAI,MAAM;IAkB3B,OAAO,CAAC,aAAa;CAwBtB;AAED,wBAAgB,eAAe,CAAC,MAAM,GAAE,OAAO,CAAC,eAAe,CAAM,iBAEpE"}