5분 안에 Nano Banana MCP Service 배포하기: 워크플로에 AI 이미지 생성 통합

발행: (2025년 12월 5일 오후 03:44 GMT+9)
6 min read
원문: Dev.to

Source: Dev.to

MCP란 무엇이며 왜 신경 써야 할까요?

Model Context Protocol (MCP) 은 AI 어시스턴트가 외부 도구와 데이터 소스에 안전하게 접근할 수 있도록 하는 오픈 프로토콜입니다. AI 도구가 여러분의 서비스와 통신할 수 있는 표준화된 방식을 제공합니다.

genai-mcp 는 Google Gemini 및 호환 백엔드를 표준화된 HTTP 엔드포인트로 감싸는 오픈소스 MCP 서버입니다. 제공 기능:

  • 텍스트 프롬프트를 통한 이미지 생성
  • 자연어 지시를 이용한 이미지 편집
  • 자동 이미지 저장을 위한 S3/OSS 연동
  • 주요 MCP 클라이언트와 호환되는 스트리밍 가능한 HTTP 전송
  • 다중 백엔드 지원 (Google Gemini 공식 API, Nano Banana와 같은 서드파티 Gemini 호환 백엔드)
  • Tongyi Wanxiang 2.5 등 다중 AI 모델 지원 (더 빠르고 비용 효율적)

사전 준비 사항

  • Go 1.21+ (소스에서 빌드할 경우)
  • Nano Banana API 키 (또는 Google Gemini API 키, Tongyi Wanxiang API 키)
  • 선택 사항: 이미지 저장을 위한 S3/OSS 버킷

1단계: 빠른 배포

옵션 A: 사전 빌드된 바이너리 다운로드 (권장)

Releases 페이지에서 여러분의 플랫폼에 맞는 바이너리를 다운로드합니다:

# macOS (Apple Silicon)
wget https://github.com/adamydwang/genai-mcp/releases/download/release%2F0.2/genai-mcp.darwin.arm64
chmod +x genai-mcp.darwin.arm64
mv genai-mcp.darwin.arm64 genai-mcp

# Linux
wget https://github.com/adamydwang/genai-mcp/releases/download/release%2F0.2/genai-mcp.linux.amd64
chmod +x genai-mcp.linux.amd64
mv genai-mcp.linux.amd64 genai-mcp

설정 파일을 생성합니다:

# env.example를 얻기 위해 레포를 클론
git clone https://github.com/adamydwang/genai-mcp.git
cd genai-mcp
cp env.example .env

옵션 B: 소스에서 빌드

git clone https://github.com/adamydwang/genai-mcp.git
cd genai-mcp
go build .

2단계: 백엔드 설정

genai-mcp는 여러 백엔드를 지원합니다. 필요에 맞는 옵션을 선택하세요.

옵션 1: Nano Banana (서드파티 Gemini 호환 백엔드)

.env 파일을 편집합니다:

# Gemini 제공자를 사용 (Nano Banana 및 기타 호환 백엔드와 동작)
GENAI_PROVIDER=gemini

# Nano Banana 엔드포인트 지정
GENAI_BASE_URL=https://your-nano-banana-endpoint.com

# Nano Banana API 키
GENAI_API_KEY=your_nano_banana_api_key_here

# 모델 이름 (Nano Banana 설정에 맞게 조정)
GENAI_GEN_MODEL_NAME=gemini-3-pro-image-preview
GENAI_EDIT_MODEL_NAME=gemini-3-pro-image-preview

# 요청 타임아웃 (초)
GENAI_TIMEOUT_SECONDS=120

# 이미지 출력 형식: 'base64' 또는 'url'
GENAI_IMAGE_FORMAT=url

옵션 2: Google Gemini 공식 API

GENAI_PROVIDER=gemini
GENAI_BASE_URL=https://generativelanguage.googleapis.com
GENAI_API_KEY=your_google_gemini_api_key_here
GENAI_GEN_MODEL_NAME=gemini-3-pro-image-preview
GENAI_EDIT_MODEL_NAME=gemini-3-pro-image-preview
GENAI_TIMEOUT_SECONDS=120
GENAI_IMAGE_FORMAT=url

옵션 3: Tongyi Wanxiang 2.5 (더 빠르고 비용 효율적)

# Wan 제공자를 사용
GENAI_PROVIDER=wan

# Tongyi Wanxiang 엔드포인트
GENAI_BASE_URL=https://dashscope.aliyuncs.com

# DashScope API 키
GENAI_API_KEY=your_dashscope_api_key_here

# Tongyi Wanxiang 모델 이름
GENAI_GEN_MODEL_NAME=wan2.5-t2i-preview
GENAI_EDIT_MODEL_NAME=wan2.5-i2i-preview

GENAI_TIMEOUT_SECONDS=120
GENAI_IMAGE_FORMAT=url

서버 및 OSS 설정

다음 항목을 .env에 추가합니다:

# 서버 설정
SERVER_ADDRESS=0.0.0.0
SERVER_PORT=8080

# OSS/S3 설정 (GENAI_IMAGE_FORMAT=url인 경우 필수)
OSS_ENDPOINT=oss-cn-beijing.aliyuncs.com   # 또는 여러분의 S3 엔드포인트
OSS_REGION=us-east-1
OSS_ACCESS_KEY=your_access_key
OSS_SECRET_KEY=your_secret_key
OSS_BUCKET=your_bucket_name

3단계: 서버 실행

./genai-mcp

다음과 유사한 출력이 표시됩니다:

INFO Starting GenAI MCP Server
INFO Server configuration loaded
INFO MCP server starting address=0.0.0.0:8080/mcp

이제 MCP 엔드포인트가 http://localhost:8080/mcp에서 사용 가능합니다.

4단계: 서버 테스트

프로젝트에는 Python 테스트 스크립트가 포함되어 있습니다. 먼저 의존성을 설치합니다:

cd tests
pip install -r requirements.txt

연결을 테스트합니다:

# 사용 가능한 도구 목록
python test_list_tools.py

# 이미지 생성
python test_generate_image.py "A futuristic cityscape at sunset"

# 이미지 편집
python test_edit_image.py "Make it more vibrant" "https://example.com/image.jpg"

5단계: 워크플로우 도구에 통합

Cursor와 통합

Cursor 설정에 MCP 서버를 추가합니다:

{
  "mcpServers": {
    "genai-mcp": {
      "url": "http://localhost:8080/mcp",
      "transport": "http"
    }
  }
}

Claude Desktop과 통합

Claude Desktop 설정 파일을 편집합니다 (예: macOS에서는 ~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "genai-mcp": {
      "command": "curl",
      "args": [
        "-X", "POST",
        "http://localhost:8080/mcp"
      ],
      "env": {}
    }
  }
}

Dify와 통합

Dify에서 커스텀 도구를 추가합니다:

  • Name: Gemini Image Generator
  • Method: POST
  • URL: http://your-server:8080/mcp
  • Headers: Content-Type: application/json
  • Body:
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "gemini_generate_image",
    "arguments": {
      "prompt": "{{prompt}}"
    }
  }
}

n8n과 통합

HTTP Request 노드를 생성합니다:

  • Method: POST
  • URL: http://localhost:8080/mcp
  • Headers:
{
  "Content-Type": "application/json"
}
  • Body (JSON):
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "gemini_generate_image",
    "arguments": {
      "prompt": "{{ $json.prompt }}"
    }
  }
}

커스텀 애플리케이션과 통합

간단한 Python 예시:

import requests
import json

def generate_image(prompt: str, mcp_url: str = "http://localhost:8080/mcp"):
    """Generate an image using the MCP server."""
    payload = {
        "jsonrpc": "2.0",
        "id": 1,
        "method": "tools/call",
        "params": {
            "name": "gemini_generate_image",
            "arguments": {"prompt": prompt}
        }
    }

    response = requests.post(mcp_url, json=payload)
    response.raise_for_status()
    return response.json()
Back to Blog

관련 글

더 보기 »

모뎀의 복수

첫 번째 연결 1994년 겨울, 홍콩의 작은 아파트에서, 14세 소년이 US Robotics Sportster 14,400 Fax Modem을 연결했다.