@felores/kie-ai-mcp-server 1.1.2 → 1.1.3
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/README.md +7 -7
- package/dist/index.js +26 -26
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -87,7 +87,7 @@ Or if installed globally:
|
|
|
87
87
|
|
|
88
88
|
## Available Tools
|
|
89
89
|
|
|
90
|
-
### 1. `
|
|
90
|
+
### 1. `nano_banana_generate`
|
|
91
91
|
Generate images using Nano Banana.
|
|
92
92
|
|
|
93
93
|
**Parameters:**
|
|
@@ -104,7 +104,7 @@ Generate images using Nano Banana.
|
|
|
104
104
|
}
|
|
105
105
|
```
|
|
106
106
|
|
|
107
|
-
### 2. `
|
|
107
|
+
### 2. `nano_banana_edit`
|
|
108
108
|
Edit images using natural language prompts.
|
|
109
109
|
|
|
110
110
|
**Parameters:**
|
|
@@ -123,7 +123,7 @@ Edit images using natural language prompts.
|
|
|
123
123
|
}
|
|
124
124
|
```
|
|
125
125
|
|
|
126
|
-
### 3. `
|
|
126
|
+
### 3. `nano_banana_upscale`
|
|
127
127
|
Upscale images with optional face enhancement.
|
|
128
128
|
|
|
129
129
|
**Parameters:**
|
|
@@ -140,7 +140,7 @@ Upscale images with optional face enhancement.
|
|
|
140
140
|
}
|
|
141
141
|
```
|
|
142
142
|
|
|
143
|
-
### 4. `
|
|
143
|
+
### 4. `veo3_generate_video`
|
|
144
144
|
Generate videos using Veo3.
|
|
145
145
|
|
|
146
146
|
**Parameters:**
|
|
@@ -178,7 +178,7 @@ List recent tasks with their status.
|
|
|
178
178
|
- `limit` (integer, optional): Max tasks to return (default: 20, max: 100)
|
|
179
179
|
- `status` (string, optional): Filter by status ("pending", "processing", "completed", "failed")
|
|
180
180
|
|
|
181
|
-
### 7. `
|
|
181
|
+
### 7. `veo3_get_1080p_video`
|
|
182
182
|
Get 1080P high-definition version of a Veo3 video.
|
|
183
183
|
|
|
184
184
|
**Parameters:**
|
|
@@ -226,7 +226,7 @@ CREATE TABLE tasks (
|
|
|
226
226
|
curl -X POST http://localhost:3000/tools/call \
|
|
227
227
|
-H "Content-Type: application/json" \
|
|
228
228
|
-d '{
|
|
229
|
-
"name": "
|
|
229
|
+
"name": "nano_banana_generate",
|
|
230
230
|
"arguments": {
|
|
231
231
|
"prompt": "A cat wearing a space helmet"
|
|
232
232
|
}
|
|
@@ -239,7 +239,7 @@ curl -X POST http://localhost:3000/tools/call \
|
|
|
239
239
|
curl -X POST http://localhost:3000/tools/call \
|
|
240
240
|
-H "Content-Type: application/json" \
|
|
241
241
|
-d '{
|
|
242
|
-
"name": "
|
|
242
|
+
"name": "veo3_generate_video",
|
|
243
243
|
"arguments": {
|
|
244
244
|
"prompt": "A peaceful garden with blooming flowers",
|
|
245
245
|
"aspectRatio": "16:9",
|
package/dist/index.js
CHANGED
|
@@ -12,7 +12,7 @@ class KieAiMcpServer {
|
|
|
12
12
|
constructor() {
|
|
13
13
|
this.server = new Server({
|
|
14
14
|
name: 'kie-ai-mcp-server',
|
|
15
|
-
version: '1.1.
|
|
15
|
+
version: '1.1.3',
|
|
16
16
|
});
|
|
17
17
|
// Initialize client with config from environment
|
|
18
18
|
const config = {
|
|
@@ -66,7 +66,7 @@ class KieAiMcpServer {
|
|
|
66
66
|
return {
|
|
67
67
|
tools: [
|
|
68
68
|
{
|
|
69
|
-
name: '
|
|
69
|
+
name: 'nano_banana_generate',
|
|
70
70
|
description: 'Generate images using Google\'s Gemini 2.5 Flash Image Preview (Nano Banana)',
|
|
71
71
|
inputSchema: {
|
|
72
72
|
type: 'object',
|
|
@@ -94,7 +94,7 @@ class KieAiMcpServer {
|
|
|
94
94
|
}
|
|
95
95
|
},
|
|
96
96
|
{
|
|
97
|
-
name: '
|
|
97
|
+
name: 'nano_banana_edit',
|
|
98
98
|
description: 'Edit images using natural language prompts with Nano Banana Edit',
|
|
99
99
|
inputSchema: {
|
|
100
100
|
type: 'object',
|
|
@@ -129,7 +129,7 @@ class KieAiMcpServer {
|
|
|
129
129
|
}
|
|
130
130
|
},
|
|
131
131
|
{
|
|
132
|
-
name: '
|
|
132
|
+
name: 'nano_banana_upscale',
|
|
133
133
|
description: 'Upscale images using Nano Banana Upscale with optional face enhancement',
|
|
134
134
|
inputSchema: {
|
|
135
135
|
type: 'object',
|
|
@@ -156,7 +156,7 @@ class KieAiMcpServer {
|
|
|
156
156
|
}
|
|
157
157
|
},
|
|
158
158
|
{
|
|
159
|
-
name: '
|
|
159
|
+
name: 'veo3_generate_video',
|
|
160
160
|
description: 'Generate professional-quality videos using Google\'s Veo3 API',
|
|
161
161
|
inputSchema: {
|
|
162
162
|
type: 'object',
|
|
@@ -250,7 +250,7 @@ class KieAiMcpServer {
|
|
|
250
250
|
}
|
|
251
251
|
},
|
|
252
252
|
{
|
|
253
|
-
name: '
|
|
253
|
+
name: 'veo3_get_1080p_video',
|
|
254
254
|
description: 'Get 1080P high-definition version of a Veo3 video (not available for fallback mode videos)',
|
|
255
255
|
inputSchema: {
|
|
256
256
|
type: 'object',
|
|
@@ -275,20 +275,20 @@ class KieAiMcpServer {
|
|
|
275
275
|
try {
|
|
276
276
|
const { name, arguments: args } = request.params;
|
|
277
277
|
switch (name) {
|
|
278
|
-
case '
|
|
279
|
-
return await this.
|
|
280
|
-
case '
|
|
281
|
-
return await this.
|
|
282
|
-
case '
|
|
283
|
-
return await this.
|
|
284
|
-
case '
|
|
285
|
-
return await this.
|
|
278
|
+
case 'nano_banana_generate':
|
|
279
|
+
return await this.handleNanoBananaGenerate(args);
|
|
280
|
+
case 'nano_banana_edit':
|
|
281
|
+
return await this.handleNanoBananaEdit(args);
|
|
282
|
+
case 'nano_banana_upscale':
|
|
283
|
+
return await this.handleNanoBananaUpscale(args);
|
|
284
|
+
case 'veo3_generate_video':
|
|
285
|
+
return await this.handleVeo3GenerateVideo(args);
|
|
286
286
|
case 'get_task_status':
|
|
287
287
|
return await this.handleGetTaskStatus(args);
|
|
288
288
|
case 'list_tasks':
|
|
289
289
|
return await this.handleListTasks(args);
|
|
290
|
-
case '
|
|
291
|
-
return await this.
|
|
290
|
+
case 'veo3_get_1080p_video':
|
|
291
|
+
return await this.handleVeo3Get1080pVideo(args);
|
|
292
292
|
default:
|
|
293
293
|
throw new McpError(ErrorCode.MethodNotFound, `Unknown tool: ${name}`);
|
|
294
294
|
}
|
|
@@ -302,7 +302,7 @@ class KieAiMcpServer {
|
|
|
302
302
|
}
|
|
303
303
|
});
|
|
304
304
|
}
|
|
305
|
-
async
|
|
305
|
+
async handleNanoBananaGenerate(args) {
|
|
306
306
|
try {
|
|
307
307
|
const request = NanoBananaGenerateSchema.parse(args);
|
|
308
308
|
const response = await this.client.generateNanoBanana(request);
|
|
@@ -328,14 +328,14 @@ class KieAiMcpServer {
|
|
|
328
328
|
};
|
|
329
329
|
}
|
|
330
330
|
catch (error) {
|
|
331
|
-
return this.formatError('
|
|
331
|
+
return this.formatError('nano_banana_generate', error, {
|
|
332
332
|
prompt: 'Required: text description of image to generate (max 5000 chars)',
|
|
333
333
|
output_format: 'Optional: "png" or "jpeg"',
|
|
334
334
|
image_size: 'Optional: aspect ratio like "16:9", "1:1", etc.'
|
|
335
335
|
});
|
|
336
336
|
}
|
|
337
337
|
}
|
|
338
|
-
async
|
|
338
|
+
async handleNanoBananaEdit(args) {
|
|
339
339
|
try {
|
|
340
340
|
const request = NanoBananaEditSchema.parse(args);
|
|
341
341
|
const response = await this.client.editNanoBanana(request);
|
|
@@ -361,7 +361,7 @@ class KieAiMcpServer {
|
|
|
361
361
|
};
|
|
362
362
|
}
|
|
363
363
|
catch (error) {
|
|
364
|
-
return this.formatError('
|
|
364
|
+
return this.formatError('nano_banana_edit', error, {
|
|
365
365
|
prompt: 'Required: editing instructions (max 5000 chars)',
|
|
366
366
|
image_urls: 'Required: array of 1-10 image URLs to edit',
|
|
367
367
|
output_format: 'Optional: "png" or "jpeg"',
|
|
@@ -369,7 +369,7 @@ class KieAiMcpServer {
|
|
|
369
369
|
});
|
|
370
370
|
}
|
|
371
371
|
}
|
|
372
|
-
async
|
|
372
|
+
async handleNanoBananaUpscale(args) {
|
|
373
373
|
try {
|
|
374
374
|
const request = NanoBananaUpscaleSchema.parse(args);
|
|
375
375
|
const response = await this.client.upscaleNanaBanana(request);
|
|
@@ -395,14 +395,14 @@ class KieAiMcpServer {
|
|
|
395
395
|
};
|
|
396
396
|
}
|
|
397
397
|
catch (error) {
|
|
398
|
-
return this.formatError('
|
|
398
|
+
return this.formatError('nano_banana_upscale', error, {
|
|
399
399
|
image: 'Required: URL of image to upscale (jpeg/png/webp, max 10MB)',
|
|
400
400
|
scale: 'Optional: upscale factor 1-4 (default: 2)',
|
|
401
401
|
face_enhance: 'Optional: enable face enhancement (default: false)'
|
|
402
402
|
});
|
|
403
403
|
}
|
|
404
404
|
}
|
|
405
|
-
async
|
|
405
|
+
async handleVeo3GenerateVideo(args) {
|
|
406
406
|
try {
|
|
407
407
|
const request = Veo3GenerateSchema.parse(args);
|
|
408
408
|
// Use environment variable as fallback if callBackUrl not provided
|
|
@@ -432,7 +432,7 @@ class KieAiMcpServer {
|
|
|
432
432
|
};
|
|
433
433
|
}
|
|
434
434
|
catch (error) {
|
|
435
|
-
return this.formatError('
|
|
435
|
+
return this.formatError('veo3_generate_video', error, {
|
|
436
436
|
prompt: 'Required: video description (max 2000 chars)',
|
|
437
437
|
imageUrls: 'Optional: array with 1 image URL for image-to-video',
|
|
438
438
|
model: 'Optional: "veo3" (quality) or "veo3_fast" (cost-efficient)',
|
|
@@ -544,7 +544,7 @@ class KieAiMcpServer {
|
|
|
544
544
|
});
|
|
545
545
|
}
|
|
546
546
|
}
|
|
547
|
-
async
|
|
547
|
+
async handleVeo3Get1080pVideo(args) {
|
|
548
548
|
try {
|
|
549
549
|
const { task_id, index } = args;
|
|
550
550
|
if (!task_id || typeof task_id !== 'string') {
|
|
@@ -567,7 +567,7 @@ class KieAiMcpServer {
|
|
|
567
567
|
};
|
|
568
568
|
}
|
|
569
569
|
catch (error) {
|
|
570
|
-
return this.formatError('
|
|
570
|
+
return this.formatError('veo3_get_1080p_video', error, {
|
|
571
571
|
task_id: 'Required: Veo3 task ID to get 1080p video for',
|
|
572
572
|
index: 'Optional: video index (for multiple video results)'
|
|
573
573
|
});
|