πΊΠΡΠΈΠΌΠ΅Ρ MCP Π΄Π»Ρ Gemini CLI
ΠΠΎΠ²ΡΡΡΡΡΡ Ρ Gemini CLI, ΠΊΠΎΠ½ΡΠΎΠ»ΡΠ½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠ²ΡΠΌ Π°Π³Π΅Π½ΡΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π° Π΄Π½ΡΡ Π²ΡΡΠ΅Π». ΠΠ°ΠΊΠΈΠ΄Π°Π» ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠ°ΠΊ ΡΠ°ΡΡΠΈΡΠΈΡΡ Π΅Π³ΠΎ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π» ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ MCP ΡΠ΅ΡΠ²Π΅ΡΠ°.
my_mcp.py
from openai import OpenAI from mcp.server.fastmcp import FastMCP import base64 import os client = OpenAI(api_key=os.environ["OPENAI_API_KEY"]) mcp = FastMCP("openai-image-generator") @mcp.tool(description="Generate an image with OpenAI Images API") def generate_image( prompt: str, size: str = "1024x1024", # "1024x1536", "1536x1024", "1024x1024" quality: str = "high", # 'low', 'medium', 'high' background: str = "transparent" ) -> str: """Return a file path to the generated image.""" response = client.images.generate( model="gpt-image-1", prompt=prompt, size=size, quality=quality, output_format="png", user="test_user", moderation="low", background=background, n=1) image_base64 = response.data[0].b64_json image_bytes = base64.b64decode(image_base64) file_name = f"gen_image.png" file_path = os.path.join(os.getcwd(), file_name) with open(file_path, "wb") as f: f.write(image_bytes) return file_path if __name__ == "__main__": mcp.run()
Π’ΡΡ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ API Π΄Π»Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΠΊΠ»ΡΡ Π±Π΅ΡΠ΅ΡΡΡ ΠΈΠ· ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ, ΠΊΠ°ΡΡΠΈΠ½ΠΊΠ° ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΡΡΡ Π½Π° Π΄ΠΈΡΠΊ. Π ΠΏΡΠΎΠΏΠΈΡΡΠ²Π°Π΅ΠΌ ΠΏΡΡΡ Π΄ΠΎ ΡΠ°ΠΉΠ»ΠΈΠΊΠ° Π² settings.json Gemini:
{ "mcpServers": { "openai-image-generator": { "command": "python", "args": [ "/path/to/my_mcp.py" ], "env": "OPENAI_API_KEY": "${OPENAI_API_KEY}" } } } }
ΠΡΠ»ΠΈ ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΡΠΎΡΠΈΡΡ ΡΠ³Π΅Π½Π΅ΡΠΈΡΡ Π»ΠΎΠ³ΠΎ Π΄Π»Ρ ΡΠ²ΠΎΠ΅Π³ΠΎ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ, ΡΠΎ Gemini ΡΠΎΡΡΠ°Π²ΠΈΡ ΡΠ΅Π»Π΅Π²Π°Π½ΡΠ½ΡΠΉ ΠΏΡΠΎΠΌΠΏΡ ΠΏΠΎ ΡΠ΅ΠΏΠ΅, Π²ΡΠ·ΠΎΠ²Π°Π΅Ρ ΡΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ ΠΈ ΠΏΠΎ ΠΆΠ΅Π»Π°Π½ΠΈΡ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ Readme ΠΏΡΠΎΠ΅ΠΊΡΠ°, Π΄ΠΎΠ±Π°Π²ΠΈΠ² Π² Π½Π΅Π³ΠΎ ΠΊΠ°ΡΡΠΈΠ½ΠΊΡ.
Π‘ΠΌΡΡΠ» ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΡΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ Π»ΡΠ±ΠΎΠΉ Π²ΡΠ·ΠΎΠ² Π²Π°ΡΠ΅Π³ΠΎ Π²Π½Π΅ΡΠ½Π΅Π³ΠΎ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°.
Π ΡΠ΅Π»ΠΎΠΌ ΠΆΠ΅ Π΅ΡΡΡ ΠΊΡΡΠ° Π³ΠΎΡΠΎΠ²ΡΡ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ², ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ GitHub Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π°Π³Π΅Π½ΡΠΎΠΌ ΠΏΡΠ»Π»-ΡΠ΅ΠΊΠ²Π΅ΡΡΠ° ΠΈΠ»ΠΈ RAG Π½Π° ΡΠ²ΠΎΠΈΡ ΡΠ°ΠΉΠ»Π°Ρ . Π₯ΠΎΡΠΎΡΠΈΠΉ ΡΠΏΠΈΡΠΎΠΊ Π΅ΡΡΡ Π² ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ΅ΠΏΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² MCP ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π°.
