@houtini/gemini-mcp 1.4.2 → 2.2.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/README.md +314 -784
- package/claude_desktop_config_example.json +1 -0
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +8 -4
- package/dist/config/index.js.map +1 -1
- package/dist/config/types.d.ts +5 -0
- package/dist/config/types.d.ts.map +1 -1
- package/dist/image-viewer/image-viewer-app.html +180 -0
- package/dist/image-viewer/src/ui/image-viewer.html +324 -0
- package/dist/index-new.d.ts +3 -0
- package/dist/index-new.d.ts.map +1 -0
- package/dist/index-new.js +7 -0
- package/dist/index-new.js.map +1 -0
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +70 -172
- package/dist/index.js.map +1 -1
- package/dist/landing-page-viewer/src/ui/landing-page-viewer.html +330 -0
- package/dist/services/gemini/export.d.ts +5 -0
- package/dist/services/gemini/export.d.ts.map +1 -0
- package/dist/services/gemini/export.js +5 -0
- package/dist/services/gemini/export.js.map +1 -0
- package/dist/services/gemini/image-service.d.ts +45 -0
- package/dist/services/gemini/image-service.d.ts.map +1 -0
- package/dist/services/gemini/image-service.js +248 -0
- package/dist/services/gemini/image-service.js.map +1 -0
- package/dist/services/gemini/index.d.ts +7 -2
- package/dist/services/gemini/index.d.ts.map +1 -1
- package/dist/services/gemini/index.js +132 -56
- package/dist/services/gemini/index.js.map +1 -1
- package/dist/services/gemini/types.d.ts +32 -0
- package/dist/services/gemini/types.d.ts.map +1 -1
- package/dist/services/gemini/video-service.d.ts +58 -0
- package/dist/services/gemini/video-service.d.ts.map +1 -0
- package/dist/services/gemini/video-service.js +325 -0
- package/dist/services/gemini/video-service.js.map +1 -0
- package/dist/services/media-server.d.ts +28 -0
- package/dist/services/media-server.d.ts.map +1 -0
- package/dist/services/media-server.js +195 -0
- package/dist/services/media-server.js.map +1 -0
- package/dist/svg-viewer/src/ui/svg-viewer.html +325 -0
- package/dist/tools/gemini-chat.d.ts.map +1 -1
- package/dist/tools/gemini-chat.js +7 -1
- package/dist/tools/gemini-chat.js.map +1 -1
- package/dist/tools/gemini-deep-research.d.ts +1 -2
- package/dist/tools/gemini-deep-research.d.ts.map +1 -1
- package/dist/tools/gemini-deep-research.js +11 -51
- package/dist/tools/gemini-deep-research.js.map +1 -1
- package/dist/tools/gemini-help.d.ts +3 -0
- package/dist/tools/gemini-help.d.ts.map +1 -0
- package/dist/tools/gemini-help.js +534 -0
- package/dist/tools/gemini-help.js.map +1 -0
- package/dist/tools/gemini-prompt-assistant.d.ts +20 -0
- package/dist/tools/gemini-prompt-assistant.d.ts.map +1 -0
- package/dist/tools/gemini-prompt-assistant.js +129 -0
- package/dist/tools/gemini-prompt-assistant.js.map +1 -0
- package/dist/tools/generate-landing-page.d.ts +15 -0
- package/dist/tools/generate-landing-page.d.ts.map +1 -0
- package/dist/tools/generate-landing-page.js +66 -0
- package/dist/tools/generate-landing-page.js.map +1 -0
- package/dist/tools/generate-svg.d.ts +14 -0
- package/dist/tools/generate-svg.d.ts.map +1 -0
- package/dist/tools/generate-svg.js +106 -0
- package/dist/tools/generate-svg.js.map +1 -0
- package/dist/tools/generate-video.d.ts +24 -0
- package/dist/tools/generate-video.d.ts.map +1 -0
- package/dist/tools/generate-video.js +163 -0
- package/dist/tools/generate-video.js.map +1 -0
- package/dist/tools/image-prompt-assistant.d.ts +3 -0
- package/dist/tools/image-prompt-assistant.d.ts.map +1 -0
- package/dist/tools/image-prompt-assistant.js +790 -0
- package/dist/tools/image-prompt-assistant.js.map +1 -0
- package/dist/tools/load-image-from-path.d.ts +11 -0
- package/dist/tools/load-image-from-path.d.ts.map +1 -0
- package/dist/tools/load-image-from-path.js +100 -0
- package/dist/tools/load-image-from-path.js.map +1 -0
- package/dist/tools/prompt-library/charts.d.ts +325 -0
- package/dist/tools/prompt-library/charts.d.ts.map +1 -0
- package/dist/tools/prompt-library/charts.js +384 -0
- package/dist/tools/prompt-library/charts.js.map +1 -0
- package/dist/tools/prompt-library/index.d.ts +8 -0
- package/dist/tools/prompt-library/index.d.ts.map +1 -0
- package/dist/tools/prompt-library/index.js +10 -0
- package/dist/tools/prompt-library/index.js.map +1 -0
- package/dist/tools/register-analyze-image.d.ts +3 -0
- package/dist/tools/register-analyze-image.d.ts.map +1 -0
- package/dist/tools/register-analyze-image.js +67 -0
- package/dist/tools/register-analyze-image.js.map +1 -0
- package/dist/tools/register-chat.d.ts +3 -0
- package/dist/tools/register-chat.d.ts.map +1 -0
- package/dist/tools/register-chat.js +71 -0
- package/dist/tools/register-chat.js.map +1 -0
- package/dist/tools/register-deep-research.d.ts +3 -0
- package/dist/tools/register-deep-research.d.ts.map +1 -0
- package/dist/tools/register-deep-research.js +59 -0
- package/dist/tools/register-deep-research.js.map +1 -0
- package/dist/tools/register-describe-image.d.ts +3 -0
- package/dist/tools/register-describe-image.d.ts.map +1 -0
- package/dist/tools/register-describe-image.js +59 -0
- package/dist/tools/register-describe-image.js.map +1 -0
- package/dist/tools/register-image-gen.d.ts +3 -0
- package/dist/tools/register-image-gen.d.ts.map +1 -0
- package/dist/tools/register-image-gen.js +235 -0
- package/dist/tools/register-image-gen.js.map +1 -0
- package/dist/tools/register-landing-page.d.ts +3 -0
- package/dist/tools/register-landing-page.d.ts.map +1 -0
- package/dist/tools/register-landing-page.js +79 -0
- package/dist/tools/register-landing-page.js.map +1 -0
- package/dist/tools/register-list-models.d.ts +3 -0
- package/dist/tools/register-list-models.d.ts.map +1 -0
- package/dist/tools/register-list-models.js +33 -0
- package/dist/tools/register-list-models.js.map +1 -0
- package/dist/tools/register-load-image.d.ts +3 -0
- package/dist/tools/register-load-image.d.ts.map +1 -0
- package/dist/tools/register-load-image.js +66 -0
- package/dist/tools/register-load-image.js.map +1 -0
- package/dist/tools/register-svg.d.ts +3 -0
- package/dist/tools/register-svg.d.ts.map +1 -0
- package/dist/tools/register-svg.js +84 -0
- package/dist/tools/register-svg.js.map +1 -0
- package/dist/tools/register-video.d.ts +3 -0
- package/dist/tools/register-video.d.ts.map +1 -0
- package/dist/tools/register-video.js +118 -0
- package/dist/tools/register-video.js.map +1 -0
- package/dist/tools/register-viewers.d.ts +8 -0
- package/dist/tools/register-viewers.d.ts.map +1 -0
- package/dist/tools/register-viewers.js +89 -0
- package/dist/tools/register-viewers.js.map +1 -0
- package/dist/tools/schemas.d.ts +33 -0
- package/dist/tools/schemas.d.ts.map +1 -0
- package/dist/tools/schemas.js +39 -0
- package/dist/tools/schemas.js.map +1 -0
- package/dist/tools/types.d.ts +12 -0
- package/dist/tools/types.d.ts.map +1 -0
- package/dist/tools/types.js +2 -0
- package/dist/tools/types.js.map +1 -0
- package/dist/ui/image-viewer.d.ts +2 -0
- package/dist/ui/image-viewer.d.ts.map +1 -0
- package/dist/ui/image-viewer.js +42 -0
- package/dist/ui/image-viewer.js.map +1 -0
- package/dist/utils/chart-design-system.d.ts +92 -0
- package/dist/utils/chart-design-system.d.ts.map +1 -0
- package/dist/utils/chart-design-system.js +235 -0
- package/dist/utils/chart-design-system.js.map +1 -0
- package/dist/utils/image-compress.d.ts +9 -0
- package/dist/utils/image-compress.d.ts.map +1 -0
- package/dist/utils/image-compress.js +43 -0
- package/dist/utils/image-compress.js.map +1 -0
- package/dist/utils/image-utils.d.ts +9 -0
- package/dist/utils/image-utils.d.ts.map +1 -0
- package/dist/utils/image-utils.js +257 -0
- package/dist/utils/image-utils.js.map +1 -0
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +45 -11
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/resolve-images.d.ts +29 -0
- package/dist/utils/resolve-images.d.ts.map +1 -0
- package/dist/utils/resolve-images.js +56 -0
- package/dist/utils/resolve-images.js.map +1 -0
- package/dist/utils/tool-wrapper.d.ts +13 -0
- package/dist/utils/tool-wrapper.d.ts.map +1 -0
- package/dist/utils/tool-wrapper.js +22 -0
- package/dist/utils/tool-wrapper.js.map +1 -0
- package/dist/utils/video-utils.d.ts +16 -0
- package/dist/utils/video-utils.d.ts.map +1 -0
- package/dist/utils/video-utils.js +319 -0
- package/dist/utils/video-utils.js.map +1 -0
- package/dist/video-viewer/src/ui/video-viewer.html +310 -0
- package/houtini-logo.jpg +0 -0
- package/package.json +24 -8
- package/server.json +30 -0
package/README.md
CHANGED
|
@@ -1,784 +1,314 @@
|
|
|
1
|
-
#
|
|
2
|
-
|
|
3
|
-
[](https://www.npmjs.com/package/@houtini/gemini-mcp)
|
|
4
|
-
[](https://registry.modelcontextprotocol.io)
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
npx
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
npx
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
```
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
```
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
```
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
**
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
###
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
3.
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
Current stock prices for major tech companies
|
|
316
|
-
Today's weather forecast for London
|
|
317
|
-
```
|
|
318
|
-
|
|
319
|
-
**Recent Developments**
|
|
320
|
-
```
|
|
321
|
-
New software releases this week
|
|
322
|
-
Latest scientific discoveries in medicine
|
|
323
|
-
```
|
|
324
|
-
|
|
325
|
-
**Fact Checking**
|
|
326
|
-
```
|
|
327
|
-
Verify recent statements about climate change
|
|
328
|
-
Check the latest statistics on global internet usage
|
|
329
|
-
```
|
|
330
|
-
|
|
331
|
-
### Controlling Grounding
|
|
332
|
-
|
|
333
|
-
Grounding is enabled by default. Disable it for purely creative or hypothetical responses:
|
|
334
|
-
|
|
335
|
-
```
|
|
336
|
-
Use Gemini without web search to write a fictional story about dragons in space.
|
|
337
|
-
```
|
|
338
|
-
|
|
339
|
-
For API calls, use the `grounding` parameter:
|
|
340
|
-
|
|
341
|
-
```json
|
|
342
|
-
{
|
|
343
|
-
"message": "Write a creative story about time travel",
|
|
344
|
-
"grounding": false
|
|
345
|
-
}
|
|
346
|
-
```
|
|
347
|
-
|
|
348
|
-
### Understanding Grounded Responses
|
|
349
|
-
|
|
350
|
-
Grounded responses include source citations and search transparency:
|
|
351
|
-
|
|
352
|
-
```
|
|
353
|
-
Sources: (https://example.com/article1) (https://example.com/article2)
|
|
354
|
-
Search queries used: latest AI developments 2025, OpenAI GPT-5 release
|
|
355
|
-
```
|
|
356
|
-
|
|
357
|
-
What I've found: grounding dramatically reduces hallucinations for factual queries whilst maintaining creative flexibility when you need it.
|
|
358
|
-
|
|
359
|
-
## Deep Research
|
|
360
|
-
|
|
361
|
-
The server includes deep research capability that performs iterative multi-step research on complex topics. This synthesises comprehensive reports with proper citations.
|
|
362
|
-
|
|
363
|
-
### How It Works
|
|
364
|
-
|
|
365
|
-
Deep research conducts multiple research iterations:
|
|
366
|
-
|
|
367
|
-
1. Initial broad exploration
|
|
368
|
-
2. Gap analysis identifying what's missing
|
|
369
|
-
3. Targeted research into specific areas
|
|
370
|
-
4. Synthesis into comprehensive report
|
|
371
|
-
5. Iteration until thorough coverage
|
|
372
|
-
|
|
373
|
-
### Using Deep Research
|
|
374
|
-
|
|
375
|
-
```
|
|
376
|
-
Use Gemini deep research to investigate the impact of quantum computing on cybersecurity.
|
|
377
|
-
```
|
|
378
|
-
|
|
379
|
-
With parameters:
|
|
380
|
-
```
|
|
381
|
-
Use Gemini deep research with 7 iterations to create a comprehensive report on renewable energy trends, focusing on solar and wind power adoption rates.
|
|
382
|
-
```
|
|
383
|
-
|
|
384
|
-
### Research Parameters
|
|
385
|
-
|
|
386
|
-
| Parameter | Type | Default | What It Does |
|
|
387
|
-
|-----------|------|---------|--------------|
|
|
388
|
-
| `research_question` | string | *required* | The topic to investigate |
|
|
389
|
-
| `max_iterations` | integer | 5 | Research cycles (3-10) |
|
|
390
|
-
| `focus_areas` | array | - | Specific aspects to emphasise |
|
|
391
|
-
| `model` | string | *latest stable* | Which model to use |
|
|
392
|
-
|
|
393
|
-
### Best For
|
|
394
|
-
|
|
395
|
-
- Academic research and literature reviews
|
|
396
|
-
- Market analysis and competitive intelligence
|
|
397
|
-
- Technology trend analysis
|
|
398
|
-
- Policy research and impact assessments
|
|
399
|
-
- Multi-faceted business problems
|
|
400
|
-
|
|
401
|
-
### Configuring Iterations by Environment
|
|
402
|
-
|
|
403
|
-
Different AI environments have different timeout tolerances:
|
|
404
|
-
|
|
405
|
-
**Claude Desktop (3-5 iterations recommended)**
|
|
406
|
-
- Timeout: ~4 minutes
|
|
407
|
-
- Safe maximum: 5 iterations
|
|
408
|
-
- Use 3-4 for most tasks
|
|
409
|
-
|
|
410
|
-
**Agent SDK / IDEs (7-10 iterations recommended)**
|
|
411
|
-
- Timeout: 10+ minutes
|
|
412
|
-
- Maximum: 10 iterations
|
|
413
|
-
- Use 7-10 for comprehensive research
|
|
414
|
-
|
|
415
|
-
**AI Platforms like Cline, Roo-Cline (7-10 iterations)**
|
|
416
|
-
- Similar to Agent SDK
|
|
417
|
-
- Can handle longer processes
|
|
418
|
-
|
|
419
|
-
### Handling Timeouts
|
|
420
|
-
|
|
421
|
-
If you hit timeout or thread limits:
|
|
422
|
-
|
|
423
|
-
1. Reduce iterations (start with 3)
|
|
424
|
-
2. Narrow focus using `focus_areas` parameter
|
|
425
|
-
3. Split complex topics into smaller research tasks
|
|
426
|
-
4. Check which environment you're using
|
|
427
|
-
|
|
428
|
-
Example with focused research:
|
|
429
|
-
```
|
|
430
|
-
Use Gemini deep research with 3 iterations focusing on cost analysis and market adoption to examine solar panel technology trends.
|
|
431
|
-
```
|
|
432
|
-
|
|
433
|
-
Deep research takes several minutes. It's designed for comprehensive analysis rather than quick answers.
|
|
434
|
-
|
|
435
|
-
## API Reference
|
|
436
|
-
|
|
437
|
-
### gemini_chat
|
|
438
|
-
|
|
439
|
-
Chat with Gemini models.
|
|
440
|
-
|
|
441
|
-
**Parameters:**
|
|
442
|
-
|
|
443
|
-
| Parameter | Type | Required | Default | What It Does |
|
|
444
|
-
|-----------|------|----------|---------|--------------|
|
|
445
|
-
| `message` | string | Yes | - | The message to send |
|
|
446
|
-
| `model` | string | No | *Latest stable* | Which model to use |
|
|
447
|
-
| `temperature` | number | No | 0.7 | Randomness (0.0-1.0) |
|
|
448
|
-
| `max_tokens` | integer | No | 8192 | Maximum response length (1-32768) |
|
|
449
|
-
| `system_prompt` | string | No | - | System instruction |
|
|
450
|
-
| `grounding` | boolean | No | true | Enable Google Search |
|
|
451
|
-
|
|
452
|
-
**Example:**
|
|
453
|
-
```json
|
|
454
|
-
{
|
|
455
|
-
"message": "What are the latest developments in quantum computing?",
|
|
456
|
-
"model": "gemini-1.5-pro",
|
|
457
|
-
"temperature": 0.5,
|
|
458
|
-
"max_tokens": 1000,
|
|
459
|
-
"system_prompt": "You are a technology expert. Provide current information with sources.",
|
|
460
|
-
"grounding": true
|
|
461
|
-
}
|
|
462
|
-
```
|
|
463
|
-
|
|
464
|
-
### gemini_list_models
|
|
465
|
-
|
|
466
|
-
Retrieve information about discovered Gemini models.
|
|
467
|
-
|
|
468
|
-
**Parameters:** None required
|
|
469
|
-
|
|
470
|
-
**Example:**
|
|
471
|
-
```json
|
|
472
|
-
{}
|
|
473
|
-
```
|
|
474
|
-
|
|
475
|
-
**Response includes:**
|
|
476
|
-
- Model names and display names
|
|
477
|
-
- Descriptions of strengths
|
|
478
|
-
- Context window sizes from Google
|
|
479
|
-
- Recommended use cases
|
|
480
|
-
|
|
481
|
-
### gemini_deep_research
|
|
482
|
-
|
|
483
|
-
Conduct iterative multi-step research.
|
|
484
|
-
|
|
485
|
-
**Parameters:**
|
|
486
|
-
|
|
487
|
-
| Parameter | Type | Required | Default | What It Does |
|
|
488
|
-
|-----------|------|----------|---------|--------------|
|
|
489
|
-
| `research_question` | string | Yes | - | Topic to research |
|
|
490
|
-
| `max_iterations` | integer | No | 5 | Research cycles (3-10) |
|
|
491
|
-
| `focus_areas` | array | No | - | Specific areas to emphasise |
|
|
492
|
-
| `model` | string | No | *Latest stable* | Model to use |
|
|
493
|
-
|
|
494
|
-
**Example:**
|
|
495
|
-
```json
|
|
496
|
-
{
|
|
497
|
-
"research_question": "Impact of AI on healthcare diagnostics",
|
|
498
|
-
"max_iterations": 7,
|
|
499
|
-
"focus_areas": ["accuracy improvements", "cost implications", "regulatory challenges"]
|
|
500
|
-
}
|
|
501
|
-
```
|
|
502
|
-
|
|
503
|
-
### Available Models
|
|
504
|
-
|
|
505
|
-
Models are dynamically discovered from Google's API. Typical available models:
|
|
506
|
-
|
|
507
|
-
| Model | Best For | Description |
|
|
508
|
-
|-------|----------|-------------|
|
|
509
|
-
| **gemini-2.5-flash** | General use | Latest Flash - fast, versatile |
|
|
510
|
-
| **gemini-2.5-pro** | Complex reasoning | Latest Pro - advanced capabilities |
|
|
511
|
-
| **gemini-2.0-flash** | Speed-optimised | Gemini 2.0 Flash - efficient |
|
|
512
|
-
| **gemini-1.5-flash** | Quick responses | Gemini 1.5 Flash - fast |
|
|
513
|
-
| **gemini-1.5-pro** | Large context | 2M token context window |
|
|
514
|
-
|
|
515
|
-
Use `gemini_list_models` to see exact available models with current context limits.
|
|
516
|
-
|
|
517
|
-
## Development
|
|
518
|
-
|
|
519
|
-
### Building from Source
|
|
520
|
-
|
|
521
|
-
```bash
|
|
522
|
-
git clone https://github.com/houtini-ai/gemini-mcp.git
|
|
523
|
-
cd gemini-mcp
|
|
524
|
-
npm install
|
|
525
|
-
npm run build
|
|
526
|
-
npm run dev
|
|
527
|
-
```
|
|
528
|
-
|
|
529
|
-
### Scripts
|
|
530
|
-
|
|
531
|
-
| Command | What It Does |
|
|
532
|
-
|---------|--------------|
|
|
533
|
-
| `npm run build` | Compile TypeScript |
|
|
534
|
-
| `npm run dev` | Development mode with live reload |
|
|
535
|
-
| `npm start` | Run compiled server |
|
|
536
|
-
| `npm test` | Run tests |
|
|
537
|
-
| `npm run lint` | Check code style |
|
|
538
|
-
| `npm run lint:fix` | Fix linting issues |
|
|
539
|
-
|
|
540
|
-
### Project Structure
|
|
541
|
-
|
|
542
|
-
```
|
|
543
|
-
src/
|
|
544
|
-
├── config/ # Configuration management
|
|
545
|
-
├── services/ # Business logic
|
|
546
|
-
│ └── gemini/ # Gemini API integration
|
|
547
|
-
├── tools/ # MCP tool implementations
|
|
548
|
-
├── utils/ # Logger and error handling
|
|
549
|
-
├── cli.ts # CLI entry
|
|
550
|
-
└── index.ts # Main server
|
|
551
|
-
```
|
|
552
|
-
|
|
553
|
-
### Architecture
|
|
554
|
-
|
|
555
|
-
The server follows clean, layered architecture:
|
|
556
|
-
|
|
557
|
-
1. CLI Layer - Command-line interface
|
|
558
|
-
2. Server Layer - MCP protocol handling
|
|
559
|
-
3. Tools Layer - MCP tool implementations
|
|
560
|
-
4. Service Layer - Business logic and API integration
|
|
561
|
-
5. Utility Layer - Logging and error handling
|
|
562
|
-
|
|
563
|
-
## Troubleshooting
|
|
564
|
-
|
|
565
|
-
### "GEMINI_API_KEY environment variable not set"
|
|
566
|
-
|
|
567
|
-
Check your Claude Desktop configuration includes the API key in the `env` section.
|
|
568
|
-
|
|
569
|
-
### Server Not Appearing in Claude Desktop
|
|
570
|
-
|
|
571
|
-
1. Restart Claude Desktop after configuration changes
|
|
572
|
-
2. Verify config file path:
|
|
573
|
-
- Windows: `%APPDATA%\Claude\claude_desktop_config.json`
|
|
574
|
-
- macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`
|
|
575
|
-
3. Validate JSON syntax
|
|
576
|
-
4. Test your API key at [Google AI Studio](https://makersuite.google.com/app/apikey)
|
|
577
|
-
|
|
578
|
-
### "Module not found" with npx
|
|
579
|
-
|
|
580
|
-
```bash
|
|
581
|
-
# Clear npx cache
|
|
582
|
-
npx --yes @houtini/gemini-mcp
|
|
583
|
-
|
|
584
|
-
# Or install globally
|
|
585
|
-
npm install -g @houtini/gemini-mcp
|
|
586
|
-
```
|
|
587
|
-
|
|
588
|
-
### Node.js Version Issues
|
|
589
|
-
|
|
590
|
-
```bash
|
|
591
|
-
# Check version
|
|
592
|
-
node --version
|
|
593
|
-
|
|
594
|
-
# Should be v18.0.0 or higher
|
|
595
|
-
# Update from https://nodejs.org
|
|
596
|
-
```
|
|
597
|
-
|
|
598
|
-
### Debug Mode
|
|
599
|
-
|
|
600
|
-
Enable detailed logging:
|
|
601
|
-
|
|
602
|
-
```json
|
|
603
|
-
{
|
|
604
|
-
"mcpServers": {
|
|
605
|
-
"gemini": {
|
|
606
|
-
"command": "npx",
|
|
607
|
-
"args": ["@houtini/gemini-mcp"],
|
|
608
|
-
"env": {
|
|
609
|
-
"GEMINI_API_KEY": "your-api-key-here",
|
|
610
|
-
"LOG_LEVEL": "debug"
|
|
611
|
-
}
|
|
612
|
-
}
|
|
613
|
-
}
|
|
614
|
-
}
|
|
615
|
-
```
|
|
616
|
-
|
|
617
|
-
### Log Files
|
|
618
|
-
|
|
619
|
-
Logs are written to:
|
|
620
|
-
- Console output (Claude Desktop developer tools)
|
|
621
|
-
- `logs/combined.log` - All levels
|
|
622
|
-
- `logs/error.log` - Errors only
|
|
623
|
-
|
|
624
|
-
### Testing Your Setup
|
|
625
|
-
|
|
626
|
-
Test with these queries:
|
|
627
|
-
1. "Can you list the available Gemini models?"
|
|
628
|
-
2. "Use Gemini to explain photosynthesis."
|
|
629
|
-
3. "Use Gemini 1.5 Pro with temperature 0.9 to write a creative poem about coding."
|
|
630
|
-
|
|
631
|
-
### Performance Tuning
|
|
632
|
-
|
|
633
|
-
For better performance:
|
|
634
|
-
|
|
635
|
-
- Adjust token limits based on your use case
|
|
636
|
-
- Use appropriate models (Flash for speed, Pro for complexity)
|
|
637
|
-
- Monitor logs for rate limiting issues
|
|
638
|
-
- Set temperature values appropriately (0.7 balanced, 0.3 focused, 0.9 creative)
|
|
639
|
-
|
|
640
|
-
## Contributing
|
|
641
|
-
|
|
642
|
-
Contributions welcome. Follow these steps:
|
|
643
|
-
|
|
644
|
-
1. Fork the repository
|
|
645
|
-
2. Create a feature branch: `git checkout -b feature/amazing-feature`
|
|
646
|
-
3. Make your changes and add tests
|
|
647
|
-
4. Run tests: `npm test`
|
|
648
|
-
5. Lint: `npm run lint:fix`
|
|
649
|
-
6. Build: `npm run build`
|
|
650
|
-
7. Commit: `git commit -m 'Add amazing feature'`
|
|
651
|
-
8. Push: `git push origin feature/amazing-feature`
|
|
652
|
-
9. Open a Pull Request
|
|
653
|
-
|
|
654
|
-
### Development Guidelines
|
|
655
|
-
|
|
656
|
-
- Follow TypeScript best practices
|
|
657
|
-
- Add tests for new functionality
|
|
658
|
-
- Update documentation
|
|
659
|
-
- Use conventional commit messages
|
|
660
|
-
- Maintain backwards compatibility
|
|
661
|
-
|
|
662
|
-
## Technical Details
|
|
663
|
-
|
|
664
|
-
### Migration to MCP SDK 1.25.3
|
|
665
|
-
|
|
666
|
-
This server has been migrated to the latest MCP SDK (1.25.3) with ES modules support. Key technical changes:
|
|
667
|
-
|
|
668
|
-
**SDK Updates:**
|
|
669
|
-
- Migrated from `Server` class to `McpServer` API
|
|
670
|
-
- Tool registration uses `registerTool` with Zod validation
|
|
671
|
-
- ES modules throughout (`"type": "module"`)
|
|
672
|
-
- TypeScript configured for `nodenext` module resolution
|
|
673
|
-
|
|
674
|
-
**Compatibility:**
|
|
675
|
-
- Node.js 18+ (changed from 24+ for broader compatibility)
|
|
676
|
-
- All imports use `.js` extensions for ES module compliance
|
|
677
|
-
- Zod schemas for runtime type validation
|
|
678
|
-
- Modern MCP protocol implementation
|
|
679
|
-
|
|
680
|
-
**Build System:**
|
|
681
|
-
- TypeScript compiles to ES2022 modules
|
|
682
|
-
- Clean separation between business logic and MCP interface
|
|
683
|
-
- Preserved all Gemini API client functionality
|
|
684
|
-
|
|
685
|
-
What this means practically: the server now follows modern Node.js and MCP standards, which should prevent compatibility issues with future Claude Desktop updates whilst maintaining all existing functionality.
|
|
686
|
-
|
|
687
|
-
## Licence
|
|
688
|
-
|
|
689
|
-
This project is licensed under the Apache 2.0 Licence - see the [LICENSE](LICENSE) file for details.
|
|
690
|
-
|
|
691
|
-
## Disclaimer
|
|
692
|
-
|
|
693
|
-
**Use at Your Own Risk**: This software is provided "as is" without warranty. The authors accept no responsibility for damages, data loss, or other issues arising from use.
|
|
694
|
-
|
|
695
|
-
**Content Safety**: This server interfaces with Google's Gemini AI models. Whilst content safety settings are implemented, AI-generated content quality cannot be guaranteed. Users are responsible for reviewing AI output before use and ensuring compliance with applicable laws.
|
|
696
|
-
|
|
697
|
-
**API Key Security**: Your Google Gemini API key is sensitive. Keep it confidential, don't commit it to version control, rotate if exposed, and manage API usage costs.
|
|
698
|
-
|
|
699
|
-
**Data Privacy**: This server processes data through the Model Context Protocol. Avoid sending sensitive or confidential information. Review Google's privacy policy and implement appropriate data handling.
|
|
700
|
-
|
|
701
|
-
**Production Use**: Users deploying in production should conduct security audits, implement monitoring, have incident response procedures, and regularly update dependencies.
|
|
702
|
-
|
|
703
|
-
**Third-Party Services**: This software relies on external services (Google Gemini API, npm packages). Service availability, pricing, and functionality may change.
|
|
704
|
-
|
|
705
|
-
**No Professional Advice**: AI-generated content should not be considered professional advice (legal, medical, financial) without verification by qualified professionals.
|
|
706
|
-
|
|
707
|
-
By using this software, you acknowledge these terms and agree to use at your own risk.
|
|
708
|
-
|
|
709
|
-
## Support
|
|
710
|
-
|
|
711
|
-
- **GitHub Issues**: [Report bugs or request features](https://github.com/houtini-ai/gemini-mcp/issues)
|
|
712
|
-
- **GitHub Discussions**: [Ask questions or share ideas](https://github.com/houtini-ai/gemini-mcp/discussions)
|
|
713
|
-
|
|
714
|
-
## Changelog
|
|
715
|
-
|
|
716
|
-
### v1.3.2 - Node.js 18+ Compatibility & Modern SDK
|
|
717
|
-
|
|
718
|
-
**Breaking Changes:** None (all tool interfaces preserved)
|
|
719
|
-
|
|
720
|
-
**Technical Updates:**
|
|
721
|
-
- Updated to MCP SDK 1.25.3 (from 1.19.1)
|
|
722
|
-
- Migrated to ES modules (`"type": "module"`)
|
|
723
|
-
- Changed Node.js requirement to >=18.0.0 (from >=24.0.0) for broader compatibility
|
|
724
|
-
- Migrated from `Server` to `McpServer` API
|
|
725
|
-
- Implemented Zod schema validation for all tools
|
|
726
|
-
- Updated TypeScript config to `nodenext` module resolution
|
|
727
|
-
|
|
728
|
-
**Fixes:**
|
|
729
|
-
- Resolved Node.js v24 ERR_MODULE_NOT_FOUND errors
|
|
730
|
-
- Fixed TypeScript compilation with DOM types for fetch API
|
|
731
|
-
- All imports now use `.js` extensions for ES module compliance
|
|
732
|
-
|
|
733
|
-
**What This Means:**
|
|
734
|
-
The server now works reliably with Node.js 18, 20, 22, and 24. All existing functionality preserved - this is purely a technical infrastructure update for better compatibility.
|
|
735
|
-
|
|
736
|
-
### v1.1.0 - Deep Research & Enhanced Discovery
|
|
737
|
-
|
|
738
|
-
**New Features:**
|
|
739
|
-
- Added deep research capability for iterative analysis
|
|
740
|
-
- Enhanced model discovery with better filtering
|
|
741
|
-
- Improved default model selection logic
|
|
742
|
-
- Better handling of experimental vs stable models
|
|
743
|
-
|
|
744
|
-
### v1.0.4 - Security & Dependencies
|
|
745
|
-
|
|
746
|
-
**Updates:**
|
|
747
|
-
- Updated @google/generative-ai to v0.24.1
|
|
748
|
-
- Updated @modelcontextprotocol/sdk to v1.19.1
|
|
749
|
-
- Changed safety settings to BLOCK_MEDIUM_AND_ABOVE
|
|
750
|
-
- Added comprehensive disclaimer
|
|
751
|
-
- Zero vulnerabilities in dependencies
|
|
752
|
-
|
|
753
|
-
### v1.0.3 - Enhanced Grounding
|
|
754
|
-
|
|
755
|
-
**Improvements:**
|
|
756
|
-
- Fixed grounding metadata field names
|
|
757
|
-
- Enhanced source citation processing
|
|
758
|
-
- Improved grounding reliability
|
|
759
|
-
- Better error handling for grounding
|
|
760
|
-
|
|
761
|
-
### v1.0.2 - Google Search Grounding
|
|
762
|
-
|
|
763
|
-
**New Features:**
|
|
764
|
-
- Added Google Search grounding (enabled by default)
|
|
765
|
-
- Real-time web search integration
|
|
766
|
-
- Source citations in responses
|
|
767
|
-
- Configurable grounding parameter
|
|
768
|
-
|
|
769
|
-
### v1.0.0 - Initial Release
|
|
770
|
-
|
|
771
|
-
**Core Features:**
|
|
772
|
-
- Complete TypeScript rewrite
|
|
773
|
-
- Professional modular architecture
|
|
774
|
-
- Comprehensive error handling
|
|
775
|
-
- Full MCP protocol compliance
|
|
776
|
-
- Multiple Gemini model support
|
|
777
|
-
- NPM package distribution
|
|
778
|
-
- Production-ready build system
|
|
779
|
-
|
|
780
|
-
---
|
|
781
|
-
|
|
782
|
-
**Built for the Model Context Protocol community**
|
|
783
|
-
|
|
784
|
-
For more about MCP, visit [modelcontextprotocol.io](https://modelcontextprotocol.io)
|
|
1
|
+
# @houtini/gemini-mcp
|
|
2
|
+
|
|
3
|
+
[](https://www.npmjs.com/package/@houtini/gemini-mcp)
|
|
4
|
+
[](https://registry.modelcontextprotocol.io)
|
|
5
|
+
|
|
6
|
+
**I've been running this MCP server in my Claude Desktop setup for several months, and it's one of the few I leave enabled permanently.** Not because Gemini replaces Claude -- it doesn't -- but because grounded search, deep research, image generation, and video are things Gemini does well. Having them as tools inside Claude beats switching between browser tabs.
|
|
7
|
+
|
|
8
|
+
Thirteen tools. One `npx` command.
|
|
9
|
+
|
|
10
|
+
### MCP App previews
|
|
11
|
+
|
|
12
|
+
Generated images and diagrams render inline in Claude Desktop with zoom controls, file paths, and prompt context:
|
|
13
|
+
|
|
14
|
+
| Image generation | SVG / diagram generation |
|
|
15
|
+
|:---:|:---:|
|
|
16
|
+
|  |  |
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## Get started in two minutes
|
|
21
|
+
|
|
22
|
+
**Step 1: Get a Gemini API key**
|
|
23
|
+
|
|
24
|
+
Go to [Google AI Studio](https://aistudio.google.com/apikey) and create one. The free tier covers most development use -- you'll hit rate limits on deep research if you're hammering it, but for day-to-day work it's fine.
|
|
25
|
+
|
|
26
|
+
**Step 2: Add to your Claude Desktop config**
|
|
27
|
+
|
|
28
|
+
Config file locations:
|
|
29
|
+
- Windows: `C:\Users\{username}\AppData\Roaming\Claude\claude_desktop_config.json`
|
|
30
|
+
- macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`
|
|
31
|
+
|
|
32
|
+
```json
|
|
33
|
+
{
|
|
34
|
+
"mcpServers": {
|
|
35
|
+
"gemini": {
|
|
36
|
+
"command": "npx",
|
|
37
|
+
"args": ["@houtini/gemini-mcp"],
|
|
38
|
+
"env": {
|
|
39
|
+
"GEMINI_API_KEY": "your-api-key-here"
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
**Step 3: Restart Claude Desktop**
|
|
47
|
+
|
|
48
|
+
That's it. The tools show up automatically. `npx` pulls the package on first run -- no separate install.
|
|
49
|
+
|
|
50
|
+
### Local build instead
|
|
51
|
+
|
|
52
|
+
For development, or if you'd rather not rely on npx:
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
git clone https://github.com/houtini-ai/gemini-mcp
|
|
56
|
+
cd gemini-mcp
|
|
57
|
+
npm install --include=dev
|
|
58
|
+
npm run build
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
Then point your config at the local build:
|
|
62
|
+
|
|
63
|
+
```json
|
|
64
|
+
{
|
|
65
|
+
"mcpServers": {
|
|
66
|
+
"gemini": {
|
|
67
|
+
"command": "node",
|
|
68
|
+
"args": ["C:/path/to/gemini-mcp/dist/index.js"],
|
|
69
|
+
"env": {
|
|
70
|
+
"GEMINI_API_KEY": "your-api-key-here"
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
---
|
|
78
|
+
|
|
79
|
+
## What it does
|
|
80
|
+
|
|
81
|
+
### Chat with Google Search grounding
|
|
82
|
+
|
|
83
|
+
```
|
|
84
|
+
Use gemini:gemini_chat to ask: "What changed in the MCP spec in the last month?"
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
Grounding is on by default. Gemini searches Google before answering, so you get current information rather than training data cutoff answers. Sources come back as markdown links.
|
|
88
|
+
|
|
89
|
+
For questions where you want reasoning over live search -- "explain this code" or similar -- set `grounding: false`.
|
|
90
|
+
|
|
91
|
+
Supports `thinking_level` on Gemini 3 models: `high` for maximum reasoning depth, `low` to keep it fast, `medium`/`minimal` on Gemini 3 Flash only.
|
|
92
|
+
|
|
93
|
+
### Deep research
|
|
94
|
+
|
|
95
|
+
```
|
|
96
|
+
Use gemini:gemini_deep_research with:
|
|
97
|
+
research_question="What are the current approaches to AI agent memory management?"
|
|
98
|
+
max_iterations=5
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
Runs multiple grounded search iterations, then synthesises a full report. Takes 2-5 minutes depending on complexity. Worth it for anything where you need comprehensive coverage rather than a quick answer.
|
|
102
|
+
|
|
103
|
+
Set `max_iterations` to 3-4 in Claude Desktop (4-minute tool timeout). In IDEs (Cursor, Windsurf, VS Code) or agent frameworks with longer timeout tolerance, 7-10 iterations produces noticeably better synthesis. Pass `focus_areas` as an array to steer toward specific angles.
|
|
104
|
+
|
|
105
|
+
### Image generation with search grounding
|
|
106
|
+
|
|
107
|
+
```
|
|
108
|
+
Use gemini:generate_image with:
|
|
109
|
+
prompt="Stock price chart showing Apple (AAPL) closing prices for the last 5 trading days"
|
|
110
|
+
use_search=true
|
|
111
|
+
aspectRatio="16:9"
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
Default model is `gemini-3-pro-image-preview` (Nano Banana Pro). Also supports `gemini-2.5-flash-image` for faster generation.
|
|
115
|
+
|
|
116
|
+
When `use_search=true`, Gemini searches Google for current data before generating. Financial and news queries work reliably and return 2-5 grounding sources as markdown links. Weather queries are inconsistent (Gemini API limitation, not a code issue).
|
|
117
|
+
|
|
118
|
+
### Video generation with Veo 3.1
|
|
119
|
+
|
|
120
|
+
```
|
|
121
|
+
Use gemini:generate_video with:
|
|
122
|
+
prompt="A close-up shot of a futuristic coffee machine brewing a glowing blue espresso, steam rising dramatically. Cinematic lighting."
|
|
123
|
+
resolution="1080p"
|
|
124
|
+
durationSeconds=8
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
Uses Google's Veo 3.1 model. Generates 4-8 second videos at up to 4K resolution with native synchronised audio. Processing takes 2-5 minutes -- the tool polls automatically until the video is ready.
|
|
128
|
+
|
|
129
|
+
Options worth knowing about:
|
|
130
|
+
- `aspectRatio` -- `16:9` (landscape, default) or `9:16` (portrait/vertical)
|
|
131
|
+
- `generateAudio` -- on by default, produces dialogue and sound effects matching the prompt
|
|
132
|
+
- `sampleCount` -- generate up to 4 variations in one call
|
|
133
|
+
- `seed` -- for deterministic output across runs
|
|
134
|
+
- `generateThumbnail` -- extracts a frame via ffmpeg (needs ffmpeg in PATH)
|
|
135
|
+
- `generateHTMLPlayer` -- creates a local HTML player alongside the video
|
|
136
|
+
|
|
137
|
+
### SVG generation
|
|
138
|
+
|
|
139
|
+
```
|
|
140
|
+
Use gemini:generate_svg with:
|
|
141
|
+
prompt="Architecture diagram showing a microservices system with API gateway, three services, and a shared database"
|
|
142
|
+
style="technical"
|
|
143
|
+
width=1000
|
|
144
|
+
height=600
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
Generates clean, production-ready SVG code for diagrams, illustrations, icons, and data visualisations. Styles: `technical` (diagrams), `artistic` (illustrations), `minimal` (simple), `data-viz` (charts).
|
|
148
|
+
|
|
149
|
+
### Image editing and analysis
|
|
150
|
+
|
|
151
|
+
**Conversational editing** -- Gemini 3 Pro Image maintains context across editing turns using thought signatures. The server captures these automatically. Pass them back on subsequent edit calls for full continuity:
|
|
152
|
+
|
|
153
|
+
```
|
|
154
|
+
Use gemini:edit_image with:
|
|
155
|
+
prompt="Change the colour scheme to blue and green"
|
|
156
|
+
images=[{data: imageBase64, mimeType: "image/png", thoughtSignature: "fromPreviousCall"}]
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
Skip thought signatures and each edit starts from scratch.
|
|
160
|
+
|
|
161
|
+
**Analysis** -- two tools for different purposes:
|
|
162
|
+
- `describe_image` -- Fast general descriptions using Gemini 3 Flash
|
|
163
|
+
- `analyze_image` -- Structured extraction and detailed reasoning using Gemini 3.1 Pro
|
|
164
|
+
|
|
165
|
+
**Load local files:**
|
|
166
|
+
```
|
|
167
|
+
Use gemini:load_image_from_path with filePath="C:/screenshots/error.png"
|
|
168
|
+
```
|
|
169
|
+
Returns base64 data ready for any image tool.
|
|
170
|
+
|
|
171
|
+
### Media resolution control
|
|
172
|
+
|
|
173
|
+
Reduce token usage by up to 75% whilst maintaining quality:
|
|
174
|
+
|
|
175
|
+
| Level | Tokens | Savings | Best for |
|
|
176
|
+
|-------|--------|---------|----------|
|
|
177
|
+
| `MEDIA_RESOLUTION_LOW` | 280 | 75% | Simple tasks, bulk operations |
|
|
178
|
+
| `MEDIA_RESOLUTION_MEDIUM` | 560 | 50% | PDFs/documents (OCR saturates here) |
|
|
179
|
+
| `MEDIA_RESOLUTION_HIGH` | 1120 | default | Detailed analysis |
|
|
180
|
+
| `MEDIA_RESOLUTION_ULTRA_HIGH` | 2000+ | per-image only | Maximum detail |
|
|
181
|
+
|
|
182
|
+
For PDF OCR, MEDIUM gives identical text extraction quality to HIGH at half the tokens. Set `global_media_resolution` to apply to all images, or override per-image with `mediaResolution`.
|
|
183
|
+
|
|
184
|
+
### Landing page generation
|
|
185
|
+
|
|
186
|
+
```
|
|
187
|
+
Use gemini:generate_landing_page with:
|
|
188
|
+
brief="A SaaS tool that helps developers monitor API latency"
|
|
189
|
+
companyName="PingWatch"
|
|
190
|
+
primaryColour="#6366F1"
|
|
191
|
+
style="startup"
|
|
192
|
+
sections=["hero", "features", "pricing", "cta"]
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
Returns a self-contained HTML file -- inline CSS and vanilla JS, no external dependencies. Styles: `minimal`, `bold`, `corporate`, `startup`.
|
|
196
|
+
|
|
197
|
+
### Professional chart design systems
|
|
198
|
+
|
|
199
|
+
The `gemini_prompt_assistant` tool includes 9 professional chart design systems:
|
|
200
|
+
|
|
201
|
+
| System | Inspiration | Best for |
|
|
202
|
+
|--------|------------|----------|
|
|
203
|
+
| **storytelling** | Cole Nussbaumer Knaflic | Executive presentations -- everything muted except one bold highlight |
|
|
204
|
+
| **financial** | Financial Times | Editorial journalism -- FT Pink background, serif titles |
|
|
205
|
+
| **terminal** | Bloomberg / Fintech | High-density dark mode with electric neon |
|
|
206
|
+
| **modernist** | W.E.B. Du Bois | Bold geometric blocks, stark contrasts |
|
|
207
|
+
| **professional** | IBM Carbon / Tailwind | Enterprise dashboards |
|
|
208
|
+
| **editorial** | FiveThirtyEight / Economist | Data journalism |
|
|
209
|
+
| **scientific** | Nature / Science | Academic rigour |
|
|
210
|
+
| **minimal** | Edward Tufte | Maximum data-ink ratio |
|
|
211
|
+
| **dark** | Observable | Modern dark mode |
|
|
212
|
+
|
|
213
|
+
```
|
|
214
|
+
Use gemini:gemini_prompt_assistant with:
|
|
215
|
+
request_type="template"
|
|
216
|
+
use_case="product"
|
|
217
|
+
desired_outcome="Generate a professional product comparison chart"
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
### Help system
|
|
221
|
+
|
|
222
|
+
```
|
|
223
|
+
Use gemini:gemini_help with topic="overview"
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
Documentation for all features without leaving Claude. Topics: `overview`, `image_generation`, `image_editing`, `image_analysis`, `chat`, `deep_research`, `grounding`, `media_resolution`, `models`, `all`.
|
|
227
|
+
|
|
228
|
+
---
|
|
229
|
+
|
|
230
|
+
## Image output and storage
|
|
231
|
+
|
|
232
|
+
**Default behaviour:** Images return as inline base64 previews (quality 100, 1024px) rendered directly in Claude.
|
|
233
|
+
|
|
234
|
+
**Persistent storage:** Set `GEMINI_IMAGE_OUTPUT_DIR` to auto-save all generated images:
|
|
235
|
+
|
|
236
|
+
```json
|
|
237
|
+
"env": {
|
|
238
|
+
"GEMINI_API_KEY": "your-api-key-here",
|
|
239
|
+
"GEMINI_IMAGE_OUTPUT_DIR": "C:/Users/username/Pictures/gemini-output"
|
|
240
|
+
}
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
Every image saves with a timestamp filename. The tool returns both the inline preview and the file path.
|
|
244
|
+
|
|
245
|
+
**Per-call override:** Pass `outputPath` on any generation tool to save to a specific location.
|
|
246
|
+
|
|
247
|
+
The server uses a two-tier compression approach to handle the MCP protocol's ~1MB JSON-RPC limit whilst preserving full-resolution files on disk:
|
|
248
|
+
|
|
249
|
+
| Tier | Quality | Max dimension | Purpose |
|
|
250
|
+
|------|---------|---------------|---------|
|
|
251
|
+
| **Full-res** | Original | Original | Saved to disk |
|
|
252
|
+
| **Viewer preview** | 100 | 1024px | MCP App inline preview (~400KB) |
|
|
253
|
+
|
|
254
|
+
Gemini returns 2-5MB images. The full image is saved to disk immediately, and a compressed preview is created for the MCP App viewer.
|
|
255
|
+
|
|
256
|
+
---
|
|
257
|
+
|
|
258
|
+
## Configuration reference
|
|
259
|
+
|
|
260
|
+
| Variable | Required | Default | Description |
|
|
261
|
+
|----------|----------|---------|-------------|
|
|
262
|
+
| `GEMINI_API_KEY` | Yes | -- | Google AI API key from [AI Studio](https://aistudio.google.com/apikey) |
|
|
263
|
+
| `GEMINI_DEFAULT_MODEL` | No | `gemini-3.1-pro-preview` | Default model for `gemini_chat` and `analyze_image` |
|
|
264
|
+
| `GEMINI_DEFAULT_GROUNDING` | No | `true` | Enable Google Search grounding by default |
|
|
265
|
+
| `GEMINI_IMAGE_OUTPUT_DIR` | No | -- | Auto-save directory for generated images |
|
|
266
|
+
| `GEMINI_ALLOW_EXPERIMENTAL` | No | `false` | Include experimental/preview models in auto-discovery |
|
|
267
|
+
| `GEMINI_MCP_LOG_FILE` | No | `false` | Write logs to `~/.gemini-mcp/logs/` |
|
|
268
|
+
| `DEBUG_MCP` | No | `false` | Log to stderr for debugging tool calls |
|
|
269
|
+
|
|
270
|
+
---
|
|
271
|
+
|
|
272
|
+
## Tools reference
|
|
273
|
+
|
|
274
|
+
| Tool | Description |
|
|
275
|
+
|------|-------------|
|
|
276
|
+
| `gemini_chat` | Chat with Gemini 3.1 Pro. Google Search grounding on by default. Supports `thinking_level` for Gemini 3 |
|
|
277
|
+
| `gemini_deep_research` | Multi-step iterative research with Google Search. Synthesises comprehensive reports |
|
|
278
|
+
| `gemini_list_models` | Lists available models from the API |
|
|
279
|
+
| `gemini_help` | Documentation for all features without leaving Claude |
|
|
280
|
+
| `gemini_prompt_assistant` | Expert guidance for image generation with 9 chart design systems |
|
|
281
|
+
| `generate_image` | Image generation with search grounding and thought signatures for conversational editing |
|
|
282
|
+
| `edit_image` | Edit images with natural-language instructions. Supports multi-turn continuity |
|
|
283
|
+
| `describe_image` | Fast image descriptions using Gemini 3 Flash |
|
|
284
|
+
| `analyze_image` | Structured extraction and analysis using Gemini 3.1 Pro |
|
|
285
|
+
| `load_image_from_path` | Read a local image file and return base64 for any image tool |
|
|
286
|
+
| `generate_video` | Video generation with Veo 3.1 -- 4-8 seconds at up to 4K with native audio |
|
|
287
|
+
| `generate_svg` | Production-ready SVG graphics for diagrams, illustrations, and data visualisations |
|
|
288
|
+
| `generate_landing_page` | Self-contained HTML landing pages with inline CSS/JS |
|
|
289
|
+
|
|
290
|
+
---
|
|
291
|
+
|
|
292
|
+
## Model reference
|
|
293
|
+
|
|
294
|
+
| Model | Used by | Notes |
|
|
295
|
+
|-------|---------|-------|
|
|
296
|
+
| `gemini-3.1-pro-preview` | `gemini_chat`, `analyze_image` | Default. Advanced reasoning |
|
|
297
|
+
| `gemini-3-pro-image-preview` | `generate_image`, `edit_image` | Nano Banana Pro -- highest quality generation |
|
|
298
|
+
| `gemini-2.5-flash-image` | `generate_image` (optional) | Faster generation, higher volume |
|
|
299
|
+
| `gemini-3-flash-preview` | `describe_image` | Fast general descriptions |
|
|
300
|
+
| `veo-3.1-generate-preview` | `generate_video` | Veo 3.1 -- 4K video with native audio |
|
|
301
|
+
|
|
302
|
+
**Gemini 3 notes:** Temperature is forced to 1.0 on Gemini 3 models (Google's requirement -- lower values cause looping). Thought signatures are captured automatically for conversational image editing. Thinking level only applies to `gemini_chat`.
|
|
303
|
+
|
|
304
|
+
---
|
|
305
|
+
|
|
306
|
+
## Requirements
|
|
307
|
+
|
|
308
|
+
- Node.js 18+
|
|
309
|
+
- A Gemini API key from [Google AI Studio](https://aistudio.google.com/apikey)
|
|
310
|
+
- ffmpeg (optional, for video thumbnail extraction)
|
|
311
|
+
|
|
312
|
+
## Licence
|
|
313
|
+
|
|
314
|
+
Apache-2.0
|