@runapi.ai/nano-banana-mcp 0.1.8 → 0.1.9
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 +1 -1
- package/data/contract.json +7 -11
- package/data/pricing.json +0 -3
- package/dist/src/meta.d.ts +1 -1
- package/dist/src/meta.js +1 -1
- package/dist/src/server.js +74 -19
- package/dist/src/server.js.map +1 -1
- package/package.json +2 -2
- package/server.json +2 -2
package/README.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<h1 align="center">RunAPI Nano Banana MCP Server</h1>
|
|
2
2
|
|
|
3
3
|
<p align="center">
|
|
4
|
-
<strong>Nano Banana API access for AI agents:
|
|
4
|
+
<strong>Nano Banana API access for AI agents: run image generation operations, poll asynchronous results, and check pricing through one focused MCP server.</strong>
|
|
5
5
|
</p>
|
|
6
6
|
|
|
7
7
|
<p align="center">
|
package/data/contract.json
CHANGED
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
"nano-banana/edit-image": {
|
|
11
11
|
"model": "Nano Banana",
|
|
12
12
|
"endpoint": "edit_image",
|
|
13
|
+
"task_type": "asynchronous",
|
|
13
14
|
"models": [
|
|
14
15
|
"nano-banana-2-lite",
|
|
15
16
|
"nano-banana-edit"
|
|
@@ -39,9 +40,6 @@
|
|
|
39
40
|
"callback_url": {
|
|
40
41
|
"type": "string"
|
|
41
42
|
},
|
|
42
|
-
"output_format": {
|
|
43
|
-
"type": "string"
|
|
44
|
-
},
|
|
45
43
|
"aspect_ratio": {
|
|
46
44
|
"type": "string",
|
|
47
45
|
"enum": [
|
|
@@ -66,7 +64,9 @@
|
|
|
66
64
|
},
|
|
67
65
|
"source_image_urls": {
|
|
68
66
|
"type": "array",
|
|
69
|
-
"required": true
|
|
67
|
+
"required": true,
|
|
68
|
+
"max_items": 10,
|
|
69
|
+
"min_items": 1
|
|
70
70
|
}
|
|
71
71
|
},
|
|
72
72
|
"nano-banana-edit": {
|
|
@@ -112,6 +112,7 @@
|
|
|
112
112
|
"nano-banana/text-to-image": {
|
|
113
113
|
"model": "Nano Banana",
|
|
114
114
|
"endpoint": "text_to_image",
|
|
115
|
+
"task_type": "asynchronous",
|
|
115
116
|
"models": [
|
|
116
117
|
"nano-banana",
|
|
117
118
|
"nano-banana-2",
|
|
@@ -235,9 +236,6 @@
|
|
|
235
236
|
"callback_url": {
|
|
236
237
|
"type": "string"
|
|
237
238
|
},
|
|
238
|
-
"output_format": {
|
|
239
|
-
"type": "string"
|
|
240
|
-
},
|
|
241
239
|
"aspect_ratio": {
|
|
242
240
|
"type": "string",
|
|
243
241
|
"enum": [
|
|
@@ -260,11 +258,9 @@
|
|
|
260
258
|
"default": "auto",
|
|
261
259
|
"required": true
|
|
262
260
|
},
|
|
263
|
-
"output_resolution": {
|
|
264
|
-
"type": "string"
|
|
265
|
-
},
|
|
266
261
|
"reference_image_urls": {
|
|
267
|
-
"type": "array"
|
|
262
|
+
"type": "array",
|
|
263
|
+
"max_items": 10
|
|
268
264
|
}
|
|
269
265
|
},
|
|
270
266
|
"nano-banana-pro": {
|
package/data/pricing.json
CHANGED
package/dist/src/meta.d.ts
CHANGED
package/dist/src/meta.js
CHANGED
package/dist/src/server.js
CHANGED
|
@@ -1,13 +1,19 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
import { createModelServer, findModelForAction, findModels, friendlyError, jsonText, priceForModel, RunApiClient, taskStatus } from "@runapi.ai/mcp-core";
|
|
2
|
+
import { createModelServer, declaredFieldsForAction, findModelForAction, findModels, friendlyError, jsonText, priceForModel, RunApiClient, taskStatus, validateInputRules, validateParams, zodShapeForFields } from "@runapi.ai/mcp-core";
|
|
3
3
|
import { readContract, readPricing } from "./data.js";
|
|
4
4
|
import { META } from "./meta.js";
|
|
5
|
+
function taskType(action) {
|
|
6
|
+
return action.task_type ?? "asynchronous";
|
|
7
|
+
}
|
|
5
8
|
function lineService(contract) {
|
|
6
9
|
return Object.keys(contract.actions)[0]?.split("/")[0] ?? META.lineSlug;
|
|
7
10
|
}
|
|
8
|
-
function lineEndpoints(contract) {
|
|
11
|
+
function lineEndpoints(contract, filter) {
|
|
9
12
|
const seen = new Set();
|
|
10
13
|
for (const action of Object.values(contract.actions)) {
|
|
14
|
+
if (filter && taskType(action) !== filter) {
|
|
15
|
+
continue;
|
|
16
|
+
}
|
|
11
17
|
seen.add(action.endpoint);
|
|
12
18
|
}
|
|
13
19
|
return [...seen];
|
|
@@ -28,6 +34,9 @@ function buildTools(contract) {
|
|
|
28
34
|
const tools = [];
|
|
29
35
|
const inputRules = {};
|
|
30
36
|
for (const [key, action] of Object.entries(contract.actions)) {
|
|
37
|
+
if (taskType(action) === "synchronous") {
|
|
38
|
+
continue;
|
|
39
|
+
}
|
|
31
40
|
const service = key.split("/")[0];
|
|
32
41
|
const endpoint = action.endpoint;
|
|
33
42
|
tools.push({
|
|
@@ -41,29 +50,74 @@ function buildTools(contract) {
|
|
|
41
50
|
}
|
|
42
51
|
return { tools, inputRules };
|
|
43
52
|
}
|
|
53
|
+
function registerSynchronousTools(server, contract, pricing, client) {
|
|
54
|
+
for (const [key, action] of Object.entries(contract.actions)) {
|
|
55
|
+
if (taskType(action) !== "synchronous") {
|
|
56
|
+
continue;
|
|
57
|
+
}
|
|
58
|
+
const service = key.split("/")[0];
|
|
59
|
+
const endpoint = action.endpoint;
|
|
60
|
+
const shape = zodShapeForFields(declaredFieldsForAction(action));
|
|
61
|
+
if (action.models.length > 0) {
|
|
62
|
+
shape.model = z.enum(action.models).optional().describe("RunAPI model slug for this model line.");
|
|
63
|
+
}
|
|
64
|
+
server.tool(endpoint, `Run a synchronous ${action.model} operation on RunAPI (${endpoint.replace(/_/g, " ")}). Returns the operation result and pricing snapshot.`, shape, async (args) => {
|
|
65
|
+
const { model, ...params } = args;
|
|
66
|
+
try {
|
|
67
|
+
const info = findModelForAction(service, endpoint, model, contract);
|
|
68
|
+
if (!info) {
|
|
69
|
+
return jsonText({
|
|
70
|
+
error: "Unsupported RunAPI service/action/model combination.",
|
|
71
|
+
hint: "This model server was generated for a specific model line; verify the requested model."
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
const body = validateParams(info.fields, {
|
|
75
|
+
...params,
|
|
76
|
+
...(info.model ? { model: info.model } : {})
|
|
77
|
+
});
|
|
78
|
+
const ruleError = validateInputRules(action.rules ?? [], body);
|
|
79
|
+
if (ruleError) {
|
|
80
|
+
return jsonText({
|
|
81
|
+
error: `Invalid RunAPI parameters: ${ruleError}`,
|
|
82
|
+
hint: "Adjust the parameters to satisfy the endpoint input rules before retrying."
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
const result = await client.createTask(service, endpoint, body);
|
|
86
|
+
return jsonText({ result, price: priceForModel(info, pricing) });
|
|
87
|
+
}
|
|
88
|
+
catch (error) {
|
|
89
|
+
return jsonText({ error: friendlyError(error) });
|
|
90
|
+
}
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
}
|
|
44
94
|
function registerLineTools(server, contract, pricing, client) {
|
|
45
95
|
const service = lineService(contract);
|
|
46
96
|
const endpoints = lineEndpoints(contract);
|
|
97
|
+
const asynchronousEndpoints = lineEndpoints(contract, "asynchronous");
|
|
47
98
|
const models = lineModels(contract);
|
|
48
99
|
const endpointEnum = endpoints.length > 0 ? z.enum(endpoints) : z.string();
|
|
49
100
|
const modelEnum = models.length > 0 ? z.enum(models) : z.string();
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
101
|
+
if (asynchronousEndpoints.length > 0) {
|
|
102
|
+
const asynchronousEndpointEnum = z.enum(asynchronousEndpoints);
|
|
103
|
+
// With one endpoint, action defaults safely. With several, a wrong default
|
|
104
|
+
// would query the wrong task route, so the caller must name the endpoint.
|
|
105
|
+
const getTaskAction = asynchronousEndpoints.length > 1
|
|
106
|
+
? asynchronousEndpointEnum.describe("Asynchronous endpoint the task was created on.")
|
|
107
|
+
: asynchronousEndpointEnum.optional().describe("Asynchronous endpoint the task was created on. Defaults to the line's only asynchronous endpoint.");
|
|
108
|
+
server.tool("get_task", `Fetch the current status and latest result payload for a ${META.lineSlug} task.`, {
|
|
109
|
+
task_id: z.string().describe("Task id returned when the task was created."),
|
|
110
|
+
action: getTaskAction
|
|
111
|
+
}, async ({ task_id, action }) => {
|
|
112
|
+
try {
|
|
113
|
+
const task = await client.getTask(service, task_id, action ?? asynchronousEndpoints[0]);
|
|
114
|
+
return jsonText({ task_id, status: taskStatus(task), task });
|
|
115
|
+
}
|
|
116
|
+
catch (error) {
|
|
117
|
+
return jsonText({ error: friendlyError(error) });
|
|
118
|
+
}
|
|
119
|
+
});
|
|
120
|
+
}
|
|
67
121
|
server.tool("check_pricing", `Look up RunAPI pricing for the ${META.lineSlug} model line.`, {
|
|
68
122
|
model: modelEnum.optional().describe("Model slug. Defaults to the line's primary model."),
|
|
69
123
|
action: endpointEnum.optional().describe("Endpoint name. Defaults to the endpoint that offers the model.")
|
|
@@ -117,6 +171,7 @@ export function createServer() {
|
|
|
117
171
|
tools,
|
|
118
172
|
client
|
|
119
173
|
});
|
|
174
|
+
registerSynchronousTools(server, contract, pricing, client);
|
|
120
175
|
registerLineTools(server, contract, pricing, client);
|
|
121
176
|
return server;
|
|
122
177
|
}
|
package/dist/src/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,UAAU,EACV,aAAa,EACb,QAAQ,EACR,aAAa,EACb,YAAY,EACZ,UAAU,
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@runapi.ai/nano-banana-mcp",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.9",
|
|
4
4
|
"description": "RunAPI Nano Banana MCP server for image generation: create tasks, poll results, and check pricing across 5 model variants from Claude Code, Codex, Cursor, and VS Code.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/src/index.js",
|
|
@@ -56,7 +56,7 @@
|
|
|
56
56
|
},
|
|
57
57
|
"dependencies": {
|
|
58
58
|
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
59
|
-
"@runapi.ai/mcp-core": "0.1.
|
|
59
|
+
"@runapi.ai/mcp-core": "0.1.7",
|
|
60
60
|
"zod": "^3.25.76"
|
|
61
61
|
},
|
|
62
62
|
"devDependencies": {
|
package/server.json
CHANGED
|
@@ -6,12 +6,12 @@
|
|
|
6
6
|
"url": "https://github.com/runapi-ai/nano-banana-mcp",
|
|
7
7
|
"source": "github"
|
|
8
8
|
},
|
|
9
|
-
"version": "0.1.
|
|
9
|
+
"version": "0.1.9",
|
|
10
10
|
"packages": [
|
|
11
11
|
{
|
|
12
12
|
"registryType": "npm",
|
|
13
13
|
"identifier": "@runapi.ai/nano-banana-mcp",
|
|
14
|
-
"version": "0.1.
|
|
14
|
+
"version": "0.1.9",
|
|
15
15
|
"transport": {
|
|
16
16
|
"type": "stdio"
|
|
17
17
|
},
|