@runapi.ai/nano-banana-mcp 0.1.7 → 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 +2 -2
- package/data/contract.json +59 -8
- package/data/pricing.json +6 -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">
|
|
@@ -87,7 +87,7 @@ Nano Banana covers 5 model variants across 2 endpoints. Each tool accepts the mo
|
|
|
87
87
|
|
|
88
88
|
| Tool | Models |
|
|
89
89
|
|---|---|
|
|
90
|
-
| `edit_image` | `nano-banana-edit` |
|
|
90
|
+
| `edit_image` | `nano-banana-2-lite`, `nano-banana-edit` |
|
|
91
91
|
| `text_to_image` | `nano-banana`, `nano-banana-2`, `nano-banana-2-lite`, `nano-banana-pro` |
|
|
92
92
|
|
|
93
93
|
Model availability can change between releases. Use `check_pricing` or the [Nano Banana model page](https://runapi.ai/models/nano-banana) for the current catalog view.
|
package/data/contract.json
CHANGED
|
@@ -1,19 +1,74 @@
|
|
|
1
1
|
{
|
|
2
2
|
"catalog_models": [
|
|
3
|
+
"nano-banana-2-lite",
|
|
3
4
|
"nano-banana-edit",
|
|
4
5
|
"nano-banana",
|
|
5
6
|
"nano-banana-2",
|
|
6
|
-
"nano-banana-2-lite",
|
|
7
7
|
"nano-banana-pro"
|
|
8
8
|
],
|
|
9
9
|
"actions": {
|
|
10
10
|
"nano-banana/edit-image": {
|
|
11
11
|
"model": "Nano Banana",
|
|
12
12
|
"endpoint": "edit_image",
|
|
13
|
+
"task_type": "asynchronous",
|
|
13
14
|
"models": [
|
|
15
|
+
"nano-banana-2-lite",
|
|
14
16
|
"nano-banana-edit"
|
|
15
17
|
],
|
|
18
|
+
"rules": [
|
|
19
|
+
{
|
|
20
|
+
"when": {
|
|
21
|
+
"model": "nano-banana-2-lite"
|
|
22
|
+
},
|
|
23
|
+
"forbidden": [
|
|
24
|
+
"output_format"
|
|
25
|
+
]
|
|
26
|
+
}
|
|
27
|
+
],
|
|
16
28
|
"fields_by_model": {
|
|
29
|
+
"nano-banana-2-lite": {
|
|
30
|
+
"model": {
|
|
31
|
+
"type": "string"
|
|
32
|
+
},
|
|
33
|
+
"prompt": {
|
|
34
|
+
"type": "string",
|
|
35
|
+
"max": 20000,
|
|
36
|
+
"min": 1,
|
|
37
|
+
"length": true,
|
|
38
|
+
"required": true
|
|
39
|
+
},
|
|
40
|
+
"callback_url": {
|
|
41
|
+
"type": "string"
|
|
42
|
+
},
|
|
43
|
+
"aspect_ratio": {
|
|
44
|
+
"type": "string",
|
|
45
|
+
"enum": [
|
|
46
|
+
"1:1",
|
|
47
|
+
"1:4",
|
|
48
|
+
"1:8",
|
|
49
|
+
"2:3",
|
|
50
|
+
"3:2",
|
|
51
|
+
"3:4",
|
|
52
|
+
"4:1",
|
|
53
|
+
"4:3",
|
|
54
|
+
"4:5",
|
|
55
|
+
"5:4",
|
|
56
|
+
"8:1",
|
|
57
|
+
"9:16",
|
|
58
|
+
"16:9",
|
|
59
|
+
"21:9",
|
|
60
|
+
"auto"
|
|
61
|
+
],
|
|
62
|
+
"default": "auto",
|
|
63
|
+
"required": true
|
|
64
|
+
},
|
|
65
|
+
"source_image_urls": {
|
|
66
|
+
"type": "array",
|
|
67
|
+
"required": true,
|
|
68
|
+
"max_items": 10,
|
|
69
|
+
"min_items": 1
|
|
70
|
+
}
|
|
71
|
+
},
|
|
17
72
|
"nano-banana-edit": {
|
|
18
73
|
"model": {
|
|
19
74
|
"type": "string"
|
|
@@ -57,6 +112,7 @@
|
|
|
57
112
|
"nano-banana/text-to-image": {
|
|
58
113
|
"model": "Nano Banana",
|
|
59
114
|
"endpoint": "text_to_image",
|
|
115
|
+
"task_type": "asynchronous",
|
|
60
116
|
"models": [
|
|
61
117
|
"nano-banana",
|
|
62
118
|
"nano-banana-2",
|
|
@@ -180,9 +236,6 @@
|
|
|
180
236
|
"callback_url": {
|
|
181
237
|
"type": "string"
|
|
182
238
|
},
|
|
183
|
-
"output_format": {
|
|
184
|
-
"type": "string"
|
|
185
|
-
},
|
|
186
239
|
"aspect_ratio": {
|
|
187
240
|
"type": "string",
|
|
188
241
|
"enum": [
|
|
@@ -205,11 +258,9 @@
|
|
|
205
258
|
"default": "auto",
|
|
206
259
|
"required": true
|
|
207
260
|
},
|
|
208
|
-
"output_resolution": {
|
|
209
|
-
"type": "string"
|
|
210
|
-
},
|
|
211
261
|
"reference_image_urls": {
|
|
212
|
-
"type": "array"
|
|
262
|
+
"type": "array",
|
|
263
|
+
"max_items": 10
|
|
213
264
|
}
|
|
214
265
|
},
|
|
215
266
|
"nano-banana-pro": {
|
package/data/pricing.json
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"endpoints": {
|
|
3
|
+
"nano-banana-2-lite/edit_image": {
|
|
4
|
+
"unit_price_cents": 3
|
|
5
|
+
},
|
|
6
|
+
"nano-banana-2-lite/text_to_image": {
|
|
7
|
+
"unit_price_cents": 3
|
|
8
|
+
},
|
|
3
9
|
"nano-banana-edit/edit_image": {
|
|
4
10
|
"unit_price_cents": 4
|
|
5
11
|
},
|
|
@@ -17,9 +23,6 @@
|
|
|
17
23
|
}
|
|
18
24
|
}
|
|
19
25
|
},
|
|
20
|
-
"nano-banana-2-lite/text_to_image": {
|
|
21
|
-
"unit_price_cents": 3
|
|
22
|
-
},
|
|
23
26
|
"nano-banana-pro/text_to_image": {
|
|
24
27
|
"unit_price_cents": 18,
|
|
25
28
|
"billing_config": {
|
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
|
},
|