Skip to main content
Glama
ragna-ai

MCP Google Vertex AI Server

by ragna-ai

MCP Google Vertex AI Server

A Model Context Protocol (MCP) server that provides AI-powered image and video generation capabilities using Google Vertex AI's Imagen and Veo models.

Features

  • 🎨 Image Generation: Create AI images using Google's Imagen model

  • 🎬 Video Generation: Generate AI videos using Google's Veo model

  • 💾 Local Storage: Automatically save generated content to local server storage

  • 🔒 Secure Configuration: Environment-based configuration for API credentials

  • 🚀 Express v5: Built on the latest Express framework

  • 📝 TypeScript: Fully typed for better developer experience

  • ♻️ DRY Principles: Clean, maintainable, and reusable code architecture

Prerequisites

  • Node.js 24.0.0 or higher

  • Google Cloud Project with Vertex AI API enabled

  • Service account credentials with appropriate permissions

MCP Tools

generate-image

Generate AI images using the configured Imagen model (set via VERTEX_AI_IMAGE_MODEL).

Parameters:

Parameter

Type

Default

Description

prompt

string

required

Text description of the image to generate

numberOfImages

number (1-8)

1

Number of images to generate

aspectRatio

1:1 | 3:4 | 4:3 | 9:16 | 16:9

1:1

Aspect ratio

imageSize

1K | 2K

2K

Output resolution

outputMimeType

image/png | image/jpeg

image/png

Output format

negativePrompt

string

Things to avoid in the image

guidanceScale

number (1-20)

How closely the model follows the prompt

seed

number

Random seed for reproducible results

enhancePrompt

boolean

false

Auto-enhance the prompt before generation

Example:

{
  "name": "generate-image",
  "arguments": {
    "prompt": "A serene mountain landscape at sunset with a lake",
    "aspectRatio": "16:9",
    "numberOfImages": 2
  }
}

generate-video

Generate AI videos using the configured Veo model (set via VERTEX_AI_VIDEO_MODEL).

Parameters:

Parameter

Type

Default

Description

prompt

string

required

Text description of the video to generate

numberOfVideos

number (1-4)

1

Number of videos to generate

durationSeconds

number (4-8)

8

Clip length in seconds (4, 6, or 8)

aspectRatio

16:9 | 9:16

16:9

Aspect ratio

resolution

720p | 1080p | 4K

1080p

Video resolution

seed

number

Random seed for reproducible results

negativePrompt

string

Things to avoid in the video

enhancePrompt

boolean

true

Auto-enhance the prompt before generation

generateAudio

boolean

false

Generate audio alongside the video

lastFrame

string

Image to use as the last frame (image-to-video)

referenceImages

array

Reference images to guide generation (see below)

Reference images (provide either a local file path, Cloud Storage URI, or public URL):

  • Local file path: /path/to/image.png

  • Cloud Storage URI: gs://my-bucket/image.jpg

  • Public URL: https://cdn.example.com/image.jpg

Supported formats: JPEG, PNG. Maximum size: 10 MB.

referenceImages supports up to 3 ASSET images or 1 STYLE image.

Example — text to video:

{
  "name": "generate-video",
  "arguments": {
    "prompt": "A butterfly flying through a garden of flowers",
    "durationSeconds": 8,
    "aspectRatio": "16:9",
    "resolution": "1080p"
  }
}

Example — image reference:

{
  "name": "generate-video",
  "arguments": {
    "prompt": "The product spinning on a white background",
    "referenceImages": [
      {
        "image": "/path/to/product.png",
        "referenceType": "ASSET"
      }
    ]
  }
}

Connecting to MCP Clients

Claude Desktop

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "google-vertex": {
      "command": "npx",
      "args": ["mcp-remote", "http://localhost:3005/mcp"]
    }
  }
}

VS Code

Add to your .vscode/mcp.json:

{
  "servers": {
    "google-vertex": {
      "type": "http",
      "url": "http://localhost:3005/mcp"
    }
  }
}

MCP Inspector

Test your server with the MCP Inspector:

npx @modelcontextprotocol/inspector

Then connect to: http://localhost:3005/mcp

Architecture

The server follows clean architecture principles with separation of concerns:

  • Config Layer: Environment variable management and validation

  • Service Layer: Vertex AI integration and storage management

  • Tools Layer: Shared utilities (e.g. reference image resolution)

  • Server Layer: MCP protocol implementation and Express server setup

Error Handling

The server includes comprehensive error handling:

  • Graceful error responses for tool invocations

  • Detailed error messages for troubleshooting

  • Proper HTTP status codes

Performance Tips

  • Use appropriate aspect ratios and resolutions for your use case

  • Monitor Vertex AI quotas and billing

  • Consider implementing request queuing for high-traffic scenarios

License

MIT

Acknowledgments