ultimate-gemini-mcp 1.0.17__tar.gz → 1.0.19__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.17 → ultimate_gemini_mcp-1.0.19}/PKG-INFO +1 -1
- {ultimate_gemini_mcp-1.0.17 → ultimate_gemini_mcp-1.0.19}/pyproject.toml +1 -1
- {ultimate_gemini_mcp-1.0.17 → ultimate_gemini_mcp-1.0.19}/src/__init__.py +1 -1
- {ultimate_gemini_mcp-1.0.17 → ultimate_gemini_mcp-1.0.19}/src/server.py +22 -6
- {ultimate_gemini_mcp-1.0.17 → ultimate_gemini_mcp-1.0.19}/src/tools/__init__.py +1 -6
- {ultimate_gemini_mcp-1.0.17 → ultimate_gemini_mcp-1.0.19}/src/tools/generate_image.py +0 -41
- {ultimate_gemini_mcp-1.0.17 → ultimate_gemini_mcp-1.0.19}/.env.example +0 -0
- {ultimate_gemini_mcp-1.0.17 → ultimate_gemini_mcp-1.0.19}/.genkit/traces_idx/genkit.metadata +0 -0
- {ultimate_gemini_mcp-1.0.17 → ultimate_gemini_mcp-1.0.19}/.github/workflows/README.md +0 -0
- {ultimate_gemini_mcp-1.0.17 → ultimate_gemini_mcp-1.0.19}/.github/workflows/claude-code-review.yml +0 -0
- {ultimate_gemini_mcp-1.0.17 → ultimate_gemini_mcp-1.0.19}/.github/workflows/claude.yml +0 -0
- {ultimate_gemini_mcp-1.0.17 → ultimate_gemini_mcp-1.0.19}/.github/workflows/publish.yml +0 -0
- {ultimate_gemini_mcp-1.0.17 → ultimate_gemini_mcp-1.0.19}/.github/workflows/test.yml +0 -0
- {ultimate_gemini_mcp-1.0.17 → ultimate_gemini_mcp-1.0.19}/.gitignore +0 -0
- {ultimate_gemini_mcp-1.0.17 → ultimate_gemini_mcp-1.0.19}/CLAUDE.md +0 -0
- {ultimate_gemini_mcp-1.0.17 → ultimate_gemini_mcp-1.0.19}/FIX_VERIFICATION_TEST_PLAN.md +0 -0
- {ultimate_gemini_mcp-1.0.17 → ultimate_gemini_mcp-1.0.19}/LICENSE +0 -0
- {ultimate_gemini_mcp-1.0.17 → ultimate_gemini_mcp-1.0.19}/MANIFEST.in +0 -0
- {ultimate_gemini_mcp-1.0.17 → ultimate_gemini_mcp-1.0.19}/PUBLISHING.md +0 -0
- {ultimate_gemini_mcp-1.0.17 → ultimate_gemini_mcp-1.0.19}/README.md +0 -0
- {ultimate_gemini_mcp-1.0.17 → ultimate_gemini_mcp-1.0.19}/TEST_RESULTS.md +0 -0
- {ultimate_gemini_mcp-1.0.17 → ultimate_gemini_mcp-1.0.19}/app.py +0 -0
- {ultimate_gemini_mcp-1.0.17 → ultimate_gemini_mcp-1.0.19}/raw_response.json +0 -0
- {ultimate_gemini_mcp-1.0.17 → ultimate_gemini_mcp-1.0.19}/request.json +0 -0
- {ultimate_gemini_mcp-1.0.17 → ultimate_gemini_mcp-1.0.19}/request_exact.json +0 -0
- {ultimate_gemini_mcp-1.0.17 → ultimate_gemini_mcp-1.0.19}/response_exact.json +0 -0
- {ultimate_gemini_mcp-1.0.17 → ultimate_gemini_mcp-1.0.19}/src/config/__init__.py +0 -0
- {ultimate_gemini_mcp-1.0.17 → ultimate_gemini_mcp-1.0.19}/src/config/constants.py +0 -0
- {ultimate_gemini_mcp-1.0.17 → ultimate_gemini_mcp-1.0.19}/src/config/settings.py +0 -0
- {ultimate_gemini_mcp-1.0.17 → ultimate_gemini_mcp-1.0.19}/src/core/__init__.py +0 -0
- {ultimate_gemini_mcp-1.0.17 → ultimate_gemini_mcp-1.0.19}/src/core/exceptions.py +0 -0
- {ultimate_gemini_mcp-1.0.17 → ultimate_gemini_mcp-1.0.19}/src/core/validation.py +0 -0
- {ultimate_gemini_mcp-1.0.17 → ultimate_gemini_mcp-1.0.19}/src/prompts/__init__.py +0 -0
- {ultimate_gemini_mcp-1.0.17 → ultimate_gemini_mcp-1.0.19}/src/resources/__init__.py +0 -0
- {ultimate_gemini_mcp-1.0.17 → ultimate_gemini_mcp-1.0.19}/src/services/__init__.py +0 -0
- {ultimate_gemini_mcp-1.0.17 → ultimate_gemini_mcp-1.0.19}/src/services/gemini_client.py +0 -0
- {ultimate_gemini_mcp-1.0.17 → ultimate_gemini_mcp-1.0.19}/src/services/image_service.py +0 -0
- {ultimate_gemini_mcp-1.0.17 → ultimate_gemini_mcp-1.0.19}/src/services/imagen_client.py +0 -0
- {ultimate_gemini_mcp-1.0.17 → ultimate_gemini_mcp-1.0.19}/src/services/prompt_enhancer.py +0 -0
- {ultimate_gemini_mcp-1.0.17 → ultimate_gemini_mcp-1.0.19}/src/tools/batch_generate.py +0 -0
- {ultimate_gemini_mcp-1.0.17 → ultimate_gemini_mcp-1.0.19}/src/utils/__init__.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: ultimate-gemini-mcp
|
|
3
|
-
Version: 1.0.
|
|
3
|
+
Version: 1.0.19
|
|
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
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "ultimate-gemini-mcp"
|
|
3
|
-
version = "1.0.
|
|
3
|
+
version = "1.0.19"
|
|
4
4
|
description = "Ultimate image generation MCP server unifying Gemini 2.5 Flash Image and Imagen 4/Fast/Ultra with advanced features"
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
requires-python = ">=3.11"
|
|
@@ -7,7 +7,7 @@ A unified MCP server that combines the best features from:
|
|
|
7
7
|
- Advanced features: batch processing, editing, templates, and more
|
|
8
8
|
"""
|
|
9
9
|
|
|
10
|
-
__version__ = "1.0.
|
|
10
|
+
__version__ = "1.0.19"
|
|
11
11
|
__author__ = "Ultimate Gemini MCP"
|
|
12
12
|
|
|
13
13
|
from .config import get_settings
|
|
@@ -14,11 +14,7 @@ import sys
|
|
|
14
14
|
from fastmcp import FastMCP
|
|
15
15
|
|
|
16
16
|
from .config import ALL_MODELS, get_settings
|
|
17
|
-
from .tools import
|
|
18
|
-
register_batch_generate_tool,
|
|
19
|
-
register_generate_image_tool,
|
|
20
|
-
register_get_image_tool,
|
|
21
|
-
)
|
|
17
|
+
from .tools import register_batch_generate_tool, register_generate_image_tool
|
|
22
18
|
|
|
23
19
|
# Set up logging
|
|
24
20
|
logging.basicConfig(
|
|
@@ -55,9 +51,29 @@ def create_app() -> FastMCP:
|
|
|
55
51
|
# Register tools
|
|
56
52
|
register_generate_image_tool(mcp)
|
|
57
53
|
register_batch_generate_tool(mcp)
|
|
58
|
-
register_get_image_tool(mcp)
|
|
59
54
|
|
|
60
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
|
+
|
|
61
77
|
@mcp.resource("models://list")
|
|
62
78
|
def list_models() -> str:
|
|
63
79
|
"""List all available image generation models."""
|
|
@@ -1,16 +1,11 @@
|
|
|
1
1
|
"""Tools module for Ultimate Gemini MCP."""
|
|
2
2
|
|
|
3
3
|
from .batch_generate import batch_generate_images, register_batch_generate_tool
|
|
4
|
-
from .generate_image import
|
|
5
|
-
generate_image_tool,
|
|
6
|
-
register_generate_image_tool,
|
|
7
|
-
register_get_image_tool,
|
|
8
|
-
)
|
|
4
|
+
from .generate_image import generate_image_tool, register_generate_image_tool
|
|
9
5
|
|
|
10
6
|
__all__ = [
|
|
11
7
|
"generate_image_tool",
|
|
12
8
|
"register_generate_image_tool",
|
|
13
|
-
"register_get_image_tool",
|
|
14
9
|
"batch_generate_images",
|
|
15
10
|
"register_batch_generate_tool",
|
|
16
11
|
]
|
|
@@ -179,47 +179,6 @@ async def generate_image_tool(
|
|
|
179
179
|
await image_service.close()
|
|
180
180
|
|
|
181
181
|
|
|
182
|
-
def register_get_image_tool(mcp_server: Any) -> None:
|
|
183
|
-
"""Register get_image tool with MCP server."""
|
|
184
|
-
|
|
185
|
-
@mcp_server.tool()
|
|
186
|
-
async def get_image(filename: str) -> str:
|
|
187
|
-
"""
|
|
188
|
-
Retrieve a generated image by filename and return as base64.
|
|
189
|
-
|
|
190
|
-
Args:
|
|
191
|
-
filename: The filename of the image (e.g., "gemini-2.5-flash-image_20251026_055415_a cute orange cat sleeping on a sunny windowsill.png")
|
|
192
|
-
|
|
193
|
-
Returns:
|
|
194
|
-
JSON string with base64-encoded image data
|
|
195
|
-
"""
|
|
196
|
-
import base64
|
|
197
|
-
import json
|
|
198
|
-
|
|
199
|
-
from ..config import get_settings
|
|
200
|
-
|
|
201
|
-
settings = get_settings()
|
|
202
|
-
image_path = settings.output_dir / filename
|
|
203
|
-
|
|
204
|
-
if not image_path.exists():
|
|
205
|
-
return json.dumps({"success": False, "error": f"Image not found: {filename}"})
|
|
206
|
-
|
|
207
|
-
try:
|
|
208
|
-
image_data = base64.b64encode(image_path.read_bytes()).decode()
|
|
209
|
-
|
|
210
|
-
return json.dumps(
|
|
211
|
-
{
|
|
212
|
-
"success": True,
|
|
213
|
-
"filename": filename,
|
|
214
|
-
"image_base64": image_data,
|
|
215
|
-
"size": image_path.stat().st_size,
|
|
216
|
-
},
|
|
217
|
-
indent=2,
|
|
218
|
-
)
|
|
219
|
-
except Exception as e:
|
|
220
|
-
return json.dumps({"success": False, "error": str(e)})
|
|
221
|
-
|
|
222
|
-
|
|
223
182
|
def register_generate_image_tool(mcp_server: Any) -> None:
|
|
224
183
|
"""Register generate_image tool with MCP server."""
|
|
225
184
|
|
|
File without changes
|
{ultimate_gemini_mcp-1.0.17 → ultimate_gemini_mcp-1.0.19}/.genkit/traces_idx/genkit.metadata
RENAMED
|
File without changes
|
|
File without changes
|
{ultimate_gemini_mcp-1.0.17 → ultimate_gemini_mcp-1.0.19}/.github/workflows/claude-code-review.yml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|