ultimate-gemini-mcp 1.0.19__tar.gz → 1.5.1__tar.gz
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.
Potentially problematic release.
This version of ultimate-gemini-mcp might be problematic. Click here for more details.
- {ultimate_gemini_mcp-1.0.19 → ultimate_gemini_mcp-1.5.1}/PKG-INFO +1 -1
- {ultimate_gemini_mcp-1.0.19 → ultimate_gemini_mcp-1.5.1}/pyproject.toml +1 -1
- {ultimate_gemini_mcp-1.0.19 → ultimate_gemini_mcp-1.5.1}/src/__init__.py +1 -1
- {ultimate_gemini_mcp-1.0.19 → ultimate_gemini_mcp-1.5.1}/src/config/constants.py +1 -1
- {ultimate_gemini_mcp-1.0.19 → ultimate_gemini_mcp-1.5.1}/src/server.py +1 -22
- {ultimate_gemini_mcp-1.0.19 → ultimate_gemini_mcp-1.5.1}/src/tools/batch_generate.py +1 -7
- {ultimate_gemini_mcp-1.0.19 → ultimate_gemini_mcp-1.5.1}/src/tools/generate_image.py +5 -20
- ultimate_gemini_mcp-1.0.19/.genkit/traces_idx/genkit.metadata +0 -1
- ultimate_gemini_mcp-1.0.19/FIX_VERIFICATION_TEST_PLAN.md +0 -601
- ultimate_gemini_mcp-1.0.19/app.py +0 -17
- ultimate_gemini_mcp-1.0.19/raw_response.json +0 -8
- ultimate_gemini_mcp-1.0.19/request.json +0 -14
- ultimate_gemini_mcp-1.0.19/request_exact.json +0 -14
- ultimate_gemini_mcp-1.0.19/response_exact.json +0 -8
- ultimate_gemini_mcp-1.0.19/src/prompts/__init__.py +0 -1
- ultimate_gemini_mcp-1.0.19/src/resources/__init__.py +0 -1
- ultimate_gemini_mcp-1.0.19/src/utils/__init__.py +0 -1
- {ultimate_gemini_mcp-1.0.19 → ultimate_gemini_mcp-1.5.1}/.env.example +0 -0
- {ultimate_gemini_mcp-1.0.19 → ultimate_gemini_mcp-1.5.1}/.github/workflows/README.md +0 -0
- {ultimate_gemini_mcp-1.0.19 → ultimate_gemini_mcp-1.5.1}/.github/workflows/claude-code-review.yml +0 -0
- {ultimate_gemini_mcp-1.0.19 → ultimate_gemini_mcp-1.5.1}/.github/workflows/claude.yml +0 -0
- {ultimate_gemini_mcp-1.0.19 → ultimate_gemini_mcp-1.5.1}/.github/workflows/publish.yml +0 -0
- {ultimate_gemini_mcp-1.0.19 → ultimate_gemini_mcp-1.5.1}/.github/workflows/test.yml +0 -0
- {ultimate_gemini_mcp-1.0.19 → ultimate_gemini_mcp-1.5.1}/.gitignore +0 -0
- {ultimate_gemini_mcp-1.0.19 → ultimate_gemini_mcp-1.5.1}/CLAUDE.md +0 -0
- {ultimate_gemini_mcp-1.0.19 → ultimate_gemini_mcp-1.5.1}/LICENSE +0 -0
- {ultimate_gemini_mcp-1.0.19 → ultimate_gemini_mcp-1.5.1}/MANIFEST.in +0 -0
- {ultimate_gemini_mcp-1.0.19 → ultimate_gemini_mcp-1.5.1}/PUBLISHING.md +0 -0
- {ultimate_gemini_mcp-1.0.19 → ultimate_gemini_mcp-1.5.1}/README.md +0 -0
- {ultimate_gemini_mcp-1.0.19 → ultimate_gemini_mcp-1.5.1}/TEST_RESULTS.md +0 -0
- {ultimate_gemini_mcp-1.0.19 → ultimate_gemini_mcp-1.5.1}/src/config/__init__.py +0 -0
- {ultimate_gemini_mcp-1.0.19 → ultimate_gemini_mcp-1.5.1}/src/config/settings.py +0 -0
- {ultimate_gemini_mcp-1.0.19 → ultimate_gemini_mcp-1.5.1}/src/core/__init__.py +0 -0
- {ultimate_gemini_mcp-1.0.19 → ultimate_gemini_mcp-1.5.1}/src/core/exceptions.py +0 -0
- {ultimate_gemini_mcp-1.0.19 → ultimate_gemini_mcp-1.5.1}/src/core/validation.py +0 -0
- {ultimate_gemini_mcp-1.0.19 → ultimate_gemini_mcp-1.5.1}/src/services/__init__.py +0 -0
- {ultimate_gemini_mcp-1.0.19 → ultimate_gemini_mcp-1.5.1}/src/services/gemini_client.py +0 -0
- {ultimate_gemini_mcp-1.0.19 → ultimate_gemini_mcp-1.5.1}/src/services/image_service.py +0 -0
- {ultimate_gemini_mcp-1.0.19 → ultimate_gemini_mcp-1.5.1}/src/services/imagen_client.py +0 -0
- {ultimate_gemini_mcp-1.0.19 → ultimate_gemini_mcp-1.5.1}/src/services/prompt_enhancer.py +0 -0
- {ultimate_gemini_mcp-1.0.19 → ultimate_gemini_mcp-1.5.1}/src/tools/__init__.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: ultimate-gemini-mcp
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.5.1
|
|
4
4
|
Summary: Ultimate image generation MCP server unifying Gemini 2.5 Flash Image and Imagen 4/Fast/Ultra with advanced features
|
|
5
5
|
Project-URL: Homepage, https://github.com/anand-92/ultimate-image-gen-mcp
|
|
6
6
|
Project-URL: Repository, https://github.com/anand-92/ultimate-image-gen-mcp
|
|
@@ -45,7 +45,7 @@ def create_app() -> FastMCP:
|
|
|
45
45
|
# Create FastMCP server
|
|
46
46
|
mcp = FastMCP(
|
|
47
47
|
"Ultimate Gemini MCP",
|
|
48
|
-
version="1.
|
|
48
|
+
version="1.5.0",
|
|
49
49
|
)
|
|
50
50
|
|
|
51
51
|
# Register tools
|
|
@@ -53,27 +53,6 @@ def create_app() -> FastMCP:
|
|
|
53
53
|
register_batch_generate_tool(mcp)
|
|
54
54
|
|
|
55
55
|
# Add resources
|
|
56
|
-
@mcp.resource("image://latest", mime_type="image/png")
|
|
57
|
-
def get_latest_image() -> bytes:
|
|
58
|
-
"""
|
|
59
|
-
Get the most recently generated image.
|
|
60
|
-
|
|
61
|
-
Returns:
|
|
62
|
-
Binary PNG image data
|
|
63
|
-
"""
|
|
64
|
-
if not settings.output_dir.exists():
|
|
65
|
-
raise FileNotFoundError("No images have been generated yet")
|
|
66
|
-
|
|
67
|
-
# Find most recent PNG file
|
|
68
|
-
images = sorted(
|
|
69
|
-
settings.output_dir.glob("*.png"), key=lambda p: p.stat().st_mtime, reverse=True
|
|
70
|
-
)
|
|
71
|
-
|
|
72
|
-
if not images:
|
|
73
|
-
raise FileNotFoundError("No images found in output directory")
|
|
74
|
-
|
|
75
|
-
return images[0].read_bytes()
|
|
76
|
-
|
|
77
56
|
@mcp.resource("models://list")
|
|
78
57
|
def list_models() -> str:
|
|
79
58
|
"""List all available image generation models."""
|
|
@@ -115,7 +115,6 @@ def register_batch_generate_tool(mcp_server: Any) -> None:
|
|
|
115
115
|
output_format: str = "png",
|
|
116
116
|
batch_size: int | None = None,
|
|
117
117
|
negative_prompt: str | None = None,
|
|
118
|
-
save_to_disk: bool = True,
|
|
119
118
|
) -> str:
|
|
120
119
|
"""
|
|
121
120
|
Generate multiple images from a list of prompts efficiently.
|
|
@@ -131,13 +130,9 @@ def register_batch_generate_tool(mcp_server: Any) -> None:
|
|
|
131
130
|
output_format: Image format for all images (default: png)
|
|
132
131
|
batch_size: Parallel batch size (default: from config)
|
|
133
132
|
negative_prompt: Negative prompt for Imagen models (optional)
|
|
134
|
-
save_to_disk: Save images to disk and return file paths (default: True).
|
|
135
|
-
When True: Returns file paths only (efficient for MCP clients).
|
|
136
|
-
When False: Returns base64 image data (for cloud/serverless).
|
|
137
133
|
|
|
138
134
|
Returns:
|
|
139
|
-
JSON string with batch results
|
|
140
|
-
or base64 image data (save_to_disk=False)
|
|
135
|
+
JSON string with batch results including individual image paths
|
|
141
136
|
"""
|
|
142
137
|
try:
|
|
143
138
|
result = await batch_generate_images(
|
|
@@ -148,7 +143,6 @@ def register_batch_generate_tool(mcp_server: Any) -> None:
|
|
|
148
143
|
output_format=output_format,
|
|
149
144
|
batch_size=batch_size,
|
|
150
145
|
negative_prompt=negative_prompt,
|
|
151
|
-
save_to_disk=save_to_disk,
|
|
152
146
|
)
|
|
153
147
|
|
|
154
148
|
return json.dumps(result, indent=2)
|
|
@@ -153,19 +153,10 @@ async def generate_image_tool(
|
|
|
153
153
|
}
|
|
154
154
|
|
|
155
155
|
if save_to_disk:
|
|
156
|
-
#
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
image_info["filename"] = file_path.name
|
|
161
|
-
logger.info(f"Saved image to {file_path}")
|
|
162
|
-
except Exception as e:
|
|
163
|
-
logger.warning(f"Failed to save image to disk: {e}")
|
|
164
|
-
image_info["save_error"] = str(e)
|
|
165
|
-
else:
|
|
166
|
-
# Only include base64 data when not saving to disk (cloud/serverless scenarios)
|
|
167
|
-
# This prevents token overflow for MCP clients with file system access
|
|
168
|
-
image_info["image_base64"] = result.image_data
|
|
156
|
+
# Save to output directory
|
|
157
|
+
file_path = result.save(settings.output_dir)
|
|
158
|
+
image_info["path"] = str(file_path)
|
|
159
|
+
image_info["filename"] = file_path.name
|
|
169
160
|
|
|
170
161
|
# Add enhanced prompt info
|
|
171
162
|
if "enhanced_prompt" in result.metadata:
|
|
@@ -196,7 +187,6 @@ def register_generate_image_tool(mcp_server: Any) -> None:
|
|
|
196
187
|
use_world_knowledge: bool = False,
|
|
197
188
|
negative_prompt: str | None = None,
|
|
198
189
|
seed: int | None = None,
|
|
199
|
-
save_to_disk: bool = True,
|
|
200
190
|
) -> str:
|
|
201
191
|
"""
|
|
202
192
|
Generate images using Google's Gemini or Imagen models.
|
|
@@ -218,9 +208,6 @@ def register_generate_image_tool(mcp_server: Any) -> None:
|
|
|
218
208
|
use_world_knowledge: Use real-world knowledge (Gemini only)
|
|
219
209
|
negative_prompt: What to avoid in the image (Imagen only)
|
|
220
210
|
seed: Random seed for reproducibility (NOT SUPPORTED - will be ignored)
|
|
221
|
-
save_to_disk: Save images to disk and return file paths (default: True).
|
|
222
|
-
When True: Returns file paths only (efficient for MCP clients).
|
|
223
|
-
When False: Returns base64 image data (for cloud/serverless).
|
|
224
211
|
|
|
225
212
|
Available models:
|
|
226
213
|
- gemini-2.5-flash-image (default)
|
|
@@ -229,8 +216,7 @@ def register_generate_image_tool(mcp_server: Any) -> None:
|
|
|
229
216
|
- imagen-4-ultra
|
|
230
217
|
|
|
231
218
|
Returns:
|
|
232
|
-
JSON string with generation results and
|
|
233
|
-
or base64 image data (save_to_disk=False)
|
|
219
|
+
JSON string with generation results and file paths
|
|
234
220
|
"""
|
|
235
221
|
try:
|
|
236
222
|
result = await generate_image_tool(
|
|
@@ -246,7 +232,6 @@ def register_generate_image_tool(mcp_server: Any) -> None:
|
|
|
246
232
|
use_world_knowledge=use_world_knowledge,
|
|
247
233
|
negative_prompt=negative_prompt,
|
|
248
234
|
seed=seed,
|
|
249
|
-
save_to_disk=save_to_disk,
|
|
250
235
|
)
|
|
251
236
|
|
|
252
237
|
return json.dumps(result, indent=2)
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":"1.21.0"}
|