IMPORTANT ASYNCHRONOUS TASK WORKFLOW
- Call this MCP generation tool once and read taskId from structuredContent.
- Do not call the generation tool again while the task is PENDING or RUNNING.
- Wait at least 5 seconds, then call nexscope_media_task_result with skillSlug set to banana-image-generation, the exact taskId, and the same bearer API key. While the task remains PENDING or RUNNING, use 5, 10, 20, and 30-second progressive backoff. Never query more often than once every 5 seconds.
- Stop querying when the task succeeds or fails. On success, return the final Nexscope resource URLs and the returned count as the actual charged credits.
- Never invent a taskId and never expose internal provider names or provider resource URLs.
Image Generation Models
Nano Banana Image Generation MCP Tool
Generate ecommerce images with the Nano Banana base image model. The model is fixed by this API, so provider must not be supplied in the request.
MCP tool name
nexscope_banana_image_generationEquivalent REST API path
https://claw-callback.nexscope.ai/api/skill-api/v1/skills/banana-image-generation/runJSON-RPC method
tools/callAuthentication
Send the user API key as a bearer token on every MCP JSON-RPC request.
Authorization: Bearer nk_xxxxxxxxxxxxxxxxxIf authentication is missing or invalid, ask the user to open API Access and copy a valid key before calling this tool.
Call this MCP tool
Use tools/call with the MCP tool name below. The arguments object should match the table on this page.
{
"jsonrpc": "2.0",
"id": "banana-image-generation-1",
"method": "tools/call",
"params": {
"name": "nexscope_banana_image_generation",
"arguments": {
"imageUrls": [
"https://example.com/product.jpg"
],
"prompt": "Keep the product consistent and generate a clean white-background ecommerce hero image.",
"outputNum": 1,
"extraParams": {
"resolution": "1K",
"aspectRatio": "1:1"
}
}
}
}REST API equivalent
POST https://claw-callback.nexscope.ai/api/skill-api/v1/skills/banana-image-generation/runCanonical detail URL
https://www.nexscope.ai/mcp-map/banana-image-generationAsynchronous task workflow
This capability uses a create-and-query flow. Creating the task and retrieving its final generated resources are two connected requests.
- 1. Create onceCall the MCP tool once and keep the returned
taskId. - 2. Query with backoffCall
nexscope_media_task_resultwith this skill slug and task ID. Wait at least 5 seconds first; while pending or running, back off at 5, 10, 20, then 30-second intervals. - 3. Use final resultStop at a terminal status. Successful results contain Nexscope resource URLs and the actual charged-credit count.
MCP task result call
{
"jsonrpc": "2.0",
"id": "banana-image-generation-result-1",
"method": "tools/call",
"params": {
"name": "nexscope_media_task_result",
"arguments": {
"skillSlug": "banana-image-generation",
"taskId": "TASK_ID_FROM_THE_GENERATION_RESULT"
}
}
}REST fallback
GET https://claw-callback.nexscope.ai/api/skill-api/v1/skills/banana-image-generation/tasks/{taskId}Arguments
| Name | Type | Required | Meaning |
|---|---|---|---|
imageUrls | array | required | Public reference image URLs. Provide 1 to 10 JPG, PNG, or WEBP images; each image must not exceed 20 MB. Example: [
"https://example.com/product.jpg"
] |
prompt | string | required | Generation prompt describing the target image, scene, composition, style, and constraints. Maximum 5000 characters. Example: Keep the product consistent and generate a clean white-background ecommerce hero image. |
outputNum | integer | required | Number of images to generate. Valid range: 1 to 10. Example: 1 |
extraParams | object | optional | Optional generation settings. Supported keys: resolution (1K only) and aspectRatio (for example 1:1, 16:9, 9:16, 3:4, 4:3, or 21:9). Example: {
"resolution": "1K",
"aspectRatio": "1:1"
} |
Response fields
Treat structuredContent as the programmatic API response payload.
| Name | Type | Required | Meaning |
|---|---|---|---|
taskId | string | required | Nexscope asynchronous task id used to query the generation result. Example: 6b3f1c61-1b7d-4a59-8a7d-3b23e4b0c9e2 |
status | string | required | Task status. Initial run returns PENDING; the query endpoint may return PENDING, RUNNING, SUCCESS, FAILED, or TIMEOUT. Example: PENDING |
message | string | optional | User-facing task state message. Example: The task has been created. Use taskId to query the result. |
errcode | integer | optional | Upstream status code returned by the provider. Example: {} |
errmsg | string | optional | Upstream status message returned by the provider. Example: {} |
code | string | optional | Provider-specific status code. Example: {} |
msg | string | optional | Provider-specific status message. Example: {} |
type | string | optional | Provider-specific render or payload type. Example: {} |
title | string | optional | Provider-specific response title. Example: {} |
sourceType | string | optional | Provider-specific source platform type. Example: {} |
sourceTool | string | optional | Provider-specific source tool name. Example: {} |
costToken | integer | optional | Token cost reported by the upstream provider. Example: {} |
costTime | integer | optional | Execution time reported by the upstream provider. Example: {} |
page | integer | optional | Current page returned by the upstream provider. Example: {} |
pageSize | integer | optional | Page size returned by the upstream provider. Example: {} |
pageItemCount | integer | optional | Item count on the current page returned by the upstream provider. Example: {} |
totalPage | integer | optional | Total page count returned by the upstream provider. Example: {} |
dataSnapshotMonth | string | optional | Data snapshot month returned by the upstream provider. Example: {} |
Examples
Example arguments
{
"imageUrls": [
"https://example.com/product.jpg"
],
"prompt": "Keep the product consistent and generate a clean white-background ecommerce hero image.",
"outputNum": 1,
"extraParams": {
"resolution": "1K",
"aspectRatio": "1:1"
}
}Example structuredContent
{
"taskId": "6b3f1c61-1b7d-4a59-8a7d-3b23e4b0c9e2",
"status": "PENDING",
"message": "The task has been created. Use taskId to query the result."
}