🔺Пример 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 протокола.
