@cainmaila/gemini-cli-mcp 1.0.0
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/LICENSE +21 -0
- package/README.md +196 -0
- package/README.zh-TW.md +196 -0
- package/build/cli/buildArgs.d.ts +12 -0
- package/build/cli/buildArgs.js +19 -0
- package/build/cli/buildArgs.js.map +1 -0
- package/build/cli/geminiCommandRunner.d.ts +2 -0
- package/build/cli/geminiCommandRunner.js +108 -0
- package/build/cli/geminiCommandRunner.js.map +1 -0
- package/build/cli/geminiInspector.d.ts +10 -0
- package/build/cli/geminiInspector.js +336 -0
- package/build/cli/geminiInspector.js.map +1 -0
- package/build/cli/geminiRunner.d.ts +2 -0
- package/build/cli/geminiRunner.js +20 -0
- package/build/cli/geminiRunner.js.map +1 -0
- package/build/cli/taskPrompt.d.ts +7 -0
- package/build/cli/taskPrompt.js +31 -0
- package/build/cli/taskPrompt.js.map +1 -0
- package/build/index.d.ts +2 -0
- package/build/index.js +14 -0
- package/build/index.js.map +1 -0
- package/build/mcp/tools.d.ts +244 -0
- package/build/mcp/tools.js +500 -0
- package/build/mcp/tools.js.map +1 -0
- package/build/server.d.ts +3 -0
- package/build/server.js +12 -0
- package/build/server.js.map +1 -0
- package/build/types.d.ts +95 -0
- package/build/types.js +3 -0
- package/build/types.js.map +1 -0
- package/package.json +56 -0
|
@@ -0,0 +1,500 @@
|
|
|
1
|
+
import { access, stat } from "node:fs/promises";
|
|
2
|
+
import { resolve } from "node:path";
|
|
3
|
+
import { z } from "zod";
|
|
4
|
+
import { MAX_TIMEOUT_MS, MIN_TIMEOUT_MS } from "../cli/buildArgs.js";
|
|
5
|
+
import { inspectGeminiCli } from "../cli/geminiInspector.js";
|
|
6
|
+
import { runGeminiPrompt } from "../cli/geminiRunner.js";
|
|
7
|
+
import { buildTaskPrompt } from "../cli/taskPrompt.js";
|
|
8
|
+
const approvalModeSchema = z.enum(["default", "auto_edit", "yolo", "plan"]);
|
|
9
|
+
const FILE_MUTATION_PATTERN = /\b(write|save|create|edit|modify|delete|rename|move|overwrite|generate)\b|建立|新增|寫入|存成|存為|修改|編輯|刪除|重新命名|移動|覆寫|輸出.*檔案|產生.*檔案/i;
|
|
10
|
+
export const executePromptInputSchema = z.object({
|
|
11
|
+
prompt: z
|
|
12
|
+
.string()
|
|
13
|
+
.trim()
|
|
14
|
+
.min(1)
|
|
15
|
+
.describe("Prompt to send to the local Gemini CLI"),
|
|
16
|
+
model: z
|
|
17
|
+
.string()
|
|
18
|
+
.trim()
|
|
19
|
+
.min(1)
|
|
20
|
+
.optional()
|
|
21
|
+
.describe("Optional Gemini model name"),
|
|
22
|
+
cwd: z
|
|
23
|
+
.string()
|
|
24
|
+
.trim()
|
|
25
|
+
.min(1)
|
|
26
|
+
.optional()
|
|
27
|
+
.describe("Optional working directory for the Gemini CLI process"),
|
|
28
|
+
timeoutMs: z
|
|
29
|
+
.number()
|
|
30
|
+
.int()
|
|
31
|
+
.min(MIN_TIMEOUT_MS)
|
|
32
|
+
.max(MAX_TIMEOUT_MS)
|
|
33
|
+
.optional()
|
|
34
|
+
.describe("Optional timeout in milliseconds"),
|
|
35
|
+
approvalMode: approvalModeSchema
|
|
36
|
+
.optional()
|
|
37
|
+
.describe("Optional Gemini CLI approval mode"),
|
|
38
|
+
});
|
|
39
|
+
export const executePromptOutputSchema = z.object({
|
|
40
|
+
ok: z.boolean(),
|
|
41
|
+
finalText: z.string(),
|
|
42
|
+
stdout: z.string(),
|
|
43
|
+
stderr: z.string(),
|
|
44
|
+
exitCode: z.number().int().nullable(),
|
|
45
|
+
signal: z.string().nullable(),
|
|
46
|
+
elapsedMs: z.number().int().nonnegative(),
|
|
47
|
+
timedOut: z.boolean(),
|
|
48
|
+
aborted: z.boolean(),
|
|
49
|
+
command: z.string(),
|
|
50
|
+
args: z.array(z.string()),
|
|
51
|
+
effectiveApprovalMode: approvalModeSchema.optional(),
|
|
52
|
+
workingDirectory: z.string().optional(),
|
|
53
|
+
errorMessage: z.string().optional(),
|
|
54
|
+
});
|
|
55
|
+
export const executeTaskInputSchema = z.object({
|
|
56
|
+
task: z
|
|
57
|
+
.string()
|
|
58
|
+
.trim()
|
|
59
|
+
.min(1)
|
|
60
|
+
.describe("Task to delegate to the local Gemini CLI"),
|
|
61
|
+
context: z
|
|
62
|
+
.string()
|
|
63
|
+
.trim()
|
|
64
|
+
.min(1)
|
|
65
|
+
.optional()
|
|
66
|
+
.describe("Optional task context for Gemini"),
|
|
67
|
+
expectedOutput: z
|
|
68
|
+
.string()
|
|
69
|
+
.trim()
|
|
70
|
+
.min(1)
|
|
71
|
+
.optional()
|
|
72
|
+
.describe("Optional instructions describing the desired final answer format"),
|
|
73
|
+
model: z
|
|
74
|
+
.string()
|
|
75
|
+
.trim()
|
|
76
|
+
.min(1)
|
|
77
|
+
.optional()
|
|
78
|
+
.describe("Optional Gemini model name"),
|
|
79
|
+
cwd: z
|
|
80
|
+
.string()
|
|
81
|
+
.trim()
|
|
82
|
+
.min(1)
|
|
83
|
+
.optional()
|
|
84
|
+
.describe("Optional working directory for the Gemini CLI process"),
|
|
85
|
+
timeoutMs: z
|
|
86
|
+
.number()
|
|
87
|
+
.int()
|
|
88
|
+
.min(MIN_TIMEOUT_MS)
|
|
89
|
+
.max(MAX_TIMEOUT_MS)
|
|
90
|
+
.optional()
|
|
91
|
+
.describe("Optional timeout in milliseconds"),
|
|
92
|
+
approvalMode: approvalModeSchema
|
|
93
|
+
.optional()
|
|
94
|
+
.describe("Optional Gemini CLI approval mode. If omitted, file-mutating tasks default to auto_edit."),
|
|
95
|
+
});
|
|
96
|
+
export const executeTaskOutputSchema = z.object({
|
|
97
|
+
answer: z.string(),
|
|
98
|
+
ok: z.boolean(),
|
|
99
|
+
stdout: z.string(),
|
|
100
|
+
stderr: z.string(),
|
|
101
|
+
exitCode: z.number().int().nullable(),
|
|
102
|
+
signal: z.string().nullable(),
|
|
103
|
+
elapsedMs: z.number().int().nonnegative(),
|
|
104
|
+
timedOut: z.boolean(),
|
|
105
|
+
aborted: z.boolean(),
|
|
106
|
+
command: z.string(),
|
|
107
|
+
args: z.array(z.string()),
|
|
108
|
+
effectiveApprovalMode: approvalModeSchema.optional(),
|
|
109
|
+
workingDirectory: z.string().optional(),
|
|
110
|
+
errorMessage: z.string().optional(),
|
|
111
|
+
});
|
|
112
|
+
export const inspectGeminiCliInputSchema = z.object({
|
|
113
|
+
includeModelReportedTools: z
|
|
114
|
+
.boolean()
|
|
115
|
+
.optional()
|
|
116
|
+
.describe("Whether to ask Gemini itself for a model-reported summary of currently active tools."),
|
|
117
|
+
timeoutMs: z
|
|
118
|
+
.number()
|
|
119
|
+
.int()
|
|
120
|
+
.min(MIN_TIMEOUT_MS)
|
|
121
|
+
.max(MAX_TIMEOUT_MS)
|
|
122
|
+
.optional()
|
|
123
|
+
.describe("Optional timeout in milliseconds for each inspection command"),
|
|
124
|
+
});
|
|
125
|
+
export const inspectGeminiCliOutputSchema = z.object({
|
|
126
|
+
version: z.string(),
|
|
127
|
+
commands: z.array(z.object({
|
|
128
|
+
command: z.string(),
|
|
129
|
+
description: z.string(),
|
|
130
|
+
})),
|
|
131
|
+
extensions: z.array(z.object({
|
|
132
|
+
name: z.string(),
|
|
133
|
+
version: z.string(),
|
|
134
|
+
path: z.string().optional(),
|
|
135
|
+
source: z.string().optional(),
|
|
136
|
+
enabledUser: z.boolean().optional(),
|
|
137
|
+
enabledWorkspace: z.boolean().optional(),
|
|
138
|
+
mcpServers: z.array(z.string()).optional(),
|
|
139
|
+
})),
|
|
140
|
+
skills: z.array(z.object({
|
|
141
|
+
name: z.string(),
|
|
142
|
+
enabled: z.boolean(),
|
|
143
|
+
builtIn: z.boolean(),
|
|
144
|
+
description: z.string().optional(),
|
|
145
|
+
location: z.string().optional(),
|
|
146
|
+
})),
|
|
147
|
+
mcpServers: z.array(z.object({
|
|
148
|
+
name: z.string(),
|
|
149
|
+
target: z.string(),
|
|
150
|
+
transport: z.string(),
|
|
151
|
+
status: z.string(),
|
|
152
|
+
})),
|
|
153
|
+
modelReportedTools: z.string().optional(),
|
|
154
|
+
modelReportedSummary: z
|
|
155
|
+
.object({
|
|
156
|
+
builtInTools: z.array(z.string()),
|
|
157
|
+
extensions: z.array(z.string()),
|
|
158
|
+
skills: z.array(z.string()),
|
|
159
|
+
mcpServers: z.array(z.string()),
|
|
160
|
+
})
|
|
161
|
+
.optional(),
|
|
162
|
+
notes: z.array(z.string()),
|
|
163
|
+
raw: z.object({
|
|
164
|
+
help: z.string(),
|
|
165
|
+
extensions: z.string(),
|
|
166
|
+
skills: z.string(),
|
|
167
|
+
mcpServers: z.string(),
|
|
168
|
+
modelReportedTools: z.string().optional(),
|
|
169
|
+
}),
|
|
170
|
+
});
|
|
171
|
+
export const executeImageTaskInputSchema = z.object({
|
|
172
|
+
prompt: z
|
|
173
|
+
.string()
|
|
174
|
+
.trim()
|
|
175
|
+
.min(1)
|
|
176
|
+
.describe("Image generation prompt for the nanobanana extension"),
|
|
177
|
+
count: z
|
|
178
|
+
.number()
|
|
179
|
+
.int()
|
|
180
|
+
.min(1)
|
|
181
|
+
.max(8)
|
|
182
|
+
.optional()
|
|
183
|
+
.describe("Optional number of images to generate"),
|
|
184
|
+
styles: z
|
|
185
|
+
.array(z.string().trim().min(1))
|
|
186
|
+
.optional()
|
|
187
|
+
.describe("Optional style names passed to nanobanana"),
|
|
188
|
+
variations: z
|
|
189
|
+
.array(z.string().trim().min(1))
|
|
190
|
+
.optional()
|
|
191
|
+
.describe("Optional variation names passed to nanobanana"),
|
|
192
|
+
cwd: z
|
|
193
|
+
.string()
|
|
194
|
+
.trim()
|
|
195
|
+
.min(1)
|
|
196
|
+
.optional()
|
|
197
|
+
.describe("Optional working directory for generated image output"),
|
|
198
|
+
timeoutMs: z
|
|
199
|
+
.number()
|
|
200
|
+
.int()
|
|
201
|
+
.min(MIN_TIMEOUT_MS)
|
|
202
|
+
.max(MAX_TIMEOUT_MS)
|
|
203
|
+
.optional()
|
|
204
|
+
.describe("Optional timeout in milliseconds"),
|
|
205
|
+
approvalMode: approvalModeSchema
|
|
206
|
+
.optional()
|
|
207
|
+
.describe("Optional Gemini CLI approval mode. Defaults to yolo for nanobanana."),
|
|
208
|
+
});
|
|
209
|
+
export const executeImageTaskOutputSchema = z.object({
|
|
210
|
+
ok: z.boolean(),
|
|
211
|
+
responseText: z.string(),
|
|
212
|
+
imagePaths: z.array(z.string()),
|
|
213
|
+
primaryImagePath: z.string().optional(),
|
|
214
|
+
stdout: z.string(),
|
|
215
|
+
stderr: z.string(),
|
|
216
|
+
exitCode: z.number().int().nullable(),
|
|
217
|
+
signal: z.string().nullable(),
|
|
218
|
+
elapsedMs: z.number().int().nonnegative(),
|
|
219
|
+
timedOut: z.boolean(),
|
|
220
|
+
aborted: z.boolean(),
|
|
221
|
+
command: z.string(),
|
|
222
|
+
args: z.array(z.string()),
|
|
223
|
+
effectiveApprovalMode: approvalModeSchema.optional(),
|
|
224
|
+
workingDirectory: z.string().optional(),
|
|
225
|
+
errorMessage: z.string().optional(),
|
|
226
|
+
});
|
|
227
|
+
function quoteShellValue(value) {
|
|
228
|
+
return JSON.stringify(value);
|
|
229
|
+
}
|
|
230
|
+
function buildNanobananaPrompt(input) {
|
|
231
|
+
const parts = ["/generate", quoteShellValue(input.prompt.trim())];
|
|
232
|
+
if (input.count !== undefined) {
|
|
233
|
+
parts.push(`--count=${input.count}`);
|
|
234
|
+
}
|
|
235
|
+
if (input.styles && input.styles.length > 0) {
|
|
236
|
+
parts.push(`--styles=${quoteShellValue(input.styles.join(","))}`);
|
|
237
|
+
}
|
|
238
|
+
if (input.variations && input.variations.length > 0) {
|
|
239
|
+
parts.push(`--variations=${quoteShellValue(input.variations.join(","))}`);
|
|
240
|
+
}
|
|
241
|
+
return [
|
|
242
|
+
parts.join(" "),
|
|
243
|
+
"Save generated image file path(s) and reply with the saved file path(s) only, one path per line.",
|
|
244
|
+
].join(" ");
|
|
245
|
+
}
|
|
246
|
+
function extractImagePaths(text) {
|
|
247
|
+
const matches = text.match(/(?:\/[^\s"']+|(?:\.\.?\/)?[A-Za-z0-9_.-][^\s"']*)\.(?:png|jpe?g|webp|svg)\b/g) ?? [];
|
|
248
|
+
return [...new Set(matches.map((value) => value.trim()))];
|
|
249
|
+
}
|
|
250
|
+
function buildApprovalArgs(approvalMode) {
|
|
251
|
+
return approvalMode ? ["--approval-mode", approvalMode] : [];
|
|
252
|
+
}
|
|
253
|
+
function inferTaskApprovalMode(input) {
|
|
254
|
+
if (input.approvalMode) {
|
|
255
|
+
return input.approvalMode;
|
|
256
|
+
}
|
|
257
|
+
const combinedText = [input.task, input.context, input.expectedOutput]
|
|
258
|
+
.filter(Boolean)
|
|
259
|
+
.join("\n");
|
|
260
|
+
if (FILE_MUTATION_PATTERN.test(combinedText)) {
|
|
261
|
+
return "auto_edit";
|
|
262
|
+
}
|
|
263
|
+
return undefined;
|
|
264
|
+
}
|
|
265
|
+
async function resolveWorkingDirectory(cwd) {
|
|
266
|
+
if (!cwd) {
|
|
267
|
+
return undefined;
|
|
268
|
+
}
|
|
269
|
+
const absolutePath = resolve(cwd);
|
|
270
|
+
const stats = await stat(absolutePath).catch(() => undefined);
|
|
271
|
+
if (!stats || !stats.isDirectory()) {
|
|
272
|
+
throw new Error(`Working directory does not exist or is not a directory: ${absolutePath}`);
|
|
273
|
+
}
|
|
274
|
+
await access(absolutePath);
|
|
275
|
+
return absolutePath;
|
|
276
|
+
}
|
|
277
|
+
function renderToolText(result) {
|
|
278
|
+
if (result.ok) {
|
|
279
|
+
return (result.finalText ||
|
|
280
|
+
"Gemini CLI completed successfully but returned no stdout output.");
|
|
281
|
+
}
|
|
282
|
+
const details = [
|
|
283
|
+
`Gemini CLI execution failed.`,
|
|
284
|
+
`command: ${result.command}`,
|
|
285
|
+
`exitCode: ${result.exitCode ?? "null"}`,
|
|
286
|
+
`signal: ${result.signal ?? "null"}`,
|
|
287
|
+
`timedOut: ${String(result.timedOut)}`,
|
|
288
|
+
`aborted: ${String(result.aborted)}`,
|
|
289
|
+
];
|
|
290
|
+
if (result.errorMessage) {
|
|
291
|
+
details.push(`error: ${result.errorMessage}`);
|
|
292
|
+
}
|
|
293
|
+
if (result.stderr.trim()) {
|
|
294
|
+
details.push(`stderr:\n${result.stderr.trim()}`);
|
|
295
|
+
}
|
|
296
|
+
if (result.stdout.trim()) {
|
|
297
|
+
details.push(`stdout:\n${result.stdout.trim()}`);
|
|
298
|
+
}
|
|
299
|
+
return details.join("\n");
|
|
300
|
+
}
|
|
301
|
+
export async function executePromptTool(input, dependencies = {}, options = {}) {
|
|
302
|
+
const runner = dependencies.runner ?? runGeminiPrompt;
|
|
303
|
+
const validatedInput = executePromptInputSchema.parse(input);
|
|
304
|
+
const approvalMode = validatedInput.approvalMode;
|
|
305
|
+
const cwd = await resolveWorkingDirectory(validatedInput.cwd);
|
|
306
|
+
const runnerInput = {
|
|
307
|
+
prompt: validatedInput.prompt,
|
|
308
|
+
...(validatedInput.model ? { model: validatedInput.model } : {}),
|
|
309
|
+
...(cwd ? { cwd } : {}),
|
|
310
|
+
...(validatedInput.timeoutMs !== undefined
|
|
311
|
+
? { timeoutMs: validatedInput.timeoutMs }
|
|
312
|
+
: {}),
|
|
313
|
+
};
|
|
314
|
+
const mergedBaseArgs = [
|
|
315
|
+
...buildApprovalArgs(approvalMode),
|
|
316
|
+
...(options.baseArgs ?? []),
|
|
317
|
+
];
|
|
318
|
+
const mergedOptions = {
|
|
319
|
+
...options,
|
|
320
|
+
...(mergedBaseArgs.length > 0 ? { baseArgs: mergedBaseArgs } : {}),
|
|
321
|
+
};
|
|
322
|
+
const finalResult = await runner(runnerInput, mergedOptions);
|
|
323
|
+
return {
|
|
324
|
+
isError: !finalResult.ok,
|
|
325
|
+
content: [{ type: "text", text: renderToolText(finalResult) }],
|
|
326
|
+
structuredContent: {
|
|
327
|
+
...finalResult,
|
|
328
|
+
...(approvalMode ? { effectiveApprovalMode: approvalMode } : {}),
|
|
329
|
+
},
|
|
330
|
+
};
|
|
331
|
+
}
|
|
332
|
+
export async function executeTaskTool(input, dependencies = {}, options = {}) {
|
|
333
|
+
const validatedInput = executeTaskInputSchema.parse(input);
|
|
334
|
+
const approvalMode = inferTaskApprovalMode(validatedInput);
|
|
335
|
+
const prompt = buildTaskPrompt(validatedInput);
|
|
336
|
+
const result = await executePromptTool({
|
|
337
|
+
prompt,
|
|
338
|
+
...(validatedInput.model ? { model: validatedInput.model } : {}),
|
|
339
|
+
...(validatedInput.cwd ? { cwd: validatedInput.cwd } : {}),
|
|
340
|
+
...(validatedInput.timeoutMs !== undefined
|
|
341
|
+
? { timeoutMs: validatedInput.timeoutMs }
|
|
342
|
+
: {}),
|
|
343
|
+
...(approvalMode ? { approvalMode } : {}),
|
|
344
|
+
}, dependencies, options);
|
|
345
|
+
const structuredContent = result.structuredContent;
|
|
346
|
+
const answer = structuredContent.finalText;
|
|
347
|
+
return {
|
|
348
|
+
isError: result.isError,
|
|
349
|
+
content: [
|
|
350
|
+
{ type: "text", text: result.content[0]?.text ?? answer },
|
|
351
|
+
],
|
|
352
|
+
structuredContent: {
|
|
353
|
+
answer,
|
|
354
|
+
ok: structuredContent.ok,
|
|
355
|
+
stdout: structuredContent.stdout,
|
|
356
|
+
stderr: structuredContent.stderr,
|
|
357
|
+
exitCode: structuredContent.exitCode,
|
|
358
|
+
signal: structuredContent.signal,
|
|
359
|
+
elapsedMs: structuredContent.elapsedMs,
|
|
360
|
+
timedOut: structuredContent.timedOut,
|
|
361
|
+
aborted: structuredContent.aborted,
|
|
362
|
+
command: structuredContent.command,
|
|
363
|
+
args: structuredContent.args,
|
|
364
|
+
...(structuredContent.effectiveApprovalMode
|
|
365
|
+
? { effectiveApprovalMode: structuredContent.effectiveApprovalMode }
|
|
366
|
+
: {}),
|
|
367
|
+
...(structuredContent.workingDirectory
|
|
368
|
+
? { workingDirectory: structuredContent.workingDirectory }
|
|
369
|
+
: {}),
|
|
370
|
+
...(structuredContent.errorMessage
|
|
371
|
+
? { errorMessage: structuredContent.errorMessage }
|
|
372
|
+
: {}),
|
|
373
|
+
},
|
|
374
|
+
};
|
|
375
|
+
}
|
|
376
|
+
export async function inspectGeminiCliTool(input, dependencies = {}, options = {}) {
|
|
377
|
+
const validatedInput = inspectGeminiCliInputSchema.parse(input);
|
|
378
|
+
const commandRunner = dependencies.commandRunner;
|
|
379
|
+
const inspection = await inspectGeminiCli(validatedInput, commandRunner, options);
|
|
380
|
+
const summaryLines = [
|
|
381
|
+
`Gemini CLI ${inspection.version}`,
|
|
382
|
+
`commands: ${inspection.commands.length}`,
|
|
383
|
+
`extensions: ${inspection.extensions.length}`,
|
|
384
|
+
`skills: ${inspection.skills.length}`,
|
|
385
|
+
`mcpServers: ${inspection.mcpServers.length}`,
|
|
386
|
+
];
|
|
387
|
+
if (inspection.modelReportedTools) {
|
|
388
|
+
summaryLines.push("modelReportedTools: available");
|
|
389
|
+
}
|
|
390
|
+
if (inspection.notes.length > 0) {
|
|
391
|
+
summaryLines.push(`notes: ${inspection.notes.join(" | ")}`);
|
|
392
|
+
}
|
|
393
|
+
return {
|
|
394
|
+
isError: false,
|
|
395
|
+
content: [{ type: "text", text: summaryLines.join("\n") }],
|
|
396
|
+
structuredContent: inspection,
|
|
397
|
+
};
|
|
398
|
+
}
|
|
399
|
+
export async function executeImageTaskTool(input, dependencies = {}, options = {}) {
|
|
400
|
+
const runner = dependencies.runner ?? runGeminiPrompt;
|
|
401
|
+
const validatedInput = executeImageTaskInputSchema.parse(input);
|
|
402
|
+
const cwd = await resolveWorkingDirectory(validatedInput.cwd);
|
|
403
|
+
const approvalMode = validatedInput.approvalMode ?? "yolo";
|
|
404
|
+
const prompt = buildNanobananaPrompt(validatedInput);
|
|
405
|
+
const result = await runner({
|
|
406
|
+
prompt,
|
|
407
|
+
...(cwd ? { cwd } : {}),
|
|
408
|
+
...(validatedInput.timeoutMs !== undefined
|
|
409
|
+
? { timeoutMs: validatedInput.timeoutMs }
|
|
410
|
+
: {}),
|
|
411
|
+
}, {
|
|
412
|
+
...options,
|
|
413
|
+
baseArgs: [
|
|
414
|
+
"-e",
|
|
415
|
+
"nanobanana",
|
|
416
|
+
...buildApprovalArgs(approvalMode),
|
|
417
|
+
"--output-format",
|
|
418
|
+
"json",
|
|
419
|
+
...(options.baseArgs ?? []),
|
|
420
|
+
],
|
|
421
|
+
});
|
|
422
|
+
let responseText = result.finalText;
|
|
423
|
+
try {
|
|
424
|
+
const payload = JSON.parse(result.stdout);
|
|
425
|
+
if (payload.response?.trim()) {
|
|
426
|
+
responseText = payload.response.trim();
|
|
427
|
+
}
|
|
428
|
+
}
|
|
429
|
+
catch {
|
|
430
|
+
// Keep raw final text when Gemini did not emit JSON payload.
|
|
431
|
+
}
|
|
432
|
+
const imagePaths = extractImagePaths(responseText);
|
|
433
|
+
return {
|
|
434
|
+
isError: !result.ok,
|
|
435
|
+
content: [{ type: "text", text: responseText }],
|
|
436
|
+
structuredContent: {
|
|
437
|
+
ok: result.ok,
|
|
438
|
+
responseText,
|
|
439
|
+
imagePaths,
|
|
440
|
+
...(imagePaths[0] ? { primaryImagePath: imagePaths[0] } : {}),
|
|
441
|
+
stdout: result.stdout,
|
|
442
|
+
stderr: result.stderr,
|
|
443
|
+
exitCode: result.exitCode,
|
|
444
|
+
signal: result.signal,
|
|
445
|
+
elapsedMs: result.elapsedMs,
|
|
446
|
+
timedOut: result.timedOut,
|
|
447
|
+
aborted: result.aborted,
|
|
448
|
+
command: result.command,
|
|
449
|
+
args: result.args,
|
|
450
|
+
effectiveApprovalMode: approvalMode,
|
|
451
|
+
...(result.workingDirectory
|
|
452
|
+
? { workingDirectory: result.workingDirectory }
|
|
453
|
+
: {}),
|
|
454
|
+
...(result.errorMessage ? { errorMessage: result.errorMessage } : {}),
|
|
455
|
+
},
|
|
456
|
+
};
|
|
457
|
+
}
|
|
458
|
+
export function registerGeminiTools(server, dependencies = {}) {
|
|
459
|
+
server.registerTool("executeImageTask", {
|
|
460
|
+
title: "Execute Image Task",
|
|
461
|
+
description: "Uses the nanobanana extension to generate images and returns saved image paths plus execution metadata.",
|
|
462
|
+
inputSchema: executeImageTaskInputSchema,
|
|
463
|
+
outputSchema: executeImageTaskOutputSchema,
|
|
464
|
+
}, async (input, context) => {
|
|
465
|
+
return await executeImageTaskTool(input, dependencies, {
|
|
466
|
+
signal: context.signal,
|
|
467
|
+
});
|
|
468
|
+
});
|
|
469
|
+
server.registerTool("inspectGeminiCli", {
|
|
470
|
+
title: "Inspect Gemini CLI",
|
|
471
|
+
description: "Lists the currently available Gemini CLI commands, extensions, skills, configured MCP servers, and an optional model-reported tool summary.",
|
|
472
|
+
inputSchema: inspectGeminiCliInputSchema,
|
|
473
|
+
outputSchema: inspectGeminiCliOutputSchema,
|
|
474
|
+
}, async (input, context) => {
|
|
475
|
+
return await inspectGeminiCliTool(input, dependencies, {
|
|
476
|
+
signal: context.signal,
|
|
477
|
+
});
|
|
478
|
+
});
|
|
479
|
+
server.registerTool("executeTask", {
|
|
480
|
+
title: "Execute Delegated Task",
|
|
481
|
+
description: "AI-friendly task interface. Accepts a task description and returns a direct, meaningful final answer plus execution metadata.",
|
|
482
|
+
inputSchema: executeTaskInputSchema,
|
|
483
|
+
outputSchema: executeTaskOutputSchema,
|
|
484
|
+
}, async (input, context) => {
|
|
485
|
+
return await executeTaskTool(input, dependencies, {
|
|
486
|
+
signal: context.signal,
|
|
487
|
+
});
|
|
488
|
+
});
|
|
489
|
+
server.registerTool("executePrompt", {
|
|
490
|
+
title: "Execute Gemini Prompt",
|
|
491
|
+
description: "Runs a non-interactive prompt through the locally installed Gemini CLI and returns the final result plus execution metadata.",
|
|
492
|
+
inputSchema: executePromptInputSchema,
|
|
493
|
+
outputSchema: executePromptOutputSchema,
|
|
494
|
+
}, async (input, context) => {
|
|
495
|
+
return await executePromptTool(input, dependencies, {
|
|
496
|
+
signal: context.signal,
|
|
497
|
+
});
|
|
498
|
+
});
|
|
499
|
+
}
|
|
500
|
+
//# sourceMappingURL=tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"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"}
|
package/build/server.js
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
2
|
+
import { registerGeminiTools, } from "./mcp/tools.js";
|
|
3
|
+
import { SERVER_NAME, SERVER_VERSION } from "./types.js";
|
|
4
|
+
export function createServer(dependencies = {}) {
|
|
5
|
+
const server = new McpServer({
|
|
6
|
+
name: SERVER_NAME,
|
|
7
|
+
version: SERVER_VERSION,
|
|
8
|
+
});
|
|
9
|
+
registerGeminiTools(server, dependencies);
|
|
10
|
+
return server;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EACL,mBAAmB,GAEpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEzD,MAAM,UAAU,YAAY,CAAC,eAA0C,EAAE;IACvE,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;QAC3B,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,cAAc;KACxB,CAAC,CAAC;IAEH,mBAAmB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAE1C,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
package/build/types.d.ts
ADDED
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
export declare const SERVER_NAME = "gemini-cli-mcp";
|
|
2
|
+
export declare const SERVER_VERSION = "0.1.0";
|
|
3
|
+
export type GeminiApprovalMode = "default" | "auto_edit" | "yolo" | "plan";
|
|
4
|
+
export interface ExecutePromptInput {
|
|
5
|
+
prompt: string;
|
|
6
|
+
model?: string;
|
|
7
|
+
cwd?: string;
|
|
8
|
+
timeoutMs?: number;
|
|
9
|
+
}
|
|
10
|
+
export interface ExecuteTaskInput {
|
|
11
|
+
task: string;
|
|
12
|
+
context?: string;
|
|
13
|
+
expectedOutput?: string;
|
|
14
|
+
model?: string;
|
|
15
|
+
cwd?: string;
|
|
16
|
+
timeoutMs?: number;
|
|
17
|
+
approvalMode?: GeminiApprovalMode;
|
|
18
|
+
}
|
|
19
|
+
export interface GeminiCommandInput {
|
|
20
|
+
args: string[];
|
|
21
|
+
cwd?: string;
|
|
22
|
+
timeoutMs?: number;
|
|
23
|
+
}
|
|
24
|
+
export interface GeminiExecutionResult {
|
|
25
|
+
[key: string]: unknown;
|
|
26
|
+
ok: boolean;
|
|
27
|
+
finalText: string;
|
|
28
|
+
stdout: string;
|
|
29
|
+
stderr: string;
|
|
30
|
+
exitCode: number | null;
|
|
31
|
+
signal: NodeJS.Signals | null;
|
|
32
|
+
elapsedMs: number;
|
|
33
|
+
timedOut: boolean;
|
|
34
|
+
aborted: boolean;
|
|
35
|
+
command: string;
|
|
36
|
+
args: string[];
|
|
37
|
+
workingDirectory?: string;
|
|
38
|
+
errorMessage?: string;
|
|
39
|
+
}
|
|
40
|
+
export interface GeminiRunnerOptions {
|
|
41
|
+
command?: string;
|
|
42
|
+
baseArgs?: string[];
|
|
43
|
+
env?: NodeJS.ProcessEnv;
|
|
44
|
+
signal?: AbortSignal;
|
|
45
|
+
}
|
|
46
|
+
export interface GeminiCliCommandInfo {
|
|
47
|
+
command: string;
|
|
48
|
+
description: string;
|
|
49
|
+
}
|
|
50
|
+
export interface GeminiCliExtensionInfo {
|
|
51
|
+
name: string;
|
|
52
|
+
version: string;
|
|
53
|
+
path?: string;
|
|
54
|
+
source?: string;
|
|
55
|
+
enabledUser?: boolean;
|
|
56
|
+
enabledWorkspace?: boolean;
|
|
57
|
+
mcpServers?: string[];
|
|
58
|
+
}
|
|
59
|
+
export interface GeminiCliSkillInfo {
|
|
60
|
+
name: string;
|
|
61
|
+
enabled: boolean;
|
|
62
|
+
builtIn: boolean;
|
|
63
|
+
description?: string;
|
|
64
|
+
location?: string;
|
|
65
|
+
}
|
|
66
|
+
export interface GeminiCliMcpServerInfo {
|
|
67
|
+
name: string;
|
|
68
|
+
target: string;
|
|
69
|
+
transport: string;
|
|
70
|
+
status: string;
|
|
71
|
+
}
|
|
72
|
+
export interface GeminiCliModelReportedSummary {
|
|
73
|
+
builtInTools: string[];
|
|
74
|
+
extensions: string[];
|
|
75
|
+
skills: string[];
|
|
76
|
+
mcpServers: string[];
|
|
77
|
+
}
|
|
78
|
+
export interface GeminiCliInspectionResult {
|
|
79
|
+
[key: string]: unknown;
|
|
80
|
+
version: string;
|
|
81
|
+
commands: GeminiCliCommandInfo[];
|
|
82
|
+
extensions: GeminiCliExtensionInfo[];
|
|
83
|
+
skills: GeminiCliSkillInfo[];
|
|
84
|
+
mcpServers: GeminiCliMcpServerInfo[];
|
|
85
|
+
modelReportedTools?: string;
|
|
86
|
+
modelReportedSummary?: GeminiCliModelReportedSummary;
|
|
87
|
+
notes: string[];
|
|
88
|
+
raw: {
|
|
89
|
+
help: string;
|
|
90
|
+
extensions: string;
|
|
91
|
+
skills: string;
|
|
92
|
+
mcpServers: string;
|
|
93
|
+
modelReportedTools?: string;
|
|
94
|
+
};
|
|
95
|
+
}
|
package/build/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,WAAW,GAAG,gBAAgB,CAAC;AAC5C,MAAM,CAAC,MAAM,cAAc,GAAG,OAAO,CAAC"}
|