使用说明
Nano Banana MCP服务器
一个模型上下文协议(MCP)服务器,用于使用谷歌的Gemini 2.5 Flash image Preview模型生成AI驱动的图像。该服务器通过MCP接口实现文本到图像和图像到图像的生成。
特性
- 文本到图像生成:根据文本提示生成图像
- 图像到图像生成:创建现有图像的变体或修改
- Base64支持:处理base64格式的图像数据以兼容MCP
- 谷歌AI工作室集成:使用谷歌最新的Gemini 2.5 Flash图像预览模型
- 错误处理:全面的错误处理和记录
- 环境变量支持:安全的API密钥管理
先决条件
- Python 3.7+
- Google AI Studio API密钥
- API调用的Internet连接
安装
-
克隆或下载此存储库
-
安装依赖项:
pip install -r requirements.txt -
设置您的Google AI Studio API密钥:
export GOOGLE_AI_STUDIO_API_KEY="your_api_key_here"
配置
MCP配置
将以下内容添加到MCP配置文件中:
{
"mcpServers": {
"nano-banana": {
"command": "python3",
"args": ["nano_banana_server.py"],
"env": {
"GOOGLE_AI_STUDIO_API_KEY": "${GOOGLE_AI_STUDIO_API_KEY}"
}
}
}
}
环境变量
GOOGLE_AI_STUDIO_API_KEY:您的Google AI Studio API密钥(必需)
用法
MCP工具功能
服务器提供单个MCP工具功能:
generate_image_with_nano_banana
使用谷歌的Gemini 2.5 Flash图像预览模型生成图像。
参数:
prompt(string,必填):要生成的图像的文本描述input_image_b64(字符串,可选):Base64编码的输入图像,用于变化input_image_mime_type(字符串,可选):输入图像的MIME类型(例如,“image/png”、“image/jpeg”)
退货:
success(boolean):生成是否成功generated_image_b64(string):Base64编码生成的图像(如果成功)generated_image_size(整数):生成图像的大小(以字节为单位)model_used(string):所用模型的名称(“gemini-2.5-flash-image preview”)error(string):错误消息(如果失败)
示例用法
文本到图像生成
result = await generate_image_with_nano_banana(
prompt="A beautiful handcrafted ceramic bowl with intricate patterns"
)
图像到图像生成
result = await generate_image_with_nano_banana(
prompt="Transform this into a watercolor painting",
input_image_b64="iVBORw0KGgoAAAANSUhEUgAA...", # Base64 encoded image
input_image_mime_type="image/png"
)
测试
运行测试函数以验证服务器是否正常工作:
python nano_banana_server.py
这将生成一个测试图像并显示结果。
api参考
类
ImageGenerationRequest
用于图像生成请求的数据类。
属性:
prompt(str):图像生成的文本提示input_image_data(可选[字节]):原始图像数据input_image_mime_type(可选[str]):输入图像的MIME类型
ImageGenerationResponse
图像生成响应的数据类。
属性:
success(bool):生成是否成功generated_image_data(可选[字节]):生成的图像数据error_message(可选[str]):如果失败,则显示错误消息model_used(str):用于生成的模型名称
NanoBananaMCPServer
用于处理图像生成的主服务器类。
方法:
__init__(api_key: Optional[str] = None):使用API密钥初始化服务器generate_image(request: ImageGenerationRequest) -> ImageGenerationResponse:根据请求生成图像generate_image_from_base64(prompt: str, input_image_b64: Optional[str] = None, input_image_mime_type: Optional[str] = None) -> Dict[str, Any]:使用base64输入生成图像